当前位置: 首页 > 科技观察

各种流行的编程风格,你属于哪一种?

时间:2023-03-14 13:58:51 科技观察

在工作中,我会遇到很多使用不同风格的开发者。以下是我所知道的。你还知道什么吗?Shotgun编程是开发人员使用的一种编程风格。以非常随意的方式对待代码。“恩,这个方法调用错了……那我就试着把传过来的参数从false改成true!”,当然还是失败了,于是我们程序员就会这样:“好吧,那我就注释掉wholemethod”,或者其他更随意的处理方式,直到最终调用成功。或者在正确的方法旁边被程序员指出。如果我们把一个普通程序员和一个幸运的程序员配对,那么普通程序员很快就会发疯,普通程序员的智商可以降到最低。两个碰碰运气的程序员不应该结对编程,因为他们的破坏性才能比一个人造成的伤害要小。随机编程这是一种比散弹枪编程更温和的编程风格,我相信这可能是大多数程序员使用它的方式。这种编程经常发生在程序员并不清楚自己在做什么,也不知道自己编写的程序的本质和实际情况时,却能让程序运行起来。他们以碰运气的方式编写程序。有的时候,他们甚至不知道某个错误的原因,就开始发呆修改代码。一旦出现问题,他们会采用两条路径:1)停下来,了解程序,找到错误的原因。2)使用鸟枪编程开始解决问题。测试驱动开发是一种技术,可以挽救数以百万计碰运气编程的程序员。于是,他们有了一个更NB的借口:只要我的程序通过测试,你还有什么好说的?别骂我,测试驱动开发是个好东西,主要用来控制开发带来的运气问题。Cargo-CultProgramming关于CargoCults这个词来自二战期间居住在某些太平洋岛屿上的土著人民。战争期间,美国将这些小岛作为太平洋战场的补给站。他们在这些小岛上建造了自己的飞机跑道,用于运输战争物资。而那些小岛上的原住民从来没有见过飞机。他们看到飞机就觉得很牛逼,可以给那些白人带上各种东西和食物。二战结束后,原住民修建飞机跑道,用竹子建塔。然后就站在那里,希望飞机能为他们运送物资和食物。CargoCult编程是一种非常流行的编程方式。使用这种方法的程序员将学习到其他编程高手的编程方法。虽然他们不知道大师们为什么要那样做,但他们认为这样会让程序运行起来。.例如,在J2EE的第一年,有很多程序员过度使用EJB和EntityBeans。刻舟求剑编程刻舟求剑是一个流传甚广的寓言。这种编程风格在程序员圈子里很常见。比如有一天,你发现了一个空指针异常,于是你就到产生空指针异常的地方,简单的放了一个判断:if(p!=NULL)。是的,这样的修复可以让你的程序运行,但你并没有真正解决问题。你只是在你的船旁边注意剑落在哪里,这样做你只是隐藏了问题,这最终只会让你的程序的行为难以捉摸。您应该找出指针为空的原因并修复它。Designpattern-drivenprogramming正如这种编程的名字所说,这种编程风格使用了大量的设计模式。在你的程序中,设计模式无处不在,你的代码中充斥着Facade、Observer、Strategy、Adapter等等。因此,你的程序要处理的业务逻辑被这些设计模式扰乱了,无法读取。最后不知道是业务需求重复还是设计模式重要。总之,实际业务需求的程序逻辑被各种设计模式搞得一团糟,不堪入目。侦探性编程在解决错误时,侦探性程序员会调查错误的原因。然后,排查导致这个BUG的原因。然后,分析修复代码是否导致其他代码失败的因果关系。然后他使用文本搜索找到所有使用此更改的代码,并继续查找更高级别的调用代码。最后,程序员会针对不同的情况写下30个测试用例,即使这些测试用例与Bug无关,最后,程序员也有足够的信心准确地修复一个错字。同时,另一个正常程序修复了另外5个错误。使用这种风格的程序员有一种无法控制的重构代码的冲动。他们几乎重构了他们接触的每一个代码。甚至在产品发布前夕,在修复几个拼写错误的bug时,他会修改10个类,重构与这10个类相关的另外20个类,修改代码脚本的构建,5个部署描述符。