日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

没有完美的软件:编程永远不容易

發(fā)布時(shí)間:2023/12/18 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 没有完美的软件:编程永远不容易 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
摘要:很多人想用十全十美來(lái)修飾一樣?xùn)|西,比如軟件,對(duì)于客戶來(lái)說(shuō),當(dāng)然希望他們的軟件能做到完美。雖然很多專家說(shuō)利用一些規(guī)范可以讓軟件達(dá)到更好!但是在現(xiàn)實(shí)開(kāi)發(fā)中,真的會(huì)有那么完美的軟件嗎?

最近讀了一篇文章 Software Runs the World: How Scared Should We Be That So Much of It Is So Bad? ,這篇文章沒(méi)什么可說(shuō),但是評(píng)論卻很有趣,特別是很多計(jì)算機(jī)科學(xué)的博士表示,使用一些規(guī)范的方法,可以讓軟件變的更好,還有規(guī)范、認(rèn)證、授權(quán)。

對(duì)于這些想法,我只能說(shuō)“祝你好運(yùn)”。我干碼農(nóng)干了30年,我可以很肯定的說(shuō)“沒(méi)有銀彈”,沒(méi)有神奇的方法或者論文可以保證讓軟件變得完美,沒(méi)有bug。

事實(shí)上,我們甚至很難定義一個(gè)程序,就更別提如何開(kāi)發(fā)一個(gè)完美的程序了。軟件在太多領(lǐng)域存在,有太多的編程語(yǔ)言,業(yè)務(wù)需求,還有運(yùn)行環(huán)境,并且要和各種不確定的系統(tǒng)交互。你覺(jué)得你的iPhone游戲,股票交易系統(tǒng),烤面包機(jī)還有火星登陸器有什么共同之處嗎?你覺(jué)得給匯編,C,Java,PHP,Fortran,LIST和Erlang頒發(fā)證書(shū)可行嗎?還有各種混合語(yǔ)言 web應(yīng)用,以及分布式系統(tǒng)。

你需要正式的描述太多的東西,光列出所有的編程語(yǔ)言似乎就不可能,更不用說(shuō)如何用這些語(yǔ)言寫(xiě)出完美的程序了。

我喜歡人們拿程序和社會(huì)工程對(duì)比。建造一座橋的基礎(chǔ)在過(guò)去的兩千年中沒(méi)有改變過(guò):你需要考慮重力,風(fēng)力,下雨以及炎熱還有很多基本的材料。這些東西羅馬的工程師就知道了。但是編程不一樣,我們?yōu)槊總€(gè)程序創(chuàng)造一個(gè)獨(dú)立的世界,或者說(shuō)我們把各種世界元素整合在一個(gè)世界中,然后在這個(gè)世界中建造幾百座不同的橋,它們要同時(shí)良好的工作,還要考慮到我們創(chuàng)造的世界會(huì)不可預(yù)知的改變。

還有,我們?cè)煲蛔鶚蛐枰?jīng)過(guò)幾年的規(guī)劃和建造,然后使用幾十年,上百年而不用進(jìn)行任何修改。而軟件在一直的變化當(dāng)中,不管是在開(kāi)發(fā)的時(shí)候還是開(kāi)發(fā)完以后。美國(guó)在過(guò)去的兩百年間建造了60萬(wàn)座橋。但是過(guò)去五年中我們就創(chuàng)造了一百萬(wàn)個(gè)iPhone的應(yīng)用。應(yīng)用程序可以從幾行到幾千萬(wàn)行代碼,并且在現(xiàn)代生活的每一個(gè)角落存在。

讓編程如此困難的原因是它無(wú)處不在,可以影響一個(gè)人或者10億人,可以運(yùn)行幾十年或者只需要運(yùn)行一次。它跟造橋完全不一樣。最近的火星登陸器是用幾百萬(wàn)行C代碼寫(xiě)的,并且只運(yùn)行一次。而高速股票交易系統(tǒng)一秒鐘就要被執(zhí)行無(wú)數(shù)次。

認(rèn)為世界上存在一套標(biāo)準(zhǔn)的方法可以讓你保證開(kāi)發(fā)的程序是完美的這種想法很可笑。即使這種完美的奇跡存在,它的開(kāi)銷也會(huì)讓它無(wú)法實(shí)際實(shí)施。好吧,你可以證明一段代碼沒(méi)問(wèn)題,但是它運(yùn)行在哪里呢?你能控制操作系統(tǒng)嗎?還是其他公司提供的WebService接口?你不能控制用戶的交互,你也不能控制CPU,那么你如何保證這段完美的代碼可以完美的運(yùn)行?

我寧愿相信你發(fā)明了時(shí)間機(jī)器也不愿意相信你的標(biāo)準(zhǔn)流程可以在這個(gè)混亂的世界行得通。

另外一個(gè)“善意的謊言”是我們可以通過(guò)標(biāo)準(zhǔn)的測(cè)試和認(rèn)證來(lái)證明一個(gè)程序員可以編寫(xiě)完美的代碼。程序員不是管道工,管道工和水,管道,氣體還有閥門(mén)打交道。這些東西幾乎不會(huì)改變。它們遵循物理規(guī)律,是經(jīng)過(guò)認(rèn)可的科學(xué),它們不會(huì)莫名其妙的變成另外一個(gè)東西。

我認(rèn)識(shí)一個(gè)程序員通過(guò)了各種Java認(rèn)證,但是還是沒(méi)有能力編寫(xiě)實(shí)際的應(yīng)用程序。想象一下,要為一個(gè)人進(jìn)行所有語(yǔ)言的認(rèn)證,所有程序的認(rèn)證,從面包機(jī)到宇宙飛船。要么你創(chuàng)造一些非常基礎(chǔ)而無(wú)用的認(rèn)證,或者非常細(xì)節(jié)的認(rèn)證而沒(méi)有人在乎。考慮到所有這些,還有不斷變化的需求,當(dāng)你需要開(kāi)發(fā)一些新東西的時(shí)候你怎么辦?把所有人炒了,然后雇傭新的人?

我在工作中和一位UX設(shè)計(jì)師一起培訓(xùn)一組Java Web程序員開(kāi)發(fā)iOS程序。即使一個(gè)有經(jīng)驗(yàn)的開(kāi)發(fā)者突然做一些不一樣的開(kāi)發(fā)也是很困難的。但是假如我們一定堅(jiān)持要正規(guī)的流程和經(jīng)過(guò)認(rèn)證的iOS程序員才能在市場(chǎng)上競(jìng)爭(zhēng),那么我們可能已經(jīng)關(guān)門(mén)了。

我們?nèi)齻€(gè)人花了兩個(gè)月時(shí)間開(kāi)發(fā)了一個(gè)新的iPhone應(yīng)用。我們只有不斷快速的迭代開(kāi)發(fā)才能在不斷變化的需求和競(jìng)爭(zhēng)中勝出。期望一個(gè)正規(guī)的流程在發(fā)布前驗(yàn)證所有的代碼是噩夢(mèng)。在產(chǎn)品發(fā)布幾年后公司可能都不存在了,誰(shuí)有在乎這個(gè)程序是否被認(rèn)證過(guò)呢?

現(xiàn)實(shí)是殘酷的。30多年的編程經(jīng)驗(yàn),可以讓我非常自信的說(shuō)我寫(xiě)的代碼還不錯(cuò)。在1987-1994年間,我領(lǐng)導(dǎo)開(kāi)發(fā)并且要最終敲定發(fā)布的二進(jìn)制碼。我們通過(guò)軟盤(pán)的形式發(fā)布了三個(gè)Mac應(yīng)用,11個(gè)主要版本,沒(méi)有一次大的事故(要知道每次發(fā)布的硬件成本就是100萬(wàn)美元)。我們發(fā)布的代碼很完美嗎?我們是經(jīng)過(guò)認(rèn)證的Mac OS開(kāi)發(fā)者/設(shè)計(jì)師嗎?不是!但這些應(yīng)用解決用戶的問(wèn)題了嗎?是的。

我說(shuō)的這些能證明任何東西嗎?不能。但是好的代碼確實(shí)存在,并且常常出自沒(méi)有證書(shū),沒(méi)有學(xué)歷,沒(méi)有被證明過(guò)的程序員之手。

也許有一天機(jī)器人可以代替人來(lái)開(kāi)發(fā)軟件,并且保證不出錯(cuò)。人類就可以幸福的生活在完美的軟件創(chuàng)造的世界中了。

但是我更相信時(shí)間機(jī)器會(huì)先出現(xiàn)。并且軟件是由人類編寫(xiě)的。

英文出自: Software Runs the World: How Scared Should We Be That So Much of It Is So Bad?

譯文來(lái)自:oschina


創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的没有完美的软件:编程永远不容易的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。