好代码是如何炼成的

在我看来,好代码的标准就是:简洁、清晰、自然。就像 1+1 = 2 一样,明白无误,没有任何形式的赘余。在简洁、清晰、自然的形式之下,还需要满足:可读、易理解、易用、易测试、健壮、性能、安全、稳定、可复用、可扩展、可伸缩、可定制、可移植、可追踪、可热升级、可运维、可互操作。

有人说,天哪,要达到这种标准,简直是太难了! 的确,要写出好代码,并不比做出好的设计更容易。


写出好代码,不仅仅关乎习惯和态度,更关乎对技术和设计的理解。我为什么不厌其烦地强调这一句?因为追求写出好代码,并不仅仅是图好看,更重要的是,是一种逻辑思维的训练,也是技术和设计精进的一种简单而有益的修行方式。试想,如果缺乏对技术和设计的足够深入的理解,如何能够达成如上好代码的目标? 写 Integer i = new Integer(10) 与 Integer i = Integer.valueOf(10) 有区别吗? 写 i / 2 与 i >> 1 有区别吗?

软件技术发展到今天,很多很多手段,固然是为了解决各种实际问题,同时也是在不同场景下为了实现好代码的目标而诞生的。SDK 是为了实现日常编程任务的可复用;高级编程语言是为了实现可读、易理解、易用、可移植的目标;GC 是为了实现内存管理可复用和开发的高效;插件机制是为了实现可扩展、可定制目标;缓存是性能考虑;日志是为了可追踪;函数式编程是为了实现计算的可读性、易理解、易测试和并发环境下的安全、稳定、易理解;分布式架构是为了实现大规模计算场景下的可伸缩能力;云平台是为了实现可运维、热升级能力;JSON 数据格式是为了实现系统之间交互的可读、易用性、互操作性。


软件技术包含两个方面:

  • 原理: 事物如何运作的基本规律和流程;
  • 设计: 大规模逻辑组织的艺术。

代码表达,正是在设计的基础上的原理的实现形式;而技术,则是大规模逻辑在设计层面的重组。新瓶装旧酒。旧在哪里,新在哪里?形式在哪里?本质在哪里?传承在哪里?创新在哪里?这些都是值得思考的。

代码是一个程序员的最主要的产出形式。从一个人写的代码里可以看出,这个人的技术功底的厚度、思考的深度和表达的张力。

持续深入地思考和精炼逻辑的表达,就会思考更多的问题:它看上去更清晰直观了么?是否有潜在的性能或并发安全的问题?当发生变化时能有效应对么?思维能力和表达能力都会随之而进步。这并不仅仅只对开发工作有益处。


原文地址:https://www.cnblogs.com/lovesqcc/p/14773280.html