⓵ 容易懂 Easy Know
想像一下你有很多玩具或畫作,如果每個都只叫做「東西」,你會很難找到你想玩的或想看的。所以你會給它們取名字,像「我的紅色賽車」、「我畫的大象」。在寫程式時也是一樣,我們要幫程式裡的不同部分取名字,像數字、文字或是一段做事的方法(叫做函數)。這些名字不是隨便取的,要像玩具的名字一樣,讓人一聽就知道這是什麼、是用來做什麼的。這樣你自己或其他人以後看程式時,才能快速搞懂,不會覺得一團亂,找東西找半天。取對好名字,就像把東西整理得很整齊,讓工作變得很有效率,不容易出錯。
---
⓶ 總結 Overall Summary
影片探討了為何「命名」被視為電腦科學中最困難的問題之一,並分享了作者從自身工作經驗中總結出的命名原則與看法。不同於許多探討此議題的技術名著,作者從實務角度出發,強調命名的核心價值在於提升程式碼的清晰度、可讀性與維護性。一個好的名字不應該只是個佔位符(例如將日期變數命名為「date」),而應該具備足夠的資訊,讓人一眼就能理解其用途、內容或目的。判斷名字是否足夠清晰的簡單方法是,如果需要額外加註釋來解釋,通常表示名字本身還不夠好。
作者進一步說明,無論是變數還是函數,命名都應力求精確和詳細。例如,生成報表的函數應明確指出是哪種報表(如「generate shop orders report」),以便未來新增不同類型報表時不會產生命名衝突或混淆。命名時也應考慮未來的擴展性,預留彈性。對於縮寫的使用,影片建議遵循業界約定俗成的習慣,避免自己發明縮寫,以免造成理解困難,這對自己幾個月後回頭看程式碼或與他人協作時尤其重要。
影片也批評了過度追求命名規範統一的行為,指出許多時候這種規範是為了規範而規範,忽略了實際情況的複雜性。只要命名客觀上沒有錯誤、不影響理解、不產生歧義、不增加維護成本,就不應為了強求統一風格而駁回。作者認為,命名問題最終歸根結底是「人的問題」,因為命名是為了讓人類程式設計師之間更好地溝通、協作,理解程式碼的邏輯,而非為了滿足電腦編譯器的需求。好的命名能大幅提高團隊的開發效率並降低長期維護的難度。
---
⓷ 觀點 Viewpoints
* 命名是電腦科學中最難的問題之一,因為它缺乏絕對客觀的評判標準,且最終是為了人的理解而非電腦。
* 好的命名必須具備足夠的資訊量與區分度,讓人無需額外註釋就能理解其意義與用途。
* 變數命名應體現所代表資料的具體含義(例如「report cutoff date」而非「date」)。
* 函數命名應清楚表明其功能與針對的對象(例如「generate shop orders report」而非「generate report」)。
* 命名應考量未來的可能性,以便系統擴展時能有條理地新增相關命名。
* 使用縮寫應僅限於約定俗成的習慣,避免自己創造縮寫,以免造成混淆。
* 不應在命名上過度糾結於主觀的風格差異(如「delete」與「remove」),只要不影響理解和正確性就應接受。
* 過度嚴苛且不切實際的命名規範(如為求統一而產生不自然的名字)往往適得其反。
---
⓸ 摘要 Abstract
✅ 命名是電腦科學中極具挑戰性的問題。
⚠️ 避免使用「date」、「string」等缺乏資訊的佔位符名稱。
📌 如果需要註釋來解釋名字,那名字可能不夠好。
👍 變數和函數的命名應力求詳細、精確、具描述性。
🛣️ 命名應考慮未來的擴展性,預留彈性。
🚫 切勿創造自己的縮寫,使用業界通用的習慣縮寫。
🤔 命名是為人服務的,促進人類間的溝通協作。
💪 好的命名能顯著提升程式碼的可讀性、效率與可維護性。
💡 關注命名的正確性與準確性,而非盲目追求統一規範。
---
⓹ FAQ 測驗
1. 根據影片內容,判斷一個變數或函數的名字是否足夠好的簡易技巧是什麼?
A. 名字越短越好
B. 名字越長越好
C. 如果需要寫註釋來解釋它,那名字可能不夠好
D. 名字是否包含數字
正確答案:C
解釋:影片提到,如果命名後還需要在旁邊寫上註釋,這通常表示名字本身選得不夠好,缺乏足夠的自解釋性。
2. 影片中提到,在給程式碼中的項目命名時,關於使用縮寫的建議是什麼?
A. 鼓勵發揮創意,盡可能創造新的縮寫
B. 應該完全避免使用任何縮寫
C. 優先使用業界或語言中約定俗成的縮寫,避免自己創造新的縮寫
D. 縮寫的長度必須固定
正確答案:C
解釋:影片明確指出不應自己創造縮寫(例如將 generate report 縮寫成 genrep),而應該遵循英語中已經約定俗成的縮寫用法,以免造成理解上的困難。
3. 影片最後總結,為何命名問題歸根結底被認為是「人的問題」?
A. 因為只有人才能理解程式碼
B. 因為命名主要是為了讓人類程式設計師更好地溝通、協作和理解程式碼
C. 因為電腦編譯器無法處理不好的命名
D. 因為命名規範是由人制定的
正確答案:B
解釋:影片說明,命名問題的難點在於沒有客觀標準,且電腦並不關心命名,經過編譯器處理後都變成了機器碼。命名的主要目的是為了讓人類程式設計師能用更接近人類語言的方式寫程式,方便彼此理解、溝通與協作。
✡ Oli小濃縮 Summary bot 為您濃縮重點 ✡