Unity之命名規(guī)范(二)

書接上回Unity 之命名規(guī)范(一)下面筆者說一些是示例和使用規(guī)范膜楷。在你自己的項目中可以使用這些或者根據(jù)自己的需要進行調(diào)整开瞭。


有錯誤或者不準確的地方歡迎留言指正



使用 PascalCasing 的類名稱和方法名稱

原因:與Microsoft的.NET Framework一致并且易于閱讀

public class ClientActivity
{
    public void ClearStatistics()
    {
        //...
    }
    public void CalculateStatistics()
    {
        //...
    }
}

使用camelCasing的方法參數(shù)和局部變量

原因:與Microsoft的.NET Framework一致并且易于閱讀

public class UserLog
{
    public void Add(LogEvent logEvent)
    {
        int itemCount = logEvent.Items.Count;
        // ...
    }
}

不要在標識符中使用Hungarian 符號或者任何其他類型標識

原因:與Microsoft的.NET Framework和Visual Studio IDE一致隆敢,使得確定類型變得非常簡單(通過工具提示)。一般來說政基,你應(yīng)該避免任何標識符中的類型指示符示辈。

// 正確寫法
int counter;
string name;
 
// 錯誤寫法
int iCounter;
string strName;

不要將Screaming Caps(這個我也不知道怎么翻譯,大概的意思是全部大寫)用于常量或只讀變量

原因: 與微軟的.NET Framework一致掌桩。Screaming Caps過于密集不方便閱讀

// 正確
public static const string ShippingType = "DropShip";
 
// 錯誤
public static const string SHIPPINGTYPE = "DropShip";

避免使用縮寫。一般用到縮寫的地方如:Id, Xml, Ftp, URL(這個確實重要波岛,例如:BT茅坛,在這項目中我怎么理解?则拷!變態(tài)贡蓖?按鈕?Big Tag煌茬? WTF3馄獭!坛善!)

原因: 與Microsoft的.NET Framework保持一致并防止縮寫不一致晾蜘。

// 正確
UserGroup userGroup;
Assignment employeeAssignment;
 
// 錯誤
UserGroup usrGrp;
Assignment empAssignment;
 
// 例外
CustomerId customerId;
XmlDocument xmlDocument;
FtpHelper ftpHelper;
UriPart uriPart;

使用PascalCasing縮寫3個或更多字符(2個字符都是大寫)

原因: 與微軟的.NET Framework一致邻眷。全部大寫在視覺上過度關(guān)注

HtmlHelper htmlHelper;
FtpTransfer ftpTransfer;
UIControl uiControl;

不要在標識符中使用下劃線

原因: 與微軟的.NET Framework一致,使代碼更加自然地閱讀

// 正確
public DateTime clientAppointment;
public TimeSpan timeLeft;
 
// 錯誤
public DateTime client_Appointment;
public TimeSpan time_Left;

使用 predefined type names 而不是系統(tǒng)類型名稱剔交,如Int16, UInt64等

原因: 與Microsoft的.NET Framework一致耗溜,使代碼更加自然。

// 正確
string firstName;
int lastIndex;
bool isSaved;
 
// 錯誤
String firstName;
Int32 lastIndex;
Boolean isSaved;

使用隱式VAR局部變量聲明省容。例外:原始類型(int抖拴,string,double等)使用預(yù)定義的名稱腥椒。(不過筆者不建議這么弄阿宅,看上去表達不清晰,當然單從觀賞性來講Var是個不錯的選擇)

原因:消除混亂,特別是復(fù)雜的泛型類型笼蛛。使用Visual Studio工具提示可輕松檢測類型洒放。

var stream = File.Create(path);
var customers = new Dictionary();
 
// Exceptions
int index = 100;
string timeSheet;
bool isCompleted;

使用名詞或名詞短語來命名一個類

原因:與Microsoft的.NET Framework一致并且易于記憶。

public class Employee
{
}
public class BusinessLocation
{
}
public class DocumentCollection
{
}

用字母I 做接口的前綴(你要是不寫I編輯器都會提醒你 )滨砍。接口名稱是名詞(短語)或形容詞往湿。

原因:與微軟的.NET Framework一致。

public interface IShape
{
}
public interface IShapeCollection
{
}
public interface IGroupable
{
}

根據(jù)他們的主要類來命名源文件惋戏。例外:具有部分類的文件名反映它們的來源或目的领追,例如designer, generated等。(換句話說就是有嵌套類的時候命名按照他們父類的名稱來响逢,例外說的就是見名知意绒窑,盡量減少讓閱讀者看到這個類猜這個類是干什么的~)

原因:符合微軟的做法。文件按字母順序排列舔亭,部分類保持相鄰些膨。

// Located in Task.cs
public partial class Task
{
    //...
}
// Located in Task.generated.cs
public partial class Task
{
    //...
}

用一個清晰定義的結(jié)構(gòu)來組織命名空間(就是說要分類劃分,就像動畫系統(tǒng)里面的命名功能不能寫到UI系統(tǒng)里面一樣)

原因:與微軟的.NET Framework一致钦铺。保持良好的代碼庫組織.

// Examples
namespace Company.Product.Module.SubModule
namespace Product.Module.Component
namespace Product.Layer.Module.Group

垂直對齊大括號订雾。

class Program
{
    static void Main(string[] args)
    {
    }
}

在類的頂部聲明所有成員變量,用在最高層的靜態(tài)變量矛洞。

原因: 普遍接受的做法洼哎,防止需要尋找變量聲明。

public class Account
{
    public static string BankName;
    public static decimal Reserves;
 
    public string Number {get; set;}
    public DateTime DateOpened {get; set;}
    public DateTime DateClosed {get; set;}
    public decimal Balance {get; set;}
 
    // Constructor
    public Account()
    {
        // ...
    }
}

使用單數(shù)名字枚舉缚甩。例外:位字段枚舉谱净。

原因:與Microsoft的.NET Framework一致,使代碼更加自然閱讀擅威。多個標志壕探,因為枚舉可以保存多個值(使用按位、或)郊丛。(這個筆記不是很清楚什么意思)

// Correct
public enum Color
{
    Red,
    Green,
    Blue,
    Yellow,
    Magenta,
    Cyan
}
 
// Exception
[Flags]
public enum Dockings
{
    None = 0,
    Top = 1, 
    Right = 2, 
    Bottom = 4,
    Left = 8
}

明確指定枚舉的類型或枚舉的值(除了位域)

原因:在依賴實際類型和值時會造成混淆

// 錯誤
public enum Direction : long
{
    North = 1,
    East = 2,
    South = 3,
    West = 4
}
 
// 正確
public enum Direction
{
    North,
    East,
    South,
    West
}

不要在枚舉名稱后綴再次添Enum

原因:與Microsoft的.NET Framework保持一致李请,與在標識符中沒有類型指標的規(guī)則一致瞧筛。(但是在unity中一般在Button的變量字段后綴都添加Button,例如Button openButton = null;)

// 錯誤
public enum CoinEnum
{
    Penny,
    Nickel,
    Dime,
    Quarter,
    Dollar
}
 
// 正確
public enum Coin
{
    Penny,
    Nickel,
    Dime,
    Quarter,
    Dollar
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末导盅,一起剝皮案震驚了整個濱河市较幌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌白翻,老刑警劉巖乍炉,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異滤馍,居然都是意外死亡岛琼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門巢株,熙熙樓的掌柜王于貴愁眉苦臉地迎上來槐瑞,“玉大人,你說我怎么就攤上這事阁苞±ч荩” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵那槽,是天一觀的道長悼沿。 經(jīng)常有香客問我,道長倦炒,這世上最難降的妖魔是什么显沈? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮逢唤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涤浇。我一直安慰自己鳖藕,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布只锭。 她就那樣靜靜地躺著著恩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜻展。 梳的紋絲不亂的頭發(fā)上喉誊,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音纵顾,去河邊找鬼伍茄。 笑死,一個胖子當著我的面吹牛施逾,可吹牛的內(nèi)容都是我干的敷矫。 我是一名探鬼主播例获,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼曹仗!你這毒婦竟也來了榨汤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤怎茫,失蹤者是張志新(化名)和其女友劉穎收壕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轨蛤,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蜜宪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了俱萍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片端壳。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖枪蘑,靈堂內(nèi)的尸體忽然破棺而出损谦,到底是詐尸還是另有隱情,我是刑警寧澤岳颇,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布照捡,位于F島的核電站,受9級特大地震影響话侧,放射性物質(zhì)發(fā)生泄漏栗精。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一瞻鹏、第九天 我趴在偏房一處隱蔽的房頂上張望悲立。 院中可真熱鬧,春花似錦新博、人聲如沸薪夕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽原献。三九已至,卻和暖如春埂淮,著一層夾襖步出監(jiān)牢的瞬間姑隅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工倔撞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讲仰,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓误窖,卻偏偏與公主長得像叮盘,于是被迫代替她去往敵國和親秩贰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評論 25 707
  • alert(a); function name(parameters) { alert(parameters); ...
    name阿喆azhe閱讀 1,047評論 0 3
  • 兩人開開心心到了家柔吼,白敬予坐在沙發(fā)上看著拜帖毒费。 “湘姐,湘姐愈魏,出來觅玻,我給你買了許愿燈呢,快出來放燈培漏∠澹”秦知魚朝屋里...
    雪拈憶閱讀 322評論 0 1
  • 寂靜的我,如思坐在門前牌柄。 看著丁香花開畸悬。 思緒萬千,卻只是那一點凡塵珊佣。 過去了蹋宦; 可曾想過? 那個在海上乘著帆船的男孩咒锻。
    靜的星華夜閱讀 108評論 0 4
  • 這兩天惑艇,張靚穎的婚姻事件把彌漫在長假綜合癥氣壓的眾人炸醒了蒿辙! 目前群眾掌握的線索包括:張媽公開反對女兒婚事,并指責...
    bf328d795906閱讀 414評論 2 0