zoukankan      html  css  js  c++  java
  • Visual Studio 代码风格约束

    团队内部若能统一代码风格对于日后的项目维护大有裨益,但面对厚达十几甚至几十页的代码风格规范,开发人员难免产生抵触心理。Python和Go等在语言层面就对代码风格作了一定的约束,但C#并没有,为解决这个问题,我们可以在VS中设置团队内部要统一采用的代码风格。

    文中所用VS版本信息如下:

     

    设置代码风格

    在VS搜索框中搜索Code Style

     
     

    我们可以自定义代码风格(注意自定义规则顺序,是由上至下以此判断是否符合规则)以及对不符合风格代码做怎样的处理,这里是按照错误进行处理 

     

    可以看到对于不符合规范的命名VS会报错并给出改建建议:

     


    注意,这里的错误是IDE1006:Naming rule violation,编译时依然能通过(没找到在哪里设置不允许通过编译):

     

    下面是代码风格示例代码,仅供参考:

    class Person
    {
        private const string FIRST_NAME = "firstName";
    
        private static string StaticField = "static field";
    
        private readonly string ReadOnlyField = "readOnlyField";
    
        private string _privateField;
    
        public Person(string privateField)
        {
            _privateField = privateField;
        }
    
        public void Method(int parameters)
        {
            try
            {
                var local = "";
                WriteLine(parameters);
            }
            catch (Exception)
            {
            }
            finally
            {
            }
        }
    }
    
    delegate void DelegateType(int i);
    
    struct ValueType
    {
        public event DelegateType DelegateTypeEvent;
    
        public void DelegateType()
        {
            if (DelegateTypeEvent != null)
            {
                for (var i = 0; i < 10; i++)
                {
                    DelegateTypeEvent(i);
                }
            }
            else
            {
                throw new NullReferenceException();
            }
        }
    }
    
    interface IPerson
    {
        void Say(string parameters);
    }
    
    enum WeekDays
    {
        Monday,
        Tuesday
    }

    工具推荐

    阿里团队的适用于JAVA代码风格检测插件P3C安装到IDEA中后,会对代码风格进行检测并给出改进建议

    小结

    统一的代码风格很重要,在编码时我们要求代码结构灵活易扩展,但对于代码风格应当讲究“死板”,不可灵活多变。

    若团队内部的任一成员拿到项目代码一眼望去感觉像自己写的,那么我们就可以认为团队内的代码风格已经统一了。目前,我还不赞成过于苛求细节的代码风格约束(这种想法将来可能会变)。

    推荐阅读

    Visual Studio 2017 C# productivity guide

  • 相关阅读:
    求链表的倒数第k个节点
    打印蛇形矩阵
    数组元素前移问题(今日头条笔试题)
    单链表的节点内数据值的删除问题(携程网笔试题)
    子树判断问题(百度笔试题)
    求链表的第一个公共节点问题(好未来笔试题)
    正则表达式常用总结
    正则表达式start(),end(),group()方法
    test、exec、match区别
    matches()方法
  • 原文地址:https://www.cnblogs.com/Cwj-XFH/p/9549128.html
Copyright © 2011-2022 走看看