讓人受益匪淺的軟件工程5大黃金定律,值得收藏!

心理學有心理學的著名定律,比如我們耳熟能詳的酒與汙水定律,馬太效應,蘑菇效應,聚光燈效應,酸葡萄效應,那麼軟件工程領域有沒有自己的黃金定律呢?答案是必須,這就是下面的集天地精華於一身的軟件工程的5大黃金定律,你值得擁有,而且這些定律都是經過軟件的工程實踐檢驗出來的,所謂實踐出真知,抓緊學習背誦了,下一個項目經理兼架構師的職位就非你莫屬了。

Moore’s Law(摩爾定律)

摩爾定律,由英特爾創始人之一戈登·摩爾提出來的。其內容為:積體電路上可容納的電晶體(晶體管)數目,約每隔兩年便會增加一倍。主要有以下三種演繹版本:

  • 集成電路芯片上所集成的電路的數目,每隔18個月就翻一倍。

  • 微處理器的性能每隔18個月提高一倍,或價格下降一半。

  • 用一個美元所能買到的電腦性能,每隔18個月翻兩倍。

不過現在隨著納米和量子技術的進步,摩爾定律有可能失效,但是目前來說還是有很廣泛的說服力的,其實用人話總結一下就是計算的計算性將會以你想象不到的速度正常,價格會越來越便宜,芯片的體積會越來越小。

讓人受益匪淺的軟件工程5大黃金定律,值得收藏!

Conway’s Law(康威定律)

在讀架構之美的時候,裡面提到到了康威定律(Conway定律),裡面提到,團隊的組織方式必然會對它產生的代碼有影響。隨著時間的推移,架構也會影響到團隊的協作的好壞。當團隊瓦解時,代碼就會開始變的糟糕。當團隊協作時,架構就會集成的很好。換句話說就是團隊組織的系統結構也會影響到代碼的架構。

讓人受益匪淺的軟件工程5大黃金定律,值得收藏!

破窗理論

破窗效應(英語:Broken windows theory)是犯罪學的一個理論,該理論由詹姆士·威爾遜(James Q. Wilson)及喬治·凱林(George L. Kelling)提出,並刊於《The Atlantic Monthly》1982年3月版的一篇題為《Broken Windows》的文章。此理論認為環境中的不良現象如果被放任存在,會誘使人們仿效,甚至變本加厲。一幢有少許破窗的建築為例,如果那些窗不被修理好,可能將會有破壞者破壞更多的窗戶。最終他們甚至會闖入建築內,如果發現無人居住,也許就在那裡定居或者縱火。一面牆,如果出現一些塗鴉沒有被清洗掉,很快的,牆上就佈滿了亂七八糟、不堪入目的東西;一條人行道有些許紙屑,不久後就會有更多垃圾,最終人們會視若理所當然地將垃圾順手丟棄在地上。這個現象,就是犯罪心理學中的破窗效應!

應用在軟件工程上就是,一定不能讓代碼或者設計的壞味道有抬頭的機會,否則隨著時間的推移,代碼的壞味道會越來越重。反之,一個代碼簡潔的系統,其不讓人不由自主的寫出簡潔的代碼。

讓人受益匪淺的軟件工程5大黃金定律,值得收藏!

Humphrey’s Law(漢弗萊定律)

用戶將永遠不知道他們想要什麼,直到系統已經上線。(也許上線了也不知道)。由此可見不要把用戶想象的太聰明,這個時候,深入挖掘用戶的冰山下的需求是非常重要的,遠遠重要和優先於你開始實現代碼,如果用戶的真正意圖都沒有搞懂,就急忙實現,到最後你的代碼肯定難逃被修改的命運。

讓人受益匪淺的軟件工程5大黃金定律,值得收藏!

Linus' Law(萊納斯法則)

以Linux創始人林納斯·託瓦茲(Linus Torvalds)的名字來命名,但最先由埃裡克·斯蒂芬·雷蒙(Eric S. Raymond)的作品《大教堂和市集》(The Cathedral and the Bazaar)中所提出。“足夠多的眼睛,就可讓所有問題浮現”(given enough eyeballs, all bugs are shallow)。換句話就是說如果足夠多的單元測試,集成測試,黑盒,白盒測試,肯定可以讓所有的Bug無處遁形,當然這裡面牽涉到了一個工程經濟學的問題,更多的測試意味著更多的成本,所有可以在成本和測試數量之間找到一個折中點,另外就是儘量多的使用自動化測試。

讓人受益匪淺的軟件工程5大黃金定律,值得收藏!

親們,如果你們有不同的黃金定律,也請在文末留言。

  • 寫作分享不易,您的收藏,關注和留言是我前進的最大動力;

  • 如果你有任何疑問需要探討,歡迎在文章末尾留言,我儘量在第一時間個大家回覆。


分享到:


相關文章: