怎么才能写出最好的代码

2021-5-20 / 0评 / 心路历程

作为一个程序猿,我们编写的代码最终都是给人看的,就像Redis之父antirez在5天前在自己的个人博客上面说的,自己转业写科幻小说去了。
在他的描述中说:刚刚开始以为写程序和写小说是不同的两条路,结果自己在停止写代码后尝试写科幻小说后,发现这两条路是完全一样的。
随着自己写的文字越来越多,就更加明确了亲手撸一个Big System和亲手写一本小说本质上是一样一样的,他们之间那时非常相似的,最显而易见的共同之处,那就是这两种活都是在搬砖,一个是不停的搬代码,一个是按照人能够理解的自然语言组织下不停的搬单词。我们写的代码明显就不是自然语言编写的,但是同样也是按照自己的一套语法规则,对这种规则非常熟悉的就只能是程序猿自己能懂,对外行来说那就是两眼一抹黑,看到的只是单词组成的一行行代码而已。他在写小说这段时间以来,在深入写小说的过程中,发现写小说和写代码完全一样,都是在摆弄各种不同的全局变量和局部变量,怎么让他们在一起协作好。好的代码是由一系列精妙易读的语句组成的,整体上不同的组件间是尽可能高内聚低耦合,彼此交互的领域边界非常清晰。同样,好的小说在微观和宏观这两个尺度上也是一样一样的,小说家写的每个句子都要润色思考好多遍,每个句子都要写的很漂亮,全局的层次结构和文章脉络同样也是非常关键。程序猿和小说家之间还有一个不是很相通的地方,两者都需要持续不断的往前走以追求极致,两者间,都不是很轻松自然就能够写出来。<http://antirez.com/news/135>

想想,大神就是大神,能够把程序猿比作小说家,就像我们把老师比作心灵的园丁一样,程序猿和小说家相同的地方都是码字,不同的地方就是程序猿码字,是一个字符组成的一行行代码,最终编译后是给冷冰冰的电脑使用的,电脑是没有思想,没有灵魂,你码的每一行代码是要按照你的思想顺序去运行,你想要按照怎样的逻辑输出,那电脑就按照怎样的逻辑给你输出,电脑的结构是按照程序猿个人的思想,思维方式去执行的。

要编写好的程序,需要遵循着简单的原则:简洁、逻辑清晰、函数职责单一、合理的数据结构设计。并不需要使用多么高深的编码技巧,有时也不需要使用非常复杂的某某设计模式。一般的软件公司的代码编程规范,也是将编写简洁的程序放在首位。毕竟,你写的代码不光给计算机执行,如果仅仅给计算机执行,那直接写01组成的编码不是更好,但是不是的,我们写的简洁、逻辑清晰的代码,大部分是给程序猿人看的,易于阅读和维护的代码,就算这段代码后面也因需求变化而被修改,但也不会引入过多的复杂性东西。


作为软件开发人员,要非常明白一点:唯一不变的就是变化。面对客户需求的不断变化,我们的代码也会被动或者主动地在变化。设计出可扩展、自动适应客户需求变化的软件及软件架构,是我们作为软件工程师永恒的追求。
但是这些说说是非常容易,可不是吗,动动嘴皮子的事情,但是上手实践做起来却是非常难的事情。需要我们不停积累业务知识,明白领域模型,扩展业务知识面,需要勤于思考,能够识别技术未来演进趋势。

还有,软件架构的发展之路也是一部人类历史的发展史,就像我们5000年的慢慢历史征途,人类历史社会的周期律就是:合久必分,分久必合。软件的发展也是遵循这个大的规律。从多年前的单体应用架构,到垂直应用架构,到分布式应用架构,到SOA架构,到现在流行的微服务架构,也是一套从合到分的过程。最近的微服务架构慢慢的发展下,也出现非常非常多的问题,微服务会愈来愈多,服务维护成本越来越高。有人开始提出,我们要使用宏服务,就是基于单体应用和微服务架构间的一套服务架构思想。

软件的开发过程,我们无法从一开始就做一个无所不能的系统架构,来适应大千世界不同的变化,包含未来世界的千变万化,即使能够实现,那软件的交付节奏也是不一定允许的,能够满足当前及未来一定时间内业务需要的设计,或许就是最合适的软件设计。

本文共计 2780 字,感谢您的耐心浏览与评论。

声明:土豆丝不辣|版权所有,违者必究|如未注明,均为原创|转载请注明原文链接说明出处

0条回应:“怎么才能写出最好的代码”