Unity 專案程式碼管理(一)

閱讀時間約 3 分鐘

前情提要

每個專案開發,都是由多個工程師來完成,就算只有一個人,隨著專案增量,你便會與過去的你面對面,這時候程式碼的可讀性高低就會成為左右你開發效率的一塊石頭,這篇就來說說幾個程式碼管理的小撇步。


Region

程式碼區塊,是最簡單可以把程式碼分類的方法,得益於各種 IDE 、編輯器都非常方便了,無論使用哪一種基本上都能將 region 區塊摺疊起來閱讀。

我是比較喜歡使用 VS Code

VS Code

VS Code

Visual Studio

Visual Studio

Early Return

這是很基本的程式碼撰寫風格,能有效解決一些波動拳 if-else 的問題。

有些更單純的賦值操作,應該用三元運算子、模式匹配來完成

不妨將條件反轉改成


Partial Class

很多人不知道可以使用 Partial 這個關鍵字將一個 class 分別寫在不同的腳本內,以此來達到程式碼的分類。


Summary

在多人協作中最常接其他人的方法來用,儘管方法名稱命名得很好了,有時候還是不太知道傳入的參數、回傳的值在做些甚麼事情。
同樣得益於編輯器進步,這時候有寫 summary 告訴其他人這個方法的用法就很重要。

在 Visual Studio 內預設就有/// 三撇生成 summary 的功能,而 VS Code 需要安裝插件。

有使用到泛型時,類型約束、回傳的類型最好要明確說明
C# 的 Summary 是使用 XML 來撰寫
VS Code

VS Code

Visual Studio

Visual Studio


Git Commit / Message

首先, commit 盡量不要包山包海,盡可能一個 commit 只做一個 feature 、修一個 bug 。

雖然協作時審 PR 很花時間(所以常常口頭上說一下就給勾勾了),但比起看 PR 內容,我更常用 commit 來知道這次的 PR 做了些啥。

硬性的撰寫格式要由團隊成員達成共識,比較有趣且好用的案例像是 GitMoji
Summary 的部分,我自己習慣的寫法是:

< Add / Fix / Remove > < Subject >

而 Body 的部分逃不開 Implement 、Refactor 等關鍵字。一個好的 commit message 通常包含了:

  • 做了啥
  • 為了啥
  • 如何做到

但也要注意不要過長,如果為了一個 commit 花太長時間編輯 message 可就本末倒置了。


後記

對於這個專案程式碼管理的系列我想出個 2~3 篇,算是有感而發吧,近幾個專案都是接做一半的,而我也正在重構半年前開發到一半的遊戲,因為沒有做好程式碼的整理,導致讀程式碼壓縮了實作的時間。

離上次開方格子寫文章隔了半個月,這裡終於支援程式碼了!可能有越來越多跟程式設計相關的創作者加入了,目前支援的語言不多,我也還是用 gist 來寫示範以方便修正,但滿意外有支援 Rust 的。

另外有一篇關於 Unity Screen Space 的文章一直卡在那邊難產,應該會找時間把它完成......

avatar-img
6會員
10內容數
只要10分鐘!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
#Jaku的沙龍 的其他內容
C# 9.0 給 Unity 程式設計上帶來的便利
如何使用Game CI 提供的Github Action 將建置專案自動化
UnityEvent 簡單介紹。
C# 9.0 給 Unity 程式設計上帶來的便利
如何使用Game CI 提供的Github Action 將建置專案自動化
UnityEvent 簡單介紹。
你可能也想看
Google News 追蹤
Thumbnail
改稿真的不是一件需要太多情緒的事,把錯的挑出來、改掉,就這麼簡單!很少有什麼「大錯」需要去爭執誰對誰錯。不過真的滿多時候鬼遮眼或是偶爾真的會發生某種「明明前一版是對的,這一版居然是錯的」的鬼故事,把問題找出來解決就好!
Thumbnail
本章講述了C#開發中的程序集,命名空間和 NuGet 包管理器。程序集是 .NET 應用的基礎,命名空間用於組織和預防命名衝突,而 NuGet 用於管理 .NET 的外部庫和依賴項。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
追求乾淨的程式碼是好的開始,但不要陷入過度設計的陷阱,導致程式難以維護。實際上,考慮團隊狀況和專注於解決真正的問題更為重要。了解公司的規模和現實情況,適時調整工作重心。技術不斷進步,使得寫程式變得更加容易,但這並不意味著工程師的角色會消失。在選擇技術時,也要考慮隱形成本有時簡單的解決方案反而更有效。
Thumbnail
資料的統合 在程式設計中,其他人通常關心是否注意到執行的細節。作為程式設計師,主要應該關心的是程式的表現,但往往忽略了很多細節,這些細節可以決定程式的好壞。程式的好壞很大程度上取決於資料的統合,也就是資料是否被正規化。 不同類型的資料在系統中呈現一致 正規化可能對一些人來說聽起來很抽象,有些人
Thumbnail
改稿真的不是一件需要太多情緒的事,把錯的挑出來、改掉,就這麼簡單!很少有什麼「大錯」需要去爭執誰對誰錯。不過真的滿多時候鬼遮眼或是偶爾真的會發生某種「明明前一版是對的,這一版居然是錯的」的鬼故事,把問題找出來解決就好!
Thumbnail
本章講述了C#開發中的程序集,命名空間和 NuGet 包管理器。程序集是 .NET 應用的基礎,命名空間用於組織和預防命名衝突,而 NuGet 用於管理 .NET 的外部庫和依賴項。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
追求乾淨的程式碼是好的開始,但不要陷入過度設計的陷阱,導致程式難以維護。實際上,考慮團隊狀況和專注於解決真正的問題更為重要。了解公司的規模和現實情況,適時調整工作重心。技術不斷進步,使得寫程式變得更加容易,但這並不意味著工程師的角色會消失。在選擇技術時,也要考慮隱形成本有時簡單的解決方案反而更有效。
Thumbnail
資料的統合 在程式設計中,其他人通常關心是否注意到執行的細節。作為程式設計師,主要應該關心的是程式的表現,但往往忽略了很多細節,這些細節可以決定程式的好壞。程式的好壞很大程度上取決於資料的統合,也就是資料是否被正規化。 不同類型的資料在系統中呈現一致 正規化可能對一些人來說聽起來很抽象,有些人