2008/09/08

Code是寫給誰看的?-1/4專業的Programmer

這篇文章是要回應網友MaoYang的文章《讓程式碼像閱讀故事一樣容易》。

我之所以會對MaoYang的這篇文章有興趣,是因為身為一個SQA,我的職責之一就是要去參加Review活動,目的是透過Review活動確認某個標的符合我們對品質的要求。當然,Review的標的自然也包含了Code。

在這篇文章內,我除了贊同MaoYang的觀點外,還試著提出我觀察到的一些原因。

MaoYang說

我昨天在Review一位公司新來的Programmer所下的註解, Well, 套一句以前一位美國同事Erik的話, 他寫出來的code像是spaghetti一樣, 我將他的程式重新寫一遍, 然後讓他比對我的程式和他的程式不一樣的地方, 讓他了解寫出來的code不僅要自己看得懂,別人也要可以看的懂-->這是一件很重要的事, 他告訴我學校的教授沒有教這些知識, 原來教授自己也不怎麼寫程式, ...

專業的Programmer


我參加過很多場Code Review、看過許多的Programmer帶領其他人Go Through自己的Code。我發現越專業的Programmer,寫出來的Code通常也越專業。

我所謂的專業有一個很重要的指標,就是別人很容易看得懂他們的Code,當然前題是程式得能正常的Build、沒有語法、語意的錯誤。

我之所以這麼說,是因為對專業的Programmer而言,能比非專業的Programmer用更符合思考模式的表達來完成相同的功能,讓Code Reader更容易看懂。相反的,那些越是剛出社會的Programmer寫出來的程式,被容易看懂的機率就沒那麼高了。

專業Programmer的形成


我認為可能包含了:
  • 專業的Programmer已經經過幾個月甚至幾年的學習,補齊他們在學校所沒學到的東西;
  • 專業的Programmer可能為遇過不同的合作對象、不同的專案類型、不同的設計架構、不同的開發模式,所以,他們累積了能通過實務考驗的經驗;
  • 剛出社會的Programmer,因為學校的教授沒教該教的東西,也沒有正確操作專案的經驗,以致於他們寫出來的程式,不如專業的Programmer。

到底台灣教學生學寫Code的教授沒教學生那些東西?就是本文要討論的重點。不過,在繼續之前,我個人認為該問題的關鍵是「Code是寫給誰看的?」。

我自己認為學校教授並沒將以下幾點作好:
這幾個看似無關緊要的東西,就我來看,正是塑造一個專業Programmer的重要因素。

以下就是我的陳述。

沒有留言:

張貼留言