首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何训练自己避免编写“聪明”的代码?

如何训练自己避免编写“聪明”的代码?
EN

Software Engineering用户
提问于 2011-07-11 14:09:23
回答 16查看 11K关注 0票数 78

你知道吗,当你只需要向Expressions炫耀这个新把戏或概括三种不同的程序时,你会有这种感觉吗?这不一定要达到建筑航天员的规模,而且实际上可能很有帮助,但我不得不注意到,其他人会以更清晰、直接(有时甚至是无聊)的方式实现相同的类或包。

我注意到我经常通过过度解决这个问题来设计程序,有时是故意的,有时是出于无聊。在这两种情况下,我通常诚实地认为我的解决方案是清晰而优雅的,直到我看到相反的证据,但通常为时已晚。我的一部分人更喜欢未经记录的假设,而不喜欢代码重复,更喜欢聪明而不是简单。

我能做些什么来抵制写“聪明的”代码的冲动,以及何时应该听到我做错了什么?

随着我现在正在与一个经验丰富的开发人员团队一起工作,问题变得更加迫切,有时我编写智能代码的尝试对我自己来说都是愚蠢的,因为我在时间上消除了优雅的错觉。

EN

回答 16

Software Engineering用户

发布于 2011-07-11 14:14:02

最好的做法是记住布赖恩·克尼汉的格言:

“调试比编写代码困难一倍。因此,如果您尽可能聪明地编写代码,那么根据定义,您就没有足够的智能来调试它。“

票数 23
EN

Software Engineering用户

发布于 2011-07-11 15:56:41

对于任何重要的软件问题,通常至少有三种解决方案:显而易见的方法、非明显的复杂方式(聪明)和不明显的简单方法(优雅)。引用作者的话在这里适用:

放下你脑子里的每一件事,然后你就成了一个作家。但是,一个作家是一个人,他可以判断自己的东西的价值,没有怜悯,并摧毁了它的大部分。-科莱特

除非您能够毫无怜悯地判断您自己的代码的价值,并摧毁其中的大部分代码,否则您将无法编写优雅的代码。如果您根据最终结果来判断优雅的代码,那么它看起来很容易,但它需要放慢速度,浏览许多草稿,征求其他人的意见,并删除页面上不正确的内容。这意味着,即使您的代码运行得很好,您也会问自己或同事,在您对答案感到满意之前,为什么有些东西会觉得不对。可能感觉太长了,或者重复了,或者你觉得编译器应该能够捕捉到某种错误。大多数有少量经验的程序员可以很容易地识别出不优雅的代码。诀窍是找出原因。

这是编写更优雅代码的方法。它还经常需要一个闪现的洞察力,帮助你以一种新的方式看待一个问题。这是比较困难的,但它有助于放慢速度,在开始编写代码之前只考虑一个问题。当你找到一个好的解决方案,寻找一个更好的解决方案。阅读其他代码会有所帮助。参加课程或阅读有关最佳实践的书籍会有所帮助。学习其他编程范例会有所帮助。向你敬佩的代码有用的同事寻求建议。

票数 15
EN

Software Engineering用户

发布于 2011-07-11 14:23:43

我会添加现有的答案,以TDD的方式进行开发,因此您首先编写代码应该做什么的测试,然后实现使您的测试变成绿色。这样,您将只满足测试所带来的要求。由于您将编写测试,这是一种自我约束的开发方法的好方法。

票数 9
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/91854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档