阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

如果你在一個凌亂的房間裡,你就找不到鑰匙。衣服到處都是,書籍堆積如山

凌亂的房間 gif 圖像

這適用於混亂的程式碼。這是同樣的災難,只不過現在是你的大腦正在失去能量。

乾淨的程式碼鮑伯叔叔引用的圖片

另一方面,乾淨的程式碼就像走進一個一塵不染的房間。一切都在它應該在的地方。沒有壓力。沒有混亂。只是清晰度。

事實是:如果你想在軟體開發中生存,編寫乾淨的程式碼不是可選的。人工智慧已經可以寫比你更乾淨的程式碼。

你可以寫出凌亂的程式碼,努力修復每個錯誤,在面試中被拒絕,無法建立一個可管理的新創公司,或者你可以掌握乾淨的程式碼並主宰你接觸的每個專案


乾淨的編碼器與混亂的編碼器

下面的圖表顯示了兩種類型的程式設計師的旅程:

乾淨程式碼與錯誤程式碼圖表的圖像

  • ⚠️ 糟糕的程式設計師(紅線):啟動快但崩潰嚴重。他們寫的行越多,製造的麻煩就越多。

  • ⚡ 乾淨的程式碼(藍線):開始緩慢但保持一致。成長不會停止-而是加速。

現在,您決定要遵循哪條路線

壞程式碼的成本

shahan 的凌亂程式碼圖圖

為了示範此圖表,在初始開發階段,更改不良程式碼的成本比更改乾淨程式碼的成本稍高

然而,當我們進入維護和重構階段時,差距顯著擴大,不良程式碼的成本幾乎是乾淨程式碼的兩倍。

到了遺留階段,不良程式碼的成本達到 100% ,現在更新成本極為昂貴,而乾淨的程式碼仍然更容易管理,成本為 45%。

毫無疑問,糟糕的程式碼是軟體開發中一個代價高昂的問題。


編寫整潔程式碼的 10 條防彈規則

1. 使用有意義的名字

將變數或函數命名為bx是犯罪行為。就叫他們什麼吧。

// Weak and vague
let b = 5;

// Strong and clear
let numberOfUsers = 5;

寫不清楚名字的人不想承認自己的錯誤不要成為那個人。


2. 保持職能聚焦(SRP)

函數應該要做一件事——而且做得完美。這稱為單一職責原則( SRP )。

好的程式碼就像一把錘子。它擊中了一個釘子,而不是十個

// Clean: One job, one focus
function calculateTotal(a, b) {
    return a + b;
}

function logTotal(user, total) {
    console.log(`User: ${user}, Total: ${total}`);
}

// Dirty: Trying to do EVERYTHING
function calculateAndLogTotal(a, b, user) {
    let total = a + b;
    console.log(`User: ${user}, Total: ${total}`);
}

當你混合任務時,你就將混亂與災難混為一談


3.無聲評論

每次有人走進房間時,您都不會解釋門的作用。您的程式碼應該以同樣的方式運作。

// Clean: Self-explanatory
let userAge = 25;

// Messy: Needs an explanation
let a; // This means "age of the user"

評論還不錯,但如果你的程式碼不能獨立存在,那麼你就已經失敗了。


4. 讓你的程式碼可讀

如果有人讀你的程式碼感覺像是在解謎,那麼你就已經成為一個麻煩製造者了。

// Clean: Reads like a story
if (isLoggedIn) {
    console.log("Welcome!");
} else {
    console.log("Please log in.");
}

// Messy: Feels like chaos
if(isLoggedIn){console.log("Welcome!");}else{console.log("Please log in.");}

可讀的程式碼不僅適合其他人,也適合六個月後的您。


5.測試你寫的所有內容

如果您懶得編寫測試,請不要在程式碼損壞時抱怨。

class Calculator {
    add(a, b) { return a + b; }
    subtract(a, b) { return a - b; }
}

// Test it (Unit Test)
const calculator = new Calculator();
console.assert(calculator.add(2, 3) === 5, "Addition failed");
console.assert(calculator.subtract(5, 3) === 2, "Subtraction failed");

測試是你的保險。忽視它們,你就是在拿自己的時間做賭注。


6. 注意依賴性

依賴性就像交易。找到正確的,你就贏了。如果選擇不當,你就會陷入讓自己後悔的境地。

// Dependency: Sending emails with Nodemailer
const nodemailer = require('nodemailer');
function sendEmail(to, subject, message) {
    const transporter = nodemailer.createTransport({ /* config */ });
    return transporter.sendMail({ from: "[email protected]", to, subject, text: message });
}

避免硬編碼依賴。使用抽像設定檔進行安全維護。

這只是一個例子。作為開發人員,您可能會使用數百個程式庫或依賴項。

我並不是說你不應該依賴它們,現在很難避免它們。但在將它們安裝到編碼專案中之前,您應該非常小心。

您應該檢查組織軟體系統的安全性、效能、品質或功能。因為它們有時包含可能毀掉您整個專案的風險。

始終控制您的工具,不要讓它們控制您。


7. 像老闆一樣組織專案

一個組織良好的專案是舊貨拍賣和*高端精品店的*區別。

以下是每個資料夾的組織方式:

Shahan 的乾淨程式碼專案結構圖

如果你的程式碼庫看起來像一個垃圾抽屜,那麼你已經失去了未來的自己的尊重。

電子郵件應用程式的簡潔專案結構:

假設您正在建立一個向使用者發送電子郵件的應用程式。您乾淨的專案結構應該如下所示:

Shahan 提供的電子郵件應用程式乾淨程式碼專案結構圖片


8. 格式保持一致

不要像一個擁有 10 種性格的人那樣寫程式碼。與您的格式保持一致。

使用PrettierESLint等工具來強制執行一致的風格。如果每個文件看起來都不同,那麼您就會造成無人願意修復的混亂。

我想說,格式的一致性是乾淨編碼最重要的方面之一。

看看...

從零到一本書的乾淨程式碼的一致格式片段的圖像

在整個程式碼庫中一致使用2 或 4 個空格進行縮排避免使用選項卡以保持不同編輯器之間的一致性

保持行最多 100-120 個字符,以防止水平滾動並提高可讀性。

將相關邏輯組合**在一起,並用空白行分隔程式碼區塊*突出*其用途。

最後,避免程式碼過度對齊;相反,讓縮排自然引導邏輯流程。


9.停止硬編碼值

硬編碼是偽裝成努力的懶惰。

// Bad: Hardcoded and rigid
function createUser() {
    const maxUsers = 100;
    if (currentUsers >= maxUsers) throw "Too many users!";
}

// Clean: Dynamic and flexible
const MAX_USERS = 100;
function createUser() {
    if (currentUsers >= MAX_USERS) throw "Too many users!";
}

所以,不惜一切代價避免它。硬編碼是讓你墜入懸崖的捷徑


10. 保持函數簡短

如果你的函數超過 20 行,它可能試圖做太多事情。分解它。

function updateCart(cart, item) {
    addItemToCart(cart, item);
    let total = calculateTotal(cart);
    logTransaction(item, total);
    return total;
}

function addItemToCart(cart, item) {
    cart.items.push(item);
}

短函數是函數。他們每次都達到了目標。


🎄🎁新年禮物!

您剛剛在本文中讀到的內容只不過是我的書《從零到一的乾淨程式碼》中的一小部分。

乾淨的程式碼從零到一書籍封面

這10條規則?它們只是表面。

因為現在是新年,所以我會讓這對你來說變得容易。使用促銷程式碼HAPPYNEWYEAR可享20% 的折扣

但不要等太久——此優惠將於2025 年 1 月 14 日結束。

👉立即取得乾淨的程式碼從零到一

或繼續與你混亂的程式碼作鬥爭。選擇權在你。


閱讀更多: 在 React 中編寫乾淨、可重複使用的元件


原文出處:https://dev.to/codewithshahan/how-to-write-clean-code-tips-for-developers-with-examples-25ic


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!