在优锐课的程序员学习方法论理, 讨论了程序员为什么在各处都看到错误的代码? 发生这种情况的原因有几个。一起来看看
在过去的几天里,我一直在思考为什么我们作为一个行业一直一直在生产不良代码。
能够构建高质量代码的系统的开发人员数量很少,而且彼此之间就相去甚远,正如老套话所说,每个人就像大海捞针一样。
1.明显原因
我能想到的最明显的原因是,有好的程序员和不太好的程序员,技能水平较高的人和技能水平较低的人,对手工艺感兴趣的人以及其他不太关心的人 比薪水还要多。
所以,我将不再深入研究。
在地面上还会有更多问题吗? 是否存在导致所有错误代码的根本问题? 我不得不更深入地发现
2.低期望
首先,众所周知,在大学中通过自学或书籍学习编程的知识永远无法准确反映现实工作的需求。
因此,始终假定初学者总是要学习如何在工作中产生良好的代码。 可以相信,真正的编程课程只有大量的经验积累。 更重要的是,初学者甚至会期望使用错误的代码!
当初学者被期望产生质量低下的代码时,通常会得到这样的结果!
尽管上述推理中的一部分是正确的,但出于多种原因,笔者认为我不想全部接受,主要是以下三个方面:
1.期望从职业生涯开始的那些人获得更低的标准,我们说质量并不是一个重要因素。 低进入壁垒的直接结果是大量涌入了低质量的开发人员,这导致了第二点……
2.通过强迫他们与大多数低质量的开发人员一起工作,我们使那些关心工艺的人和以工作质量为荣的人感到痛苦。
3.以上两个因素的结合导致了我们今天的处境,每个人都认为他们可以编写代码,而专业开发人员被视为商品资源。
我们需要更多的初学者。 如果他说他不能以最高标准进行手术,或者飞行员说他如果没有坠机着陆就不能真正驾驶飞机,谁会聘请医生? 根本不可接受。 那么,为什么在软件行业可以接受较低质量的软件呢?
那么,低质量开发人员的根本原因是什么?
3.编程书籍
几天前,我正在看一些旧书,偶然发现了几本关于Java的书-一本是供初学者学习Java的书,另一本是针对SCJP认证的书。 出于在下一分钟左右显而易见的原因,我不想命名这些书。
不幸的是,初学者所参考的书不经意间准确地描述了代码应该是多么糟糕。
大多数关于任何编程语言的初学者书籍都充满了不好的代码。 罗伯特·马丁(Robert Martin)等人在诸如清洁代码''和
实用编程’'之类的书中涵盖的各种错误代码已在大多数初学者中广泛使用。
您会发现错误代码的一些示例是…
命名错误的类,变量和方法
i,ii,j,k表示循环; clazz,类名称为SampleChapter1; 等等
无需分离问题
三页长的main()方法可完成所有工作,而不是将职责分为不同的方法。
不良编码做法
没有良好的代码编码实践,例如包括验证或异常处理。 相反,它们通常使用一个大的通用try()… catch(Exception e)块来包含类中的所有代码。
另一个是慷慨地使用if-else,switch,goto语句等。
捷径
这些书还需要摆脱“快速修复”的编程风格。 例如,找到带有10个参数的方法并不少见。
需要进行两种类型的计算吗? 没问题,传递一个布尔参数并添加一个if-else构造。 需要添加新功能吗? 到那里,将更多代码添加到两页长的方法中! 这些只是最受欢迎的两个。
学习编程的一种好方法是按该顺序掌握语言的语法,有效开发所需的工具以及组成代码的组件和模块的设计。
不幸的是,大多数书籍都停留在语法上,甚至没有简单地涉及工具和设计改进的话题。 初学者总是比作者打算教的更多。 这些书的目的和目的是教授编程语言语法,但读者也总是会学习编码风格和方法论。
当人们学习编码时,重要的是要教给他们写的代码是供其他人阅读和理解的,而不仅仅是编译器。
希望,如果你们中的一些人已经阅读了这篇文章并且将来会成为作者,请记住在书中写好代码! 我本人曾在我的许多帖子中使用临时代码感到内。 学习产生高质量的代码不仅应仅限于专家级书籍,还应作为编程书籍中不可或缺的一部分!
当初学者的书中包含质量较差的代码中最差的一个时,我们如何期望从中学习的人产生高质量的代码?
喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等
如果你对java技术很感兴趣也可以加入我的java学习群 V–(ddmsiqi)来交流学习,里面都是同行,验证【CSDN2】有资源共享。
不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代