阅读本文大概需要 2.6 分钟。

并不是代码写的越多,代码的质量就越高。思考才是。

解决一个问题,打开电脑就手撕代码,最终的结果往往是各种代码问题,经过一系列迭代后,代码积重难返,最终的结果就是推到重来,前期的付出都白费,最典型的就是现在所谓的敏捷,听起来高大上,实际落地其实就是加班,因为没有时间思考。

现在的很多公司已经不尊重科学和客观规律了,如果让他来管理孕妇,我觉得他们恨不得要把 10 个月的产期缩短成 2 个月。

程序员应该坚持自己的良质,不能因为产品经理或老板而改变一些非常好的做事方法,很多问题都是可以通过沟通解决的,面对复杂的需求工期又特别短,不妨听下陈皓老师(网名:左耳朵耗子)的方法:不要说不,而是给对方选择:

1、我可以加班加点完成,但是我不保证好的质量,有 bug 你得认,而且事后你要给我 1 个月的时间还债。

2、我可以加班加点,还能保证质量,但我没办法完成这么多需求,能不能减少一些?

3、我可以保质保量地完成所有的需求,但是,能不能多给我 2 周时间?

看到这里,我想你也一定会认为:除了编程,沟通也是一门艺术。

这两天学到了王争的专栏《设计模式之美》,其中提到的如何发现代码质量问题,可以从以下几个方面审视代码:

  1. 目录设置是否合理、模块划分是否清晰、代码结构是否满足“高内聚、松耦合”?

  2. 是否遵循经典的设计原则和设计思想(SOLID、DRY、KISS、YAGNI、LOD 等)?

  3. 设计模式是否应用得当?是否有过度设计?

  4. 代码是否容易扩展?如果要添加新功能,是否容易实现?

  5. 代码是否可以复用?是否可以复用已有的项目代码或类库?是否有重复造轮子?

  6. 代码是否容易测试?单元测试是否全面覆盖了各种正常和异常的情况?

  7. 代码是否易读?是否符合编码规范(比如命名和注释是否恰当、代码风格是否一致等)?

以上是一些通用的关注点,可以作为常规检查项,套用在任何代码的重构上。除此之外,我们还要关注代码实现是否满足业务本身特有的功能和非功能需求。还有一些比较有共性的问题,如下所示。

  1. 代码是否实现了预期的业务需求?

  2. 逻辑是否正确?是否处理了各种异常情况?

  3. 日志打印是否得当?是否方便 debug 排查问题?

  4. 接口是否易用?是否支持幂等、事务等?

  5. 代码是否存在并发问题?是否线程安全?

  6. 性能是否有优化空间,比如,SQL、算法是否可以优化?

  7. 是否有安全漏洞?比如输入输出校验是否全面?

当看到这些时,我只觉得醍醐灌顶,写代码并不难,难的是写出好代码,什么是好代码,质量高的代码?以上 14 条问题给我们指明了方向。

以上共 14 个方面值得打印出来贴在桌子上,作为我们日常写代码的一个提示,解决这些问题过程虽然耗时,假以时日,我们一定可以写出非常优秀的代码,成为优秀的工程师。

推荐阅读:

在Python中如何基于接口编程

14个提高代码质量的好问题相关推荐

  1. Python心得--如何提高代码质量

    前些日子用python基于prometheus开发了一个vsphere volume卷监控的exporter,于是跟vsphere的api(pyvmomi)接口打上了交道,开发的过程中你会发现pyvm ...

  2. 范钢:一堂如何提高代码质量的培训课

    今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术.我们抛开任何具体的技术,来谈谈如何提高代码质量.如何提高代码质量,相信不仅是在座所有人苦 ...

  3. idea,配置checkstyle 【提高代码质量,检查代码规范的工具 】Checkstyle,FindBugs,PMD,Jtest

    idea,配置checkstyle [提高代码质量,检查代码规范的工具 ]Checkstyle,FindBugs,PMD,Jtest 2016年12月15日 14:19:02 common_util ...

  4. 良好的编码习惯 —— 5 个提高代码质量的技巧

    原文地址:Good Coding Practices – Five Tips to Enhance Code Quality 原文作者:Jay 译文出自:掘金翻译计划 本文永久链接:github.co ...

  5. 提高代码质量:如何编写函数

    原文地址:http://luopq.com/2016/02/21/write-good-function/  函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的.写好一个函数是提 ...

  6. 如何提高代码质量:代码复查

    如何提高代码质量:代码复查 软件项目普遍存在的问题 1)新手 任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生.这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯, ...

  7. 一堂如何提高代码质量的培训课【转】

    今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术.我们抛开任何具体的技术,来谈谈如何提高代码质量.如何提高代码质量,相信不仅是在座所有人苦 ...

  8. 提高代码质量 CheckStyle FindBugs PMD

    提高代码质量-工具篇 注:这是一篇翻译文章,原文:How to improve quality and syntax of your Android code,为了理解连贯,翻译过程中我修改了一些陈述 ...

  9. Java基础学习总结(148)——如何提高代码质量

    前言 人跟人的能力千差万别,所以写出来的代码质量,肯定是不同的.有的人,写一个小逻辑,可能需要100行,而有的人,可能仅仅需要10行.代码永远会有Bug,在这方面没有最好只有更好.模块化与面向对象是实 ...

最新文章

  1. 各代程序设计语言拓扑
  2. Google 开源 AdaNet:快速灵活的轻量级 AutoML 框架
  3. java ee 7 新_Java EE 7:新功能???
  4. Centos7 安装netcat(NC瑞士军刀)
  5. UI基本设计素材模板|完整的线框图
  6. Spring源码解析 -- SpringWeb请求映射Map初始化
  7. SQL:where 和 having 的区别
  8. vasp软件全名是什么_vasp软件主要功能
  9. 模式识别与机器学习第四章特征选择和提取
  10. Canvas API - 江苏黑马 - 博客园
  11. 如何把桌面路径设置到D盘
  12. 电脑中的cache文件夹可以删除吗?
  13. Epicor流水编号规则功能
  14. VS安装包下载和环境配置
  15. BLE射频杂散源的由来,以及常见处理办法
  16. 银湖私募基金为何投资展讯?
  17. PPT画图软件,强烈推荐!提升能力的利器。
  18. XHR>>name不显示sug
  19. Bootstrap栅格系统 xs sm md lg xl
  20. 数字IC设计的第一步——Synopsys EDA Tools的安装

热门文章

  1. 2019年DevOps发展的五大趋势
  2. 每日词根——sim/sem/simul/simil(相同,类似,相等)
  3. 零障碍合并两个模型,大型ResNet模型线性连接只需几秒,神经网络启发性新研究...
  4. thinkjs基础学习
  5. 商业计划书范文3000_商业计划书范文
  6. php使用xunsearch分词搜索
  7. SQL学习_常用语句参考
  8. AI版的五子棋小游戏
  9. 【HDOJ】4662 MU Puzzle_天涯浪子_新浪博客
  10. wget (Python下载工具)