在外行人眼里程序員是一個(gè)怎樣的群體?
又到了一年一度回家過(guò)年的時(shí)候,不可避免的,又要和父母以及后續(xù)抵達(dá)的三姑六婆解釋這一年的職業(yè)歷程,忍不住想要賦詩(shī)一首:
每年回家像高考
親戚問(wèn)題真不少
耐住性子好好答
否則春節(jié)過(guò)不好
那些年,關(guān)于工作,作為程序員的你都遭遇過(guò)哪些來(lái)自親朋好友的盤(pán)問(wèn)或者是誤解?
外行人眼里程序員是一個(gè)怎樣的群體?
“來(lái)給叔叔阿姨表演一段敲代碼”
“來(lái)幫我修個(gè)電腦吧”
“月薪五萬(wàn)過(guò)得像月薪五千?”
“產(chǎn)品經(jīng)理出車(chē)禍了是你干的吧”
“小心被戴綠帽子啊”
“同一款式的格子襯衫你有 10 件吧”
“再出 Bug 就拿你來(lái)祭天”
“女程序員都是女漢子”
“還沒(méi)有脫發(fā)是不是工作不飽和”
社會(huì)對(duì)咱們程序員的誤解實(shí)在太多了......這里就不一一列舉了!做為一名程序員,沒(méi)有誰(shuí)能比自己更了解程序員的生活了,每個(gè)程序員都有自己的理想,可是除了那臺(tái)破電腦還有什么陪伴呢?
今天小編用動(dòng)圖的方式帶大家了解程序員這個(gè)逗逼、可愛(ài)的群體。
程序員幽默:讓你笑到肚子痛
程序員的生存狀態(tài)
雙核CPU的真相
當(dāng)年學(xué) C 語(yǔ)言的過(guò)程
測(cè)試環(huán)境一切 ok,馬上上線
調(diào)試 Bug
正在調(diào)試,突然內(nèi)存溢出了
臥槽,你動(dòng)我代碼,知道后果有多嚴(yán)重嗎
需求文檔又改了
資深程序員解釋如何用他的庫(kù)
單身互聯(lián)網(wǎng)狗的一天
過(guò)年回家,總少不了家人的盤(pán)問(wèn),身為程序員你是如何跟外行解釋編程的呢?
程序員這樣跟外行解釋編程
這篇回答并不是講述在生活中程序員如何買(mǎi)蘋(píng)果,而是以買(mǎi)蘋(píng)果為例說(shuō)明程序員如何解決問(wèn)題。
程序員需要對(duì)問(wèn)題進(jìn)行透徹的分析,理清其涉及的所有細(xì)節(jié),預(yù)測(cè)可能發(fā)生的所有意外與非意外的情況,列出解決方案的所有步驟,以及對(duì)解決方案進(jìn)行盡量全面的測(cè)試。
而這些正是我認(rèn)為編程難的地方,任何一點(diǎn)遺漏都會(huì)成為 Bug,輕則導(dǎo)致挨罵,重則導(dǎo)致經(jīng)濟(jì)損失甚至危害安全。
普通人:我今天要買(mǎi)一斤蘋(píng)果。
程序員:我今天要買(mǎi)一斤蘋(píng)果。
- 因?yàn)槲抑幌矚g紅富士蘋(píng)果,所以我只買(mǎi)紅富士蘋(píng)果。
- 我能接受的***價(jià)格是 10 元/斤。
- 正常情況下一斤蘋(píng)果用一個(gè)袋子能裝下,但是為防萬(wàn)一,我會(huì)帶兩個(gè)袋子。
- 我知道附近的3家水果店,所以我會(huì)依次訪問(wèn)這 3 家水果店。
根據(jù)上述條件,我設(shè)計(jì)出以下的買(mǎi)蘋(píng)果的流程:
(以下區(qū)域,可以左右拖動(dòng)查看完整內(nèi)容)
- 買(mǎi)蘋(píng)果流程開(kāi)始
- 對(duì)水果店0、水果店1、水果店2依次執(zhí)行:
- 拜訪一家水果店流程開(kāi)始
- 走到此水果店
- 如果此水果店沒(méi)有開(kāi)門(mén),則結(jié)束當(dāng)前的“拜訪一家水果店流程”
- 如果此水果店沒(méi)有蘋(píng)果,則結(jié)束當(dāng)前的“拜訪一家水果店流程”
- 如果此水果店的蘋(píng)果當(dāng)中沒(méi)有紅富士蘋(píng)果,則結(jié)束當(dāng)前的“拜訪一家水果店流程”
- 如果此水果店的紅富士蘋(píng)果剩余不到一斤,則結(jié)束當(dāng)前的“拜訪一家水果店流程”
- 如果此水果店的紅富士蘋(píng)果的價(jià)格高于10元/斤,則執(zhí)行3次:
- 講價(jià)流程開(kāi)始
- 詢(xún)問(wèn)店主是否愿意將價(jià)格降到10元/斤或更低
- 如果店主愿意,則跳過(guò)剩余的“講價(jià)流程”
- 講價(jià)流程結(jié)束
- 如果此水果店的紅富士蘋(píng)果的價(jià)格仍然高于10元/斤,則結(jié)束當(dāng)前的“拜訪一家水果店流程”
- 打開(kāi)一個(gè)袋子,將其作為當(dāng)前的袋子
- 重復(fù)執(zhí)行以下流程,直到總重量大于一斤:
- 裝袋一個(gè)蘋(píng)果流程開(kāi)始
- 從所有的不在袋子中的紅富士蘋(píng)果中選出***的一個(gè)
- 如果此蘋(píng)果能裝入當(dāng)前的袋子,則將此蘋(píng)果裝入當(dāng)前的袋子,否則執(zhí)行:
- 換袋子流程開(kāi)始
- 如果我有剩余的袋子,則從中任意選出一個(gè)并作為當(dāng)前的袋子,否則執(zhí)行:
- 向店主要袋子流程開(kāi)始
- 向店主索要一個(gè)袋子
- 如果店主拒絕給我袋子,則將我的所有袋子里的所有蘋(píng)果取出,然后結(jié)束當(dāng)前的“拜訪一家水果店流程”
- 將店主給我的袋子作為當(dāng)前的袋子
- 向店主要袋子流程結(jié)束
- 換袋子流程結(jié)束
- 測(cè)量我的所有袋子里的所有蘋(píng)果的總重量
- 裝袋一個(gè)蘋(píng)果流程結(jié)束
- 根據(jù)我的所有袋子里的所有蘋(píng)果的總重量和店主給出的價(jià)格,計(jì)算我應(yīng)付的價(jià)格
- 向店主詢(xún)問(wèn)我應(yīng)付的價(jià)格
- 如果我不接受店主索要的價(jià)格,則執(zhí)行3次:
- 校對(duì)流程開(kāi)始
- 向店主解釋我計(jì)算出的價(jià)格,并詢(xún)問(wèn)其是否同意
- 如果店主同意,則跳過(guò)剩余的“校對(duì)流程”
- 校對(duì)流程結(jié)束
- 如果我仍然不接受店主索要的價(jià)格,則將我的所有袋子里的所有蘋(píng)果取出,然后結(jié)束當(dāng)前的“拜訪一家水果店流程”
- 如果我沒(méi)帶錢(qián),則將我的所有袋子里的所有蘋(píng)果取出,然后結(jié)束當(dāng)前的“拜訪一家水果店流程”
- 付錢(qián)拿走蘋(píng)果
- 跳過(guò)剩余的“拜訪一家水果店流程”
- 拜訪一家水果店流程結(jié)束
- 買(mǎi)蘋(píng)果流程結(jié)束
這個(gè)流程怎么樣?我來(lái)設(shè)計(jì)一些測(cè)試樣例,測(cè)試一下這個(gè)流程。
測(cè)試發(fā)現(xiàn)一個(gè)問(wèn)題:如果水果店 0 和水果店 1 都有紅富士蘋(píng)果并且價(jià)格都低于 10 元/斤,而且水果店 1 的價(jià)格比水果店 0 更低,那么我希望買(mǎi)水果店 1 的蘋(píng)果,但我設(shè)計(jì)的流程會(huì)讓我買(mǎi)水果店 0 的蘋(píng)果。
為了解決這個(gè)問(wèn)題,我應(yīng)該先詢(xún)問(wèn)所有水果店的價(jià)格,然后去價(jià)格***的那一家買(mǎi)蘋(píng)果。
經(jīng)過(guò)修改,我重新設(shè)計(jì)出以下的買(mǎi)蘋(píng)果的流程:
(以下區(qū)域,可以左右拖動(dòng))
- 買(mǎi)蘋(píng)果流程開(kāi)始
- 對(duì)水果店0、水果店1、水果店2依次執(zhí)行:
- 詢(xún)問(wèn)一家水果店的紅富士?jī)r(jià)格流程開(kāi)始
- 走到此水果店
- 如果此水果店沒(méi)有開(kāi)門(mén),則視此水果店的紅富士?jī)r(jià)格為無(wú)窮大元/斤,并結(jié)束當(dāng)前的“詢(xún)問(wèn)一家水果店的紅富士?jī)r(jià)格流程”
- 如果此水果店沒(méi)有蘋(píng)果,則視此水果店的紅富士?jī)r(jià)格為無(wú)窮大元/斤,并結(jié)束當(dāng)前的“詢(xún)問(wèn)一家水果店的紅富士?jī)r(jià)格流程”
- 如果此水果店的蘋(píng)果當(dāng)中沒(méi)有紅富士蘋(píng)果,則視此水果店的紅富士?jī)r(jià)格為無(wú)窮大元/斤,并結(jié)束當(dāng)前的“詢(xún)問(wèn)一家水果店的紅富士?jī)r(jià)格流程”
- 如果此水果店的紅富士蘋(píng)果剩余不到一斤,則視此水果店的紅富士?jī)r(jià)格為無(wú)窮大元/斤,并結(jié)束當(dāng)前的“詢(xún)問(wèn)一家水果店的紅富士?jī)r(jià)格流程”
- 向店主詢(xún)問(wèn)此水果店的紅富士蘋(píng)果價(jià)格并記錄
- 詢(xún)問(wèn)一家水果店的紅富士?jī)r(jià)格流程結(jié)束
- 從3家水果店中選出紅富士?jī)r(jià)格***的一家(如果有并列則隨機(jī)選擇),將其作為目標(biāo)水果店
- 如果目標(biāo)水果店的紅富士蘋(píng)果價(jià)格為無(wú)窮大元/斤,則結(jié)束當(dāng)前的“買(mǎi)蘋(píng)果流程”
- 走到目標(biāo)水果店
- 如果此水果店的紅富士蘋(píng)果的價(jià)格高于10元/斤,則執(zhí)行3次:
- 講價(jià)流程開(kāi)始
- 詢(xún)問(wèn)店主是否愿意將價(jià)格降到10元/斤或更低
- 如果店主愿意,則跳過(guò)剩余的“講價(jià)流程”
- 講價(jià)流程結(jié)束
- 如果此水果店的紅富士蘋(píng)果的價(jià)格仍然高于10元/斤,則結(jié)束當(dāng)前的“買(mǎi)蘋(píng)果流程”
- 打開(kāi)一個(gè)袋子,將其作為當(dāng)前的袋子
- 重復(fù)執(zhí)行以下流程,直到總重量大于一斤:
- 裝袋一個(gè)蘋(píng)果流程開(kāi)始
- 從所有的不在袋子中的紅富士蘋(píng)果中選出***的一個(gè)
- 如果此蘋(píng)果能裝入當(dāng)前的袋子,則將此蘋(píng)果裝入當(dāng)前的袋子,否則執(zhí)行:
- 換袋子流程開(kāi)始
- 如果我有剩余的袋子,則從中任意選出一個(gè)并作為當(dāng)前的袋子,否則執(zhí)行:
- 向店主要袋子流程開(kāi)始
- 向店主索要一個(gè)袋子
- 如果店主拒絕給我袋子,則將我的所有袋子里的所有蘋(píng)果取出,然后結(jié)束當(dāng)前的“買(mǎi)蘋(píng)果流程”
- 將店主給我的袋子作為當(dāng)前的袋子
- 向店主要袋子流程結(jié)束
- 換袋子流程結(jié)束
- 測(cè)量我的所有袋子里的所有蘋(píng)果的總重量
- 裝袋一個(gè)蘋(píng)果流程結(jié)束
- 根據(jù)我的所有袋子里的所有蘋(píng)果的總重量和店主給出的價(jià)格,計(jì)算我應(yīng)付的價(jià)格
- 向店主詢(xún)問(wèn)我應(yīng)付的價(jià)格
- 如果我不接受店主索要的價(jià)格,則執(zhí)行3次:
- 校對(duì)流程開(kāi)始
- 向店主解釋我計(jì)算出的價(jià)格,并詢(xún)問(wèn)其是否同意
- 如果店主同意,則跳過(guò)剩余的“校對(duì)流程”
- 校對(duì)流程結(jié)束
- 如果我仍然不接受店主索要的價(jià)格,則將我的所有袋子里的所有蘋(píng)果取出,然后結(jié)束當(dāng)前的“買(mǎi)蘋(píng)果流程”
- 如果我沒(méi)帶錢(qián),則將我的所有袋子里的所有蘋(píng)果取出,然后結(jié)束當(dāng)前的“買(mǎi)蘋(píng)果流程”
- 付錢(qián)拿走蘋(píng)果
- 買(mǎi)蘋(píng)果流程結(jié)束
現(xiàn)在這個(gè)流程是不是***了呢?不是,我還能發(fā)現(xiàn)很多問(wèn)題。
如果 3 家水果店都有紅富士蘋(píng)果但都不到一斤,但是三家店加起來(lái)能達(dá)到一斤,那么我不應(yīng)該結(jié)束流程回家,而是應(yīng)該把三家店的紅富士蘋(píng)果都買(mǎi)下來(lái)。
如果我向水果店詢(xún)問(wèn)價(jià)格的時(shí)候這家店還有紅富士蘋(píng)果,但我詢(xún)問(wèn)完所有水果店的價(jià)格后這家店的紅富士蘋(píng)果賣(mài)完了,那么我的流程會(huì)讓我試圖處理不存在的紅富士蘋(píng)果。
我走路的過(guò)程中可能會(huì)遇到突發(fā)事件,比如發(fā)現(xiàn)了新的水果店,比如袋子破掉了蘋(píng)果掉一地,對(duì)于這些情況我的流程都無(wú)法進(jìn)行處理。
啊......問(wèn)題太多了我懶得再改流程了,我還是去 X 寶買(mǎi)吧。那么接下來(lái)我要設(shè)計(jì)一個(gè)在 X 寶買(mǎi)紅富士蘋(píng)果的流程……
***送給大家一份關(guān)于程序員的搞笑但卻真實(shí)無(wú)比的編程語(yǔ)錄。
59 條程序員搞笑編程語(yǔ)錄
我收集了很多編程語(yǔ)錄,基本上都跟程序員的生活有關(guān)。這些語(yǔ)錄涉及軟件開(kāi)發(fā),代碼維護(hù),調(diào)試糾錯(cuò),軟件 Bug,系統(tǒng)設(shè)計(jì)、文檔,代碼質(zhì)量,測(cè)試和軟件開(kāi)發(fā)團(tuán)隊(duì)管理等方面。
下面的這 59 條語(yǔ)錄雖然很搞笑,但卻真實(shí)無(wú)比,只有程序員才能理解這些編程語(yǔ)句里的真正內(nèi)涵。閑言少敘,開(kāi)始吧…
17 條程序員編程語(yǔ)錄
- 一個(gè)好的程序員是那種過(guò)單行線馬路都要往兩邊看的人。(Doug Linder)
- 程序有問(wèn)題時(shí)不要擔(dān)心。如果所有東西都沒(méi)問(wèn)題,你就失業(yè)了。(軟件工程的Mosher定律)
- 程序員的麻煩在于,你無(wú)法弄清他在搗騰什么,當(dāng)你最終弄明白時(shí),也許已經(jīng)晚了。(超級(jí)計(jì)算機(jī)之父Seymour Cray)
- 我想大部分人都知道通常一個(gè)程序員會(huì)具有的美德。當(dāng)然了,有三種:懶惰,暴躁,傲慢。(Perl語(yǔ)言***Larry Wall)
- 編程時(shí)要保持這種心態(tài):就好象將來(lái)要維護(hù)你這些代碼的人是一位殘暴的精神病患者,而且他知道你住在哪。(Martin Golding)
- 一個(gè)人寫(xiě)的爛軟件將會(huì)給另一個(gè)人帶來(lái)一份全職工作。(Jessica Gaston)
- 如果建筑工人像程序員寫(xiě)軟件那樣蓋房子,那***只飛來(lái)的啄木鳥(niǎo)就能毀掉人類(lèi)文明。(Gerald Weinberg)
- 這世界最有可能毀滅的方式——大多數(shù)專(zhuān)家都同意——是次意外。這就是為什么會(huì)有我們,我們是計(jì)算機(jī)專(zhuān)家,我們創(chuàng)造意外。(Nathaniel Borenstein)
- 我們這個(gè)行業(yè)有個(gè)特別奇怪的現(xiàn)象:不僅我們不從失敗里吸取教訓(xùn),同時(shí)也不從成功中學(xué)習(xí)經(jīng)驗(yàn)。 (Keith Braithwaite)
- 一種新技術(shù)一旦開(kāi)始流行,你要么坐上壓路機(jī),要么成為鋪路石。(Stewart Brand)
- 如果沒(méi)能一次成功,那就叫它 1.0 版吧。(unknown)
- 所有的程序員都是編劇,所有的計(jì)算機(jī)都是爛演員。(Anonymous Hack Actor)
- 工作進(jìn)度上越早落后,你就會(huì)有越充足的時(shí)間趕上。(Anonymous Scheduler)
- 當(dāng)有這樣的一種編程語(yǔ)言出現(xiàn):它能讓程序員用簡(jiǎn)單的英語(yǔ)編程,你將會(huì)發(fā)現(xiàn),程序員都開(kāi)始不會(huì)說(shuō)英語(yǔ)。(Anonymous Linguist)
- 為什么我們沒(méi)有時(shí)間把事情做對(duì),卻總有時(shí)間把事情做過(guò)頭?(Anonymous)
- 傻瓜都能寫(xiě)出計(jì)算機(jī)能理解的程序。優(yōu)秀的程序員寫(xiě)出的是人類(lèi)能讀懂的代碼。
- 任何你寫(xiě)的代碼,超過(guò) 6 個(gè)月不去看它,當(dāng)你再看時(shí),都像是別人寫(xiě)的。(Eagleson’s law)
25 條編程/軟件開(kāi)發(fā)語(yǔ)錄
- 按代碼行數(shù)來(lái)評(píng)估軟件開(kāi)發(fā)的進(jìn)度,就如同按重量來(lái)評(píng)估飛機(jī)建造的進(jìn)度。(比爾-蓋茨)
- 軟件就像做愛(ài)。一次犯錯(cuò),你需要用余下一生來(lái)維護(hù)支持。(Michael Sinz)
- 在水上行走和按需求文檔開(kāi)發(fā)軟件都很容易——前提是它們都是凍結(jié)狀態(tài)。(Edward V Berard)
- 最初 90% 的代碼用去了最初 90% 的開(kāi)發(fā)時(shí)間…余下 10% 的代碼用去了另外 90% 的開(kāi)發(fā)時(shí)間。(Tom Cargill)
- 注釋代碼很像清潔你的廁所——你不想干,但如果你做了,這絕對(duì)會(huì)給你和你的客人帶來(lái)更愉悅的體驗(yàn)。(Ryan Campbell)
- 如今的編程是一場(chǎng)程序員和上帝的競(jìng)賽,程序員要開(kāi)發(fā)出更大更好、傻瓜都會(huì)用到軟件。而上帝在努力創(chuàng)造出更大更傻的傻瓜。目前為止,上帝是贏的。(Rick Cook)
- 軟件設(shè)計(jì)最困難的部分…是阻擋新功能的引入。(Donald Norman)
- 為了理解遞歸,我們首先要理解的是遞歸。(Anonymous)
- 世上只有兩類(lèi)編程語(yǔ)言:那些擁有被人詬病的和那些沒(méi)人用的。(Bjarne Stroustrup)
- The best thing about a boolean is even if you are wrong, you are only off by a bit. (Anonymous)
- 如果Java能實(shí)現(xiàn)真的垃圾回收,那大部分的程序都會(huì)在執(zhí)行時(shí)刪除自己。(Robert Swell)
- 理論上,理論和實(shí)踐是沒(méi)有差異的。但實(shí)踐中,是有的。(Jan L. A. van de Snepscheut)
- 預(yù)備,開(kāi)火,瞄準(zhǔn):這是最快的軟件開(kāi)發(fā)方法。預(yù)備,瞄準(zhǔn),瞄準(zhǔn),瞄準(zhǔn),瞄準(zhǔn):這是最慢的軟件開(kāi)發(fā)方法。(Anonymous)
- 編程是 10% 的科學(xué),20% 天份和 70% 的讓這天份符合科學(xué)。(Anonymous)
- 評(píng)估一個(gè)事情要比去理解你評(píng)估了什么容易。(Anonymous)
- 測(cè)評(píng)不會(huì)撒謊,但測(cè)評(píng)的人會(huì)。(Anonymous)
- 培養(yǎng)員工,即使他們有跳槽的風(fēng)險(xiǎn)。什么都不做而留他們?cè)诠荆@樣風(fēng)險(xiǎn)更大。(Anonymous)
- 計(jì)算機(jī)科學(xué)的目標(biāo)是做出一個(gè)東西,并且保證它至少能堅(jiān)持到我們將它開(kāi)發(fā)完成。(Anonymous)
- Java 之于 JavaScript 如同 Car 之于 Carpet。 (Chris Heilmann)
- 起初就把事情做對(duì)是完全沒(méi)必要的。但***要把事情做對(duì)是絕對(duì)必要的。(Andrew Hunt and David Thomas)
- 數(shù)組的起始索引應(yīng)該從 0 開(kāi)始還是從 1 開(kāi)始?我的 0.5 的折中提議被他們未經(jīng)認(rèn)真考慮就拒絕了——我認(rèn)為是這樣的。(Stan Kelly-Bootle)
- 程序必須是為了給人看而寫(xiě),給機(jī)器去執(zhí)行只是附帶任務(wù)。(Abelson / Sussman)
- 編程可以很有趣,你可以用它做密碼學(xué)研究,但兩者絕對(duì)不能合二為一。(Kreitzberg and Shneiderman)
- 拷貝-粘貼是一種設(shè)計(jì)錯(cuò)誤。(David Parnas)
- 計(jì)算機(jī)善于遵循指令,但不善于理解你的思維。(Donald Knuth)
4 條軟件糾錯(cuò)語(yǔ)錄
- 刪除的代碼是沒(méi)有 Bug 的代碼。(Jeff Sickel)
- 如果糾錯(cuò)是消除軟件 Bug 的過(guò)程,那編程一定是把它們放進(jìn)去的過(guò)程。(Edsger Dijkstra)
- 代碼糾錯(cuò)要比新編寫(xiě)代碼困難一倍。因?yàn)椋绻銓?xiě)出了最聰明的代碼,按此推算,你將沒(méi)有更大的智慧來(lái) debug 它。
- 想在自己的代碼里找出一個(gè)錯(cuò)誤是十分困難的。而當(dāng)你認(rèn)為你的代碼沒(méi)有錯(cuò)誤時(shí),那就更難了。(Steve McConnel)
5 條軟件 Bug 語(yǔ)錄
- 這不是個(gè) Bug——這是一個(gè)未注明的功能特征。(Anonymous)
- 沒(méi)有需求或設(shè)計(jì),編程就是一種將bug添加到一個(gè)空文本文件里的藝術(shù)。(Louis Srygley)
- 爛代碼并不爛,只是被誤解了。(Anonymous Code Behaviorist)
- 有兩種方法能寫(xiě)出沒(méi)有錯(cuò)誤的程序;但只有第三種好用。(Alan J. Perlis)
- 小心上面代碼中的 Bug;我只知道這些代碼是正確的,但沒(méi)有試過(guò)。(Donald Knuth)
8 條軟件產(chǎn)品/成品語(yǔ)錄
- 軟件能夠復(fù)用前,它必須要可用。(Ralph Johnson)
- 軟件通常在 beta 測(cè)試完成不久后發(fā)布。Beta 在拉丁語(yǔ)中是“還不能用”的意思。(Anonymous)
- ***的性能改進(jìn)是將軟件從不能用的狀態(tài)變成可用。(J. Osterhout)
- 最廉價(jià)、最快速、最可信賴(lài)的組件是那些還未出現(xiàn)的組件。(Gordon Bell)
- I think Microsoft named .Net so it wouldn’t show up in a Unix directory listing. (Oktal)
- 軟件和教堂非常相似——建成之后我們就在祈禱。(Sam Redwine)
- 除非***一個(gè)用戶死掉,軟件是不會(huì)有完工的時(shí)候的。(Anonymous)
- 如今的大部分軟件都非常像埃及金字塔,由成千上萬(wàn)的石塊一個(gè)摞一個(gè)構(gòu)成,沒(méi)有結(jié)構(gòu)上的集成,是由暴力強(qiáng)制和成千上萬(wàn)的奴隸完成。(Alan Kay)