不要误会我的意思。我不想让你难过。我有这些迹象,我努力提高自己。如果你不知道自己的缺点,你怎么能改正它们呢?我们需要有人告诉我们这些事情,但大多数程序员没有那个人。
大多数时候,我们知道我们应该做什么,但我们不去做。我们认为我们可以稍后再做或改正。但“以后”永远不会到来。这是一个懒惰的程序员的常见标志,也是成为一个糟糕的程序员的第一步。
不明白代码的目标
在编写代码之前,您必须了解代码的用途,您的代码将做什么。这就像在你的脑海中运行代码一样。
症状
保留从未使用过的变量。
产生不相关的输出。
调用与目标无关的函数。
为了确定,多次执行幂等函数,如何 save()。
通过编写一些覆盖错误代码的代码来修复错误。
不必要的价值转换。就像首先将十进制转换为字符串,然后再将字符串转换为十进制一样。
补救措施
使用 IDE 自己的调试器作为助手。
检查变量更改前后的值。
对语言架构的理解不足
面向对象编程是一种编程模型,函数式或声明式编程也是如此。它们不同于过程式或声明式编程。当程序员从一种架构迁移到另一种架构时,他们会感到困惑,这很正常。但随着时间的推移,你必须对那个架构有更好的理解。
症状
不遵循标准 OOP。
(OOP) 在未实例化的类中调用非静态函数/变量。
(OOP) 编写了许多“XXXXManager”类,其中包含用于操作对象字段的所有方法,只有很少的方法或没有自己的方法。
将关系数据库视为对象存储。
在客户端代码中执行所有连接和关系强制。
创建同一算法的多个版本来处理不同的类型。
设置单个值(在命令式代码中)而不是使用数据绑定。
补救措施
这不是一天就能克服的。你需要练习,练习,更多地是练习。
文档阅读。如果您不了解该语言的架构或者 OOP 基础知识,请花时间更好地理解。
遵循高级程序员的代码。
不信任自己的代码
当你的逻辑很差时,你会感到困惑,并且会不信任自己的代码。
症状
不必要的编写 IsNull() 或 IsNotNull() 或 IsTrue(bool) 或 IsFalse(bool) 函数。
检查布尔类型变量是否不是真或假。
多次调用相同的函数以确认它的执行。
补救措施
不要从具有弱类型系统的语言中继承不必要的旧习惯。
对你的逻辑充满信心。如果逻辑有问题,请尝试新的逻辑。
陷入递归陷阱
递归的想法很棘手,但并不难。但是许多程序员害怕递归,就像幽灵一样。递归将使代码更简洁高效。递归就像梯子。你只需要想象“你在哪里”和“基地在哪里”,以及你将如何上台或下台。
症状
可以递归解决问题的复杂迭代算法。就像遍历文件系统树一样。
在递归调用之前和之后检查基本条件。
不测试基本条件的递归函数。
连接/求和到全局变量或携带输出变量的递归子例程。
补救措施
分几个步骤运行代码以了解流程。它可能会发生一些堆栈溢出。但别担心。
更改基本条件以查看输出。
你的目标是对你在哪里以及你在做什么有信心和完整的感觉。
研究能力不足
现代框架和语言具有令人惊叹的内置命令和功能的广度和深度。知识如此之多,以至于一个好的程序员需要几年以上的时间来消耗。但是一个好的程序员总是在开始滚动他们自己的函数之前搜索一个内置函数。
症状
在没有内置于语言中的基本机制(例如事件和处理程序或正则表达式)的情况下进行重新发明。
重新发明框架中内置的类型和函数。
而不是搜索,“请通过电子邮件将代码发给我,请”他们发布一则帮助论坛的消息。
即使新技术在这些情况下更好,也要坚持使用老式技术。
与其寻找一个直接的解决方案,不如通过编写“Roundabout 代码”使其复杂化,可以在许多步骤中完成可以用更少的代码完成的事情。
补救措施
这项技能需要时间来建立。所以不要着急。
当你遇到问题时,不要去找程序员或直接复制粘贴代码。慢慢来。阅读文档。
对指针理解不佳
如果您不了解指针的概念,那么您将很难编写复杂的数据结构和高效的 API。您将产生糟糕的数据结构设计和错误。
症状
缺乏区分方法调用中按值传递和按引用传递的知识。
未能实现链表。
错误地对指针执行算术运算导致无法找到或修复错误。
无法编写在不丢失或删除数据的情况下从链表或树中插入/删除节点的代码。
制作指针的副本,通过副本更改取消引用的值,然后认为原始指针仍指向旧值。
补救措施
指针很容易理解,但由于缺乏实践而经常被误解。
站内文章:均为188bet博彩体育app下载方式
各部门原创内容如需转载请著名本文网站链接://www.mcissock.com/new/27640.html未经允许转载要受法律责任,如需转载请联系269247937@qq.com
本文链接://www.mcissock.com/new/27640.html
tags:
郑州网站建设郑州网站制作郑州网站设计郑州建站公司郑州网站优化郑州做网站郑州小程序开发郑州网络公司