iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0

聯繫我

如果有任何問題或建議,歡迎隨時聯繫我:

介紹

恭喜你!來到了我們的最後一天!經過 30 天的學習,相信你已經掌握了現代 JavaScript 中非常多的核心概念和實用技術。今天,我們要聊的是最佳實踐——這是開發者能夠穩定、高效地進行 JavaScript 開發的重要指南。這些技巧可以幫助你在工作中寫出乾淨、可維護的代碼,也能讓你的項目運行得更加順暢。

今天,我們不再只是單純地看代碼,還要探討如何組織你的項目、如何避免常見錯誤、以及如何提升團隊協作的效率。這不僅僅是寫好代碼的問題,還包括代碼的風格、性能、安全性等方面。

代碼風格與可讀性

1. 保持一致的代碼風格

無論你是自己開發還是與他人協作,保持一致的代碼風格都至關重要。使用代碼格式化工具如 Prettier 和 ESLint,來自動檢查和格式化代碼。

# 安裝 Prettier
npm install --save-dev prettier

# 使用 Prettier 格式化代碼
prettier --write "src/**/*.js"

一致的代碼風格讓團隊協作更加順暢,並且讓代碼在不同的開發者之間保持統一的結構和風格。

2. 命名變量與函數

命名是一門藝術!不要低估為變量或函數起個好名字的重要性。一個清晰的名字能讓代碼更加易讀,省去日後理解代碼的痛苦。

壞命名:

const a = 100;
function b() {
    return a * 2;
}

好命名:

const itemCount = 100;
function doubleItemCount() {
    return itemCount * 2;
}

3. 善用註釋

即便代碼很簡潔,適當的註釋仍然能大大提高可讀性。使用註釋來解釋代碼的目的,尤其是邏輯複雜的部分,但要避免過度註釋。

// 計算物品總數,並且確保不低於最小值
function calculateTotalItems(items, minItems = 10) {
    const total = items.reduce((sum, item) => sum + item, 0);
    return Math.max(total, minItems); // 確保總數至少為 10
}

性能與優化

1. 避免不必要的重複計算

有時,我們會多次進行相同的計算,這樣會浪費性能。可以通過緩存計算結果來優化性能。

// 不好的做法:每次都進行相同的計算
for (let i = 0; i < array.length; i++) {
    // array.length 會被重複計算
}

// 改進:將計算結果保存到變量中
const len = array.length;
for (let i = 0; i < len; i++) {
    // 只計算一次 array.length
}

2. 應用惰性載入

對於大型項目,應用懶加載策略,可以讓代碼只在真正需要時載入。

// 使用動態 import 進行懶加載
function loadComponent() {
    import('./myComponent').then(module => {
        const myComponent = module.default;
        myComponent.init();
    });
}

這樣可以減少初次加載的時間,讓用戶能夠更快地看到網頁。

安全性考量

1. 防範 XSS(跨站腳本攻擊)

永遠不要直接將用戶輸入的數據顯示在頁面上,必須進行輸入驗證和輸出轉義。

function sanitize(input) {
    return input.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

const userInput = '<script>alert("XSS")</script>';
document.body.innerHTML = sanitize(userInput); // 輸出被轉義過的內容

2. 使用 HTTPS

保證所有網頁和 API 通訊都是通過 HTTPS 進行的,以保護用戶的隱私和數據安全。

團隊協作與版本控制

1. 使用 Git 進行版本控制

使用 Git 來管理代碼的版本是一個最佳實踐。開發新功能時,請記得使用新分支,以便清晰地追踪代碼的變化。

# 創建並切換到新分支
git checkout -b feature/new-awesome-feature

PR 和 Code Review

在團隊中,進行 Pull Request(PR) 和 Code Review 是提升代碼質量的關鍵步驟。請確保在提交代碼之前,每個人都進行代碼檢查,並且進行必要的討論。

跨平台開發

隨著不同設備和平台的興起,我們的 JavaScript 代碼必須在各種環境下運行流暢。測試代碼在不同瀏覽器、移動設備、甚至是不同操作系統下的表現,確保應用的穩定性。

本篇自我挑戰

何謂自我挑戰,問題不怕困難,重點是要解決出問題的人(誤,嘗試開始! 在這裡你可以看到大家是怎麼回答題目的,甚至會看到暗藏的高手可以將簡單的題目回答的淋漓盡致!
回答我放在第一天的 GitHub Day1 JS 上哦!

挑戰 1: 優化一段代碼

// 以下代碼存在性能問題,請進行優化
function processItems(items) {
    for (let i = 0; i < items.length; i++) {
        console.log(items.length); // 每次都計算 items.length
    }
}

思考 2: 進行代碼審查

組織一個 PR,並進行 Code Review,確保代碼風格一致,並且進行必要的性能優化。

總結

這 30 天的學習旅程到此告一段落,但這只是你成為一名 JavaScript 高手的開始。回顧這 30 天,我們探索了從基礎到進階的 JavaScript 技術,這些知識將成為你未來編寫高質量代碼的重要基礎。

我認為人類只會越來越進步,對於學習程式只會越來越便利,但切記要成為 碼農只是完成任務 還是 真正理解技術保持熱忱 是兩件事情!

也跟大家稍微分享一下我的故事,當初我也是一位迷茫的大學生,從送外送邊自學到現在已經可以獨當一面負責公司大小專案,由於一直抱持對於未知、有挑戰、提升自己的事情有動力,所以這次跟同事一起參加了最棒的社群挑戰,我很榮幸也很確定這是我的開始!

每一篇文章都至關重要,如果你還有任何概念沒有完全掌握,不妨回頭再看一遍!今天的最佳實踐篇幫助你進一步提高開發效率和代碼質量,未來還有更多挑戰在等待你!

希望大家多支持,我是 ChungChi 也可叫我 Chill77 ,我們下次見!


上一篇
【Day 29】擴展運算符的高級用法
系列文
JavaScript 新手到高手:現代特性全攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言