低質量軟體程式設計產生的成本價格細目表

2021-09-01 19:33:37 字數 1788 閱讀 8168

注意:下面這個清單裡描述的事情並不是你絕對不能做的,它只是用量化的方法來讓你知道程式設計上的這些做法將會產生的負面代價。

這些費用是在**審查時你將要付出的。

費用: $0.02

**庫中的程式編碼風格一致雖然不是很重要,但值得你去遵守。

費用: $0.50

這主要是為了以後的查詢。請細讀這篇**提交說明資訊指導(英文)。

費用: $1.00

大多數的區域性變數都最好使用方法代替。注意:**塊引數除外。

費用: $1.50

對多於一行**的方法要保持高度警惕。

費用: $3.00

乙個方法應該只做乙個事情。乙個事情應該用不了5行**就能完成。

費用: $5.00

根據童子軍(boy scout)法則:同性戀應該被禁止。哦,不,是另外一條:盡量只留下你會用到的**。當你遇到乙個比較長的類時,花點功夫精簡它們。

費用: $7.00

在**中你只可以使用兩個數字:0和1。其它的都應該用具有名字的常量代替。

費用: $7.00

當你發現有 `if foo && bar` 時,把它提取到乙個方法裡,用來說明`foo && bar` 究竟是什麼意思。

費用: $15

乙個swith語句基本上不是只做乙個事情。它通常還會牽涉到其它類。

費用: $15

依賴布林引數的程式流轉叫做控制耦合,這是一種完全不應該的高耦合。

費用: $30

「manager」是乙個很含糊的詞,傳達不了任何意思。使用它,很有可能你的類承擔了過多的責任。

費用: $10/object created

盡量簡化你測試時需要的附加支援工具。如果能用臨時物件代替,就避免使用資料庫。

費用: $10/遮蔽的方法

如果你在測試foo類,你就不應該遮蔽或短路foo中的任何方法。你越想這樣做,越說明你需要從foo中把這些功能提煉出來放到其它地方。

費用: $20

整合測試應該通過ui來驗證。不要去窺探資料庫。

費用: $200/行

一千個注釋中頂多只有一條有合理存在的理由。其它的你應該改進**,直到不需要注釋。

費用: $500/行

我不在意**分支中存在不多的todo注釋,但絕對不要把它們合併的**庫中。「fixme」實際上是「**** you」你的同事。

費用: $50/**審查者的疑惑

一定要努力努力好好給**命名。當系統有變化時及時修改、改進你的命名。當發現有更好的名稱時,不要等待,立即換掉。

費用: $50/個

ruby裡的類方法具有可變全域性狀態。想辦法重構它們。

費用: $100/變化

與其修改乙個現有的記錄,不如建立乙個新的,或return乙個。與其刪除,不如做標記。rich hickey 對此有一些你值得一讀的思考。

費用: $200/額外職責

乙個類應該只有乙個職責或目的。幾乎沒有人因為使得類太小而出錯。鑑於此,你的類很可能太大。

費用: $500

程式設計中幾乎沒有任何原則你必須遵守的,但避免**重複是個例外。**複製給維護造成困難,嚴重影響**質量。

費用: $500

測試**並不是產品**的次要附屬物。它們的質量同等重要。更嚴重的:維護乙個糟糕的測試套件**可能會讓你欲哭無淚。

費用: $1,000/行

未經測試的**自誕生之時起就成了負擔。這樣做很不專業。

感謝paul graham先生的「on lisp」,本文是受他的在某些函式上收稅的想法而啟發。

[英文原文: 

how much should global variables cost? ] **

低質量軟體程式設計產生的成本價格細目表

注意 下面這個清單裡描述的事情並不是你絕對不能做的,它只是用量化的方法來讓你知道程式設計上的這些做法將會產生的負面代價。這些費用是在 審查時你將要付出的。費用 0.02 庫中的程式編碼風格一致雖然不是很重要,但值得你去遵守。費用 0.50 這主要是為了以後的查詢。請細讀這篇 提交說明資訊指導 英文 ...

如何改善低質量的app?

3 糟糕的應用程式架構 應用程式架構的差距導致應用程式如何在不同的移動裝置上運作的問題。例如,三星使用者可以輕鬆開啟應用,而華為使用者則不能。如果您的應用程式體系結構較弱,而沒有一定程度的靈活性,在技術上可能會在將來新增新的功能或新的部署環境。解決方案 重構,當內部應用程式結構受損時,重構可以幫助。...

為何程式設計水平決定軟體質量

外部使用者要求 正確,高效,健壯,易用和可靠 內部維護人員要求 可維護 易讀,易讀,易debug,注釋清晰,容易擴充套件 內部測試人員要求 可測試,易用,易理解 企業產品化要求 1 可擴充套件,可移植,可配置,靈活,重用性高,模組和元件化 因此質量不是無中生有,是有具體的需求驅動,質量也是為了滿足某...