手机Av在线不卡,日韩精品校园婷婷五月天,国产轮理电影一区二区,日韩三级欧美视频

哈爾濱今日靈圖

[其他技能培訓]
獵學網(wǎng)訂閱號
獵學網(wǎng)官方企業(yè)微信
位置: 獵學網(wǎng) > 學校機構(gòu) > 哈爾濱今日靈圖 > 學習資訊> 程序員的成長和代碼行數(shù)的關(guān)系

程序員的成長和代碼行數(shù)的關(guān)系

209 2017-04-19

在2011年JohnD.Cook寫了一篇博客,其中提到:

我的朋友CliftNorris發(fā)現(xiàn)了一個基本常數(shù),我稱之為Norris常數(shù),一個未經(jīng)培訓的程序員在他或她遇到瓶頸之前能寫出的平均代碼量。Clift估計這個值是1500行。超過這個數(shù)以后,代碼會變得如此混亂,以至于本人都無法輕而易舉的進行調(diào)試和修改。

我還不了解足夠多的初級程序員來驗證這一結(jié)果,不過我自己認識到,程序員生涯的下一個瓶頸將發(fā)生在20,000行。我把Norris常數(shù)改成2,000那樣正好變成十倍。

在我離開大學之后的第一份工作中,我和我的同事一樣(和我差不多年紀)反復遇到了20,000行的瓶頸。在夢工廠我們有950個程序給動畫師使用,行數(shù)統(tǒng)計顯示多的一些基本在20,000至25,000行。超過這個數(shù)的話即再多的努力也無法增加新特性了。

在1996年年中的時候我負責編寫夢工廠的照明工具(和另外兩個程序員),我知道這將遠遠超過20,000行代碼。我改變了我的編程方法并且這個工具一年后以大約200,000行的代碼量成功交付。(這個工具計劃于2013年退役,在16年時間里它被每天使用并用來拍攝了21部電影。)我因為寫了好幾個行數(shù)在10萬到20萬的程序,我很確定我遇到了下一個瓶頸,我已經(jīng)能夠能感覺到它。

特別難的部分是和一些沒有像你一樣打破了好幾道瓶頸的人討論技術(shù)。打破這些瓶頸意味著做出不同的取舍,特別是一些短期內(nèi)看起來不合理但以后會有所幫助決定。這很難去爭論,短期內(nèi)的優(yōu)點是顯而易見的,但我無法說服任何人說從現(xiàn)在起一年內(nèi)可能有人會做出一個看似無害但是會破壞現(xiàn)有代碼的改動。

EdsgerDijkstra在1969年寫道:

一個一歲多的孩子會以一定的速度匍匐前進,比如說每小時一英里。但每小時一千英里的速度就是一架超音速噴氣機。就物體的移動能力而言這兩者是沒有可比性的,任何其中一個可以到的但是另一個不能做到,反之亦然。

一個Clift所指的初級程序員,學會了爬行,接著蹣跚學步,然后行走,然后慢跑,然后再跑步,最后沖刺,他認為,“以這樣加速度前進我可以趕上超音速噴氣機的速度0但他跑進了2,000行的極限,因為他的技能不會再按比例增加。他必須改變移動方式,比如開車去獲得更快的速度。然后,他就學會了開車,開始很慢,然后越來越快,但有進入到了20000行極限。駕駛汽車的技術(shù)不會變成開噴氣式飛機。

我的朋友BradGrantham用新手程序員用“蠻力”解決問題來說明了這一點。我認為這是正確的:當代碼是在2,000行以下,你可以寫任何混亂骯臟的代碼并依靠你的記憶拯救你。深思熟慮的類和包分解會讓你的代規(guī)模達到20,000行。

突破這個瓶頸的關(guān)鍵是什么?對我而言,就是讓事情保持簡單。除非現(xiàn)在就非常需要,否則完全拒絕添加任何新特性或者新代碼。我已經(jīng)在EveryLineIsaPotentialBug中提高了這一點(在SimpleisGood之前還是一知半解)。夢工廠的首席特效架構(gòu)師是這么理解的:

對我而言,照明工具成功的地方在于他選擇了一系列容易使用和維護的小功能并且強大到足夠成為一個非常棒的照明工具。

作為一名技術(shù)領導我明白我主要的貢獻是對那些同事覺得非常重要但不能證明其合理的需求說“不”。但真正的訣竅是知道什么需求增加了線性的復雜度(只和自身相關(guān))和指數(shù)級復雜度(和別的需求有關(guān)聯(lián))。兩者都因該去避免,但后者需要更令人信服的理由。

舉個例子,在2012年,Linux內(nèi)核有1500萬行代碼。其中75%是具有線性復雜度的(驅(qū)動,文件系統(tǒng)和處理器結(jié)構(gòu)相關(guān)的代碼)。你可能有許多視屏驅(qū)動,但他們之間沒有任何(或很少)的交互。剩下的則有更多的依賴關(guān)系。

Dijkstra覺得很難去教授這些先進的方法,因為他們只對那些2萬行或者20萬行的程序才有意義。任何的類或者規(guī)范必須限制其示例在幾百行以內(nèi),暴力方法在這里也同樣適用。你真的需要范例給你顯示30,000行代碼然后證實因為程序上手并不是非常復雜所以新功能能夠很容易的被添加。但這實際上是不可能的。

我不知道做出什么改變來突破20萬行的瓶頸。我最近已經(jīng)切換到了更純粹的函數(shù)式風格并減少了可變狀態(tài),也許這些能讓我有所突破。

而且我很想知道到代碼量達到2000萬行的時候會變成什么樣子。

在三百萬到四百萬行代碼左右似乎有一道無形的墻,無論多少人(數(shù)以百計)或多少年(數(shù)十年)花在上面增長率將會顯著降低。-DanWexler

如需學習軟件開發(fā)相關(guān)課程,請聯(lián)系站客服,一對一提供培訓內(nèi)容講解服務~

溫馨提示: 專業(yè)老師1對1為您解答    馬上填寫,¥1000 元豪禮免費領!

掃一掃
獲取更多福利

×
獵學網(wǎng)
正在播放后入少妇| 欧美婷婷五月天成人俱乐部| 封满人妻视频一二三区| 国产综合三级| 老湿91电影69| 午夜亚洲福利久久久久久| 日韩性爱激情图无码| 黄色日本后入| 高清人妻国产| 张家川| 欧美综合三区视频在线观看| 午夜福利网站91| 大奶子美女被操爽视频| 久久中文黄色网址| 中文字幕人妻丝袜二区69| 乱日本熟妇乱又伦XXX| 无码换脸人妻一区二区三区| 天天夜夜狠狠干| 欧美 成人 在线 日韩| 日韩伦理诱惑在线视频| 久久三级电影网| 99毛片免费看| 精品国产亚洲色欲一区| 日本中文字幕网站| 蜜臀Av在线潮吹| 天堂a在线天| 伊人大香蕉狠狠撸| 美女扒开尿眼让人在线视频淫乐园| 麻豆一区二区在线观看免| www.国产欧美日韩无码精品| 又黄又涩视频| 嗯嗯嗯好爽在线观看| 大香蕉久久通视频| JIZZ丝袜老师国产在线无码| 欧美国产最新一区二区三区| 黑人操韩国女人网| 国产不卡五月婷婷在线| AV毛片精品| 天天爽天天干天天操天天谢| 国产99精品视频三区| 大香蕉在线精品一区二区三区|