http://www.inside.com.tw/2015/04/17/a-cautionary-tale-of-learning-to-code-quincy-larson

藉由這篇文章,我也抒發一下自己多年來開發,遇到各類型的同事,

以及我自己對於"追求新技術,新工具"這件事情的一些看法。

 

待過幾個工作,發現每個工作環境裡,都會有這樣的人--很喜歡研究新技術。

通常都是在 WWDC、Google I/O 等等技術論壇發表了新的工具後,

會試著去嘗試新工具、新語言等等。

 

當然這不是一件壞事,一開始聽這類型的同事,在講他嘗試的新工具,

也覺得很有趣,覺得這樣的同事很有嘗試新事物的態度。

 

可是日子久了,發現就算急著嘗試新工具、新架構、新技術,

對於目前在開發的程式並沒有太大的幫助,然後就流於嘴巴厲害,

在團隊開發上,卻無法解決問題。

 

於是我回頭思考寫程式這件事情,如何才叫做強者?

過去看過各式的強者,會讓整個團隊佩服的,有個最重要的特質--

可以解決別人解不了的問題。

 

而就算新工具、新架構再多,維護了好幾年穩定的程式,

也不可能因為有了什麼新架構,就必須要整個砍掉重練。

已經維護了一陣子,夠穩定的程式,也不需要靠新架構來優化。

寫程式這件事情,最重要的就是邏輯,很多的新工具,

也都是在防止邏輯的錯誤,例如 Volley 這個 Library 可以用來優化網路存取,

可是只要對網路概念夠清楚,也是可以用簡單的

HttpURLConnection 去做好。

 

因為 Volley 只是幫你管理好 HttpRequest,如果觀念夠清楚,

自然也可以自己寫客製化的小工具,來管理 HttpRequest。

 

我會想要特別就這個議題抒發,是因為我感覺到有些人是太過度的追求新工具,

有些同事喜歡討論這些新工具,我聽著聽著,常常到最後沒什麼結論,

也常常發現最後自己下去研究,怎麼好像跟他們剛剛說的重點不太一樣?

 

更甚者,有些人看了一些新工具似乎可以優化,就急著套用,

也不仔細評估到底所謂優化是什麼部分? 然後反而製造出更多 BUG

 

一度我也急著讓自己變強,然後去弄懂每個新名詞,去嘗試每個新工具...

可是最後發現是緣木求魚,其實最重要的是基礎的邏輯概念,

這才能讓程式寫的漂亮優雅,基礎程式夠強了,見多識廣,

自然也知道這些工具是為了解決什麼問題。

 

再拿 Design Patterns 這件事情來舉例,其實所謂的 Design Pattern

是前人經驗的累積,建議在什麼情況下要怎麼設計你的架構。

如果程式邏輯夠清楚了,也不一定要死套用這些 Pattern,

交錯運用之下,能夠得到最好的效能與穩定的結果,才是最終需要。

 

如同在一開頭轉貼的那篇文裡,作者有句話我很喜歡--

"語言、框架、工具,一個換過一個,而且妄想著自己能夠每樣都精通。"

 

盲目的去追求新工具,新框架,新語言,到最後反而忘記什麼是重要的,

當然,或許可以滿嘴好用的工具,唬唬一些新手讓他們覺得你很厲害,

可是終究是本末倒置了。

 

 

arrow
arrow
    全站熱搜

    keep walking 發表在 痞客邦 留言(0) 人氣()