货物崇拜编程和巧合式编程

简介: 这周学到了两个编程领域的词语:货物崇拜编程 和 巧合式编程。

这周学到了两个编程领域的词语:货物崇拜编程 和 巧合式编程。

先说一下,这两个词语都是贬义词,需要开发者引以为戒。

一、货物崇拜编程

在了解「货物崇拜编程」之前,需要知道「货物崇拜」这个词语的来源。

货物崇拜的英文是 Cargo Cults,又译货物运动。

最为知名的货物崇拜,是于第二次世界大战太平洋战争时,美军于太平洋的美拉尼西亚岛建立临时基地。当时岛上的土著看见美军于「大铁船」(军舰)内出来,觉得十分惊讶。此外他们也看到有一些「大铁鸟」(军用飞机)运送穿着美军军服的人。这些土著看见这种情况感到很惊讶,并觉得这些「大铁船」及「大铁鸟」十分厉害。加上美军也提供部分物资给土著,而这些物资对土著来说十分有用,结果令这些土著将美军当作神。
第二次世界大战完结后,美军离开美拉尼西亚岛,只留下一些美军军服及一些货物。这些土著便认为这些货物具有神奇力量,又相信「神」(美军)他日会回来,带来更多货物,使他们展开一个幸福新时代。但是美军当然一直也再没有回来,因此这些土著便自己发展出一套敬拜仪式,崇拜美军军服以及货物。该宗教的表现形式是土著会穿着美军军服升起美国国旗,图腾则是木刻的飞机。一般把这种新的宗教被称为「约翰布鲁姆教」。

「货物崇拜编程」就是「货物崇拜」的衍生词。

货物崇拜编程通常是一个程序员既没理解他要解决的 bug,也没理解表面上的解决方案的典型表现。 这个名词有时也指不熟练的或没经验的程序员从某处拷贝代码到另一处,却不太清楚其代码是如何工作的,或者不清楚在新的地方是否需要这段代码。也可以指不正确或过份的应用设计模式,代码风格或编程方法,却对其原理不明就里。

🤔 如何避免货物崇拜编程?

1、培养责任感,对你写的每一行代码负责

如果你充满了责任感,你就会对你写的每一行代码保持警惕,即便是从其他地方 Copy 的代码,你也会想方设法的去了解它的来龙去脉,会带来什么潜在的问题,以及如何避免。

责任感带动你进行思考和怀疑,进而开展学习,最后你就不会盲从。

2、不要止步于会使用

任何一门技术都是为了解决问题而生,如果你想成为优秀的程序员,必须要深入的了解技术背后的原理和它解决问题的思路。这一点绝不能偷懒。

3、邀请高手审核你的代码

可以请团队中,有经验的同事,对你的代码进行审核,如果你能架得住对方的审核以及提问,那么说明你对你写的代码还是很了解的。

二、巧合式编程

巧合式编程就是写了一段代码,发现它可以正常运行,以为就万事大吉了,但是突然有一天运行在别的环境中,就直接出问题了,而且你还不知道为什么出问题。这个就是典型的巧合式编程。

🤔 如何避免巧合式编程?

1、先有设计,然后再产出,不要想到一处写一处;

2、你能给任何人解释清楚你写的代码;

3、尽量不要使用自己并不理解的技术进行编程,如果你都不确定它为什么能用,那么你也不会知道它为什么出错;

4、只依赖可靠的东西,不要依赖假设。如果你不知道某件事是否可靠,就要做最坏的打算;

5、不要只测试代码,还要测试假设。不要猜,去实际试一下,写一个断言来测试假设。

三、写在最后

编程应该深思熟虑。

相关文章
|
网络协议 网络安全 网络虚拟化
网络技术基础(10)—— VLAN间通信
【3月更文挑战第2天】网络基础笔记(加班了几天,中途耽搁了,预计推迟6天),这篇借鉴了之前师兄的笔记,边听边记笔记实在是太慢了。
|
人工智能 监控 测试技术
利用AI辅助工具提升软件测试效率
【2月更文挑战第17天】 随着科技的不断发展,人工智能(AI)在各个领域的应用越来越广泛。在软件测试领域,AI技术也发挥着重要作用。本文将探讨如何利用AI辅助工具提升软件测试效率,包括自动化测试、智能缺陷识别和预测等方面。通过引入AI技术,软件测试过程将变得更加高效、准确和可靠。
1216 1
|
SQL 存储 算法
抓个包看下 kerberos的 pre-authentication是如何工作的 1
抓个包看下 kerberos的 pre-authentication是如何工作的
|
人工智能 JavaScript 开发工具
极速上手!Claude Code 原生支持 Windows 免WSL安装教程
Claude Code 现已支持 Windows 原生运行,无需 WSL 配置。本文提供详细安装教程,涵盖 Node.js 环境验证、Git 安装及 Claude Code 配置步骤,助你快速上手这一强大 AI 编程工具。
13602 13
|
Prometheus 监控 Cloud Native
无痛入门Prometheus:一个强大的开源监控和告警系统,如何快速安装和使用?
Prometheus 是一个完全开源的系统监控和告警工具包,受 Google 内部 BorgMon 系统启发,自2012年由前 Google 工程师在 SoundCloud 开发以来,已被众多公司采用。它拥有活跃的开发者和用户社区,现为独立开源项目,并于2016年加入云原生计算基金会(CNCF)。Prometheus 的主要特点包括多维数据模型、灵活的查询语言 PromQL、不依赖分布式存储、通过 HTTP 拉取时间序列数据等。其架构简单且功能强大,支持多种图形和仪表盘展示模式。安装和使用 Prometheus 非常简便,可以通过 Docker 快速部署,并与 Grafana 等可
6595 3
|
存储 监控 算法
员工屏幕监控系统之 C++ 图像差分算法
在现代企业管理中,员工屏幕监控系统至关重要。本文探讨了其中常用的图像差分算法,该算法通过比较相邻两帧图像的像素差异,检测屏幕内容变化,如应用程序切换等。文中提供了C++实现代码,并介绍了其在实时监控、异常行为检测和数据压缩等方面的应用,展示了其实现简单、效率高的特点。
697 15
|
人工智能 算法 决策智能
CompassArena上新!JudgeCopilot与新一代Bradley-Terry模型竞技体验
2024 年 5 月,上海人工智能实验室司南 OpenCompass 团队携手魔搭 ModelScope,联合推出了大模型评测平台——CompassArena(大模型竞技场),为大模型领域引入了一种全新的竞技模式。
632 6
CompassArena上新!JudgeCopilot与新一代Bradley-Terry模型竞技体验
|
人工智能 运维 Serverless
Qwen2.5 的云端新体验,5 分钟完成极速部署
将 Qwen2.5 模型部署于函数计算 FC,用户能依据业务需求调整资源配置,有效应对高并发场景,并通过优化资源配置,如调整实例规格、多 GPU 部署和模型量化来提升推理速度。此外,函数计算支持多样化 GPU 计费模式(按需计费、阶梯定价、极速模式),可根据业务需求调整,在面对高频请求和大规模数据处理时,能够显著降低综合成本。
1163 16
|
存储 Java Linux
Java“Bad Magic Number”错误解决
Java“Bad Magic Number”错误通常发生在尝试运行不兼容或损坏的类文件时。解决方法包括确保使用正确的JDK版本、检查类文件完整性、清理和重新编译项目。
1328 14

热门文章

最新文章