人們很容易認為最小化程式碼行數對於提高程式碼可讀性很重要。
然而,減少行數並不總是最好的選擇。
在本文中,我們將解釋優先考慮可讀性而不用擔心程式碼行數的重要性。
程式碼簡潔但難以理解的問題
下面的程式碼是一個函式,用於確定給定字串是否是有效的電子郵件地址。
def is_valid_email(email): |
這段程式碼一行寫成,非常簡潔。
然而,理解正規表示式的含義並不容易。
當其他工程師閱讀這段程式碼時,他們很難立即理解用於確定電子郵件地址有效性的條件。
另外,如果正規表示式模式發生變化,修改這段程式碼將會很痛苦。
正規表示式模式很複雜,某一部分的變化會影響其他部分。
可讀性優先的程式碼示例
以下程式碼是上一個示例的更具可讀性的版本。
import re |
此程式碼確定電子郵件地址的有效性,如下所示:
- 檢查電子郵件地址是否為空
- 用"@"分割並分為兩部分:本地部分和域部分
- 檢查本地和域部分是否為空
- 確保本地部分只包含有效字元
- 確保域部分用".分割成至少兩個部分。
- 確保域部分的每個部分都只包含有效字元。
雖然程式碼行數增加了,但每個步驟都分得很清楚,也更容易理解。
正規表示式模式也得到了簡化,更易於修改。
總結
減少程式碼行數並不總是最佳選擇。
相反,重要的是優先考慮程式碼的可讀性,編寫其他工程師易於理解的程式碼。
一味追求簡潔會使程式碼更加難以理解。
透過適當的命名、註釋和邏輯分解,清楚地傳達程式碼的意圖。
編寫易於閱讀和維護的程式碼,即使需要更多行,從長遠來看也會提高程式碼質量。