『埃尔法哥哥』为什么你写的代码别人看不懂?
好的事物都是在结构和混乱的健康平衡中产生的 。
为什么你的代码这么潦草?
为什么每个开发人员都认为自己编写的代码是完全可以理解的?为什么同一个开发人员不能看懂和理解别人编写的代码 , 从而很少能对其进行维护呢?
是因为他们写的代码都很潦草 。 也就是说 , 代码现在可以正常运行 , 但由于它相当混乱 , 不具备很好的可扩展性或通用性 。 计算机科学家是个例外—他们编写的代码很“漂亮” , 但不起作用 。
【『埃尔法哥哥』为什么你写的代码别人看不懂?】原因1:对于计算机科学家来说 , 编码是一门艺术 。 对其他人来说 , 它仅是个工具
计算机科学家编码是因为他们想编码 。 其他人编码是因为他们想完成工作 。
一个普通的开发人员会根据他们能想到的第一个想法来构建程序 。 然后他们会在这个想法的基础上继续延伸 , 直到构建出类似MVP的东西 。 通常情况下 , 他们甚至不会考虑是否还有其他可行的方法 。
相反 , 计算机科学家会考虑实现的各种方案 , 权衡每种方案的利弊 。 几周之后 , 他们可能还只是编写了一段漂亮但仍然不能完全运行的代码 , 因为计算机科学家还没有决定好输出要采用什么格式 。
很多潦草代码的产生是由于开发人员仅从一个简单的工具开始 , 然后就有机地增长代码造成的 。 相比之下 , 计算机科学家通常会先构建一个结构框架 , 然后再在框架内实现编码 。
文章图片
有些代码看起来很整洁 , 但实际上却很混乱 。 图片来自Unsplash由NikitaVantorin上传
为了避免CoderBlock能按时交付 , 采用有机的方法是最好的 。 但是 , 如果我们想要编写可持续的代码 , 可能就需要将结构框架放在第一位了 。
原因2:开发人员并不总是以读者为中心来编码
即使是在协作项目中 , 开发人员也倾向于在编码时仅考虑其功能 。 他们这样做时 , 就会忘记“代码也是需要维护”的这一事实 。
问题在于这种心态会适得其反 。 当开发人员想在三个月后再添加一个特性时 , 他们可能连自己都无法理解自己编写的代码了 。 这种情况比你想象中的要更常见!
当另一个开发人员被要求实现这个新特性时 , 情况会变得更加复杂 。 由于项目规模大小的不同 , 理解其他人编写的代码可能需要花费几天到几周的时间 。
原因3:风格很重要
每个人都以不同的方式编码 。 有人讨厌行注释 , 有人则喜欢 。 有人会在第一行的上面注释它们的功能 , 有人则会在第一行的下面注释 。 有人喜欢使用switch开关语句 , 有人则讨厌 。
这就是为什么一段代码对一个人来说可能很可怕 , 但对另一个人来说却很好 。
当你独自工作时 , 这没什么问题 。 但如今 , 很多软件都是协同构建的 。 因此 , 在项目的早期 , 制定风格指南是很重要的 。
当然 , 我们还需要确保所有的开发人员都遵守它 。 否则 , 我们将以代码更加混乱而告终 , 因为此时代码会是各种不同约定混杂后的产物 。
文章图片
及时修复是有益的 , 但从长远来看可能会导致大混乱 。 图片来自Unsplash由MuhannadAjjan提供
理由原因4:即时奖励的谬论
你被一个问题困扰了很几天 , 当你终于找到了解决方案时 , 你是否会感到兴奋?这是一个非常激动人心的时刻 。
问题在于 , 当开发人员追求快速修复时 , 往往会忽略长期的问题 。 例如 , 他们可能修复了一个bug或者添加了一个特性 , 但是他们没有意识到代码结构已经过时了 。
这意味着每当他们要添加一个新特性时 , 都不得不投入更多的工作 。 相反 , 从长远来看 , 对程序进行一次重构 , 当添加更多新特性时 , 将会变得更加容易 。
- 三生石哥哥多家快递公司宣布会提高快递运送费用
- 埃尔法哥哥互联网空间会被用完吗?2025年全世界数据总量将会超过16万EB
- 埃尔法哥哥 人工智能与科技传播领域的融合
- 【埃尔法哥哥】kNN分类算法及其python实现
- 埃尔法哥哥■区块链技术迎风而上,ETX公链解决行业痛点,信息时代安全为王
- 埃尔法哥哥@Spark 数据倾斜的 8 大实用方法,解决
- 「埃尔法哥哥」ICCV2019:DeepFill一个用于生成图像修复任务的开源框架
- 『埃尔法哥哥』每一个程序员的必经之事
- 埃尔法哥哥■假装网络工程师-TCP/IP与静态路由
- 埃尔法哥哥▲需求侧响应又准又赚,AI加持