zoukankan      html  css  js  c++  java
  • 设计规范基础

    前一段时间阅读了“.NET设计规范”这本书,读后给我的感觉是规范对开发人员有着举足轻重的重要,可能我们都有自己的想法,但我相信遵循这些前辈们总结的规范将给我们的开发带来裨益,所以熟知这些开发规范并养成良好的习惯是需要我们坚持的,慢慢这些规范将潜移默化的影响着我们!

      1.80/20原则

        所谓的80/20原则,是在一些特殊情况下,要重视那“20%”的部分,“80%”的部分可以减轻重视度,其实我们大多数人都知道有这么一个原则,但是我还没有真正的把这个原则用于实践中去,如果你常用这个原则去审视一些大型项目的话,那里面就会有很多设计用刀这个原则的,比如前一段时间一篇文章关于“baidu”以及“Google”的分页问题,它就很好的运用了80/20这一个原则,好了,不多说了,开始规范之旅...

      

        2.类型命名规范

        2.1大小写规范

          有两种命名术语:①PascalCasing → 帕斯卡命名法 (单词的首字母要大写)

                  ②camelCasing → 驼峰命名法 (第一个单词的首字母小写)

          注意事项:

          ①要把“camelCasing ”规范用于参数以及变量的命名

          ②命名时不要使用首字母缩写 ,除了特殊情况,如 → System.IO

          ③“PascalCasing”使用的主要区域为 → 图示 

           

            

        2.2类型名称单词的选择

          ①要为名称选择易于阅读的名字

          ②不要跟C#中的关键字产生冲突      

          ③不要使用单词缩写以及单词的首字母缩写

          ④不要使用那些还没有流行的首字母缩写

          ⑤选择的单词要有含义

     

        2.3命名空间

          规范:简单易懂,并具有概括性

          

          具体规范如下:

           ①使用公司名作为前缀

                     ②使用稳定的,与版本无关的产品名称作为空间的第二层!

                     ③使用PascalCasing大小写风格!

                     ④考虑在适当的名称中使用复数 → System.Collections

                     ⑤不要引入太一般的类型名,如Log,Message,应该在它们之前加上限定词!

           Note:书中有介绍程序集的章节,只可惜我对它理解的不是很好,就没有写上来!

     

        2.3类,结构,接口的命名

          Note:类型名应该是一个名词名词词组,如果没有为类型名找到一个很好的名词或名词词组,那么应该考虑重新设计名称了!

          选择名称的方法:首先你要知道你设计的类型应用于哪个场景,知道这个场景是干嘛的,然后选择合适的名词或名词词组进行设计!

          如:Stream,StreamReader,TextReader,StringReader这一类的名称设计,或者我要设计一个Json的操作类库,可以命名为 → JsonOperation

          具体规则:      

           ①使用名词或名词词组进行命名,并采用“PascalCasing”大小写风格!

                     ②不要给任何一个类型名加前缀,这是大忌(接口除外)!

                     ③考虑让派生类的名称以基类的名称结尾

                          如:Exception,它所有的派生类都是以“Exception”基类名称结尾!

                               或者是“Attribute”之类的

           .NET Framework中的一些派生类命名规则(详细的在后一篇文章会涉及到),图示:

     

             

                     ④接口 → 以字母“I”为前缀开头,这样使用者就一目了然,这是一个老习惯了!

                     ⑤应该使得实现接口的类型名跟接口名只相差一个字母“I”!

            如:接口IJsonOperation,实现它的类名称应该为 → “JsonOperation”

     

        2.4泛型类型参数的命名      

          ①要尽可能的用描述性的名字来命名泛型类型参数,应该在单词前面加上前缀“T”

          

          ②考虑用“T”来命名参数类型

                           如果只有一个参数类型,如 → List<T>

          ③如果泛型参数有了泛型约束,应该把约束的类型名追加的泛型参数上

                           可以把一个被限制为ISession接口的类型参数命名为 → “TSession”

        

        2.5枚举类型的命名

          ①也要遵守“PascalCasing”大小写规范

          ②要用单数名词来命名枚举类型

          ③要用复数名词来表示“位标记(Flags)”的枚举类型,如:

    •   [Flags]
    • public enum Colors //如果是为标志,建议采用复数的形式
    • {
    • Read,
    • Black,
    • Yellow
    • }

          ④不要给枚举名添加“Enum”或者“Flag”或“Flags”的后缀,也不要添加前缀

        

        虽然很基础,但是对于我们这些门外汉有着举足轻重的作用,一起努力!

        下一篇:.NET设计规范二:类型成员设计

    04 2012 档案
     
    .NET设计规范一:设计规范基础
    摘要: 前一段时间阅读了“.NET设计规范”这本书,读后给我的感觉是规范对开发人员有着举足轻重的重要,可能我们都有自己的想法,但我相信遵循这些前辈们总结的规范将给我们的开发带来裨益,所以熟知这些开发规范并养成良好的习惯是需要我们坚持的,慢慢这些规范将潜移默化的影响着我们! 1.80/20原则 所谓的80/20原则,是在一些特殊情况下,要重视那“20%”的部分,“80%”的部分可以减轻重视度,其实我们大多数人都知道有这么一个原则,但是我还没有真正的把这个原则用于实践中去,如果你常用这个原则去审视一些大型项目的话,那里面就会有很多设计用刀这个原则的,比如前一段时间一篇文章关于“baidu”以及...阅读全文
    posted @ 2012-04-18 21:28 程序猿就是我 阅读(726) | 评论 (1) 编辑
     
    学习之路十一:JSON(序列化与反序列化)
    摘要: 最近公司项目中用到了Json操作,从.NET后台读取数据,通过Json转化在传给“Andiron”端呈现,于是通过几天的学习,对它有了一点的理解! 1.Json的理解 Json其实就是一个序列化和反序列化的操作,而通过序列化操作之后的数据可以跨平台使用,这就促使了可以使用两个平台,一个做后台,一个做前台,数据访问层通过Json来传递! 2.可以序列化的标志 1 [Serializable]2 public class MyPeople3 {4 public string Name { get; set; }5 6 ...阅读全文
    posted @ 2012-04-13 21:14 程序猿就是我 阅读(1605) | 评论 (12) 编辑
     
    学习之路十:简单的系统架构图
    摘要: 刚刚来到一家新公司,首先会对项目进行一个大致了解,研究了两天了,有了个总体的把握了,下面就是我这个小菜鸟画的简单系统架构图! 有的时候架构庞大的吓人,有的时候架构一眼看穿,但里面却暗藏杀机,真的需要我们去认真学习,揣摩! 不久前在园子里面看过一篇文章其中说道,设计架构无非就是一个字 → “拆”,当时看到这个字,想起来还真的是这么一回事,不过这里面去包含了很多的东西,我们现在就是不知道怎么拆,这个也不是一时半会能够了解的,需要我们认认真真的做,慢慢的积累,到时候就知道怎么拆了,而且还拆的很到位,所以加油! 对于这个拆字园友们也给出了很多的理解,这是只是个人看法! 还请各位园友多多...阅读全文
    posted @ 2012-04-06 17:51 程序猿就是我 阅读(2650) | 评论 (13) 编辑
     
    新的环境,新的人,新的态度
    摘要: 今天来新公司报道,早上来的早,新公司的人还没有来,扫了几眼工作环境,还不错,虽然是刚刚装修过的,还有点凌乱,但是总体感觉还好! 客套话就不是说了,主要就说下三点感受! 1.工作环境 搞IT的,配置一台自己用起来舒服的电脑是最基本的需求了! 因为在上一家公司我用的电脑总是卡死,好几次都想砸键盘,一直不敢重载系统,因为如果重装一定会破坏开发环境,这个是很麻烦的,所以一直在忍着! 今天报道公司给我们刚来的新同事配置了一台配置相当高的电脑,内存4G,ICore7处理器,大屏幕,独立显卡和集成显卡并存,高兴,我想以后工作起来就会很舒服! 其实对待工作要有一定的激情,有的时候...阅读全文
    posted @ 2012-04-02 18:02 程序猿就是我 阅读(177) | 评论 (5) 编辑
  • 相关阅读:
    自动跳转至首页(Java Script)
    简单的轮播图(Java Script)
    蓝桥杯 2016年 第七届 四平方和(JAVA)
    蓝桥杯 2016年 第七届 剪邮票(JAVA)
    蓝桥杯 2015年 第六届 生命之树(JAVA)
    蓝桥杯 2015年 第六届 垒骰子(JAVA)
    numpy笔记
    opencv安装和运行
    vs code环境配置注意点
    numpy中matrix使用方法
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2456640.html
Copyright © 2011-2022 走看看