軟體工程師必知的9條黃金定律
來源:熵減駭客
在軟體工程中,由於是涉及到複雜系統的設計、開發和演進的領域,所以,行業內先行的大師們,根據自身的經驗和知識的洞見,總結和沉澱出來不少的定律和原則,被用來指導我們日常的軟體開發中的決策和行為。
這些定律和原則,都是經過經過長期實踐和研究得出的,所以也就具有廣泛的適用性和指導意義。
在過去的一段時間內,我們分享了9個常見基本定律,今天做一個總體性的概覽。具體內容如下:
1康威定律
康威定律是由梅爾文·康威於1968年提出的。
其指出:一個組織的設計結構會自然而然地反映在他們所設計的產品之中。
這意味著,如果一個組織的設計結構是分散的,那麼它所設計的產品也可能是分散的,而如果一個組織的設計結構是集中的,那麼它所設計的產品也可能是集中的。
因此,軟體開發團隊應該考慮到他們的組織結構,以便更好地設計軟體產品。
關於康威定律,具體見:軟體開發中的康威定律
2布魯克定律
布魯克定律是由弗雷德裡克·布魯克斯於1975年提出的。
其指出:新增更多的人員到一個已經推遲的專案中,只會使專案進度更加延遲。
這是因為新成員需要時間來適應專案,並且需要進行培訓,這會消耗原來團隊成員的時間和精力。
關於布魯克定律,具體見:軟體開發中的布魯克定律(Brook’s Law)
3霍夫施塔特定律
霍夫施塔特定律是由道格拉斯·霍夫施塔特於1979年提出的。
其指出:一個計劃需要的時間總是比預計的時間長,即使你考慮到霍夫斯塔特定律。
這是因為我們傾向於低估任務的難度和所需的時間,而高估我們自己的能力。
關於霍夫施塔特定律,具體見:軟體工程:霍夫施塔特定律
4海勒姆定律
海勒姆定律是Google 工程師 Hyrum Wright提出的。
其指出:當你依賴於一個 API 的時候,你實際上也依賴於這個 API 的實現細節。
海勒姆定律強調了開發者應該更加註意 API 的實現細節,因為這些細節可能會影響到你的程式碼在未來的可維護性和穩定性。
關於海勒姆定律,具體見:軟體工程:海勒姆定律(Hyrum’s Law)
5帕金森定律
帕金森定律是由西西里·諾斯利普·帕金森於1955年提出的。
其指出:工作會擴張以填滿可用的時間。這意味著,如果給定一個任務的時間越長,完成該任務所需的時間就會越長。
因此,軟體開發團隊應該設定明確的截止日期和時間表,以確保任務按時完成。
關於帕金森定律,具體見:軟體工程:帕金森定律,專案工期的那點事兒
6墨菲定律
墨菲定律是由愛德華·墨菲提出的。
其指出:如果一件事情可能會出錯,那麼它就會出錯。
在軟體開發中,這意味著必須預估到可能的錯誤和故障,並採取措施來防止它們的發生。這也強調了軟體測試和質量控制的重要性。
關於墨菲定律,具體見:軟體工程:墨菲定律,潛在問題管理的藝術
7波斯特爾定律
波斯特爾定律是由喬恩·波斯特爾提出的。
其指出:傳送方應該傳送儘可能簡單的資訊,而接收方則應該儘可能容忍和理解各種型別的輸入。
在軟體開發中,這意味著應該儘可能簡化和標準化輸入和輸出格式,以提高軟體的互操作性和可移植性。
關於波斯特爾定律,具體見:軟體工程:波斯特爾定律,輸入輸出的平衡之道
8奧卡姆剃刀定律
奧卡姆剃刀定律是一種科學和哲學原則,也適用於軟體工程。
其指出:在解釋某個現象或問題時,應當選擇最簡單的解釋或假設,而不是複雜的解釋或假設。
在軟體開發中,這意味著應該儘可能使用簡單的設計和演算法,以避免複雜性和潛在的錯誤。
關於奧卡姆剃刀定律,具體見:軟體工程:奧卡姆剃刀原則,簡單的意義
9阿姆達爾定律
阿姆達爾定律是由吉恩·阿姆達爾於1967年提出的。
其指出:在計算機系統中,一個任務的速度受到其序列部分的限制。
這意味著平行計算只能在一定程度上提高效能,因為一些任務必須順序執行。
在軟體開發中,這意味著必須注意系統的序列部分,以避免效能瓶頸和資源浪費。
關於阿姆達爾定律,具體見:軟體工程:阿姆達爾定律,效能設計和最佳化的指導原則
Part1最後
以上9個定律,是軟體工程中比較常見的定律和決策原則。
作為軟體工程師,瞭解和掌握這些基本的定律和原則,可以幫助我們更好的解決軟體開發中的哪些複雜的問題,做出高質量的設計和決策,能夠採取適當的措施,以交付優秀的產品。
同時,這些基礎的定律和原則,可以作為軟體團隊開展工作的指導性原則,以幫助團隊找到適合自身實際情況的最佳實踐和策略。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2948935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最美APP的9條黃金法則APP
- JAVA程式設計師“黃金5年”必須要掌握的知識技能Java程式設計師
- 提高遊戲留存的14條黃金法則遊戲
- 客服系統的七條黃金法則
- 軟體工程師必學的9件事軟體工程工程師
- Keras作者:給軟體開發者的33條黃金法則Keras
- 電商運營工具設計的12條黃金法則
- iOS 7圖示設計的七條黃金法則iOS
- Yahoo!網站效能最佳體驗的34條黃金守則網站
- PHP物件導向程式設計的61條黃金法則PHP物件程式設計
- 谷歌機器學習白皮書 43 條黃金法則全解析谷歌機器學習
- 提高java程式設計安全性的12條黃金法則Java程式設計
- 成為優秀程式設計師的10條黃金法則程式設計師
- 程式設計師30歲前成功的12條黃金法則程式設計師
- 程式媛的黃金時代
- 有效提高java程式設計安全性的12條黃金法則Java程式設計
- Yahoo!網站效能最佳體驗的34條黃金守則(轉載)網站
- 鑄博皇御:鮮為人知的現貨黃金投資策略
- 谷歌機器學習規則要點簡析:43條黃金法則谷歌機器學習
- 《黃金時代》總結
- Yahoo!網站效能最佳體驗的34條黃金守則——JavaScript和CSS網站JavaScriptCSS
- Web 前端開發者必知的9 個CSS屬性Web前端CSS
- 深度剖析遊戲直播的黃金時代遊戲
- 世界黃金協會:全球已開採的黃金存量折算後超過20萬億美元
- 世界黃金協會:比特幣不如黃金,但可能撼動央行地位比特幣
- 軟體工程師的15個信條軟體工程工程師
- 程式設計師真實寫真:35歲前成功的12條黃金法則程式設計師
- 軟體工程師必須知道20個知識點你瞭解多少?軟體工程工程師
- Virtuos:影片遊戲重製的黃金時代遊戲
- 設計的7條心理學原則和定律
- Java-黃金礦工(二)Java
- 軟體工程師必讀的13本書軟體工程工程師
- 【必知必會的MySQL知識】①初探MySQLMySql
- 【必知必會的MySQL知識】②使用MySQLMySql
- 王汕11.3外匯黃金晚間價格漲跌分析、貴金屬黃金獨家短線解套
- 軟體工程師必讀圖書軟體工程工程師
- 他說,程式設計的黃金時代已到程式設計
- 十四歲程式設計師的黃金時代程式設計師