• 提倡良好的代码风格

1、整洁

2、统一

3、流行

4、便捷

现在的项目中源代码主键增多,完全依靠人工来做代码走查很难查出问题,我们可以使用工具来统计代码,这里推荐使用Checkstyle,他可以自定义代码模板,然后根据模板检查代码是否遵循规范,从而减少枯燥的代码走查。

  • 不要完全依靠单元测试来发现问题

不能保证代码中的所有错误都能被单元测试挖掘出来,原因有以下四点。

1、单元测试不可能测试所有的场景(路径)

2、代码整合错误是不可避免的

3、部分代码无法(或很难)测试

4、单元测试验证的是编码人员的假设

  • 让注释正确、清晰、简洁

不好的注释习惯:

1、废话式注释

2、故事式注释

3、不必要注释

4、过时的注释

5、大块注释代码

6、流水账式注释

7、专为JavaDoc编写的注释

好的注释习惯:

1、法律版权信息

2、解释意图的注释

3、警示性注释

4、TODO注释

  • 让接口的职责保持单一

单一职责有以下三个优点:

1、类的复杂度降低

2、可读性和可维护性提高

3、降低变更风险

如何实施单一职责原则:

1、分析职责

2、设计接口

3、合并实现

注意:接口职责一定要单一,实现类职责尽量单一。

  • 增强类的可替换性

设计类的考虑以下三点:

1、子类型必须完全实现父类型的方法

2、前置条件可以被放大

3、后置条件可以被缩小

  • 依赖抽象而不是实现

遵循以下几个规则:

1、尽量抽象

2、表面类型必须是抽象的

3、任何类都不应该从具体类派生

4、尽量不要覆写基类的方法

5、抽象不关注细节

  • 抛弃7条不良的编码习惯

1、自由格式的代码

2、不使用抽象的代码

3、彰显个性的代码

4、死代码

5、冗余代码

6、拒绝变化的代码

7、自以为是的代码

  • 以技术员自律而不是工人

1、熟悉工具

2、使用IDE

3、坚持编码

4、编码前思考

5、坚持重构

6、多写文档

7、保持程序版本的简单性

8、做好备份

9、做单元测试

10、不要重复发明轮子

11、不要拷贝

12、让代码充满灵性

13、测试自动化

14、做压力测试

15、“剽窃”不可耻

16、坚持向敏捷学习

17、重里更重面

18、分享

19、刨根问底

20、横向扩展

杂谈:良好的编程思想。相关推荐

  1. 类的包访问权限:《Java编程思想》中一段话的困惑

    类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...

  2. 译者招募 | 《Java编程思想》作者Bruce Eckel新作On Java 8

    硅谷创业之父Paul Graham曾在<黑客与画家>中写道,"判断一种语言是否流行的条件是,一种免费的实现,一本相关书籍,以及语言所依附的计算机系统." 当然,Java ...

  3. 《Java编程思想》学习笔记(三)——初始化与清理

    一.初始化 初始化其实就是为变量分配内存空间,并确定其初始值的过程.想了解Java中初始化的各种情况,首先要了解Java中变量的类型.根据自己的理解,将Java中的变量类型分成以下几种,虽然可能不太准 ...

  4. 《Java编程思想》第四版读书笔记 第十四章 类型信息

    2019独角兽企业重金招聘Python工程师标准>>> 14.2 RTTI运行时类型识别. Class对象包含了与类有关的信息,Java使用Class对象来执行其RTTI.每个类都有 ...

  5. 几种常用编程语言的编程思想和方法 转

    搞软件的人,编程语言的掌握是基本功,如果单单是学习语法,最慢的一周之内也应该可以搞定(个人认为 语法层面c++是最复杂的).不幸的是,软件的本质是逻辑,解决方案的设计是要借助某种解决问题或编程的思想的 ...

  6. 1.1.3 以类为单位的编程思想

    我的克隆过程,是通过这个语句完成的SqlConnection conn = new SqlConnection(); ,你不会有意见吧? 二.执行查询命令并显示查询结果 打开数据库,总要做点事,我们来 ...

  7. java编程思想 入门_java编程思想学习(基础)

    第一章 java介绍 1.编程的本质: 机器空间:解空间 问题空间:实际需要解决的业务问题,将该问题抽象化,在解空间中对问题建模. 编程就是建立问题空间和机器空间中的关联 面向对象编程思想: 1.万物 ...

  8. Java中的泛型 --- Java 编程思想

    前言 ​ 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...

  9. 《Java编程思想》读书笔记 第十三章 字符串

    <Java编程思想>读书笔记 第十三章 字符串 不可变String String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修 ...

  10. JAVA编程思想学习笔记——第一章 对象导论

    搞了一年多java,野路子出身,发现java基础这块还是相当的薄弱!故决定学习<Java编程思想>这本书.在此把学习的知识点记录下! 面向对象的五大特性 1.万物皆为对象 2.程序是对象的 ...

最新文章

  1. 阿里6年32岁程序员:辞职在中小厂干了快两年,我怎么没有职场危机(年龄)?
  2. 使用委派调用对象的方法
  3. 如何解决IIS7上传文件大小限制【转】
  4. 25道Spring框架面试题
  5. 设置linux服务,Linux服务的seLinux设置
  6. SAP Spartacus里使用injection token提供默认配置的一个例子
  7. python程序代码解析_Python源码分析3 – 词法分析器PyTokenizer
  8. Java ClassLoader setPackageAssertionStatus()方法与示例
  9. 有关家居产品设计的外国专著_为啥外国的二手家具被称为vintage,中国就叫破烂?差在哪儿了?...
  10. 以下关于组装微型计算机的叙述 不正确的是,昆明理工大学 计算机系统练习题...
  11. (七)图像处理中常用算子Laplacian\Sobel\Roberts\Prewitt\Kirsch
  12. 【RS3精简版】月伴流星LiteWin10_Pro_(RS3_16299.19)精简专业版x86/x64合集2017.11
  13. Himall商城枚举帮助类EnumHelper(2)
  14. win下hadoop配置环境后cmd中报错
  15. 基于SSM二手房租赁系统
  16. 拜师——python基础入门—第3大节课—列表,排序,revered逆序,max,min,sum——day15
  17. dex2oat过程对系统性能的影响
  18. 简体字与繁体字互相转换
  19. js实现动态星空背景
  20. 计算机硬件功能作用,cpu的作用和主要功能是什么

热门文章

  1. 《kafka 核心技术与实战》课程学习笔记(五)
  2. Python: 学习系列之七:模块、PIPY及Anaconda
  3. 自由口协议转标准modbus通讯协议 非标协议转标准协议
  4. 学计算机如果进场,CPA考试计算器有讲究,这些计算器禁止携带入场!
  5. MAC Numbers 插入股票信息,函数 stock 无效的解决办法
  6. Java基础之JavaMail
  7. XFTP/Xshell能ping通但连不上
  8. mac Apple M1 在根目录无法创建文件和文件夹 mkdir: /data : Read-only file system
  9. winform 判断鼠标在一段时间内是否移动
  10. python安装kivy_无法安装kivy