极简主义可以帮助你编写干净代码的 6 种方法
介绍
一些资源
介绍
在本文中,我将分享如何在代码中应用极简主义概念,使其更简洁、更高效。
如果您已经知道什么是极简主义,并想直接点击这里,您将被重定向到本文中六个示例中的第一个,了解我如何在代码中应用极简主义。
大约三年前,我在一家软件开发公司工作。我已经在那里工作了五年,但由于种种原因(与本文无关),这份工作逐渐变得不那么令人满意。我想辞职尝试自由职业,但不知道从何入手。
我开始在网上寻求帮助,有人推荐我观看《极简主义:一部关于重要事物的纪录片》。
但是,极简主义是什么
嗯,用极简主义者自己的话来说:
极简主义是一种生活方式,它帮助人们思考哪些事物能为生活增添价值。通过清除生活中的杂乱,我们都能为生活中最重要的方面腾出空间:健康、人际关系、激情、成长和贡献。
接受极简主义之后,我发现它不仅仅是一种通过精打细算来省钱的方式。它教会我们如何有意识地生活,专注于我们真正在乎的事情。它帮助我们忽略他人的看法和“别人对我们有什么期望”的压力。但最重要的是,它鼓励你在将事物融入生活之前,先思考它们的价值。
我相信极简主义也帮助我提高了工作效率,成为了更好的开发者:只编写和提交有价值的代码使代码更清晰、更易于阅读和维护,并帮助我更好地利用时间。
以下是我在代码中应用极简主义的一些示例:
1. 避免依赖混乱
或者就像我喜欢说的那样:三思而后行npm install
有一些很棒的库/模块/软件包可以解决很多问题并节省我们的时间。依赖它们本身并没有错,但如果我们在整个项目中只用到一两次,是否应该包含这些库?
我们添加到项目中的每个新依赖项都会产生以下影响:
- 增加项目规模
- 您(和您的团队)必须学习如何正确使用新的依赖项
- 可能需要定期更新(例如,为了解决安全问题)。这也意味着您必须在每次更新时彻底测试项目,甚至进行一些重构。
此外,您应该花一些时间研究该软件包以确保其可靠、安全、最新等。
我并不是说您应该不惜一切代价避免使用外部库,但您在这样做之前一定要三思。
2. 注释掉的代码很少有价值
(感谢@mikeschinkel的标题建议)
你正在修改某个代码块的工作方式,于是你开始注释一些旧代码,并编写新的代码。你测试了一下,运行正常,于是你提交了……不行!
我经常看到这种情况,我相信这源于对无法“回滚”的恐惧。你不应该对正在提交和推送的代码感到不安全。如果你已经达到了这一点,就意味着你已经对更改进行了充分的测试,那么为什么还要保留旧代码呢?即使你真的需要回滚,你也可以查看你的 git 历史记录来找到它。
注释代码只是噪音:它对软件毫无用处,会分散阅读代码的人的注意力,而且代码也不美观。删掉它吧!
3. 少即是多:不要为了“以防万一”而编写代码
有时我们会犯这样的错误:想当然地认为某些代码将来可能会有用,然后开始编写。就像注释代码一样,我们只是在增加噪音,以换取它最终可能变得有价值的可能性。
假设你正在开发网站的登录功能。你编写了一个名为 的类,UserService
其中包含一个名为 的方法Login
。
然后你心想:“既然我还在开发这个类,不如加个方法按名字搜索用户。这在下一个 Sprint 里应该会有用。” 问题出在哪儿?嗯:
- 也许“搜索用户”功能永远不会出现,所以您只是在浪费时间。
- 你正在向你的提交/分支/PR 中添加不相关的代码。这会使代码审阅者和/或 PR 审阅者更难理解。
- 这段代码需要测试。你会花更多时间添加和执行所需的测试,还是干脆不测试这段代码?这两个选择听起来都不太好。
因此,如果您等待需要该功能而不是“以防万一”添加代码,您可能会更好地利用您的时间(以及您的团队的时间)。
4. 挑战你的想法
极简主义在于质疑事物。不要仅仅因为“我们一直都是这么做的”就去做事。挑战性的想法能帮助你更好地理解它们,并可能找到更好的解决方案,甚至发现之前方法中存在的问题。
当然,有时需要质疑,有时也需要放手,这样才能快速前进。不要陷入分析瘫痪,试图质疑每一件小事。
5. 充分利用现有资源
或者我们所说的可重用性。在软件开发中,代码可重用是可取的:它可以节省时间,使代码更简洁、更易于维护等等。
有时,从头开始开发一个功能很诱人……尝试新代码,甚至尝试改进已有的功能。在某些情况下这样做或许可以,但要注意可复用性的优势以及编写新代码的成本:可能存在错误,需要花费更多时间构建、记录和测试该功能,并且可能需要向团队介绍新的解决方案等等。
6. 避免“闪亮物体”综合症
有些功能的构建更有趣,但我们需要关注重要的事情:我们的用户最需要什么?
无论功能多么有趣或有趣,我们都应该优先考虑用户的需求。请注意自己的偏好,并尽量避免受其影响。
一些资源
如果您对极简主义感兴趣,这里有一些资源可以帮助您入门:
- 极简主义者在 Netflix 上制作了一部非常酷的纪录片,名为《极简主义:关于重要事物的纪录片》
- Matt D'Avella 在他精彩的YouTube 频道上谈论极简主义和自我提升。
- 我最近还听了保罗·贾维斯 (Paul Jarvis) 的一集播客,强烈推荐:《足够了》(如果您对创业感兴趣,请查看所有剧集)。