關於項目的成本和收穫git
選擇合適的 format, 好比 markdown, texinfo 等等,格式不要過於複雜,那會增長寫文檔的枯燥程度github
合適的機制保持代碼和文檔的同步json
比較常見的做法是根據所用語言的區塊爲單位添加註釋 (function, class, module 等等),這即能保持代碼模塊的邊界清晰,也比較符合直覺 (rails 文檔屬於優秀範例,使用 rdoc 格式)api
使用並保持一致的API規範,遵循 REST 和 jsonapi.org 能夠免去不少細節上的煩惱ruby
依據其所包含代碼的邏輯的意義而命名,而不是依據業務的需求 (自底向上 instead 自頂向下)markdown
舉個例子,韓國和中國在相同領域的市場行爲不一樣,有的開發者可能就使用 kr_func, cn_func 進行簡單的業務邏輯封裝,而這樣的代碼不是 self-documenting 的,這樣的代碼須要註釋完整函數
def kr_biz_name # Keroa biz end def cn_biz_name # China biz end
更好的做法是使用單一命名做爲此業務接口優化
def biz_name(country) case country when :cn biz1_func biz2_func when :kr biz1_func biz3_func end end
hardcode 每每帶來維護成本,而編寫可配置靈活地代碼每每須要更多的設計和編碼量,多數時候還須要編寫並維護文檔。因此預想一下這個需求的增加可能,而後決定。這也是 refactor 的時候最常遇到的問題編碼
不少文檔都講這個,再也不贅述.net
對於一個成長中的項目,重構應該伴隨着項目目標的變動而產生,若是僅僅是代碼的微小優化多數時候便沒有必要,會增長額外的風險,併產生新的維護成本