分类
CSharp|C#

dot Net体系命名指引——第二节:选词规则

.net 体系命名指引

第二节 选词规则

原则一:选择易读性强的命名方式。

解释:当名称由多个单词组成时,以可读性最强的方式排列它们。

例子:当需要命名一个表格形式的视图容器成员变量时,使用GridView可以比ViewGrid更清晰的定义这个变量。因为“View”既可以作为名词,也可以作为动词。当作为后者时,容易与函数命名的“动词+名词”模式搞混。

原则二:易读性优于缩略性。

解释:诚然使用较短的名称能够缩短每行代码的长度,但它不应该以牺牲易读性为前提。

例子:理科公式中很多量使用了单个西文字母表示,当需要将这些公式编程为函数时,这些量应该用其本来代表的实际意义来表示,至少也要用其读音来表示希腊字母。例如“ω”在某些公式中代表角度,这个量应该命名为Angle,至少也要命名为Omiga,而不是一个“w”。

原则三:尽量只用“英文字母和数字”的字符。

解释:即使某些语言允许使用除了英文字母和数字之外的字符来命名,也要少用。一定要用也要有统一的规则。

例子:为界面上的控件——“确定”按钮命名时,使用BtnConfirm已经能够清晰地分割“按钮”和“确定”两个语义。但是,有时Btn_Confirm这样的命名方式更快地传达出这是一个UI控件的成员,通常由模板生成的,不能自由删改。

原则四:彻底抛弃匈牙利命名法。

解释:使用帕斯卡命名法和驼峰命名法已经足够对付dot Net体系的程序元素。首先目前宇宙最强大的IDE——Visual Studio 2017已经能够非常娴熟地对付类型不匹配等早期错误。然后匈牙利命名法和帕斯卡命名法是完全冲突的。

例子:虽然不应该严格遵守匈牙利命名法,但是其中某些要素是可以吸收改造的。可以使用Is、Can等含有是否、能否语义的单词来代替b组合一个布尔型变量,如使用IsOpen而不是bOpen

原则五:不使用被各种编程语言广泛作为关键字的单词。

解释:很明显这会和编程语言本身产生语义级别的冲突。需要注意的是,C#的关键字就有一百多个。

例子:readonly是关键字之一,所以表示一个只读的变量时,使用IsReadonly

关于缩略语

不要自定缩略语。尤其是自定的缩略语会和已有的单词产生歧义。

尽量少使用缩略语,即使要使用缩略语,也要用被广泛接受的缩略语。

关于语言特有的命名

关注语义去命名而不是语言特性关键字。

例如GetLengthGetSizeGetCount是不同类里面的方法,返回的是一个整型的变量。这时使用前三者而不是GetInt更好。

使用一些常见的名字,如valueitem,而不是将成员和类型的名字起得一样。除非这个成员没有明显的语义,或者作为函数参数来说它的类型不重要。

分类
Chronicle|纪事

本站支持程序迁移至WordPress

很遗憾,本站的原支持程序BlogEngine.Net已经许久没有发布新版本了。

这意味着它已经进入了衰退期。

所以本站的支持程序选用了世界上最流行的博客程序——WordPress。

除了文章迁移了之外,其他内容已经永久删除。

特此通告,万一有人订阅了RSS呢。

分类
CSharp|C#

dot Net体系命名指引——第一节:命名法与分词

.net 体系命名指引

第一节 命名法与分词

帕斯卡命名法

所有单词的首字母大写

PascalCasing

只由一个单词构成

Seed

单词只由一个字母构成

CSharp

由两个单词的首字母缩写的词,都作大写

IPAddress

由大于两个单词的首字母缩写的词,只大写第一个字母

NbaStars

不是由首字母缩写的词,也只大写第一个字母

IdCard

驼峰命名法

除第一个单词首字母小写外,其余单词首字母大写

camelCasing

只由一个单词构成

value

单词只由一个字母构成

ePay

由两个单词的首字母缩写的词,都作小写

uiFramework

由大于两个单词的首字母缩写的词,都作小写

cssBuilder

不是由首字母缩写的词,都作小写

lvHolding

合成词的处理

计算机科学专业英语中,有很多常见的合成词。即能从一个单词中明显拆分出两个或以上的独立单词。

该合成词已被权威英语词典收录时,按一个单词处理

Password/password

否则按多个单词处理

UserName/userName

至于按哪本权威词典算,由组织内部决定,牛津、柯林斯等都可以。

美式英语偏好

由于编程语言由美国公司或组织发明、维护、贡献较多,且美式英语单词往往比英式英语更短,所以偏好使用美式英语词汇。

color colour

大小写敏感性

不同的语言对大小写敏感的支持不同。因此,不能以大小写的不同来区分不同的内容。

分类
Technology|技术

全栈工程师硬度指数

1 Extremely Soft EXS 极软级
二三线工作,管理,采购,财务,扫地,打水等

2 Ultra Soft US超软级
与编码无关的工作,算法设计,美工等

3 Very Soft VS 甚软级
网页前端设计等

4 Soft S 软级
桌面程序设计,移动设备应用设计,数据库设计,通讯协议设计,信息管理与处理等

5 Server Network SN 服务器与网络级
与后台服务器及网络有关的工作,服务器软硬件环境架设,组网等

6 Embedded E 嵌入级
与硬件编码有关的工作,嵌入式编程,单片机编程,PLC,FPGA等

7 Hard H 硬级
与实施设备安装与维护有关的工作,仪器的分拆,组装,维修等

8 Very Hard VH 甚硬级
与实施设备电路有关的工作,装置电路板设计等

9 Ultra Hard UH 超硬级
与实施设备机械有关的工作,装置结构设计与制造等

10 Extremely Hard EXH 极硬级
与实施环境有关的工作,土木,水路,强电布置与设计等