迈向更好的代码,关于改进的思考
面对现实,我们已经从事软件开发已有数十年了。 我们再也不能声称自己是新域名和假冒他人的行为,以此作为运送草率代码的借口。
我们大多数人都可以分辨出好的代码与不好的代码之间的区别,但是我们如何创建漂亮的软件而不是仅仅阅读它呢?
好吧,让我们在这里尝试一下。
本文不会教给您禅宗的软件维护。 而是只是从内存中转储,以伪随机顺序排序以确保数据持久性。 希望在此过程中实现一些价值。
通过代码移情
说话,以便其他人可以听……写,以便其他人可以阅读
简洁有优雅。 打高尔夫可能会帮助您赢得JS1k ,但是未书写的线条将始终丢失。 与最长的混淆块相比,空洞成为协作的更大障碍。
即使编写用于数据检索的简单包装程序,我也总是发现将注释作为标记留在路径中很有用。 放置在适当位置的一些评论可以节省大量的回溯和工作量,特别是在高度协作的团队中。
当涉及的开发人员数量n超过1时,对于大型项目,就不再需要明确的要求。 问题在于, n不是瞬时测量。 即使几个月后由同一个人审阅代码, n也会大于1,并且该规则仍然适用。
(不)重写以更新
忽略了包容性的项目很少得到更新。 而是通过系统重写来提供功能更新,甚至是较小的修复。
像许多程序员一样,有时我会跳起来编写新鲜的代码,而不是阅读旧的代码。 可以理解为不遵循上一节的副作用,但是在开发软件时,这仍然是次要的决定。
旧代码可能附带许多保证,而新解决方案则没有。 一方面,现有代码有效,而您的代码仍处于理论上更快的领域。 我们有版本控制软件是有原因的,请使用它们。
删除完美之路
每一块石头都有一个雕像……雕刻家的任务是发现它。
–米开朗基罗,可能
为删除代码行而感到自豪。 我期待git
提交显示红色多于绿色的日子。 为清楚起见,详细程度不是必需的依赖项。 实际上,清除不再相关的决策路径并修剪circuit回的执行周期可提高可读性,并在将来出现错误时减少搜索空间。
如果您的经理问过您添加到项目中的几行代码,我只有一条建议-运行; 快速而相反的方向 。
抽象不是永远的
我们所有人都喜欢抽象,它们使我们免于重复,使我们站在巨人的肩膀上,是成为10倍摇滚明星忍者的秘密。 好吧,除了笑话,我不得不承认,抽象确实是有价值的工具。 它们使我们能够利用现有代码作为可以在编写高级代码时抽象化的假设。
但是,您可能也听说过泄漏抽象定律 。 如果不是,链接就在那儿,我会等待,乔尔比我更好。
了解抽象的成本是开发人员旅程中的关键步骤。 学习寻找隐性成本是成长为程序员的关键一步。 意识到越早,就越容易从欺骗性幻想中醒来。
我对彼得·泰尔的逆向问题的回答之一是这样一种观点,即定向实践的原始积累与先天才能变得无法区分。
通过共同努力,每天写出更好的代码,我的希望是使开发软件从思想到芯片的执行步骤更加紧密。
在离开之前 , 请注意 ,我在Semantics3上工作,通常会写博客,介绍我在为电子商务公司构建数据驱动的AI方面的技术 历险 。
要了解更多信息,请查看我们的博客 ,或在Medium上关注我以保持更新。
From: https://hackernoon.com/towards-better-code-9b7f35cca99e