Unity C# | Clean Code #3 註解

更新於 2023/04/14閱讀時間約 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. 程式碼本身就是文章

  最後,我打算再強調一次,程式碼本身具有可讀性,寫程式跟寫文章都是為了讓讀者看懂,讓下一位閱讀這份文章的人,能理解這份程式是在做什麼,撰寫程式的根本邏輯,就是為了「可讀性」這一件事情而已。
為什麼會看到廣告
avatar-img
105會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
這篇文章將會分享 Clean Code 關於函式的重點,內容主要以個人閱讀後有印象的部分著手,有興趣了解更多請自行購買這本書。
這篇文章將會簡單介紹無瑕的程式碼(Clean Code)是一種什麼樣的程式設計流派,並且分享以及命名相關的概念。
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
這篇文章將會介紹函式(Function)及其回傳值(retrun)的定義及介紹。
這篇文章將會講述 Inspector 的簡易優化小技巧,並介紹系列文章。
這篇文章將會分享 Clean Code 關於函式的重點,內容主要以個人閱讀後有印象的部分著手,有興趣了解更多請自行購買這本書。
這篇文章將會簡單介紹無瑕的程式碼(Clean Code)是一種什麼樣的程式設計流派,並且分享以及命名相關的概念。
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
這篇文章將會介紹函式(Function)及其回傳值(retrun)的定義及介紹。
這篇文章將會講述 Inspector 的簡易優化小技巧,並介紹系列文章。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
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
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
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未來的營運狀況。