Unity C# | Clean Code #3 註解

閱讀時間約 5 分鐘

一、前言

  這篇文章將會分享 Clean Code 關於註解的重點,內容主要以個人閱讀後心得為主,有興趣了解更多請自行購買這本書。

二、Clean Code

  這本書出自於某一位程式設計的大師,他為程式設計建立了一個程式設計的流派,Clean Code 對每一位程式設計師的意義都不盡相同,對某些人來說,這是維護、命名的準則,對某些人來說,則是程式開發的架構與雛形。

1. 簡潔

  這本書最為著名的就是簡潔,簡單扼要的程式邏輯、清楚易懂的程式設計知識與架構,這是它廣為流傳的核心守則,這本書不會實際教導如何寫程式,它會把寫程式要注意、要避免的事情一步步告訴設計師。

2. 直覺

  其中最重要的一件事情,是Clean Code 強調程式是一種語言,因此在撰寫裡面的每一個字都要設計與思考,就像寫一本書一樣,要能讓人一看就懂,不需要經過轉化或推測,能很直覺的就理解程式碼的內容,因此也容易維護。

3. 零重複

  它的一項特徵是程式碼不會有重複的內容,同一功能的程式寫完之後就不用再撰寫第二次,能讓程式碼的數量大為減少,重複利用的同時依然保持單一職責的設計模式。

三、註解

  學習程式碼的過程中,自然而然的就學會了註解;在很多插件裡面也能看到註解;那我們應該怎麼使用註解比較好呢?

1. 不要替糟糕的程式碼寫註解──重寫它

  我們決定對程式碼註解的原因,很有可能是我們擔心程式碼太亂,容易讓下一位讀者看不懂這段程式碼在寫什麼,因此我們添加了一個註解,告訴他們這段程式碼的一些備註。
  寫程式像寫文章一樣,如果覺得看不太懂,重寫就對了;不要為了文章寫不清楚而註解,我們應該直接重寫一遍,直到我們覺得這段文章直接看就能理解功能,不需要額外備註。

2. 有益的註解概述

  真正有意義的註解,剛好是那些有實際意義的註解,它們會向文章本身,缺少就會有一種空缺感,而不是缺少後依然能順利讀下去;我會挑選幾個我認為對寫程式有幫助的註解類型跟大家分享。

3. 糟糕的註解概述

  有些註解去掉之後,對程式碼內容並無顯著影響;有些註解被撰寫後,反而影響程式碼的閱讀;這些註解都對程式碼都沒有正向效益,因此都是不應該存在於程式碼的內容。

四、有益的註解

  有必要才要註解,因此有益的註解就是那些絕對不能少的註解。

1. 法律型註解

  你可能有看過法律型的註解,它會告訴你這份程式碼腳本是來自於哪家公司所設計,請不要隨意的轉載或修正等等,總之就是告訴你這份程式碼的智慧財產權歸屬。
  法律型註解是概念意義上的重要,實際上對寫程式碼沒有幫助,就像是申請商標一樣的概念,是一種對自己的保護,所以這種註解該寫還是要寫,雖然我們普通程式設計師應該不會接觸到就是了。

2. 對後果的告誡

  某一些程式的存在很便捷,但不可挽回;某一些程式的效用很特殊,不能隨便亂使用;某一些程式的功能會在某些狀況銷毀;類似上述的程式碼,我們都應該要在前面註解,告訴未來的使用這這個程式碼的危害。

3. TODO註解

  善用尚未存在的程式碼,或者說我們未來打算這樣做的程式碼,都很值得使用TODO來註解,現在程式編輯器都能使用搜尋來找到所有的TODO程式碼了,不過要記得隨時更新。

五、糟糕的註解

  有哪些程式碼註解是「糟糕」的程式碼註解呢?

1. 喃喃自語

  我相信有些人在寫訊息的時候總喜歡多加一些額外的備註(PS. 我很少這樣子做);在心情不好的時候,留下一些自己的心情日誌,譬如這東西真的超級無敵難寫到爆炸之類的。
  請避免這些行為,因為寫程式碼的重點在「可讀性」這件事情,請務必從寫程式的開始到專案的結束都保持這個習慣,喃喃自語的程式碼會拖延其他人閱讀程式碼的過程。

2. 干擾的註解

  有些註解沒有必要,尤其是在講述程式碼怎麼運作的時候,我簡單舉例一下你就懂了(舉例是指給你一個範本,讓你比較好理解文章的內容),換成中文文章的註解,是不是有比較好理解了,所以請避免這件事情。

3. 誤導型註解

  註解是有時效性的一件事情,請務必記得這一點,有一些註解在多次更新之後就失去了原本的意思,原本可能是跟註解內容相同沒錯,但是在多個版本之後就不是這麼一回事了。

4. 被註解的程式碼

  我們都是有禮貌的人,不會隨意刪除看起來「很厲害」的東西,尤其是被註解起來的程式碼,你可能認為它很重要所以不敢動它,而實際上它可能早就失去當初的用途了。

5. 過多的資訊

  千萬不要在程式碼裡面寫文章,哪怕寫程式與寫文章有多處雷同的地方:它們都是一種語言;它們都會敘述某些事情;它們都試圖在傳達某些概念等等,這也不是在程式碼腳本中開始寫文章的理由。

六、後記

  我一直認為寫註解是一件「很酷」的事情,因為綠色搭配程式編輯器的顏色非常符合我對寫程式的印象,我認為這代表了專業,實際上並不是,寫註解是一件多於事情,尤其是為了寫註解而寫,那就更多於了。

1. 註解是很重要的事情

  當然,註解是很重要的事情,它是協助程式員跟程式員之間溝通的橋樑,也是我們學程式中自然而然學會的一件基礎技能,我完全沒印象我是什麼時候知道註解這件事情的了。

2. 註解是不重要的事情

  當然,註解畢竟是一種備註,所以如果能不使用註解,就盡量的不要使用註解,因為程式碼本身就具有閱讀性,請不要像對待魔法文字一樣,幫每一個盧恩文字標上註釋。

3. 程式碼本身就是文章

  最後,我打算再強調一次,程式碼本身具有可讀性,寫程式跟寫文章都是為了讓讀者看懂,讓下一位閱讀這份文章的人,能理解這份程式是在做什麼,撰寫程式的根本邏輯,就是為了「可讀性」這一件事情而已。
為什麼會看到廣告
103會員
246Content count
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
這篇文章將會分享 Clean Code 關於函式的重點,內容主要以個人閱讀後有印象的部分著手,有興趣了解更多請自行購買這本書。
這篇文章將會簡單介紹無瑕的程式碼(Clean Code)是一種什麼樣的程式設計流派,並且分享以及命名相關的概念。
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
這篇文章將會介紹函式(Function)及其回傳值(retrun)的定義及介紹。
這篇文章將會講述 Inspector 的簡易優化小技巧,並介紹系列文章。
這篇文章將會分享 Clean Code 關於函式的重點,內容主要以個人閱讀後有印象的部分著手,有興趣了解更多請自行購買這本書。
這篇文章將會簡單介紹無瑕的程式碼(Clean Code)是一種什麼樣的程式設計流派,並且分享以及命名相關的概念。
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
這篇文章將會介紹函式(Function)及其回傳值(retrun)的定義及介紹。
這篇文章將會講述 Inspector 的簡易優化小技巧,並介紹系列文章。
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。