# 注釋以及格式化 ## 注釋 :::info 大部分時候,注釋都是不好的 (如果使用好的命名法,代碼就可以大幅減少解釋的需求) 不需要過多注釋就能看懂 這種情況下注釋就是冗余的 因為你並不需要 增加注釋只是增加你閱讀代碼的時間(注釋不能跳過,因為**可能**包含重要資訊),但不會增加你對代碼的理解 ::: ### 壞注釋 - 包含冗余的資訊 - 分區/區塊注釋 - 代碼應通過 class 和分割檔案來分割功能,如果需要分區/區塊注釋,那很可能是代碼沒有適當切分在檔案中(全部塞到一個檔案) - 我在讀 Enzyme 時常看到(可能是為了優化 gas 所做,但這並不是很優雅) - 有誤導性的注釋 - 注釋掉的代碼 - 用途: - 藏掉代碼 - 留著做為參考 - 有新版本的 - 有用途,但是不應該永久留存 - 如果有需要回頭查看,應該使用git ### 好注釋 - 規定(法定)注釋 - 作者 - 授權 - 創建時間 - 不能被好的命名方式所取代的,代碼解釋 - ex. - regex - 警告你不能做某些事 - ex. - 此 API 只能使用於 js 瀏覽器環境 - TODO Note - 對於未完成的代碼 - 但也不能太多 - Doc String ## 格式化 代碼格式化增加代碼的可讀性和意義傳遞正確性 - 垂直格式化 - 格式所有代碼架構,從檔案的開始到結束 - 內容: - 行間距 - 代碼分區 - 橫向格式化 - 格式化單行代碼 - 內容: - 縮進 - 空白間隔 - 代碼寬度 ### 正確的格式化 - 重要且會增加代碼可讀性 - 在各語言間都不同 - 遵守代碼風格 ### 垂直格式化 - 應該要能像作文一樣被閱讀 - 由上而下,沒有太多**跳躍** - 把檔案切分為多個小觀念(ex. class),並且放進多個檔案 - ex. - 一個檔案有多個 class - 不同概念要使用區塊來區分(區塊間有空行) - 讓閱讀順暢,盡量減少跳躍 - 方法/函數排序 - 上面用到的方法,在下面宣告 -> 閱讀流暢 - 要看語言:JS 可以, Python 不行(函式一定要先定義) ### 水平格式化 代碼應該在不用左右移動下可讀,避免過長的句子 - 如果太長的話 - 使用縮進 - 使用變數(賦值部分代碼) - 使用清楚且可讀的命名 ## ###### tags: `Clean Code` `Note`