好的编码习惯是一场代码驱邪仪式

(点击上方公众号,可快速关注)

“这不可能啊”、“见鬼了”。。。这是每个程序员都听过或说过的迷之言语。这些话基本上说明有人已经“撞邪”了。编程实际上是一项复杂的系统性工程,包括构思、实际编码和测试等阶段,每一阶段都极有可能产生错误,而且本身计算机容错性是有限的,所以出现错误是再非常正常的,我想应该没有人编程没出过错吧。

背景

为啥要写这篇文章呢,这是因为最近一段时间碰到两个“不可思议”的bug,百思不得其解的那种。

第一个bug由删除一行代码导致。这行代码,我清晰地记得当时我想了很长时间最终并没有删除,但最后的提交却包含了删除改动。常常有人说鬼压床,我怎么感觉有鬼压delete键呢。

第二个bug也是由删除一行代码导致。有个功能要迁移到另一个服务,这个功能我是完全拷贝过去的,但是最后发现代码却少了一行,不是代码块的开头和结尾,而是中间的一行。这排除了我复制不全的可能,但又是怎么删除的代码呢?

原因分析

代码的bug虽然好找,但找到产生这些bug的原因却不容易,这往往跟个人的习惯强关联,所以回溯和反思自己的行为变得尤为重要。思来想去,产生以上bug的原因有以下可能:

  • 当时头脑是混乱的

    在大脑是混沌的状态很容易做出错误的决策,即使感觉当时是“清晰”的,但怎么能相信当时的大脑印象呢--你觉得没删,但实际上却删了。

  • 当时可能有人打扰

    这种情况很多见。思维的连续性能有效保证编码的质量,这已经是人人皆知的真理,但在实际工作中,这种环境却很难满足。一会这边找人查问题,一会来人谈需求,过会可能还会有人催进度,等等,甚至有时候同时处理多件事。为啥很多程序员喜欢大半夜工作,因为半夜安静更能集中自己的注意力,当然这是不好的习惯。在思维的切换过程中,丢掉一些信息点是很正常的。

  • 不小心碰到了删除键

    有可能你在“左手指月”的时候碰到了删除键,或者办公桌上的一些小物件倒了压到了删除键。。。虽然可能性看起来不高,但真的是很有可能的。

培养好的编码习惯

通过上面的原因分析,可以看到这个bug本身跟编码习惯息息相关。良好的编码习惯是驱除这些“邪门”bug的最佳途径。这些编码习惯包括:

  • 放下傲慢,重拾敬畏

    现实是很复杂的,一些“看起来正确”的推理是站不住脚的。比如,上面提到的第二个bug,如果简单的认为完全的拷贝代码而不需要检查,那就会出现上面的问题。实际上现实中还有很多奇怪的现象,比如,服务以前没问题,加了一行人畜无害的代码,服务竟然崩溃了。。。所以,我们要有敬畏之心,认真对待每次改动。

  • 及时提交

    这条主要为了减少后续代码出现异常改动的可能性。如果代码已经检查完毕,要尽快的提交,在前面的文章 【Git】怎么样才是好的提交 有提到这点。     

  • 不要一心二用

    经过实践证明,一心二用是行不通的。当然有些人看起来好像挺享受一心二用,包括以前的我,之所以没出错,很可能是当前处理的事情的复杂度较低,或并行度不高。如果难度增大,没有人不出错。编程是一项复杂度高的系统工程,即使一心一用都可能导致出错,为何要进一步增加出错的概率呢?

  • 严格执行代码审查

    这一步是最重要的,是问题代码进入master分支的最后一步,一定要认认真真执行。如果工作配置不具备,自己可以执行,一行一行代码地审读。如果这一步我能做好,估计上面的两个bug就没有了。

   

    鸣谢:封面图标来源Becris的作品。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您提供一个简单的端午节网页设计代码。请注意,这只是一个基本的代码,您可以根据自己的需要进行修改和补充。 HTML代码: ```html <!DOCTYPE html> <html> <head> <title>端午节快乐</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="wrapper"> <h1>端午节快乐</h1> <img src="https://picsum.photos/200/300" alt="端午节龙舟"> <p>端午节,又称端阳节、午日节、五月节、重五节、龙舟节等,是中国传统节日之一,时间在农历五月初五日。端午节源于中国古代民间传说爱国诗人屈原,也是中华民族的民俗文化之一。</p> <p>端午节有许多传统文化活动,比如吃粽子、赛龙舟、挂艾叶、喝雄黄酒等等。我们在这个节日里可以感受到浓郁的民俗文化氛围,也可以体验到中华民族的团结和力量。</p> <button onclick="showFestival()">查看更多</button> <div id="festival"> <h2>端午节的传统文化活动</h2> <ul> <li>吃粽子:粽子是端午节必不可少的食品,用糯米、肉、豆沙等馅料包裹在竹叶里蒸煮而成。</li> <li>赛龙舟:龙舟竞渡是端午节最具特色的传统体育项目之一,是为了纪念屈原而进行的。</li> <li>挂艾叶:端午节挂艾叶是一种驱邪的习俗,有保平安、祛病健身之意。</li> <li>喝雄黄酒:雄黄酒是一种中草药酒,端午节喝雄黄酒有驱邪、防疫、祛病的作用。</li> </ul> </div> </div> <script src="script.js"></script> </body> </html> ``` CSS代码: ```css .wrapper { margin: 0 auto; max-width: 800px; padding: 20px; text-align: center; } h1 { font-size: 48px; color: #f00; } img { max-width: 100%; height: auto; margin: 20px 0; } p { font-size: 24px; line-height: 1.5; text-align: justify; } button { background-color: #f00; color: #fff; border: none; padding: 10px 20px; font-size: 24px; cursor: pointer; } #festival { display: none; } ul { list-style: none; padding: 0; } li { margin-bottom: 10px; font-size: 18px; line-height: 1.5; text-align: justify; } ``` JS代码: ```javascript function showFestival() { var festival = document.getElementById("festival"); if (festival.style.display === "none") { festival.style.display = "block"; } else { festival.style.display = "none"; } } ``` 这个代码实现了一个简单的端午节网页设计,包括标题、图片、段落、按钮和传统文化活动列表。点击按钮可以展示更多内容。您可以根据自己的需要进行修改和补充。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值