当前位置: 首页 > news >正文

当代码遇上玄学……

为什么bug天天出现?

为什么bug遥遥领先?

一杯茶,一包烟,一个bug找一天。

问:程序出现BUG的时候,程序员能做什么?

答:烧香拜佛看运势。

有人相爱,有人在夜里看海,有人在凌晨三点将充满bug的代码改了又改,点击运行却依然显示失败……程序员群体有这样一条法则:代码能跑起来,千万不要再动它了。

01他们都相信玄学

我是小ZA,一名混迹在外滩金融圈的程序员。每天我必不可少的事情就是:找bug,修bug。因此我对“世界上最遥远的距离不是生与死,而是我亲手创造的bug却发现怎么也找不到它。”这句话深有感触。

我最近发现了一个神奇的现象。很多程序员都把希望寄托于玄学。

程序员小A说:“我们团队通常会在项目上线前拜一拜,保佑项目上线当天不出问题。但是通常会有一个铁律,正式上线的头一天/一周内运行良好,意味着将来在高关注度消失之后,一定出现无法解决的bug。”

“代码没有问题,就是运势有问题。在注释上打下“佛祖”就能够保佑代码成功跑起来。”这是程序员小B给我分享的方法。

上个月程序员小C的绩效格外好,然而他的工位上贴满了“永不宕机”的标签。

前几天跟同事小D聊天的时候也听到他讲:“以前对玄学嗤之以鼻,不相信有,就算有也觉得人定胜天现在岁数上来再回看以前发现有时候真的倒霉的说不通,所以慢慢相信了玄学这一说,打算去上香了。”

程序员小E说:“如果代码的尽头不是玄学,那么一定是有人改了我的代码。”

不过拜拜好像也没啥大事儿,毕竟国外还请牧师给服务器做法。就在前两天我还看到有人在网上开了代码命理培训班。

02他们相信玄学≠他们不相信科学

这一切都在指引着我往神秘莫测的方向思考。莫非,科学的尽头真的是玄学?或许只有在每天与bug奋战的程序员们才能深刻理解。虽然他们天天搞玄学那一套,但我还是想知道他们内心真正的想法。有必要采访一下我的程序员同事了。

众安前端开发徐翔:“我还是相信逻辑,bug出现的原因是由于逻辑偏差引起的,它是可以用合理的方法去解决的。玄学已经超脱程序员的思维和考虑范畴了”

众安运维陈凡青:“还是要相信科学。”

众安图像识别刘邦贵:“每次科技的进步都是人与计算机之间相互配合的结果,修BUG就是这样的一个过程。”

听到他们简略而又肯定的回答,我深深地明白他们的内心更加偏向于科学。是的。玄学在代码中是不应该存在的。很多时候,只是我们没有考虑周全,就像当初bug命名者格蕾丝·赫柏,她又怎么能想到造成机器宕机的原因是一只飞蛾呢?

既然如此,为什么还会有程序员将修bug寄托于玄学?


其实原因也不难解释,“祈求项目上线当天一切顺利”、“贴满永不宕机标签”、在注释中加上“佛祖”的呼唤……这一系列的做法都可以被理解在不确定的编码事情中寻找平衡与信仰的方式。在充满挑战和无尽可能的编码世界里,程序员们需要这种平衡与信仰。

或许还可以理解为:在编程社区中,玄学的传统是一种共同的文化元素。同事之间的玩笑、传统或者潜在的社交压力都会促使程序员参与到这种玄学的游戏中。即使他们个人可能并不真正相信这些方法。

目前来看,尽管一些科学解释因为其复杂的外表而表现的像玄学,但大多看似玄学的东西能找到科学依据。随着科技的飞速发展,玄学能在科学中找到合理解释也说不定。

相关文章:

  • SRE-Redis基本概念篇
  • 初识elasticsearch
  • 内网安全:NTLM-Relay
  • 幻兽帕鲁服务器出租,腾讯云PK阿里云怎么收费?
  • 计算机网络——网络层(2)
  • c#之构值类型和引用类型
  • 4核16G幻兽帕鲁服务器优惠价格表,阿里云和腾讯云报价
  • ES 分词器
  • Android源码设计模式解析与实战第2版笔记(一)
  • RabbitMQ-如何保证消息不丢失
  • Sentinel背后的原理:守卫你的代码安全之旅
  • [GXYCTF2019]BabySQli1
  • Day53 动态规划part14 1143. 最长公共子序列 1035. 不相交的线 53. 最大子数组和
  • 在中国如何方便地使用GPT Plus?
  • 【Java 设计模式】行为型之中介者模式
  • #Java异常处理
  • angular学习第一篇-----环境搭建
  • Django 博客开发教程 16 - 统计文章阅读量
  • docker容器内的网络抓包
  • eclipse的离线汉化
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • iOS小技巧之UIImagePickerController实现头像选择
  • JSDuck 与 AngularJS 融合技巧
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Yii源码解读-服务定位器(Service Locator)
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 记一次和乔布斯合作最难忘的经历
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 手机端车牌号码键盘的vue组件
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 在Mac OS X上安装 Ruby运行环境
  • 智能网联汽车信息安全
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #1014 : Trie树
  • #include到底该写在哪
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (2)(2.10) LTM telemetry
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (4.10~4.16)
  • (C++)八皇后问题
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)jdk与jre的区别
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .“空心村”成因分析及解决对策122344
  • .NET CLR基本术语