好代码坏代码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
好代码坏代码

1.命名很重要,让代码告诉你它自己 命名到底有多重要呢? 重要到这几乎是很多软件项目成功或者失败的“罪魁祸首”,究其原因,代码不光支撑了0和1在计算机系统中运行的业务逻辑,同时也是开发者进行交流与研究的标准语言。没有意义或者有歧义的命名,就像两个等待交流的人,面对了一堆火星文无从下口,让交流变成灾难,也就导致很多问题。 同时,好的命名是自说明的,让代码告诉开发者“我是谁,我做什么,我怎么做”。当然,除了静态式的必要的注释说明之外,动态式的代码也可以包含传递信息的作用,让代码告诉你它自己,因为代码是“活的代码”。 例如,以某个缓存容器为例,泛型参数明确了容器的Key和Value的关系,其中的方法也基本明确了作为缓存容器所具有的方法:Add、Set、Clear、Refresh和IsExist,而TryGetValue是Try-Parse模式的应用体现。其中的变量container表示了容器载体;expiration表示了过期时间;config表示了容器的配置信息。 public?class?AtCacheTKey,?TValue { ????public?int?Count{ } ????public?ListTValue?Items{ } ????public?int?Expiration?{ } ????public?void?Add(TKey?key,?TValue?value){ } ????public?void?Set(TKey?key,?TValue?value,?int?expiry){} ????public?bool?TryGetValue(TKey?key,?out?TValue?value){} ????public?void?Clear(){ } ????public?bool?IsExist(TKey?key){ } ????protected?void?Refresh(){ } ????private?ReaderWriterLockSlim?rwLocker?=?new?ReaderWriterLockSlim(); ????private?DictionaryTKey,?CacheItemTKey,?TValue?container?=?new?DictionaryTKey,?CacheItemTKey,?TValue(); ????private?int?expiration; ????private?DateTime?lastRefresh?=?DateTime.Now; ????private?IAtCacheConfiguration?config; ????private?ListTValue?items; } 总体来说,让代码告诉它自己,是好代码的体现,而一堆没有意义的代码堆积是让人无法接受和容忍的坏代码。 2.遵守编码规范 编码规范,就是编码最佳实践,是前辈在编码这件事上的积累和总结,是智慧的延续和工业的实践。在软件产业日益蓬勃的今天,软件工业在于如何更有效率地进行生产这件事儿上,有了巨大的进步和积累,编码规范正是如此。例如可以随意列出很多的规范: ? 命名规范。 ? 避免行数过多的方法。 ? 代码缩进。 ? 异常规范。 ? 设计规范。 ? 注释规范。 ? 文件的组织规范。 ? 配置规范。 ? 发布与部署规范。 ? 测试规范。 ? SQL规范。 在以上每个领域都有N条“法规”,以最佳实践的条款被总结出来,每个条款都渗透着很多前人的智慧。同时,编码规范的应用是有选择和场合的,不同的软件公司和产品,对编码规范都有一定的理解和取舍。 但是,没有规范的编码,一定是有问题、潜伏着坏代码的幽灵。 3.遵守命名规则 命名已经被反复强调了,遵守编码规范首当其冲就是对于命名规范的遵守,对于命名规则,通常可选择的体系主要有: ? Pascal Casing,混合使用大小写字母,每个单词的首字母必须是大写,例如FirstName。 ? Camel Casing,混合使用大小写字母,第一个单词的首字母是小写,其他单词的首字母是大写,例如firstName。 ? 匈牙利命名法,通过属性、类型和对象描述混合来表示,例如frmMainWindow,表示一个窗体实例的命名。 不过,对于不同的语言体系而言,一般有着不同的命名规范和体系,很多不同的语言对于命名规范的选择也有差别。以C#语言为例,最基本的命名规则包括: ? 以Pascal Casing风格定义命名空间、类及其成员、接口、方法、事件、枚举等。 ? 以Camel Casing规范定义参数、私有成员。 ? 避免使用匈牙利命名法。 ? 以Attribute作为特性的后缀。 ? 以Delegate作为委托的后缀。 ? 以Exception作为异常的后缀。

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档