【云驻共创·】编程语言语法和风格是否应该建立统一的标准?

举报
卖寂寞的小男孩 发表于 2022/04/28 15:27:29 2022/04/28
【摘要】 本文讨论了编程语言语法和风格是否应该建立统一的标准这一问题。

.前言

最近做学校的java项目的时候对编码规范问题进行了深入的思考理解在当前环境下各个语言的最权威的语法书均没有给出编码规范那么编程语言语法和风格是否应该建立统一的标准呢?

1.大佬如是说

在讨论这个问题之前我查阅了一些大佬们对于编码规范的态度有一些很有趣还有一些很激进

罗马帝国衰败的主要原因之一是因为他们缺少0,他们没有办法知道他们的C程序已经成功的执行完了

-- Robert Firth

一个有过BASIC编程经历的人是很难学会好的编程习惯的作为一个潜在的程序员他们已经被脑残并且无法修复

-- Edsger Wybe Dijkstra Dijkstra 算法发明者

优良设计创造价值的速度,快于其增加成本的速度 ”—托马斯·C.盖勒(Thomas C.Gale 每名程序员都是作家 ”—塞坎·雷勒克(Sercan Leylek

写代码时每次都要告诉自己:最后负责维护代码的,会是一个知道你住在哪的变态暴力狂。 ”— 约翰 ·伍德(John Woods

代码比写代码困难---Joel Spolsky StackOverflow合伙创始人

重构早就成了软件开发从业者本能的一部分每个IDE都内置了重构功能每个程序员都定期重构自己的代码技能上通常不再是问题但是相对于当年第1版的读者现在的程序员对于重构这个思想从何而来以及各种细节反而更陌生这时候就更值得重新读一下这本书了

——霍炬 PRESS.one CTO

好的代码有自说明性当你想添加一条注释时问下自己我怎么能改进代码从而省略这个注释? -- Steve McConnell (《代码大全 》作者)。

其中有一句话最打动是塞坎 ·雷勒克这位文科毕业自学编程的专业程序员说的 "每一名程序员都是 一个作家。 "其实写代码和写一篇文章没有什么不同而优秀的编码规范就像各种文章的固定格式一样 (比如记叙文人物地点环境议论文三要素等等),在当前的环境下一个项目的代码不仅需要多人合作,而且还需要后来人维护。就像Joel Spolsky说的:"读代码比写代码困难"具有一致的编码规范习可以使我们的代码更加模式化可读性更高能够大幅度提高公司工作效率因此我认为为语言 立编程语言语法和风格的统一标准是必要的

2.编码规范使可读性更高

代码的可读性增高是最显著的原因

记得我在刚刚写技术博客的时候曾经在CSDN的热榜第一看过一篇文章是初学C语言的小伙子一看就很用心把代码写成了一个爱心的形状


大概就是将这里的Love换成了int main(){int i=0;printf("%d",i);return 0}等等的一大堆也许对于初学者来说这样会很有趣,毕竟热度都可以到达热榜第一了(小男孩我就从来没上过热榜第一)但是这样的代码可以说是可读性非常非常差的基本要被公司开除了。编程所获得的乐趣绝对不是改变代码的形状所获得的这是一个很恶劣的例

再来举一个大佬在开发过程中实际的例子在前不久他们的公司接到了一个项目源码在1.3w行左右,他们团队简单地通过公司的质量检测工具得到了一个评估报告

API注释 35%

代码注释覆盖率 10%

不符合代码规范问题 1w+

存在严重的阻断: 100+

无论是谁拿到了这样一份质检报告内心都会是崩溃的这等于这段代码的源码根本无法阅读基本不可能尝试理解并维护大佬的团队不得不重新思考重写整个项目的可行性用了大半个月做可行性分析 (包括原维护部门的交流,原开发文档的补全,测试部门的测试用例等等)。最后得到了需要进行重写 的结论。接下来是对新环境的搭建,新测试用例的搬迁.....为此又花费4个月左右的时间前前后后加来小半年,而这些时间有必要付出吗?肯定是没有必要

了解了他的这些情况后我不由得庆幸自己遇到了一个好的高级语言程序设计的大学老师在学习人生中第一门语言--C语言的数据结构的时候我们老师用C++STL的命名规范来要求我们书写函数名给作业中无意义的变量名(比如a,b,c进行一定的扣分由于实验项目较小而且基本都是一个人来完成的因此当时并不在意从了解了一些实际开发中的情况开始我便开始注意了编程语言的编码规范。尽量写出不仅可以被自己阅读,也可以被别人快速理解的代码

3.降低学习成本

目前的互联网大厂基本都有自己的一套编码规范,但是这些体系又各不相同如果从一公司换到另一家公司就需要重新学习新的编码体系甚至可能会发生混淆造成不必要的后果如果言本身就带有一定的编码规则的话不仅可以提高代码的可继承性还可以降低程序员的学习成本 使开发更加高效看一份优秀的排版有规律可循的代码和看一份杂乱无章的代码给人的感觉是不一样的就好比我们居住的房间更加整洁才更适合人居住各种东西拜访的整整齐齐才给人一种舒服的感觉才有继续编写或者维护的欲望

4.编码规范的书籍

这里还有两本比较出名的讲解编码规范和重构的书说明早已有人重视到了这个问题

5.劣势


万物都是相对的规范编码也会造成一定的问题只不过这些问题相对于规范编码的优势来说力量较弱,因此我仍然是支持规范编码的

曾经思考过这样一个问题:抛开编码,如果我们的文字也被要求规范了呢?书写方式起笔落笔都有统一 的标准大家都严格地去遵守一旦这样虽说我们可以更加方便地阅读文字但是就不存在所谓的行书草书的行草之美之前有幸看过苏轼的真迹苏轼可谓是一位大书法家他的文字洒脱飘逸有超 凡之感但如果必须按照楷书那样一笔一划地工工整整地完成呢?再如同李白工工整整规规矩矩地用印刷体书写 天生我材必有用千金散尽还复来虽然方便了阅读但是意境已经消失了

说的再直白一些当你在追求如何精修文章追求书法的时候其实是浅薄的你大可以花费时间去钻研一些编程中更加深刻的问题或许正是这些问题才导致了大牛们在设计语言的时候,并没有专门花费时间去总结一套编码规范吧当有一天你发现了一个超高效的算法,但是却因为定义一个变量的大小写而被编译器指责的时候,这会不会消磨了编程的兴趣呢?

虽然如此但是在如今的环境下大部分的程序员还是在做着中规中矩的任务并不具备创造一个新的算法或者语言的能力试问李白杜甫能有几人呢?因此相对于劣势来说,规范编码的优势还是更加明显

6.总结

总而言之我还是认为规范编码会更加好一些这只是我作为一个学生角度的思考这个世界上没有任何一件事情是完全正确或者错误的只是在利和弊的相较之下才决定会不会去做这件事情

本文整理自华为云社区【内容共创】活动第15

https:// bbs.huaweicloud.com/blogs/345822

任务35:编程语言语法和风格是否应该建立统一的标准?

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。