• C#操作手册(一):命名规范 熊泽


    代码规范在研发项目团队中有着重要作用,团队统一代码规范,有助于提升代码可读性以及工作效率。

    代码规范主要包括命名、版式、注释等几个方面:

    其中命名包括变量、类、方法、文件名、数据库、表、字段、接口等方面。

    版式包括缩进、换行、对齐、大括号、循环体、逻辑判断等方面。

    注释包括包注释、文件注释、类注释、方法注释、参数注释、变量注释、代码片段注释等。

    那么微软官方本身也是拟了一些草稿规范的,传送门:C# 6.0 草稿规范,拜读了官网后,感觉就是一个标准的官方发言,然后分段整理整理了一下。

    PS:当前更新命名规范,更多还在持续整理中。

    命名规范:

    所有命名(类名、属性名、变量名、常量名、属性名)必须以字母开头(a-z、A-Z),不能以特殊字符(_、$)开头。

    1、【强制】类名命名规则:大驼峰命名法【DTO、POCO、VO等除外】

    public class UserInfo{}

    2、【强制】属性命名规则:大驼峰命名法

    public string UserInfo { get; set; }

    3、【强制】字段、参数、成员变量、局部变量命名规则:小驼峰命名法

    public string userName;
    public string GetUserName(string userId) { return "userName"; }

    4、【强制】方法/函数命名规则:大驼峰命名法

    public int GetUserInfo() { }

    5、【强制】常量命名规则:名称全部大写,单词间用下划线_分开

    public const string USER_NAME = "userinfo";

    6、【强制】DTO、POCO、VO命名规则:大驼峰命名法+DTO/VO/POCO等

    public class UserInfoDTO { }
    public class UserInfoVO { }
    public class UserInfoPOCO { }

    7、【强制】命名空间命名规则:大驼峰命名法

    namespace UserInfo { }

    8、【强制】枚举命名规则(枚举名称采用大驼峰命名规则,枚举成员所有名称也使用大驼峰命名法)(没有特殊情况的话,枚举成员建议从默认值0开始)

        public enum UserState
        {
            Success,
            Fail
        }

     9、【强制】代码中所有成员禁止直接使用中文的命名方式,禁止使用中文拼音命名(一些通用的命名除外:比如城市可以采用beiJing、shangHai这样的命名规则是可以的),禁止使用中英文混合命名方式,禁止出现a、b、c、aa、ss、x、xx等毫无意义的命名方式

    10、【推荐】复数类型(集合类、数组等)命名规则:优先以小写字符s结尾,如果单词最后的字母就是s或其他不适合s结尾的单词,可以使用复数类型的类型名称结尾(如List、Array等结尾)。前面规则如果都不好命名,可自行命名

    public List<string> userNames { get; set; }
    public string[] userNameArray { get; set; }
    public List<string> userNameList { get; set; }

    11、【强制】接口命名规则:以大写字母I开头+类名称

    public interface IUserInfo { }

    12、【强制】异常类命名规则:大驼峰命名法+Exception

    public class UserInfoException { }

    13、【强制】项目命名规则:大驼峰命名法,各个字母之间用字母(.)隔开

    XiongZe.ProjectManagement.Services

    14、【推荐】业务层和数据层名命名规则:业务层类库名称命名规则:以Service结尾、数据层类库命名规则:以Repository结尾

    1. 获取数据的方法以Get开头(加上要获取的对象名)。如获取单个对象,可以使用Get()、GetUserInfo()。获取复数对象(集合类),可以使用Gets()、GetUserInfos()。
    2. 新增数据的方法以Insert开头(加上要获取的对象名)。如往数据库中新增一条记录,方法命名为Insert()、InsertUserInfo()。往数据库中新增多条记录,方法命名为Inserts()、InsertUserInfos()。
    3. 删除数据的方法以Delete/Remove(加上要删除的对象名)。如删除数据库中的一条记录,方法命名为Delete()、DeleteUserInfo()。删除数据库中的多条记录,方法命名为Deletes()、DeleteUserInfos()。
    4. 修改数据的方法以Update开头(加上要修改的对象名)。如修改一条数据信息,方法命名为Update()、UpdateUserInfo()。修改多条数据的信息,方法命名为Updates()、UpdateUserInfos()。

    编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码。

    为了执行规范,每个软件开发人员必须一致遵守编码规范:

    • 使用统一编码规范的主要原因,是使应用程序的结构和编码风格标准化,以便于阅读和理解这段代码;
    • 好的编码约定可使源代码严谨、可读性强且意义清楚,与其它语言约定相一致,并且尽可能的直观。

    高质量的代码往往具有如下特质

    • 易懂性 – 代码必须易读且简单明确的。它们必须能展示出重点所在,且代码应该做到易于重用,不可包含多余代码,它们必须带有相应文档说明。
    • 正确性 – 代码必须正确展示出其要告知使用者的重点。代码必须经过测试,且可以按照文档描述进行编译和正确运行。
    • 一致性 – 代码应该按照一致的编程风格和设计来保证代码易读。 同样的,不同代码之间也应当保持一致的风格和设计,让使用者能够很轻松的结合使用它们。一致性能将我们代码库优良的品质形象传递给使用者,展示出我们对于细节的追求。
    • 流行性 – 代码应当展示现行的编程实践,例如使用 Unicode,错误处理,防御式编程以及可移植性。代码应当使用当下推荐的运行时库和API函数,以及推荐的项目和生成设置。
    • 可靠性 – 代码必须符合当地法律,隐私和政策标准和规范。不允许展示入侵性或低质的编程实践,不允许永久改变机器状态。所有的安装和执行过程必须是可以被撤销的。
    • 安全性 – 代码应该展示如何使用安全的编程实践 :例如最低权限原则,使用运行时库函数的安全版本,以及SDL推荐的项目设置。

    合理使用编程实践,设计和语言特性决定了示例代码是否可以很好满足上述特性。

    以上,只是规范不是规定,所以不是强制要求一定要这样做,大家自取所需就好了。

    如有不合理之处,也接受大家的批评指正。

     
    欢迎关注订阅微信公众号【熊泽有话说】,更多好玩易学知识等你来取
    作者:熊泽-学习中的苦与乐
    公众号:熊泽有话说
    出处: https://www.cnblogs.com/xiongze520/p/15508064.html
    您可以随意转载、摘录,但请在文章内注明作者和原文链接。  

     

  • 相关阅读:
    基于Swoole的HTTP/HTTPS代理
    Java9新特性系列(module&maven&starter)
    Java9新特性系列(module&maven&starter)
    Java9新特性系列(module&maven&starter)
    Java9新特性系列(module&maven&starter)
    RxJava2源码解析(二)
    C#中的委托和事件(续)
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/xiongze520/p/15508064.html
Copyright © 2020-2023  润新知