• 分享,讨论Programming的习惯


     1//写这篇文章的目的主要是和大家分享编程的习惯,如果有不对的欢迎大家支出,如果有更好的习惯方法也请提出来。
     2//当然文章还有许多的疏漏支出欢迎大家补全,真正做到完备!
     3
     4
     5//大小写规范:
     6//命名空间,类,结构体,方法名,属性名,static常量,每个单词首字母大写,接口以I开头,并且首字母大写如IDispose;const常量全部字母大写
     7//字段名每个单词首字母小写
     8
     9//起名规范以及理解:
    10//命名空间:公司+项目+包
    11//类,属性,字段,结构体:名词或者名词性词组(因为描述的是一类实体或者实体属性或者数据),类代表对事物的抽象,他自身有自己的属性和行为,
    12//例如人有自己的名字年龄等信息,同时能够说话,走路。结构体主要是对数据的一种组织。
    13//方法,接口:动词或者动词词组(描述的是行为,即CAN-DO)
    14
    15//字段,方法,属性,类等的名字要充分表达出他们自己的功能,能够让代码阅读者不需要看注释就能够知道她的意思,
    16//尽量不要缩写,毕竟无论名字多长编译器会帮助你做转化工作,当然也不要太长。呵呵,过尤不及么!
    17//例如:数据库连接sqlConnectionString与mysqlConnectionString表达出他们是连接字符串,sqlConnection与mysqlConnection表达出他们是连接对象
    18namespace CodeRule
    19{
    20    public class TestShow
    21    {
    22        //错误的习惯,不应该把内部字段暴露给其它对象,一是不符合规范,二是暴露实现细节
    23        public string name;
    24
    25        //正确的习惯
    26        private object aobject;
    27        /// <summary>
    28        /// 正确的方法,字段内部使用,其他对象只能通过属性来访问,不知道具体实现细节。当然如果属性是只有子类可见就应该把Public改为protected
    29        /// 如果是只读的就应该把Set去掉,我们不应该把暴露扩大化。
    30        /// </summary>

    31        private string name;            //    private int justToCompare   该处也返回Name,同样的功能,不同的内部实现,相同的访问方法
    32        public string Name              //    public string Name
    33        {                               //   {   
    34            get return name; }        //       get{return justToCompare.ToString();}
    35            set { name = value; }       //       set{justToCompare=Convert.ToInt32(value);}
    36        }
                                   //    }
    37
    38        //错误的习惯,既然通过属性可以进行Name的读写了,就不应该再提供方法对其的读写操作;二者可以选择其一,不过C#中主要通过属性,Java用方法的居多。
    39        public string GetName()
    40        {
    41            return name;
    42        }

    43        public void SetName(string name)
    44        {
    45            return name = name;
    46        }

    47
    48        //有的参数不能为空哪么就应该检查之,我们假设下面的aobject不能为空,哪么下面的习惯就是错误的,
    49        //我们应该先检查aobject在它为空的时候做一些处理,然后再执行其它操作,对于属性也是如此
    50        public void SetObject(object aobject)
    51        {
    52            this.aobject=aobject;
    53        }

    54    }

    55}

    56//其它:对于自定义集合类要实现IEnumerable接口,自定义事件以Handler结尾,自定义异常以Exception结尾,
    57//要实现IDisposable接口,及时释放资源
    希望大家可以共同分享编程的经验习惯,提高水平。谢谢!
  • 相关阅读:
    观察是快速成长的一个牛逼技能
    linux下使用lftp的小结(转)
    关于升级cocos2d-x网络库来支持ipv6、https,以及socket怎么支持ipv6
    cocos2dx支持arm64
    android studio 命令行编译cocos 3.15.1 安卓工程
    认识Android.mk和Application.mk
    mac os x下Android Studio3.0 配置本地 Gradle
    图片转成base64编码
    集成pbc
    6、SpringMVC:结果跳转方式 和 数据提交时的处理
  • 原文地址:https://www.cnblogs.com/jingtao/p/1169011.html
Copyright © 2020-2023  润新知