日本粉色视频-日本理论片中文在线观看2828-日本理论在线观看被窝网-日本黄大片在线观看-国产精品福利在线观看秒播-国产精品福利资源在线

Google工程師:復雜是軟件的死敵



Google開發(fā)工程師Evan Martin近日在其個人網(wǎng)站發(fā)表了一篇博文《Complexity is the enemy》,文章中指出復雜是軟件的死敵,新代碼的引入是否增加了軟件的復雜度,是否應該加入,要依據(jù)是否符合項目特定設計目標來判定,在文末作者指出應該像C語言那樣寫Python代碼。現(xiàn)把此文進行了翻譯,全文如下:

這是我在Google工作的第七個年頭了,在Google我學到了很多東西,遠比我可以寫下來的多得多。我想我至少可以和你們分享其中的一些。

復雜是軟件的死敵,它很難估值,常慢慢地混入到軟件開發(fā)中。它像一個逐漸變爛的膿包,發(fā)現(xiàn)它時,為時已晚。從另一方面來講,增加復雜度可以幫你解一時之憂:一個新的間接層允許增加新的特性X,但同時你需要增加另外一個間接層;把運行在一個機器上的過程分隔成運行于兩個機器上的過程,可以幫你解決當前遇到的擴展難題,但你同時也必須實現(xiàn)一個RPC層,來管理這兩個機器。

上面所說的現(xiàn)象在開發(fā)者新人中和在老手中一樣突出。通過這幾年的工作,我認為我已經(jīng)可以很好地在這方面達到平衡,什么時候應該增加軟件的復雜性,什么時候應該拒絕。我常常回想一個朋友對Ken Thompson所開發(fā)的Go語言編譯器的評價:它很快,因為它只做很少的工作,它的代碼十分簡單易懂。

寫一篇長長的博客容易,而用簡短的話來概括相同的觀點卻很難,同樣的道理,開發(fā)一款簡小而優(yōu)秀的軟件是很困難的。在程序語言設計中,此種現(xiàn)像很普遍。新手所開發(fā)的新語言包含過多的屬性,很少具有C語言的簡明和清晰。在今天的程序開發(fā)中,程序的優(yōu)劣與其包含多少個對象有關,在分布式系統(tǒng)中,則與有多少個可移動的部分有關。

針對此問題的另一個詞語是“精巧”:再引用這位C語言大牛的一句話,“調(diào)試代碼比寫代碼困難兩倍之多,所以,你如果寫的代碼盡可能的精巧,理論來講,你很難對它進行完美地調(diào)試。”

什么可以幫助解決這個問題呢?是否只能依靠經(jīng)驗呢?我發(fā)現(xiàn),通過特定的設計目標來評估新代碼可能會有幫助。如果你說“這并不能幫助解決項目的最初目標”,那么可以很容易地把新代碼否定掉。在Google,每個新項目的設計模版文檔的開頭都有一個“ non-goals”列表:你應該拒絕的合理的項目擴展。

很諷刺的是,我發(fā)現(xiàn)了一個很“差勁”的工具,它可以幫助減低軟件的復雜度。用C語言寫一段很復雜的程序很難,因為它所能實現(xiàn)的功能有限。C語言通常會使用大量的數(shù)組,而且你只能使用這些數(shù)組,但是這些數(shù)組功能很強大——可以壓縮存儲器表達式,如O(1) ,可以很好的定位數(shù)據(jù)位置。我從未有意地提倡使用這個“差勁”工具,然而我所得到的應驗是:像C語言那樣寫Python代碼。

北大青鳥網(wǎng)上報名
北大青鳥招生簡章
主站蜘蛛池模板: 女人a级毛片 | 九九99九九在线精品视频 | 三级黄色高清视频 | 精品视频 久久久 | 欧美视频不卡 | 欧美深夜在线 | 久久久这里只有精品免费 | 美女擦逼 | 热re91久久精品国产91热 | 日韩中文在线 | 91香蕉成人免费网站 | 午夜在线视频一区二区三区 | 亚州免费一级毛片 | 欧洲成人r片在线观看 | 免费精品久久久视频 | 久久久精品一区 | 欧美精品久久久亚洲 | 中文精品视频一区二区在线观看 | 三级三级三级全黄 | 在线精品国产 | 亚洲视频aaa | 国产三级三级三级三级 | 高清国产在线观看 | 国产女王s调视频vk 国产女王vk | 欧美人成人亚洲专区中文字幕 | 欧美成性色 | 国产成人精品日本亚洲语音1 | 欧美特级毛片aaaa | 国产三级日产三级韩国三级 | 米奇777色狠狠8888影视 | 国产高清a毛片在线看 | 成人18免费网站 | 日韩欧美视频一区二区在线观看 | 国产成人精品高清不卡在线 | 91不卡在线精品国产 | 深夜福利视频在线观看 | 日本人成免费大片 | 一级女性全黄久久生活片 | 日韩亚洲欧美在线 | 色偷偷88欧美精品久久久 | 国产真实乱子伦精品 |