高质量代码实践

本博文首先分析了强调高质量代码的原因、判别标准::由于需求的不断变化,系统功能越来越多,而且越来越复杂,软件规模越来越大(代码行数>100万),导致开发以及维护的成本越来越高,开发效率越来越低,Bug越来越多,因此好的产品需要高质量的代码构建,从而提高开发效率,提升产品稳定性,输出外在质量高、内在质量高的产品;

本博文然后从代码实践中总结归纳出怎样写出高质量的代码::从基础的命名(名副其实,做有意义的区分,使用解决方案/业务领域可读的名称,类名/方法名,命名参考)到函数、类以及常用的设计模式、面向对象设计的开发原则(单一职责原则,开闭原则,里氏替换原则,接口隔离原则,依赖倒置原则)、一直到最顶层的模式与架构(分层架构模式,模型-视图-控制器架构模式,事件驱动架构);

 本博文给读者开发人员有正确的指引作用,产生共鸣;

原文地址:https://www.cnblogs.com/appsucc/p/10765892.html

时间: 2024-07-30 08:50:26

高质量代码实践的相关文章

每周一书-编写高质量代码:改善C程序代码的125个建议

首先说明,本周活动有效时间为2016年8月28日到2016年9月4日.本周为大家送出的书是由机械工业出版社出版,马伟编著的<编写高质量代码:改善C程序代码的125个建议>. 编辑推荐 10余年开发经验的资深C语言专家全面从C语法和C11标准两大方面深入探讨编写高质量C代码的技巧.禁忌和实践 C语言因为既具有高级语言特性,又具有汇编语言特性,所以它是近二十几年来使用较为广泛.生命力较强的编程语言.无论是操作系统.嵌入式系统.普通应用软件,还是移动智能设备开发,它都能够很好地胜任,是公认的强大的语

转载-------编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)

阅读目录 建议1:不要在常量和变量中出现易混淆的字母 建议2:莫让常量蜕变成变量 建议3:三元操作符的类型务必一致 建议4:避免带有变长参数的方法重载 建议5:别让null值和空值威胁到变长方法              The reasonable man adapts himself to the world; The unreasonable one persists in trying to adapt the world himself. 明白事理的人使自己适应世界:不明事理的人想让世

高质量代码三要素:可读性、可维护性、可变更性(转)

今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术.我们抛开任何具体的技术,来谈谈如何提高代码质量.如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情.如何提高代码质量呢,我认为我们首先要理解什么是高质量的代码. 高质量代码的三要素 我们评价高质量代码有三要素:可读性.可维护性.可变更性.我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码. 1. 可读性强 一提到可读性似乎有一些老生常谈的味道,但

[译]Quora是如何维持高质量代码的

原文链接:Moving Fast With High Code Quality译者:杰微刊—程慧 一个高质量的代码库可以加快长期开发的速度,因为它会使得迭代.协作和维护更加容易.在Quora,我们十分重视代码库的质量. 除了会取得收益之外,要维护高质量的代码,会带来一大笔间接费用,还会牺牲实际开发周期.很多人发现,实际产生的收益很难抵消这一间接费用,这时人们会面临两个选择:要么以低质量代码提升开发速度,要么维护高质量代码而牺牲开发速度.而对于初创公司来说,他们希望开发速度能快一些,所以就不得不使

代码质量优先——《编写高质量代码:改善c程序代码的125个建议》

高质量的代码不但可以促进团队合作.减少bug处理.降低维护成本,对程序员自身的成长也是至关重要的.很难想象一个参考<如何编写无法维护的代码>写代码的程序员技术成长的上限有多么低.为了写出高质量的代码,我们需要听取过来人的改善代码质量的经验,<编写高质量代码:改善c程序代码的125个建议>就是一本能让人写出高质量代码的好书. 本书的第三章<程序控制语句应该保持简洁高效>首先用简练的语言介绍了流程控制结构的概念,然后提供了对if.else.for.do-while.swit

[ 转 ]编写高质量代码:改善Java程序的151个建议

记得3年前刚到公司,同桌同事见我无事可做就借我看<编写高质量代码:改善Java程序的151个建议>这本书,当时看了几页没上心就没研究了.到上个月在公司偶然看到,于是乎又找来看看,我的天,真是非常多的干货,对于我这种静不下心的人真是帮助莫大呀. 看完整本书,也记了不少笔记,我就分享一部分个人觉得有意义的内容,也为了方便以后自己温习. --警惕自增陷阱 i++表示先赋值后自增,而++i表示先自增后赋值.下面的代码返回结果为0,因为lastAdd++有返回值,而返回值是自增前的值(在自增前变量的原始

编写高质量代码改善C#程序的157个建议——建议45:为泛型类型参数指定逆变

建议45:为泛型类型参数指定逆变 逆变是指方法的参数可以是委托或者泛型接口的参数类型的基类.FCL4.0中支持逆变的常用委托有: Func<int T,out TResult> Predicate<in T> 常用委托有: IComparer<in T> 下面例子演示了泛型类型参数指定逆变所带来的好处: class Program { static void Main() { Programmer p = new Programmer { Name = "Mi

编写高质量代码改善C#程序的157个建议——建议27:在查询中使用Lambda表达式

建议27:在查询中使用Lambda表达式 LINQ实际上是基于扩展方法和Lambda表达式的.任何LINQ查询都能通过扩展方法的方式来代替. var personWithCompanyList = from person in personList select new { PersonName = person.Name, CompanyName = person.CompanyID==0?"Micro":"Sun" }; foreach (var item in

编写高质量代码改善C#程序的157个建议——建议26:使用匿名类型存储LINQ查询结果

建议26:使用匿名类型存储LINQ查询结果 从.NET3.0开始,C#开始支持一个新特性:匿名类型.匿名类型有var.赋值运算符和一个非空初始值(或以new开头的初始化项)组成.匿名类型有如下基本特性: 即支持简单类型也指出复杂类型.简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项. 匿名类型的属性是只读的,没有属性设置器,它一旦被初始化就不可更改. 如果两个匿名类型的属性值相同,那么就认为这两个匿名类型相等. 匿名类型可以再循环中用作初始化器. 匿名类型支持智能感知. 匿名