整洁代码之道|软件开发的那些真理,上大学时我怎么就没记住
文章插图
作者丨Ryland
很多开发者在编程多年以后 , 总是在实际工作的惨痛教训中学会了一些本该在大学时期就掌握的软件开发真理 。 我太难了 , 早干嘛去了……
1、不要太在意“代码行数”
文章插图
你可能听到过很多有关“代码行数”的疯狂理论 , 但请不要把它们当真 。 基于代码行数来做技术决策是一件很荒谬的事情 。 代码行数能够为我们提供的信息是很有限的 。 实际上 , 在大多数情况下 , 代码行数能够为我们提供的信息为零 。 基于代码行数来做技术决策无异于基于一本书的页数来判断书的质量 。
有人认为 , 项目的代码越少就越容易读懂 , 但这个观点只说对了一部分 。 我认为 , 具有可读性的代码应该具备以下这些特点:
- 一致性;
- 自描述;
- 良好的文档;
- 使用了稳定的特性;
- 不会太复杂;
- 性能不会太差 。
2、不一定要把编程语言分出“好坏”
文章插图
人们经常会这样说:
C 语言比某某语言好 , 因为它的性能更好 。 Python 比某某语言好 , 因为它更简洁 。 Haskell 比某某语言好 , 因为它是异类 。 使用一句话来评判和比较一门编程语言是对语言本身的侮辱 。 它们是编程语言 , 可不是什么口袋精灵 。
编程语言之间确实存在差别 , 而且很少存在“没有用”的编程语言(除了那些过时或者已经死掉的语言) 。 每一门编程语言都在某些方面做出了权衡 , 它们就像工具箱里的工具 。 起子可以做锤子做不到的事情 , 但你能说起子比锤子更好吗?
在说出我的编程语言评判标准之前 , 需要先澄清一个问题 。 编程语言的选择很少会对一个项目起到实质性的作用 。 如果你写的是前端代码 , 选择不会太多 , 但通常来说 , 编程语言的选择只是决定项目成败的一个不那么重要的因素 。
以下是我认为在选择编程语言时需要考虑的一些因素(已经排好序了):
- 是不是有很多相关教程;
- 开发速度;
- 出现 bug 的几率;
- 库生态系统的质量和广度;
- 性能;
- 好不好招人 。
3、阅读别人的代码是个麻烦事
文章插图
阅读别人的代码其实并非易事 。 Robert Martin 在《整洁代码之道》里提到过这个问题:
事实上 , 人们花在阅读代码和花在写代码上的时间比率超过了 10 比 1 。 阅读旧代码是写新代码的一个组成部分……所以 , 容易读懂的代码会让写新代码的工作变得更容易些 。 有很长一段时间 , 我被阅读别人的代码这件事所困扰 。 后来发现 , 其实有很多人都跟我一样 , 每天都要面对这个问题 。 阅读别人的代码就像是在阅读一本用外文写的书 , 即使代码是用你熟悉的语言写的 , 代码的风格和架构仍然会不一样 。 这个问题不太好解决 , 不过我发现下面这些做法可能会对你有所帮助 。
评审别人的代码有助于提升阅读代码的能力 。 在过去两年中 , 我评审了很多 GitHub PR 。 每评审完一个 PR , 我就越能够适应阅读别人的代码 。 GitHub PR 很适合用来提升代码阅读能力 , 因为:
- 随时都可以评审 , 只要找到你想加入的开源项目;
- 在划定的范围内进行练习(一个功能、一个 bug);
- 创园|中国V谷的云存储之道,马栏山文创园将视频处理效率提升6倍
- 吉林大学TARS-GO战队视觉代码
- TOP8无代码平台:2020年,这些机器学习平台不容错过
- 十分钟教会你使用Python操作excel,内附步骤和代码
- 低代码的器学习工具
- 你只写了两行代码,为什么要花两天时间?
- 两年开发10亿美元app令谷歌后悔,一个野生程序员的成功之道
- IntelliJ IDEA 如何设置自动下载源代码和文档
- 新来的实习生竟然偷偷在代码里“下毒”......
- 代码|腾讯云发布云开发低代码平台,大幅降低应用开发门槛