这周学到了两个编程领域的词语:货物崇拜编程 和 巧合式编程。
先说一下,这两个词语都是贬义词,需要开发者引以为戒。
一、货物崇拜编程
在了解「货物崇拜编程」之前,需要知道「货物崇拜」这个词语的来源。
货物崇拜的英文是 Cargo Cults,又译货物运动。
最为知名的货物崇拜,是于第二次世界大战太平洋战争时,美军于太平洋的美拉尼西亚岛建立临时基地。当时岛上的土著看见美军于「大铁船」(军舰)内出来,觉得十分惊讶。此外他们也看到有一些「大铁鸟」(军用飞机)运送穿着美军军服的人。这些土著看见这种情况感到很惊讶,并觉得这些「大铁船」及「大铁鸟」十分厉害。加上美军也提供部分物资给土著,而这些物资对土著来说十分有用,结果令这些土著将美军当作神。
第二次世界大战完结后,美军离开美拉尼西亚岛,只留下一些美军军服及一些货物。这些土著便认为这些货物具有神奇力量,又相信「神」(美军)他日会回来,带来更多货物,使他们展开一个幸福新时代。但是美军当然一直也再没有回来,因此这些土著便自己发展出一套敬拜仪式,崇拜美军军服以及货物。该宗教的表现形式是土著会穿着美军军服升起美国国旗,图腾则是木刻的飞机。一般把这种新的宗教被称为「约翰布鲁姆教」。
「货物崇拜编程」就是「货物崇拜」的衍生词。
货物崇拜编程通常是一个程序员既没理解他要解决的 bug,也没理解表面上的解决方案的典型表现。 这个名词有时也指不熟练的或没经验的程序员从某处拷贝代码到另一处,却不太清楚其代码是如何工作的,或者不清楚在新的地方是否需要这段代码。也可以指不正确或过份的应用设计模式,代码风格或编程方法,却对其原理不明就里。
🤔 如何避免货物崇拜编程?
1、培养责任感,对你写的每一行代码负责
如果你充满了责任感,你就会对你写的每一行代码保持警惕,即便是从其他地方 Copy 的代码,你也会想方设法的去了解它的来龙去脉,会带来什么潜在的问题,以及如何避免。
责任感带动你进行思考和怀疑,进而开展学习,最后你就不会盲从。
2、不要止步于会使用
任何一门技术都是为了解决问题而生,如果你想成为优秀的程序员,必须要深入的了解技术背后的原理和它解决问题的思路。这一点绝不能偷懒。
3、邀请高手审核你的代码
可以请团队中,有经验的同事,对你的代码进行审核,如果你能架得住对方的审核以及提问,那么说明你对你写的代码还是很了解的。
二、巧合式编程
巧合式编程就是写了一段代码,发现它可以正常运行,以为就万事大吉了,但是突然有一天运行在别的环境中,就直接出问题了,而且你还不知道为什么出问题。这个就是典型的巧合式编程。
🤔 如何避免巧合式编程?
1、先有设计,然后再产出,不要想到一处写一处;
2、你能给任何人解释清楚你写的代码;
3、尽量不要使用自己并不理解的技术进行编程,如果你都不确定它为什么能用,那么你也不会知道它为什么出错;
4、只依赖可靠的东西,不要依赖假设。如果你不知道某件事是否可靠,就要做最坏的打算;
5、不要只测试代码,还要测试假设。不要猜,去实际试一下,写一个断言来测试假设。
三、写在最后
编程应该深思熟虑。