---
# System prepended metadata

title: 乾淨代碼介紹
tags: [Note, Clean Code]

---

# 乾淨代碼介紹

## 什麼是髒代碼
- 複雜
- 需要花很多時間/經歷理解
    - 浪費時間

## 什麼是乾淨代碼
可讀和可理解並有意義的代碼
- 跟代碼是否正確工作無關
- 乾淨的代碼不會只有一個正確答案
- 簡潔
- 維護起來很有趣

## 乾淨代碼的關鍵
- 命名
    - variable(參數)
    - function(方法)
    - class(類)
- 結構/註釋
    - 代碼格式化
    - 註釋(好/壞)
        - 太多註釋也有可能形塑髒代碼
- 函式(方法)
    - 長度
    - 參數
- 條件/錯誤處理
    - 過深的嵌套
    - 沒有錯誤處理
- 類/資料結構
    - 類/資料結構和物件沒有正確區別
    - 過於龐大的類
        - 太難理解

## 寫出乾淨代碼的解法
- 規則/觀念
- 模式
- 測試驅動開發
    - 測試幫助你寫的乾淨

## 強型別和乾淨代碼間的關係
沒有關係

強型別可以幫助減少錯誤和增進可讀性
但非強型別的代碼也可以達成同樣的可讀性
(強型別仍然有好處,但對於追求乾淨代碼來說差異並不大)

## 乾淨代碼/設計模式/設計原則
- 設計模式/設計原則 -> 可維護和可擴展的代碼
- 乾淨代碼 -> 可讀和易理解
- 兩者會相互加成

## 乾淨代碼/乾淨架構
- 乾淨代碼 -> 如何寫代碼
    - 專注於單個問題/單個資料夾
- 乾淨架構 -> 如何組織結構 (你在哪裡,寫什麼代碼)
    - 實體分離
    - 資料存儲
    - 跟編程範式,程式語言有關
    - 專注於整個項目

## 乾淨代碼是隨時間演進的
- 永遠都可以找到更好的寫法
- 當項目演進和改變,代碼也會需要改變
- 永遠保持代碼乾淨的方法
    - 不斷改進和質疑自己的代碼
    - 重構

:::info
今天重構,幫明天省時
重構保持代碼健康
:::

## 乾淨代碼/快速寫出的髒代碼
人總是有壓力,壓力讓人寫出髒代碼
但乾淨的代碼讓未來更有生產力
![](https://i.imgur.com/z3pPnLQ.png)


###### tags: `Clean Code` `Note`