关于埋地雷的故事
最近,我在Quora中看到一个答案,这个答案深深打动了我。Bole Online引用的翻译:
三个程序员被要求越过一个正方形到另一边的房子。
新秀程序员目视检查了他们之间的短距离,说:“不远!我只需要十分钟。”
首席程序员瞥了一眼领域,思考了一会儿,然后说:“我应该可以在一天内通过。”新秀程序员很惊讶。
一位伟大的程序员看着现场,说道:“看起来好像是十分钟,但我认为十五分钟就足够了。”首席程序员嘲笑。
这位新手程序员出发了,但是我的地雷爆炸并炸了一个大洞花了一段时间,现在他不得不偏离给定的路线,以同样的方式返回,并试图一次又一次越过田野,他花了两天时间为了达到他的目标。到达时,他颤抖着受伤。
年长的程序员在出发后便会向前爬,轻轻地撞到地面,寻找地雷,只有在安全时才向前走。一天之内,他在几处Trigger地雷附近缓慢而谨慎地爬行。
伟大的上帝程序员开车离开后,他非常坚决地径直穿过田野,只花了十分钟就到达了另一边。
“你是怎么做到的?”问另外两个。这些地雷为什么不伤害您?”
他回答说:“非常简单,我根本没有栽任何地雷。”
#地雷来自哪里?
这是我与大神合作时的感觉,也是我对“干净的守则,没有地雷”的第一印象。但是当您反过来考虑时,为什么有些人习惯于埋藏地雷?“您看不到后果吗?从更深层次上讲,没有人愿意屈服于自己,主要是因为他们支付的费用不高注意习惯。养成良好的编程习惯是非常重要的。不良的编程习惯是造成许多编程习惯的原因。“程序员已经飞涨了十年。如果您想编写出色的代码,则总是必须问自己:“我能做得更好吗?”(嗯,这是算法类的口号。)只有那些想要不断改进的人才会注意减去各种细节来做。比以前好。以下是最常见的“地雷”的摘要:
没有预先建立
如果不计划整个系统的生命周期,到处都会发生内存泄漏。
该系统的设计不够好,有许多具有重复功能的类。
系统的行为定义不正确,界面设计不完整,被编写为创建但不能删除。
不注意代码的可读性
代码尚未完善,到处都有重复的代码,更改功能通常需要更改许多代码。
缺乏抽象使得具体发现到处可见,例如状态机在外部设置其状态开关。
该代码与语义并不接近。
不注重开发效率
到处都有复杂且重复的配置元素,并且通常可以省略许多配置。
许多中间代码,例如解析XML,解析协议等,都可以通过元编程实现自动化。
忽略数据
如果数据不正确,则必须对机密数据进行保护,例如,如果角色的属性直接分配到任何地方,都容易出错,直接更改应限制在少数几个功能上。
一些系统了解太多,例如数据层不应该知道显示层,显示和数据混合在一起。
数据取决于在C ++模板中编写的代码。没有为数据提供序列化文件。
未测试
TDD将加快编程速度,主要是为了分离问题并缩短反馈周期。显然,当您向大型系统中添加代码以确保代码按预期运行时,测试是快速获取代码的一种方法。
#更深层的原因
“我不是一个优秀的程序员,我只是一个有很多良好习惯的程序员”-KentBeck,“程序员的实践之道”首先是“照顾好自己的技能”。如果您不在乎是否可以精美地开发软件,那么如何花生命开发软件?
资料来源:http://jjyy.guru/how-fewer-bugs
过去推荐
自阅读Mybatis交易管理的源代码以来,它破坏了我对事务的理解…
由于分布式Redis锁定导致的P0级严重事故,整个项目团队都从其绩效中获益…
我的同事由一位有钱的女人照顾,并用全额钱买了房子。心态不平衡…
单击此处阅读原文并获得免费的编程材料!