Golang, 教會我們的一件事: 提升生產力 (Productivity)
2017.8.19, Ken Fang, 深圳
Golang, 教會我們的一件事: 我們應專注在程式語言的生產力 (Productivity), 而不是程式語言的效能, 或是方法論上。
那一年, 開始寫 C++, Java, 主要是為了學習面向物件的方法論;也就是說, 那一年, 開始寫 C++, Java, 還沒有所謂 “Productivity ”;生產力;的思維。當時, 只是認為, 只要能將面向物件的方法論, 應用在 C++, Java 中, 就是將事情給做對了。至於, C++, Java, 要能提升所謂的生產力, 則是需藉由其他的庫或框架, 才會發生的事。
@ 也就是說, 從 C++, Java 中, 學習到了面向物件的方法論, 卻沒學習到提升 “生產力” 的思維與作法。
Golang, 跳脫出既有方法論的框框;迴歸到開發產品最核心的本質:生產力。
從 Golang 中, 學習到的不再是方法論;而是提升 “生產力” 的思維與作法。例如:
@ 隔離。
@ 以最簡潔的程式碼, 準確的完成最複雜、最容易出錯的事。
@ 寫程式碼時, 便可預知到程式碼執行時的情況
@ 可讀性高的程式碼⋯等等。
許多的時候, 我們往往加班、熬夜, 而就認定是因為, 版本的需求過載所造成的;更多的時候, 我們交付的版本, 總是發生問題單, 我們就認定是測試不充分所造成的。
為何不換個角度思考:
@ 假如, 你每個版本都必需要解決記憶體洩漏的告警, 那為何不捨棄那個沒有 Garbage Collection 的程式語言?
@ 假如, 你每個版本都必需要因為多執行緒, 產生ㄧ堆莫明奇妙的問題單, 而使得自己陷入加班、加點痛苦的深淵中, 那為何不捨棄那個自身在處理多執行緒上, 就有問題的程式語言?
我們是不是, 只是缺乏提升 “生產力”、“效率” 的思維、作法與 “程式語言” 罷了 ?