• 分享,讨论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接口,及时释放资源
    希望大家可以共同分享编程的经验习惯,提高水平。谢谢!
  • 相关阅读:
    AngularJS Insert Update Delete Using PHP MySQL
    Simple task manager application using AngularJS PHP MySQL
    AngularJS MySQL and Bootstrap Shopping List Tutorial
    Starting out with Node.js and AngularJS
    AngularJS CRUD Example with PHP, MySQL and Material Design
    How to install KVM on Fedora 22
    Fake_AP模式下的Easy-Creds浅析
    河南公务员写古文辞职信
    AI
    政协委员:最大愿望是让小学生步行上学
  • 原文地址:https://www.cnblogs.com/jingtao/p/1169011.html
Copyright © 2020-2023  润新知