zoukankan      html  css  js  c++  java
  • 程序员奇谈之我写的程序不可能有bug篇

    程序员在普通人的印象里是一份严(ku)谨(bi)的职业,也是一个被搞怪吐槽乐此不疲的职业,程序员们面对复杂的代码敲打电脑时连眉头都不会皱一下,但是有一个词却是他们痛苦的根源,它就是Bug。

    有不少的新手程序员,刚开始都是从修BUG开始做起的。

    修bug有助于熟悉项目,了解大概哪些类参与了执行线路,相互调用关系又是如何,结构设计上有什么特点。

    以前猿姐就听过这样一个故事

    有三个程序员需要穿过一片田地,到达对岸的房子。

    初级程序员看了一眼笑着说道:不远,只需要十分钟就行。

    资深级程序员想了一下说道:我应该在一天内过去。”菜鸟程序员很惊讶。

    大神程序员看了一眼田地,说:我觉得十五分钟应该够了,资深程序员冷笑了一声。

    于是,初级程序员出发了,刚走了一步就碰到了地雷,只好返回再次尝试,最好,花费了一天的时间才过去,结果却是伤痕累累。

    资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。

    大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。

    “你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?”

    “很简单,”他回答道,“我最初就没有埋地雷。”

    哈哈是不是很有意思呢

    开发应用程序是一个非常有压力的工作。没有人是完美的,因此在这个行业中,代码中出现 Bug 是相当普遍的现象。

    面对 Bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉着。因此,如何处理修复 Bug 的过程也值得我们细细琢磨。

    猿姐想分享一些程序员修复他们的源代码时所经历的想法。我相信很多开发人员和软件工程师经历过这些艰辛,然后在事后一笑而过。以下你经历过哪些?

    1.“我不知道是要删除还是要重写它”

    回顾从前老的源代码,会有一种想要返工写成较大块集群的冲动和诱惑。丑陋的逻辑语句,还有冗长的语法,导致代码非常难以阅读!

    但话又说回来,如果代码没有坏掉的话,那就不要去修复它。这种汹涌澎拜的斗争是我经常要面对的,而且显然会困扰许多软件开发人员。

    2.“对于起始框架我应该查看 Github”

    我想大多数开发人员都知道 Github,上面每天都有数量惊人的开源项目发布。

    任何语言的程序员都可以通过互联网借鉴现有项目,加入维基讨论,或者创建自己的代码仓库。它是各种项目所需插件和模板的超棒资源。

    3.“为什么这个脚本需要这么多库?”

    尤其是一些比较大众化的语言,如 Java 和 Objective-C,库的数量可能变得异常凶猛。当构建一个需要大量基础的框架时,所需的库的数量就变得显而易见得多。

    即使是一些适用于 Java 的插件,也会额外需要无数的文件。有时,这会让人觉得烦杂恼人——但至少是有用的!

    4.“在互联网的某个地方一定已经有了解决方案。”

    我面对棘手问题的第一反应是上网查。程序员会将他们遇到的问题通过帖子发布到论坛上,然后这个问题最终得到解决并归档。

    谷歌搜索问题关键字的好帮手,可以指点你往正确的讨论方向走。不幸的是,有的时候却是因为手头没有特定问题的太多信息而找不着北。

    5.“有没有这个功能的插件?”

    为什么要重新发明轮子?插件是扩大任何程序或网站用户界面的伟大资源。此外,它们还为开发人员提供了一些自定义和独特的选项。万一真的没有可用插件的话,为什么不自己构建一个呢?

    6.“虽然网站可以工作,但我害怕 IE 浏览器。”

    在 Internet Explorer 中渲染网页的历史充满了艰辛考验,是我们有目共睹或亲身体验过的。

    从 5.5 版本升级到 IE9、IE10,总是需要争取到更高级浏览器的支持。Web 开发人员可能会害怕调试网页,因为在 IE6 中打开页面是一个渲染噩梦。值得庆幸的是,这样的日子正在慢慢成为过去。

    7.“对于逻辑表达式而言,这似乎并不怎么合乎逻辑。”

    对于 if / else 循环,for 循环,while 循环,do 循环等等,都有逻辑表达式。当浏览示例代码时,我试图指出我的逻辑是如何工作的。

    NOT 运算符和比较标记的数量又是如此之多。我经常回过头去更新我自己的逻辑以便于更好地适合未来的做法。

    8.“我用 30 分钟写函数,花 2 小时让它工作。”

    这难道不像我们自己的编程故事吗?你正兴致勃勃地在构建着什么,但是突然之间,函数输出了一个致命的错误。

    所以,现在你必须回过头去删除一些代码块,以找出错误发生的行号。当你终于找到罪魁祸首,并解决它时,虽然有种精疲力竭的感觉,但也满心安慰。

    我常常会一开始就根据自己的编程思想,一头扎进去研究,但是这可能会导致麻烦,如果事情不像原先设想地那样顺利的话。

    已经有很多次在我启动一个项目之后,陷入了困境,然后只好寻求博客和其他论文的支持。

    最后我发现我的整个方法实际上是错误的,而且从头来过更容易!如果我开始的时候能先做一番研究的话,从长远来说,反而节省时间。

    来源  https://post.mp.qq.com/kan/article/2063422179-295542592.html?_wv=2147483777&sig=ee208a49a460584bd6d97e6651f38a19&article_id=295542592&time=1552472230&_pflag=1&x5PreFetch=1

     
  • 相关阅读:
    感触
    十道海量数据处理面试题
    jQuery横向手风琴图片滑块
    源码分享-纯CSS3实现齿轮加载动画
    Unix/Linux环境下多一点不如少一点
    参加中国系统架构师大会感悟
    Sql Server新手学习入门
    程序设计应知道的那些事儿之函数
    Windows 下如何安装配置Snort视频教程
    程序设计应知道的那些事儿
  • 原文地址:https://www.cnblogs.com/w5942066/p/10531915.html
Copyright © 2011-2022 走看看