Debugging 如何对抗startover效应
当我被要求修复一个bug或者在一个我没有开发的项目中引入一个特性时,我经常会有这样的感觉,从零开始会给我带来很多工作、痛苦和努力。虽然通常这显然是更多的工作,似乎我遭受了很大的痛苦 那么,你是如何克服这种冲动,专注于项目,还是在修复bug或引入功能的同时,让自己一点一点地将项目变形为你更喜欢的东西 关于我的一些观点:Debugging 如何对抗startover效应,debugging,design-patterns,Debugging,Design Patterns,当我被要求修复一个bug或者在一个我没有开发的项目中引入一个特性时,我经常会有这样的感觉,从零开始会给我带来很多工作、痛苦和努力。虽然通常这显然是更多的工作,似乎我遭受了很大的痛苦 那么,你是如何克服这种冲动,专注于项目,还是在修复bug或引入功能的同时,让自己一点一点地将项目变形为你更喜欢的东西 关于我的一些观点: 我是一个相当好的程序员 我认为自己是一个Python程序员,意思是我试着跟随 我真的不喜欢大的抽象(下面的例子中有更多) 很明显,有时我自己的代码也会有这样的问题 要对我所谈论
- 我是一个相当好的程序员 我认为自己是一个Python程序员,意思是我试着跟随
- 我真的不喜欢大的抽象(下面的例子中有更多)
- 很明显,有时我自己的代码也会有这样的问题
- 最近,它们中的大多数都基于php,但可能是任何语言
- 可能是由从未真正编写过大型项目或团队代码的人编写的
- 最常见的是大量的类和伪抽象(详见下文)
- 很可能没有任何评论
- 命名错误的变量、类和函数
- 大量冗余,例如大量的
或者在每个htm文件中使用不同名称的相同javascript函数,或者轮流调用的类style=“border:1px纯黑”
- 巨大的转换语句就像几百行代码
- 有时构建在不推荐使用的库之上,或者仅仅是为了服务一个非常小的功能集
- 巨大的代码库,而不需要真正将代码拆分到不同的文件中
- 奇怪的球形
- 奇怪地方的死代码(如switch语句)
我认为这是一个非常好的问题。我们所有人都经历过这种情况,每个人都认为其他人的代码是,嗯,低于标准的 我尽量把顾客放在心上。一方面,我的客户并没有很好地接受糟糕的架构或设计的代码,我可以迅速介入并解决这一问题。但另一方面,如果它有效,他也可能不会因为付给我很多钱来重新做一些已经有效的事情而得到很好的服务
我能“偷偷”带上更好的东西吗?单元测试?小重构?有时候,长而复杂的方法是这样的,因为它们随着时间的推移已经被调整过了——如果我不小心的话,可能会破坏其中的错误修复 我认为这是一个非常好的问题。我们所有人都经历过这种情况,每个人都认为其他人的代码是,嗯,低于标准的 我尽量把顾客放在心上。一方面,我的客户并没有很好地接受糟糕的架构或设计的代码,我可以迅速介入并解决这一问题。但另一方面,如果它有效,他也可能不会因为付给我很多钱来重新做一些已经有效的事情而得到很好的服务
我能“偷偷”带上更好的东西吗?单元测试?小重构?有时候,长而复杂的方法是这样的,因为它们随着时间的推移已经被调整过了——如果我不小心的话,可能会破坏其中的错误修复 一个拥有四到五年专业经验的开发人员开始“大踏步”。他或她正变得足够有能力看到一个项目的大局。你的自我评估可能100%正确,你向他人学习的愿望将使你与众不同 记住这一点:编程很难,而且几乎总是在胁迫下完成的。胁迫表现为几种形式:冷漠、新技术、厌倦、紧迫的期限、个人问题、疲劳 例如,我发现了一个由我工作的首席程序员引起的问题。他是一个非常聪明的人,拥有必要的技术技能。问题是:他用单数形式描述了一个web服务,但实现了复数形式的调用。换句话说,spec:/offload_文件;实现:/offload\u文件 这是一个很大的问题,尽管文档中有超过2万字的一个字符错误。他的妻子正准备生孩子 你已经达到了很少人能达到的技术水平,现在你必须学会做一些不同的事情。你必须弄清楚如何工作