我的程式員階段

我的程式員階段


  1. 初學者:用複製、貼上寫程式。
  2. 入門:用函數、類別減少代碼的重複
  3. 自認牛逼:大量使用用繼承、覆寫、泛型、匿名函式,用最少的代碼寫出最多的功能並自鳴得意。
  4. 跌入效能深淵、記憶體崩潰、代碼過於抽象,難以維護與交接。
  5. 在抽象與效能之間追求平衡點。
  6. Simple is best , 回到第一步

耦合或抽象


為了減少代碼重複,而使用了函數重用、繼承,然而卻增加了耦合。在前一段時期,總是會想要用一個架構去應付所有狀況,但真實運作之下,只使用了整個大架構裡面的一小部分,剩下都成了疊床架屋。經典例子:為了解決公司組織架構過於複雜,而產生的效率低落問題,再追加成立一個部門,專門解決組織架構過於複雜的問題。將代碼執行效率考量進去之後,發現人類去配合機器才是最有效率、最節能的方法,複製貼上的腳本也許難以維護、但對處理器是最友善的。

在這幾年寫程式的經驗中,重複腳本對於初學者來說容易理解,反而會比抽象的疊床架屋、繼承、覆蓋、重複呼叫容易維護。越抽象、簡約的風格,並沒有在交接上獲得方便、這些抽象代碼反而造成理解上的困難。回歸原始、簡單、直覺的 for 迴圈,反而是效率高、又易維護的風格。

軟體服務業


我對程式員的未來是這樣想的,如果只幹執行,充其量就是個「程序服務員」,為了客戶、用戶、老闆的「開心」,趕工生產出一個又一個新服務、新功能、新規格、新要求,一直不斷以人力的方式,編寫許多客製化的代碼,研究人心的注意力,情緒的牽動效率,以滿足目標客群無止盡的需求,獲得服務周到的酬勞。如此一來,還是比較像是服務業的,用身體勞動產生的客製化代碼,去服務您的客戶,自己並不存在。

回到創作者


又回到原點,創作者也許才是我想做的?執行部分已經夠了,如果這個時間還不發展自己的設計,可能已經沒有機會了。

留言