我们怎么样才能少犯错误呢?
产出流程:把错误关在笼子里- 第一道关:程序员(优秀的代码源于我们对细节的热情和执着)
- 第二道关:编译器(能消除编译警告就要尽量消除编译警告)
- 第三道关:回归测试
- 第四道关:代码评审(代码评审是一个有效的在软件研发过程中抵御人类缺陷的制度)
- 第五道关:代码分析(findBugs)
编写优秀的代码,不能仅仅依靠一个人的战斗, 要靠大家一起维护。
必备要素:优秀程序员的6个关键特质- 掌握一门编程语言(至少精通一门语言)
- 解决现实的问题(程序的存在不是为了写代码,而是为了解决现实问题,实现现实价值)
- 发现关键的问题(从一个被动的做事情的程序员升级为一个主动找事情的程序员)
- 沉静的潜行者(不断平衡、不断妥协中推动事物前行的能力和修为)
- 可以依赖的伙伴(我、同事、上级、下级,接受影响也影响他人)
- 时间管理者(要做只有你才能做的事情,要坚持做需要做的事情)
编程语言、花样工具、逻辑思维、解决问题这些“硬技能”可以决定我们的起点的话,影响力、人际关系这些“软技能”通常影响着我们可以到达的高度。
代码规范:代码规范的价值- 编码规范:一份高质量的编码规范,是严格的、清晰的、简单的,也是权威的(一旦学会了编码规范,并且严格地遵守它们,可以让我们的工作更简单,更轻松,少犯错误)
- 复杂是代码质量的敌人:在编码的时候,我们应该尽量使代码风格直观、逻辑简单、表述直接
- 规范的代码,可以提高编码的效率(把错误关在笼子里的5道关),在代码制造的每一道关卡、规范执行的越早、问题解决的越早、整个流水线的效率也就越高。规范执行的越早、问题解决得越早。
- 规范的代码,可以降低软件维护成本(代码的生命周期超越了它的创造者、超过了团队的界限、超越了组织的界限)
- 编码规范越使用越高效
一件东西,无论其实用性多强,终究比不上让人心情愉悦更为实用。优秀的代码不光是给自己看的,也是给别人看的,而且首先是给别人看的。
命名:如何给你的代码起名字- 好处:好的命名可以帮助我们理顺编码的逻辑,减少阅读代码的工作量。是代码审核变的有意义,专注更重要的逻辑问题。提高代码的清晰度、可读性以及美观程度。避免不同产品之间的命名冲突。
- 命名方法:驼峰命名法、蛇形命名法、串式命名法、匈牙利命名法。
- 怎么取一个好名字:要有准确的意义、名字要能够准确、完整地表达出它代表的意义,可以见字知意,名副其实;严格遵守命名规范;并且要可读性优先;
- 总之:取名字要做到“信、达、雅”(准确、直观、优美)。“信”和“达”是基本要求,有才气的你可以有“雅”的追求。
- 给代码分块:保持代码块的单一性,一个代码块只能有一个目标。注意代码块的完整性。代码块数量要适当。
- 使用空白空间:同级别代码块靠左对齐。同级别代码块空行分割。下一级代码块向右缩进。同行内代码块空格区隔。一行一个行为
- 基本的换行原则:在逗号后换行。在操作符前换行。高级别的换行优先。新的换行与上一行同级别表达式的开头对齐。
- 其实归根结底,整理代码有一个基本的思想,那就是把代码分割成大脑能够有效识别并记忆的信息块,通过合理地使用空行、空格和缩进,把这些信息块清晰地呈现出来。清晰的代码结构,可以帮助我们理顺编码的思路,提高编码的效率,减少编码的错误,提高代码的可读性,降低代码的维护成本。
- 理想的代码无需注释,注释是无奈的妥协:注释,被我们用成万能的狗皮膏药,有时会让代码更糟糕。注释,被我们用成万能的狗皮膏药,有时会让代码更糟糕。注释,被滥用。
- 几种常见注释类型:第一种类型,是记录源代码版权和授权的。第二种类型,是用来生成用户文档的。第三种类型,是用来解释源代码的。
- 简化注释的风格:针对第一种注释类型,也就是固定的版权和授权信息,使用一般的星号注释符(/-/)。针对第二种注释类型,即生成用户文档的注释,使用 Javadoc 要求的格式,文档注释符(/-*/)。 除了首行使用特殊的文档注释符(/)。针对第三种注释类型,也就是代码解释注释,只使用行注释符(//)
- 注释的三项原则:准确,错误的注释比没有注释更糟糕。 必要,多余的注释浪费阅读者的时间。 清晰,混乱的注释会把代码搞得更乱。