- 整理優先:小改進,大回報,整潔代碼設計指南
- (美)肯特·貝克
- 339字
- 2025-01-03 16:28:39
第1章 衛述句
你常常會看到這樣的代碼:

或者稍好一點的:

代碼閱讀者很容易被嵌套條件搞暈。要像這樣整理上面的代碼:

這樣更容易讀懂。它的意思是:“在深入代碼的細節之前,需要處理一些前提條件”。但是,多條返回語句是怎么回事呢?一個例程(routine)只有一條返回語句的“規則”來自FORTRAN時代,那時一個例程可以有多個入口點和出口點。你幾乎無法調試這樣的代碼,也不知道執行了哪些語句。使用衛述句的代碼則更容易分析,因為前提條件是明確的。
不要過多使用衛述句。一個包含七八條衛述句的例程讀起來也并不輕松,往往需要我們投入更多的精力。
只有在精確匹配以下情形時,才能整理成衛述句:

像下面這樣的代碼則很難整理:

也許可以將前兩行提取到一個輔助函數中,然后再將之整理成衛述句,但要始終采取小步的方式。
下面是一個例子:https://github.com/Bogdanp/dramatiq/pull/470。