提交代码前问自己七个问题!
為什么寫出好的代碼是如此之難? 為什么經過了這么多年的努力,有這么多的最佳實踐/工具/方法學 (例如:瀑布式開發,迭代開發,Scrum , XP, 單元測試,TDD,持續集成,UML,Code Review ,IDEA, Eclipse......? 這個名單可以非常長),我們還是無法創造高質量的軟件??
有市場的原因,需求的原因,工期的原因,也有程序員的原因。?
Bozhidar Bozhanov 在他的文章《7 QUESTIONS TO ASK YOURSELF ABOUT YOUR CODE》 (點擊閱讀原文可查看)提出了7個問題,我覺得很有價值, 我把他翻譯了一下,分享給大家:
1. 代碼是正確的嗎???
是不是實現了規格說明書中的需求?如果沒有規格說明書,你自己是不是付出了足夠的努力來找出軟件期待的行為, 并且把它測試了一遍? --- 最好是自動的,至少也得有手工的測試。?
2. 代碼是完整的嗎?
不管你的需求文檔中寫沒寫,你的代碼是不是仔細考慮了邊界條件??很多邊界條件都是技術相關的:連接斷開,內存不足,硬盤已滿等等。
3. 代碼是安全的嗎?
它是不是遵循了安全的最佳實踐,是否驗證了輸入數據,防止了數據注入? 它是否經過了對已知攻擊的安全測試? 安全當然不僅僅是代碼, 但是代碼的確可以引入不少安全漏洞。
4. 代碼是可讀、可維護的嗎?
其他人是不是可以輕松地理解你寫的代碼? 有沒有適當的注釋來描述一小部分代碼在一個大場景中的位置?有沒有把代碼拆分成小的,可以讀的單元。
5. 代碼是可以擴展的嗎?
代碼是否允許添加新的功能而不破壞老的代碼? 是不是參數化的,或者可以配置的? 有沒有使用恰當的設計模式來支持擴展?
6. 代碼是不是高效的?
在高負荷下能否工作正常?? 是否避免了一次性讀入大量數據到內存中,是否適當地使用了異步的處理?
7.? 有沒有一些讓你可以自豪的地方?
你覺得你的代碼會讓你很自豪,還是說你想把它藏起來不讓別人看到?
大部分的代碼都是平凡的,不是光芒四射的,但是你的代碼是不是展示了一些比較好的實踐?你是否愿意把他放到GitHub上去??
其實這些問題不僅僅要在提交代碼之前思考,在Code Review的時候也完全可以借鑒。
高質量的軟件依賴很多因素,程序員可以說是最重要的一環。我覺得經常問問自己這些問題并且采取行動,你最終會變得與眾不同。?
總結
以上是生活随笔為你收集整理的提交代码前问自己七个问题!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KA,连接池居然这么简单?
- 下一篇: 一位资深Java的阿里系公司实战面试经验