最近與同仁講一個簡單的功能,咱們過去的項目或系統可能開發過不少次了,當下須要反思軟件設計怎麼才能作得更好,這樣咱們本身才能成長。若是軟件設計都作很差,更作很差軟件架構。 若是你重複一次又一次在作與過去相同的東西,有沒有意義? 沒有成長,等於浪費時間。如今產品經理都須要關注用戶增加的設計了,思考你如何得到成長。html
什麼叫「重複性勞動」?數據庫
你也許會覺得,重複性勞動是指那些主要以體力完成的工做,送外賣、發傳單,或者,摻雜少部分腦力的工做。其實不是,即便是某些高強度的腦力工做,依然算是重複性勞動。好比,被你們認爲重複性較低的銷售,其實時間長了,也會按固定套路,把銷售流程當作例行公事走完。日復一日的重複性勞動,工做愈來愈熟練,但成長愈來愈緩慢。編程
反覆不斷地重複寫代碼去解決一樣的編程問題,這就是在作徹底相同的事,除非新的約束和變化給你帶來了新的挑戰,你只能從第一次的經驗中有所收穫,而從第二次開始基本就是簡單地重複了。若是你想要作得更優秀,重複實踐是遠遠不夠的。你必須在實踐中增長更多的難度和挑戰。微信
一般咱們軟件設計時須要考慮的:網絡
- Compatibility - The software is able to operate with other products that are designed for interoperability with another product. For example, a piece of software may be backward-compatible with an older version of itself.
- Extensibility - New capabilities can be added to the software without major changes to the underlying architecture.
- Modularity - the resulting software comprises well defined, independent components which leads to better maintainability. The components could be then implemented and tested in isolation before being integrated to form a desired software system. This allows division of work in a software development project.
- Fault-tolerance - The software is resistant to and able to recover from component failure.
- Maintainability - A measure of how easily bug fixes or functional modifications can be accomplished. High maintainability can be the product of modularity and extensibility.
- Reliability (Software durability) - The software is able to perform a required function under stated conditions for a specified period of time.
- Reusability - The ability to use some or all of the aspects of the preexisting software in other projects with little to no modification.
- Robustness - The software is able to operate under stress or tolerate unpredictable or invalid input. For example, it can be designed with resilience to low memory conditions.
- Security - The software is able to withstand and resist hostile acts and influences.
- Usability - The software user interface must be usable for its target user/audience. Default values for the parameters must be chosen so that they are a good choice for the majority of the users.[5]
- Performance - The software performs its tasks within a time-frame that is acceptable for the user, and does not require too much memory.
- Portability - The software should be usable across a number of different conditions and environments.
- Scalability - The software adapts well to increasing data or number of users.
軟件工匠架構
再回顧軟件工藝宣言,筆者不少年前已在上面簽名:運維
不只要讓軟件工做,更要精益求精。微服務
不只能夠響應變化,更要穩步增長價值。性能
不只要有個體與交互,更要造成專業人員的社區。學習
不只要與客戶合做,更要創建卓有成效的夥伴關係。
也就是說,左項當然值得追求,右項一樣不可或缺。
![clipboard clipboard](http://static.javashuo.com/static/loading.gif)
![clipboard clipboard](http://static.javashuo.com/static/loading.gif)
------------------------------------------------------------------
今天先到這兒,但願對您技術領導力, 企業管理,系統架構設計與評估,團隊管理, 項目管理, 產品管理,團隊建設 有參考做用 , 您可能感興趣的文章:
國際化環境下系統架構演化
微服務架構設計
視頻直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續集成/CD
互聯網電商購物車架構演變案例
互聯網業務場景下消息隊列架構
互聯網高效研發團隊管理演進之一
消息系統架構設計演進
互聯網電商搜索架構演化之一
企業信息化與軟件工程的迷思
企業項目化管理介紹
軟件項目成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與我的目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
項目管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
互聯網數據庫架構設計思路
IT基礎架構規劃方案一(網絡系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之性能實時度量系統演變
若有想了解更多軟件設計與架構, 系統IT,企業信息化, 團隊管理 資訊,請關注個人微信訂閱號:
![MegadotnetMicroMsg_thumb1_thumb1_thu[2] MegadotnetMicroMsg_thumb1_thumb1_thu[2]](http://static.javashuo.com/static/loading.gif)
做者:Petter Liu
出處:http://www.cnblogs.com/wintersun/ 本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。 該文章也同時發佈在個人獨立博客中-Petter Liu Blog。