一個從事多年的開發(fā)的老程序員和一個剛入職的新手,同樣開發(fā)一個新功能,都按照產(chǎn)品Prd實現(xiàn)了相關功能,這是不是就意味著新人有替代“老人”的能力呢?他們的差別有多大?有十萬八千里那么遠嗎?
細思,發(fā)現(xiàn)差別有以下五點:
一是時間成本。毫無疑問“老人”熟悉項目開發(fā)的流程,比新人有更熟練的技能,對工具運用的更熟練,有扎實的基礎知識,對于功能的實現(xiàn)能正確的使用API。
二是效率。開發(fā)中經(jīng)常會遇到各種編譯問題:如不能識別的類,接口,甚至變量,甚至各種maven的報錯,這些問題往往是協(xié)作開發(fā)中某人不小心提交的錯誤,“老人”面對這些問題往往能在最短的時間能追根溯源解決這些它,而新人通常是無所適從,沒有解決思路,如不及時尋求幫助的話,開發(fā)進度會大大的滯后。
三是代碼的規(guī)范性。規(guī)范性簡單的說包括變量、類、接口的合理的定義和命名,空指針的判斷,異常的處理,代碼的重構,常規(guī)通用寫法,還有更重要的事代碼注釋。代碼注釋體現(xiàn)的是一塊功能實現(xiàn)的邏輯思路。好的注釋不僅有助于其他開發(fā)人員迅速讀懂代碼,對自己而言也能迅速了解當初設計的初衷。這個過程中顯眼“老人”比新人做的更好,能寫出恰當?shù)淖⑨尯鸵?guī)范。
四是代碼的擴展性?!袄先恕蓖ǔ鶕?jù)業(yè)務寫出便于擴展的代碼,重構常用的功能。新人可能只注重業(yè)務實現(xiàn)的當下的功能,代碼缺乏一定的擴展性。
五是性能。經(jīng)常有一些功能的實現(xiàn)可能存在的一些性能問題,可能是應該批量調(diào)用而目前接口只支持循環(huán)調(diào)用,也可能是復雜的SQL查詢導致性能慢的問題,也可能自己代碼寫出性能隱患,“老人”更善于發(fā)現(xiàn),規(guī)避,解決此類問題。而新人往往因為經(jīng)驗的缺乏會帶著問題上線,導致后續(xù)一系列的問題。
以上五點總結起來無非是“經(jīng)驗”二字,但是經(jīng)驗又是不可衡量,非標準化的。有些人經(jīng)驗是不斷的重復,五年的開發(fā)經(jīng)驗如同一年,而有的人則是不斷的累加。
新人和“老人”差別多少諸君自己判斷。