首页 程式設計之道 (THE TAO OF PROGRAMMING - Geoffrey James)
文章
取消

程式設計之道 (THE TAO OF PROGRAMMING - Geoffrey James)

[第一部 寂靜虛無篇

大師如是說:"學會從程式抓蟲子之後, 就可以畢業了
1.1 節
.寂靜虛無中有奧秘, 不動不靜, 乃程式之源, 吾無以名之, 故稱之為程式設計之道.
.若道至大, 則作業系統至大; 若作業系統至大, 編譯程式亦然; 若編譯程式至大,
則應用程式亦復如是, 是故使用人大悅, 世有和諧存焉.
1.2 節
.程式設計之道無遠弗屆, 雖晨曦微風而返.
.道生機器語言, 機器語言生組譯程式.
.組譯程式生編譯程式, 於是萬餘語言存焉.
.各語言有其目的, 均表達軟體之陰陽; 其在道中亦各得其所.
.但若能避免, 就不要用COBOL 寫程式.
1.3 節
.太初有道, 道生時空, 故時空乃程式設計之陰陽.
.程式員不悟道則時空永不敷使用, 悟道者恒有充份時空完成目標.
1.4 節
.上智程式員聞道而行之, 中智程式員聞道而求之, 下智程式員聞道而笑之.
.若無笑聲則無道矣.
.至高之聲難以聽聞.
.前進就是後退之路; 大智總是晚成; 每一個完美的程式仍有BUG.
.道在所有知識之外.

第二部 古之大師篇

大師如是說:"三日不寫程式則生命無趣.
2.1 節
.古程式員神秘而深奧, 無以度量其思維, 僅能描述其表象.
.像狐狸涉水般地小心; 像戰場老兵般地警覺; 像未經琢磨的木頭般地璞拙;
像洞中深潭地不透明.
.誰能指出他們心靈中的秘密?
.答案全在道中.
2.2 節
.大師Turing曾經夢到他是一部電腦, 醒後道:
. "不知是我Turing作夢變成機器, 還是一部機器作夢變成我我Turing."
.一家大電腦公司的程式員參加軟體會議後, 向他的經理報告說:"你知道其他電腦公司有什麼程式員嗎? 他們不修邊幅, 頭髮長而邋遢, 衣服既舊且皺, 他們破壞了氣氛, 而且我簡報時老是製造噪音."
.經理說:"我根本就不應該派你參加會議, 這些程式員超然物外, 他們把生命看成無稽,意外的結合. 他們往來而無藩籬, 為他們的程式而活, 為什們他們一定要受社會積習的約束?
.他們生活在道中."
2.3 節
.生手問大師:"有一個程式員從不設計, 測試程式, 寫作文獻, 但了解他的人都認為他是世間最好的程式員. 為什麼?"
.大師曰:"這個程式員已充份悟道, 他超越了設計的需要; 系統垮了不會生氣,而無條件接受這個世界. 他超越了文獻的需要, 他不再計較是否有人看他的程式.他也超越了測試的需要, 他的每一個程式都圓滿無缺, 清澈, 優雅, 目的自明.
.是的, 他已悟道, 登堂入室.

第三部 設計篇

大師說:"到測試程式時再回頭修改設計就太遲了."
3.1 節
.曾經有人在參觀電腦展每天進門時都向警衛說:"我是的妙賊, 偷東西的技巧已臻化境,先告訴你, 我絕不會放過這次展覽."
.這段話刺激到警衛, 因為展覽場有好幾百萬元價值的儀器, 所以老是盯這他,不過卻只看到這個人一個攤位接著一個攤位看, 哼著小曲而已.
.這個人出門的時侯, 警衛把他帶到一旁搜身, 但卻找不到什麼.
.第二天這個人又來了, 而且教訓警衛說:"昨天我收獲不錯, 不過今天會更佳."
所以警衛就更加注意他了, 但是仍然沒有結果.
.最後一天警衛終於忍不住好奇心, 問那個人:"賊大師, 我給您弄得寢食難安,您是否以教我, 究竟偷了些什麼?"
.這個人笑笑, 說:"我偷的是概念."
3.2 節
.從前有一位大師專寫沒有結構化的程式, 一個生手模仿他, 也開始寫沒有結構化的程式. 當這位生手要求大師評量進展時, 大師卻批評他寫作沒有結構化的程式.
.大師說:"對大師適用的不一定適合生手, 在能超越結構化之前, 必須先悟道."
3.3 節
.某長官問程式員:"設計會計系統與作業系統, 那一個比較簡單?"
.程式員說:"作業系統."
.長官發出不相信的驚呼:"很顯然的, 會計系統不如作業系統複雜",他說.
." 不!" 程式員回答,"在設計會計系統時, 程式員是各種不同主意的人之間的橋樑,這些主意不外乎: 系統要如何作業? 報表型式如何? 要如何迎合稅法?... 等等.反過來, 作業系統卻不受外界表象的限制; 在設計作業系統時, 程式員尋求人與機器間最純的和諧, 這就是為什麼作業系統容易設計."
.長官點頭微笑稱是:"但是那一個容易偵錯?"
.程式員沒有回答.
3.4 節
.經理去見大師, 並且告訴他一套新應用程式文件的需求規格, 問道:"如果我給你五個程式員, 要多久才能設計好這個系統?"
.大師很快回答:"一年."
." 但是我們需要馬上用這個系統! 如果我給你十個程式員, 那要多久?"經理說.
.大師皺眉說:"這要兩年."
." 如果我給你一百個程式員呢?"
.大師聳聳肩:"這個系統根本作不出來了."

第四部 寫作篇

大師如是說:"寫作良好的程式本身自成天堂, 寫得差的程式本身就是地獄.
4.1 節
.程式要輕靈, 副程式像一串珍珠. 程式的精神與意圖應始終如一, 不多不少;沒有多餘的迴圈, 也沒有額外的變數, 既不缺少結構, 也不過份笨重.
.程式應該追隨" 最低驚訝定律",這是什麼?
.簡單得很, 使用人對程式的反應是驚訝的機會要愈低愈好.
.程式不管再複雜, 應該以一個整體來作用; 他應該用內部邏輯, 而不是外在的表象來指導作業.
.如果程式不滿足這些要求, 就會雜亂而易生混淆, 唯一的補救就是重新寫過.
4.2 節
.生手問大師:"我有一個程式, 有時侯作得很好, 有時侯卻不行; 我一直遵行程式設計的規律, 但是卻把我弄得很困擾, 其理安在?"
.大師答曰:"因為不悟道才會如此, 只有笨蛋才會期望他的同儕有合理的行為,
而你卻對人類生產的機器有所期望?!計算機只模擬了決定論, 只有道才十全十美.
.程式設計的準則還是暫時性的, 只有道才會進入永恒. 所以, 你在開竅前要先思索道."
." 但我要如何才能知道已經開竅了呢?"生手問.
.大師回答:"從此以後, 你的程式都能正確執行."
4.3 節
.大師對弟子說:"不論軟體之為大為小, 道在所有軟體中."
." 桌上型計算機有道嗎?"弟子問.
." 有!"大師答.
." 電動玩具程式中有道嗎?"弟子續問.
." 也有!"大師說.
." 那個人電腦的DOS 中有道嗎?"
.大師咳一下, 輕輕挪動了位置,"下課",他說.
4.4 節
.皇太子的程式員正在寫作軟體, 指尖在鍵盤上飛舞, 程式順暢無誤的編譯完成,執]]
>

本文由作者按照 CC BY 4.0 进行授权