前言
从业以来,本人基本一直待在传统行业。对于传统行业来说,很少去关注业务代码的好坏,只要能用就行。这就导致了大量的冗余代码,重复代码,魔法值等各种“垃圾代码”存在于系统当中。甚至在人员流动几次以后,复杂业务逻辑的地方新接手的人员根本不敢接手去改,只能去新开发一个功能来替代老功能。我相信这种问题肯定不仅仅存在于传统行业中,所以想写留下一波对于编写代码的个人心得供大家参考。
借用一下《Clean Code A Handbook of Agile Software Craftsmanship》(中文名:代码整洁之道)中的一个段落来拉开我们的序章:
Have you ever been significantly impeded by bad code? If you are a programmer of any experience then you’ve felt this impediment many times. Indeed, we have a name for it. We call it wading. We wade through bad code. We slog through a morass of tangled brambles and hidden pitfalls. We struggle to find our way, hoping for some hint, some clue, of what is going on; but all we see is more and more senseless code.
什么是语言?
首先,我们需要了解我们写的些什么玩意,先引用一段百度百科:
语言(Language)是人类进行沟通交流的表达方式。
其实不管是java还是python甚至C,他们的基础都是一门语言。其实他跟我们的中文、英文、韩语没什么区别。中文的存在意义在于跟中国人进行沟通,韩语存在的意义在于跟韩国人沟通;那么语言存在的意义就是沟通。
那么什么是程序语言?
老规矩,还是先来一段百度百科:
程序语言是用来定义计算机指令执行流程的形式化语言。每种程序语言都包含一整套词汇和语法规范。这些规范通常包括数据类型和数据结构、指令类型和指令控制、调用机制和库函数以及不成文的规定(如递进书写、变量命名等)。
说白了,程序语言也就是人与计算机沟通的方法。
但是在当代开发过程中,以我个人的经历而言,已经很少是独立开发一套系统了,基本上都是合作开发,那么,我们所面对的就不仅仅计算机了,还需要与人的沟通。
说了这么多,那到底为什么需要优雅的代码呢?
既然是一门语言,就需要文笔,小学生写的作文和文学家写的作文肯定是有差别的。一篇好的文章能让你心情愉快的读下去,而一篇文笔极烂,罗里吧嗦,甚至颠三倒四的文章又有几个人愿意去阅读下去呢。同理可得,代码也是这样;一个结构清晰,命名准确,内容精简的代码能让阅读者快速了解开发者的意图。就像我们写作当中会运用分段来使文章结构清晰,运用各种写作手法来更加清晰的表达作者的意图一样。
前面也说了,我们编写的代码不仅需要与计算机进行沟通,还需要与同事进行沟通,那么问题来了,与计算机沟通的话,即使我们“文笔”再烂,只要我们按着正确的语法,计算机这个“二傻子”还是能理解的。但是现在我们还需要通过代码与同事沟通,那么就需要写出的代码能让任何“大活人”都能够理解。
最后总结
代码,是语言组织的;而语言,是用来表达的;表达,不仅仅是对计算机的。