成為優秀程序員的十個Tips

dyydp 9年前發布 | 18K 次閱讀 程序員

理解技術債務

技術債務就像信用卡一樣,會有很高的利息率,時間越長,修復所花的代價就越大,程序員對這個要有深刻的認識。同時團隊應該培養一種保證設計質量的文化,應當鼓勵重構、同時也應當鼓勵其它有關代碼質量的實踐,在開發時間中應當專門抽出一部分以解決技術債務。如果沒有合適的照料,代碼會變得越來越復雜難懂,最后沒人想碰它。

保持對原理的好奇心

不僅知道怎么用,還知道是什么原因。比如你做Android, 可以了解一下他的事件分發機制是什么樣的,它的Measure/Layout是怎么work的,有時間讀一讀它的源代碼, 看看他的原生控件是怎么實現的. 學iOS,了解一下它的內存管理,autorelease是怎么工作的,runtime是怎么工作的, runloop的原理是什么。做Server開發,可以了解一下Nginx為什么性能好,Redis的工作原理如何,有時間也可以讀讀其源代碼。 做前端,也可以讀一讀 Angular 或 React 的源代碼。

專注

程序員的工作效率可以相差很大,其中區別很大的一點就是是否專注,就像線程切換一樣,恢復上下文有很高的代價。建議合理安排好自己的時間,盡量在上午/下午留大塊的專注時間來做設計和編程,關掉IM/郵件/微信, 把面試/會議等安排在大塊時間之外, 同時也建議可以嘗試一下番茄工作法。

同理心

寫代碼時要有同理心,考慮一個有少量上下文甚至完全不了解上下文的另外一個程序員他會怎么樣讀這個代碼,這樣自然就知道怎么寫出可讀性好的代碼,該怎么命名,什么地方該加注釋。 考慮以后維護代碼的這個人就是你自己,這樣在偷懶做一些臨時的workaround時就會三思。 交付給測試人員時也要有同理心,有沒有做基本的質量保證,有沒有跟測試溝通改動可能的影響范圍,讓測試人員可以更有針對性的測試。

謀定而后動

好的程序員不是拿到需求就開始寫代碼,而是先考慮清楚。 需求是否合理,是否能解決用戶的問題,邏輯上是否有模糊或不完備的地方。 然后考慮設計的問題,流程圖是什么樣的,類圖是什么樣的,接口是什么樣的,對架構和模塊的影響是什么樣的,考慮清楚后才開始寫代碼。

架構思維/全局思維

理解整體架構是什么樣的,你開發的模塊在架構中的層次,新增的改動會不會對架構有污染,是否需要調整架構,所開發的模塊可否抽象成通用模塊 或者可否復用已有模塊,或則重構已有模塊達到可復用目的。

設計語言

掌握適當的設計語言,比如 Plantuml 或 Visio,或者是一些設計模式,知道如何以簡單清晰的方式去跟其他程序員描述和溝通你的設計和架構,大家理解一致了,才能更有效率的合作。

追求代碼質量

代碼質量是程序員的立足之本,在這一點上,要有精益求精的“匠心”。 我看到很多普通程序員做了不少項目后水平提升仍然不明顯,無它,對代碼質量沒有精益求精的精神。 代碼規范,健壯性,可讀性,可維護性,無重復代碼等等,都要精益求精。

代碼審查

代碼審查是保證代碼和工程質量的最有效手段,優秀的公司(比如非死book, Google)和優秀的團隊(比如我們,歡迎關注團隊公眾號 mtydev)都非常重視代碼審查。如果你還不能認識到它的重要性,可以查看這里

自動化

好的程序員都應該有自動化思維和工具思維,都應該會一門腳本語言,有自己的工具庫。我們應該通過工具及自動化來改善我們的工作效率,以及避免一些人為的失誤。

廣告

招聘從一線城市回到武漢的程序員,靠譜團隊,核心成員來自微軟,BAT, 360等一線公司,業內大佬投資,歡迎回歸家鄉,詳情請點擊 Hiring

來自:http://jimhuang.cn/?p=137

 本文由用戶 dyydp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!