程式碼是寫給人看的,不是寫個機器看的

王滔發表於2014-11-18

《計算機程式的構造和解釋》(簡稱為SICP)

這本書提到,程式碼是寫給人看的,不是寫給機器看的,只是順便計算機可以執行而已。如果程式碼是寫給機器看的,那完全可以使用匯編語言或者機器語言(二進位制),直接讓機器執行。

 

我覺得

高階語言(java,php等都算),之所以被稱為是高階語言,是相對彙編和機器指令而言的,他們更加可閱讀性,更加符合人類語言的閱讀習慣。

低階語言讓人看起來非常吃力,不容易編寫,所以產生高階語言,容易上手點。

作者強調的是,程式碼是寫給人看的,所以要做到良好的程式設計風格,方便其他程式設計師閱讀,維護。

所以這點我非常感悟,這確實是一個有力的證據。程式碼的可讀性非常重要:註釋,空白對其,工整都是風格的提現。保持這些程式設計風格最終目的只有一個:方便人類閱讀。

誠然,就算你不按照好的風格來編寫,編譯器也能識別,通過編譯。但基於可閱讀性、方便維護考慮。程式設計師還是要有良好的編碼風格。

 

就拿我們漢字的語言,一個段落要空格,寫信的時候開篇有開篇的寫法,其實我覺得都是為了可讀性、優雅性。其實多個段落完全可以混合在一起,那樣子很難閱讀。讓其他閱讀人員理清楚思路就比較難。

 

其實語言中的逗號、頓號等標點符號也是為了方便人的閱讀,斷句,如果沒有這些標點符號,閱讀起來很吃力的。

 

基於一個方便其他程式設計師容易閱讀的考慮,我覺得很多程式設計師喜歡以下的方式都方便其他程式設計師閱讀

1、一個檔案中定義多個類,放到一塊。看起來吃力

2、程式碼之間沒有縮排

3、多行程式碼實現可讀性更強,偏偏要寫在一行中。讀起來費力,比如

 

$config = empty($_config['userinfo']['memory']['memcache']['addServer'])?$_G['config']['userinfo']['memory']['memcache']['addServer']:$_config['userinfo']['memory']['memcache']['addServer'];

 

為了方便人的閱讀,寫這麼長。

相關文章