編寫乾淨代碼的 9 條必須知道的規則

您是否厭倦了盯着一堆連您的貓都不會碰的代碼?別再看了。在這篇文章中,我將告訴您 9 條規則,將您的爛尾代碼變成藝術品。

 

所以喝杯咖啡,坐下來負責你的代碼!

規則#1 - 讓你的代碼井井有條且易於閱讀

你可以不整理你的衣櫥,但一定要整理你的代碼。通過使代碼井井有條且易於閱讀,您可以快速找到所需內容。

檢查以下示例:

// Group related functions together
function calculateTotal() {
 // code
}

function calculateTax() {
 // code
}

function calculateDiscount() {
 // code
}

// Use comments to explain the purpose of the code
function calculateTotal() {
 // calculate subtotal
 let subtotal = 0;
 // add items
 subtotal += item1.price;
 subtotal += item2.price;
 // return total
 return subtotal;
}

如您所見,稍加計劃和適量的註釋可以讓瀏覽代碼變得輕而易舉。

乍一看,即使在編寫代碼已有一段時間後,您也能很好地瞭解整體功能。

並不是每一天你都會感謝過去的自己做了一些好事!

規則#2 - 遵循既定的編碼約定和標準

我知道成爲叛逆者並規劃自己的路線很誘人。

但有時,遵循既定的編碼慣例和標準是值得的。這包括命名約定、評論指南等內容。

請參閱下面的片段,瞭解我要說的內容。

// Naming conventions
let userName; // camelCase for variables and properties
const MAX_USERS; // UpperCamelCase for constants

// Commenting guidelines
// This function takes in a number and returns its square
function square(num) {
 return num * num;
}

我們的想法是要始終如一地玩遊戲。通過遵循您團隊的代碼約定,您的代碼不會像拇指一樣突出,您的開發人員也會欣賞您。

規則#3 - 使用描述性變量和函數名稱

我知道將變量命名爲 X 和 Y 很時髦。

但是請相信我,幾個月後,即使是你也無法理解它們的真正含義。

爲變量賦予描述性名稱總是安全的。從長遠來看,它甚至可能對您更好。

// Descriptive function name
function calculateSum(numbers) {
 // Descriptive variable name
 let sum = 0;
 // Iterate through the array of numbers
 for (let i = 0; i < numbers.length; i++) {
   // Add each number to the sum
   sum += numbers[i];
}
 // Return the sum
 return sum;
}

如您所見,即使函數的代碼有一個循環,函數和變量名也使程序的目標一目瞭然。

規則#4 - 避免硬編碼值並使用常量

向硬編碼說再見,向常量問好!

通過使用常量,您將能夠存儲您知道在整個程序中不會改變的值。這將幫助您避免在整個代碼中搜索和替換值的麻煩。

查看下面的代碼。

const TAX_RATE = 0.07;

function calculateTotal(subtotal) {
 return subtotal + (subtotal * TAX_RATE);
}

如果未來稅率發生變化,您可以輕鬆地在一個地方更新該值,並將其反映在整個代碼中。

規則#5 - 保持函數小而集中

當您開始作爲一名開發人員時,總是很想將您的功能變成瑞士刀。解釋您的代碼可以做這麼多事情的感覺是如此誘人。

當您成爲經驗豐富的開發人員時,這種習慣就會消失。但有時它不會。

相信我。保持你的功能小,你的生活就會快樂。

如果您編寫易於理解的小而集中的函數,那麼如果出現問題,您很可能不會在海灘度假時受到打擾。

請參閱此示例。

function calculateTotal(subtotal, tax, discount) {
 const total = subtotal + tax - discount;
 return total;
}

上面的函數簡短而切題。這使得它易於理解和維護。

規則#6 - 使用合適的數據結構

您是否總是試圖在圓孔中安裝方釘?如果是,是時候使用適當的數據結構了。

就像木匠針對不同的任務擁有多種工具一樣,開發人員應該針對不同類型的功能擁有多種數據結構。

這是一個備忘單:

  • 當您需要存儲具有特定順序的項目集合時,請使用數組。
  • 當您需要存儲可以動態更改的項目集合時,請使用列表。
  • 最後,如果您需要存儲可以通過鍵訪問的項目集合,請使用映射。

查看下面的代碼,演示了不同數據結構的使用。

// Using an array to store a collection of items that have a specific order
const shoppingList = ["milk", "bread", "eggs"];
console.log(shoppingList[1]); // Output: "bread"

// Using a list to store a collection of items that can change dynamically
const todoList = ["write code", "debug", "test"];
todoList.push("deploy");
console.log(todoList); // Output: ["write code", "debug", "test", "deploy"]

// Using a dictionary to store a collection of items that can be accessed by a key
const phonebook = {
 "John": "555-555-5555",
 "Mary": "555-555-5556",
 "Bob": "555-555-5557"
};
console.log(phonebook["Mary"]); // Output: "555-555-5556"

通過根據需求使用合適的數據結構,您會發現您的代碼不僅高效而且易於理解。

規則#7 - 使用版本控制

就像你的應用程序如果只在你的機器上運行就沒有用一樣,如果你的代碼沒有提交到中央存儲庫,它也沒有用。

每個開發人員都應該習慣版本控制。不要忘記定期提交代碼。如果您正在這樣做,請確保您團隊中的其他人也這樣做。

只需要幾個命令:

// Initialize a new Git repository
$ git init

// Add all files to the repository
$ git add .

// Commit the changes with a message
$ git commit -m "Initial commit"

一個好的版本控制工具允許開發人員跟蹤更改、與他人協作並在出現任何問題時輕鬆恢復到以前的版本。

規則# 8 - 自動化重複性任務

不要像輪子上的倉鼠一樣,不停地原地打轉,一遍又一遍地做着同樣無聊的工作。

您應該使用工具和腳本來自動執行代碼中的重複性任務。這不僅可以節省時間,還可以使您的代碼更加可靠和高效。

查看此簡單測試自動化腳本的代碼示例。

const testCases = [
  { input: [1, 2], expectedOutput: 3 },
  { input: [2, 3], expectedOutput: 5 },
  { input: [3, 4], expectedOutput: 7 },
];

testCases.forEach(testCase => {
   const output = addNumbers(testCase.input[0], testCase.input[1]);
   if (output !== testCase.expectedOutput) {
       console.error(`Test failed: expected ${testCase.expectedOutput} but got ${output}`);
  } else {
       console.log("Test passed");
  }
});

您還可以自動化編譯代碼和創建最終包的構建過程。

請參閱下面的示例,其中我們使用 Gulp 等工具自動化構建過程。

// Automating a build process using a tool like Grunt or Gulp
const gulp = require('gulp');

gulp.task('build', function() {
// Build process logic
});

gulp.task('default', ['build']);

規則#9 - 保持你的代碼是最新的

不要成爲恐龍。你只會滅絕。

讓您的代碼保持最新。儘可能更新您的應用程序依賴項。

例如,如果您在 Node 生態系統中工作,請使 NPM 保持最新並升級您的開發環境。

// Keep dependencies up-to-date using package manager
$ npm update

// Keep the development environment up-to-date
$ nvm install 12.16.3

就是這樣!

那麼,你有它。9 條規則可幫助您編寫乾淨高效的代碼。

當然,這些並不是唯一重要的事情。但是通過遵循它們,您將能夠開始編寫不僅運行良好而且看起來令人愉悅的代碼,讓其他人閱讀、理解和維護。

 

爲幫助到一部分同學不走彎路,真正達到一線互聯網大廠前端項目研發要求,首次實力寵粉,打造了《30天挑戰學習計劃》,內容如下:

HTML/HTML5,CSS/CSS3,JavaScript,真實企業項目開發,雲服務器部署上線,從入門到精通

  • PC端項目開發(1個)
  • 移動WebApp開發(2個)
  • 多端響應式開發(1個)

共4大完整的項目開發 !一行一行代碼帶領實踐開發,實際企業開發怎麼做我們就是怎麼做。從學習一開始就進入工作狀態,省得浪費時間。

從學習一開始就同步使用 Git 進行項目代碼的版本的管理,Markdown 記錄學習筆記,包括真實大廠項目的開發標準和設計規範,命名規範,項目代碼規範,SEO優化規範

從藍湖UI設計稿 到 PC端,移動端,多端響應式開發項目開發

  • 真機調試,雲服務部署上線;
  • Linux環境下 的 Nginx 部署,Nginx 性能優化;
  • Gzip 壓縮,HTTPS 加密協議,域名服務器備案,解析;
  • 企業項目域名跳轉的終極解決方案,多網站、多系統部署;
  • 使用 使用 Git 在線項目部署;

這些內容在《30天挑戰學習計劃》中每一個細節都有講到,包含視頻+圖文教程+項目資料素材等。只爲實力寵粉,真正一次掌握企業項目開發必備技能,不走彎路 !

過程中【不涉及】任何費用和利益,非誠勿擾 。

如果你沒有添加助理老師微信,可以添加下方微信,說明要參加30天挑戰學習計劃,來自今日頭條!老師會邀請你進入學習,並給你發放相關資料。

30 天挑戰學習計劃 Web 前端從入門到實戰 | arry老師的博客-艾編程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章