糟糕程序员的一些迹象与补救方案

6df067346c25392b3ca1b08397ba3781.jpeg

英文 | https://javascript.plainenglish.io/signs-that-you-are-a-bad-programmer-dc1c647827d6

不要误会我的意思,我不想让你感觉不好。我也有这些迹象,但我努力提升自己。如果你不知道自己的缺点,你怎么去改正它们呢?我们需要有人告诉我们这些事情,但我们大多数程序员周围是没有这样的一个人。

大多数时候,我们知道我们应该做什么,但我们不去做。我们总想着可以以后再做改正。但“以后”永远不会到来,这是一个懒惰的程序员的常见标志,也是成为一个糟糕的程序员的第一步。

昨天,我从 GitHub 阅读了 Daryll Santos 的一篇精彩的长文。我总结并挑选了一些与我相关的迹象,所以让我们进入事实。

不明白代码的目标

在编写代码之前,你必须了解代码的用途,你的代码将做什么。这就像在你的脑海中运行代码一样。

症状

  • 保留从未使用过的变量。

  • 产生不相关的输出。

  • 调用与目标无关的函数。

  • 为了确定,多次执行幂等函数,如 save()。

  • 通过编写一些覆盖错误代码的代码来修复错误。

  • 不必要的价值转换,就像首先将十进制转换为字符串,然后再将字符串转换为十进制一样。

补救措施

  • 使用 IDE 自己的调试器作为助手。

  • 检查变量更改前后的值。

对语言架构的理解不足

面向对象编程是一种编程模型,函数式或声明式编程也是如此。它们不同于过程式或声明式编程。当程序员从一种架构迁移到另一种架构时,他们会感到困惑,这很正常。但随着时间的推移,你必须对那个架构有更好的理解。

症状

  • 不遵循 OOP 标准。

  • (OOP) 在未实例化的类中调用非静态函数/变量。

  • (OOP) 编写了许多这样的“XXXXManager”类,其中包含用于操作对象字段的所有方法,只有很少的方法或没有自己的方法。

  • 将关系数据库视为对象存储。

  • 在客户端代码中执行所有连接和关系强制。

  • 创建同一算法的多个版本来处理不同的类型。

  • 设置单个值(在命令式代码中)而不是使用数据绑定。

补救措施

  • 这不是一天就能克服的,你需要练习,练习,更多的练习。

  • 文档阅读,如果你不了解该语言的架构或 OOP 基础知识,请花时间更好地理解。

  • 遵循高级程序员的代码。

不信任自己的代码

当你的逻辑很差时,你会感到困惑,并且会不信任自己的代码。

症状

  • 写不必要的 IsNull() 或 IsNotNull() 或 IsTrue(bool) 或 IsFalse(bool) 函数。

  • 检查布尔类型变量是否不是真或假。

  • 多次调用相同的函数以确认它执行。

补救措施

  • 不要从具有弱类型系统的语言中继承不必要的旧习惯。

  • 对你的逻辑充满信心,如果逻辑有问题,请尝试新的逻辑。

陷入递归陷阱

递归的想法很棘手,但并不难。但是许多程序员害怕递归,就像幽灵一样。递归将使代码更简洁高效,递归就像梯子,你只需要想象“你在哪里”和“基地在哪里”,以及你将如何上台或下台。

症状

  • 可以递归解决的问题的复杂迭代算法,就像遍历文件系统树一样。

  • 在递归调用之前和之后检查基本条件。

  • 不测试基本条件的递归函数。

  • 连接/求和到全局变量或携带输出变量的递归子例程。

补救措施

  • 分几个步骤运行代码以了解流程,它可能会发生一些堆栈溢出,但别担心。

  • 更改基本条件以查看输出。

  • 你的目标是对你在哪里以及你在做什么有信心和完整的感觉。

研究能力不足

现代框架和语言具有令人惊叹的内置命令和功能的广度和深度。知识如此之多,以至于一个好的程序员需要几年以上的时间来消耗。但是一个好的程序员总是在开始滚动他们自己的函数之前搜索一个内置函数。

症状

  • 在没有内置于语言中的基本机制(例如事件和处理程序或正则表达式)的情况下进行重新发明。

  • 重新发明框架中内置的类和函数。

  • 而不是搜索解决,或者通过论坛发布消息以求帮助。

  • 即使新技术在这些情况下更好,也要坚持使用老式技术。

  • 与其寻找一个直接的解决方案,不如通过编写“Roundabout 代码”使其复杂化,以在许多步骤中完成可以用更少的代码完成的事情。

补救措施

  • 这项技能需要时间来建立,所以不要着急。

  • 当你遇到问题时,不要去找程序员或直接复制粘贴代码。慢慢来,阅读文档。

对指针理解不佳

如果你不了解指针的概念,那么你将很难编写复杂的数据结构和高效的 API,你将产生糟糕的数据结构设计和错误。

症状

  • 缺乏区分方法调用中按值传递和按引用传递的知识。

  • 未能实现链表。

  • 错误地对指针执行算术运算导致无法找到或修复错误。

  • 无法编写在不丢失或删除数据的情况下从链表或树中插入/删除节点的代码。

  • 制作指针的副本,通过副本更改取消引用的值,然后认为原始指针仍指向旧值。

补救措施

  • 指针很容易理解,但由于缺乏实践而经常被误解。

总结

以上就是我与你分享的关于糟糕程序员的一些迹象与补救方案,如果你也有这些问题的话,请经快处理掉它们,最后,感谢你的阅读。

学习更多技能

请点击下方公众号

5cd54d11db0fabb379bc42f4e59a79f3.gif

3bb6588a23769907faad5367375277a3.jpeg

dbf791e2fbc86dc72ec6224062b9293a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值