麻豆一区二区-男人的天堂在线-精品视频免费观看-男男在线-超碰97av-国产一级网站-亚洲成人动漫在线观看-九九精品视频在线-偷拍视频一区-国产精品看片-久久91av-午夜男人网-日本特黄一级-亚洲专区第一页-夜夜高潮夜夜爽国产伦精品-久久精品国产亚洲av久-狠狠躁躁夜夜躁波多野结依-精品字幕-玉米地弄刘寡妇尖叫-草逼导航-青青伊人av-av直播在线观看-电影av在线-亚洲五月网-国产精品综合久久久-欧美一级黄色片视频-日韩在线视频在线观看-97久久国产亚洲精品超碰热-亚洲丝袜天堂-直播一级片

聯(lián)系電話: 18171260050

行業(yè)動態(tài)

  • 03,Apr,2022

為什么軟件開發(fā)這么難?

 有些人認(rèn)為,一種好的編程語言可以減輕軟件開發(fā)人員的負(fù)擔(dān),并相應(yīng)地提高他們的效率。

毫無疑問,這在很久以前的匯編和Fortran時代是真的。

  然而,現(xiàn)在編程語言已經(jīng)足夠好了,我們?nèi)匀幻媾R著其他一些困難和挑戰(zhàn)。目前,許多開發(fā)人員認(rèn)為編程仍然非常困難,但這些困難與編程語言無關(guān),原因如下。

1.阿姆達(dá)爾定律。

當(dāng)我們需要執(zhí)行一系列任務(wù)時,我們會想到阿姆達(dá)爾定律。這條法律告訴我們,僅通過加快某項任務(wù)獲得的整體速度提高是有限的。

假設(shè)燒開水需要10分鐘,然后煮面條需要10分鐘。即使你找到了加快沸水速度的方法,烹飪時間也不會少于10分鐘。無論爐子有多旺,烹飪速度都不可能翻倍。

該定律的數(shù)學(xué)公式是:如果某件事的總時間比為p,您將永遠(yuǎn)無法獲得超過1/(1-p)的加速比。假設(shè)這部分工作占90%,即p=0.90。在優(yōu)化過程中,如果這部分時間減少到0,整體工作速度將提高1/(1-0.90)=10倍。

阿姆達(dá)爾定律的關(guān)鍵在于,您可以獲得的大速度提升僅限于優(yōu)化工作的比例 

ZI1(N(V]{[9IY~A%3ETBYNC.png

編程工作困難的原因有很多。簡單地說,我們可以認(rèn)為這是因為我們需要處理的工作必須按照一定的順序完成。畢竟,人類并不擅長同時處理許多任務(wù)。在某個時間點(diǎn),你可能會使用建筑工具、閱讀文檔、編寫代碼或參加會議。當(dāng)然,你也可能會在會議上無私地寫代碼,但你只能做同樣的工作,而不能同時寫代碼和會議。因此,我們可以使用阿姆達(dá)爾定律,假設(shè)您可以將施工時間降低到0,但項目的整體速度只能稍微加快一點(diǎn)。您的工作效率仍將受到其他因素的限制。

曾經(jīng),很難將程序轉(zhuǎn)換為計算機(jī)可以運(yùn)行的代碼。很久以前,我們甚至需要將程序轉(zhuǎn)換為1和0,然后不厭其煩地將其輸入計算機(jī)。我不知道這需要多長時間,但我們可以假設(shè)這項工作占編程時間的90%。這意味著,如果我們能找到更好的方法(如Python)告訴計算機(jī)該做什么,我們可以將編程效率提高10倍以上。

然而,現(xiàn)在我們的編程語言越來越好,告訴計算機(jī)做什么的時間也越來越少。將程序轉(zhuǎn)換為代碼不需要90%的時間。假設(shè)我們現(xiàn)在只需要10%的時間。這意味著,即使這部分工作時間減少到0,效率也只能提高1.11倍。效率比以前低了81倍。

這是因為其他90%的軟件開發(fā)是一項非常艱巨的任務(wù),無論編程語言有多好,不能(直接)減輕我們的負(fù)擔(dān)。

  2.為什么編程還這么難?

  傳達(dá)需求

我在這里說的編程工作很困難,但實際上與編程語言無關(guān)。為了找出原因,暫時假設(shè)我們根本不使用電腦。你不需要告訴電腦該做什么,但你需要告訴你的朋友該做什么。你不能告訴你的朋友你必須為他們做出所有的決定。

  你會發(fā)現(xiàn)解釋關(guān)鍵的背景信息需要很多時間。你的朋友需要了解程序需要處理的實際問題,以及你認(rèn)為程序應(yīng)該提供什么功能。你必須解釋所有的縮寫字母和術(shù)語,并討論各種外部因素。

你的朋友需要知道所有可能的情況,有很多細(xì)節(jié)需要處理。

  同時,你還需要考慮不同功能的狀態(tài),用戶可能嘗試的各種動作,以及所有可能的事件,你需要和你的朋友討論很多極端的情況。

向你的朋友解釋這一切有幾個困難。首先,你必須掌握所有的實際細(xì)節(jié);其次,你必須了解程序在每種情況下應(yīng)該執(zhí)行的操作;此外,你必須通過你的朋友能夠理解的方式傳達(dá)所有信息。這意味著你必須組織這些信息,以確保易于理解。

  請注意,到目前為止,我們甚至還沒有提到計算機(jī),當(dāng)然,我們也沒有提到編程語言。理解需求,掌握程序應(yīng)該做什么,以及組織表達(dá)是一項非常困難的任務(wù)。

描述與規(guī)格

  我們很容易混淆描述和規(guī)格之間的區(qū)別,這是我們經(jīng)常進(jìn)入的思維陷阱。如果你只有一個描述(紅色汽車),你可以測試實際情況是否符合描述(紅色,但不是汽車),但這個描述不足以傳達(dá)如何制造汽車。這就是標(biāo)準(zhǔn)化的目的。

創(chuàng)造事物需要做出很多決定。如果你記錄每個決定的結(jié)果,你就會得到一個(混亂的)規(guī)范。在編寫程序時,你需要做出這樣的決定,所以僅僅通過描述是不夠的,你需要一個規(guī)范。當(dāng)我們看到一個描述(列出文件)時,我們很容易認(rèn)為這是一個規(guī)范,所以我們認(rèn)為我們應(yīng)該能夠告訴計算機(jī)執(zhí)行這個動作。但事實上,有很多決定需要考慮(文件應(yīng)該按什么順序列出?每個文件都有一行嗎?

在編寫程序時,你得到的規(guī)范通常只是一個描述。計算機(jī)不能繪制矩形,它必須知道矩形的顯示位置、大小和顏色。當(dāng)你編寫這個代碼時,你會發(fā)現(xiàn)很多尚未做出的決定。做出這些決定需要付出很多努力。我們經(jīng)常犯錯誤,把這些工作歸咎于編程語言,但這只是因為我們很難根據(jù)描述創(chuàng)建規(guī)范。

  計算機(jī)本身

  現(xiàn)在,讓我們回到計算機(jī)上。開發(fā)軟件不僅僅是為了了解軟件應(yīng)該做什么,并將各種想法轉(zhuǎn)換為代碼。計算機(jī)本身也有許多程序必須解決的問題。您的程序必須在硬件和網(wǎng)絡(luò)上快速運(yùn)行。該程序需要處理機(jī)器故障。工具和協(xié)議的復(fù)雜性使該領(lǐng)域面臨更多的問題。這些困難不是由向計算機(jī)解釋該做什么的過程造成的,它們也需要解釋。

此外,你需要在腦海中運(yùn)行一些程序。有時邏輯很容易理解,但有時你不能把一系列的事件和狀態(tài)都塞進(jìn)腦海里。為了正確理解程序的詳細(xì)信息,在錯誤的情況下修復(fù)程序,您需要了解程序本身在各種情況下的狀態(tài)。

  編寫代碼的過程可以讓你清楚地掌握程序的工作方法。然而,這個程序永遠(yuǎn)不會停止改變。你會發(fā)現(xiàn)錯誤,添加新的功能或修改現(xiàn)有的行為。即使最初的組織方法非常有效,這并不意味著它的結(jié)構(gòu)總是正確的。你需要花時間結(jié)合各種情況,考慮未來的需求,并在事故發(fā)生時清理混亂。

  人員合作

  很多時候,我們需要與他人合作編寫程序,這也會帶來挑戰(zhàn)。

所有的團(tuán)隊成員都必須各司其職。為了不妨礙他們之間的工作,你必須分工。為了建立合理的分工,您首先需要了解程序的結(jié)構(gòu)(請參見康威定律)。

如果你有多個團(tuán)隊,情況會更復(fù)雜。每個團(tuán)隊都有不同的目標(biāo),所以你必須權(quán)衡各個方面。有時,一個決定對其他團(tuán)隊非常有益,但它會阻礙你的工作。很難設(shè)身處地為他人著想,找到合理的妥協(xié)計劃,但必須完成。

  在大型項目中,沒有一個團(tuán)隊能理解整個系統(tǒng),更不用說一個人了。然而,您仍然需要了解系統(tǒng)的各個部分是如何設(shè)計和組織的。這比你自己承擔(dān)整個設(shè)計要困難。

雖然與人打交道并不是真正意義上的編寫代碼,但它也是軟件開發(fā)中非常重要的一部分。

  3.如何解決軟件開發(fā)的外部問題?

  我們可以找到一些不受阿姆達(dá)爾法律限制的方法。如果每個任務(wù)的速度不是完全獨(dú)立的(例如,優(yōu)化一個任務(wù)可以加快另一個任務(wù)的速度),我們希望通過技術(shù)解決方案來改善這個問題。

我們需要更好的語言和發(fā)展環(huán)境。如果我們可以用更少的人編寫程序(例如,兩個人可以取代整個團(tuán)隊,或者一個團(tuán)隊可以取代一個部門),我們可以減少組織規(guī)模。如果同一個人編寫接口的前后平臺,則無需開會討論。生產(chǎn)率的提高不僅可以降低編寫代碼的成本,還可以改變工作方式,從而降低其他工作的成本。盡管如此,這種方法也有局限性,因為程序員無法將所有業(yè)務(wù)納入他們的腦海。

迭代速度是另一個杠桿。你需要知道如何編寫程序。


主站蜘蛛池模板: av网站在线播放 | 日韩av电影在线观看 | 精品人妻一区二区三区日产乱码 | 天堂在线视频 | 亚洲成人av在线 | 国产又粗又长 | 午夜日韩 | 西西人体www大胆高清 | 香蕉视频91 | 偷拍第一页 | 久久精品 | 麻豆精品久久久久久久99蜜桃 | 国产免费一区二区 | 欧美做受高潮1 | 成人做爰100| 中文字幕在线观看 | 国产久久精品 | 超级碰碰碰 | 西西人体大胆4444ww张筱雨 | 日韩一区二区在线观看 | 欧美a视频 | 久久久久久久久久久久久久久久久久久 | 欧美另类视频 | 苍井空无码 | 91一区| 乖…忍一下我就进一点视频 | 欧美影院 | 亚洲精品国产精品国自产观看 | 99热精品在线 | 拨开岳两片肥嫩的肉视频 | 国产欧美一区二区精品性色超碰 | 手机看片你懂的 | 久久久国产视频 | 天天干天天插 | 免费看片网站91 | 国产传媒在线观看 | 嫩草嫩草嫩草 | 免费观看av | 国精产品一二三区精华液 | 亚洲精品久久久久久 | 丰满少妇xoxoxo视频 | 毛片大全| av入口| 五十路av | 无码一区二区 | 草莓视频在线 | 亚洲激情在线 | 国产三级在线 |