您是否厭倦了盯着一堆連您的貓都不會碰的代碼?別再看了。在這篇文章中,我將告訴您 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天挑戰學習計劃,來自今日頭條!老師會邀請你進入學習,並給你發放相關資料。