新手找bug之旅:程序员翻车很难见?那是你没有一个程序员朋友!

软件开发工做充满了挑战性。人无完人,对于程序员来讲,在线翻车是在所不免的。有些人很淡定,也有一些人会感到生气、沮丧、不安或气馁。前端

 


 

在修复 bug 的过程当中咱们都经历了什么?这个值得咱们一探究竟。程序员

1. “我不知道该把它删掉仍是该重写”数据库

看着旧代码,你总有一种想要重写它们的冲动。丑陋的逻辑语句和啰嗦的语法极大下降了代码可读性!可是,若是代码跑得好好的,为何要去修改它们呢?编程

我常常会陷入这样的两难境地,并且我相信这也困扰着不少其余程序员。浏览器

2. “我先到 GitHub 上找个框架”服务器

我想大多数人都知道 GitHub,这个网站天天都会有不少开源项目发布出来。开发者们加入这个网站,给已有的项目拉取分支,在 wiki 上讨论,或者建立本身的代码库。框架

网站提供了不少很好的插件和模板,能够被用在各类各样的项目中。编程语言

3. “为何这个脚本要用这么多库?”函数

若是你要使用热门的编程语言,好比 Java 和 Objective-C,那么项目依赖库的数量会变得很是大。在采用一个须要大量依赖项的框架时这一点就变得很是明显。学习

一些 JavaScript 插件也须要大量的额外文件。有时候这些杂乱的东西会让人厌烦,但至少它们是能够用的!

4. “网上必定能找到解决方案”

在碰到难题时,个人第一反应是上网。不少程序员会在论坛上问问题,这些问题最终会获得解答。谷歌很是善于挑选与你的问题相关的关键字,并为你提供这些有用论坛帖子。

但惋惜的是,有时候对于某个特定的问题并无太多的信息。

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

为何要重复发明轮子呢?要扩展用户界面、程序或网站,插件是一种很好的方式。另外,插件还能提供定制化功能。若是找不到相应的插件,为何不本身开发一个?

6. “网站没问题,就怕遇到 IE”

在 IE 中渲染网页给咱们带来了不少考验和磨难,这个就不用多说了。从 IE 5.5 到 IE 9/IE 10,人们一直在为得到更好的浏览器支持而作着坚苦卓绝的斗争。

Web 开发人员可能很担忧网页调试,由于在 IE6 中打开一个网页可能就是一场噩梦。值得庆幸的是,那些日子正慢慢成为过去。

 


 

7. “这条逻辑语句的逻辑性不是很强”

if/else 循环、for 循环、while 循环、do 循环,这些都是逻辑语句,除了这些以外还有不少。在阅读示例代码时,我会反复回想我代码里的逻辑应该怎样写更好。

大量的非运算符和比较符号会让你晕头转向。因此,我会常常回头去修改以前写好的逻辑。

8. “半小时写的函数,花两个小时调试”

你一古脑儿写了一个函数,而后函数输出了一个致命的错误。为了找到问题所在,你不得不把其余代码删掉,只留下出问题的那几行代码。

当你最终找到问题并把它修复,你会感到筋疲力尽,但同时也松了一口气。

9. “在看了几篇文章以后,我才意识到以前的作法是错的”

我一般喜欢用本身的方式作事,但若是事情没有按照原计划进行,可能就会有麻烦。有好屡次,我开始一个项目遇到了麻烦,而后开始在网上搜博客寻找解决方案。

最后我发现个人方法是错误的,从新开始也许会更容易些!因此,在一开始先作一些调研,从长远来看确定会节省时间。

10. “StackOverflow 上好人多,他们会帮个人”

我已经记不清有多少次是经过 StackOverflow 解决难题的。这个社区有不少有才又友好的人,若是你愿意寻求帮助,他们就会帮助你。在全部的在线社区中,StackOverflow 无疑是可以提供最普遍支持的地方。

11. “少了右括号,麻烦一大堆”

调试代码就是跳来跳去,向前两步,后退一步,再向前两步,如此往复。花上几个小时盯着代码看,查找函数名或变量做用域中的错误,最后却发现少了右括号,那种感受很怪异。

全部的时间都浪费在了一个很小的语法错误上,感受本身真是个天才,也是个傻瓜。

12. “休息一下”

有时候你须要站起来,离开显示器一下子。在敲了几个小时的键盘以后,休息一下子确定有助于你思考。

大多数的健康指南建议每 30 到 60 分钟休息一次,但这彻底取决于你的须要。若是老是在半途中断,你可能也会感到恼怒。

13. “手头的项目先停下,稍后再继续”

除了离开电脑,这是另外一种休息方式。或许你还有其它工做能够作,那就去作吧。这是一种更好的分配时间和资源的方式,特别是若是你已经花了 5 个小时还解决不了一个问题的时候。

14. “有没有可以激发我编程能力的古典音乐?”

有一种观点认为,在植物生长的初期,播放古典音乐有助于植物的生长。我我的很喜欢古典音乐复杂的音符和音乐理论。爵士乐、钢琴、大乐队,古典音乐在人类文化中都占有一席之地。

那么,在编程时听音乐真的能让你在调试代码时变得更聪明吗?可能不会,但但愿它也不会让你变得更笨。

15. “或许如今是检验鲍尔默巅峰理论的好时机”

我想不少人都知道鲍尔默巅峰理论,该理论认为,程序员在摄入必定数量的酒精后,其编码能力将达到巅峰。

这是由史蒂夫·鲍尔默的古怪行为引发的,它可能只是一个酒鬼的胡言乱语。不过这有点讽刺,由于鲍尔默在微软并非一名程序员。我想咱们得等别人来试验一下这个理论。

16. “谁动了个人代码?”

这听起来就像是一种妄想症,但有时你不得不怀疑,正当你忙着补觉时,是谁在写了这些代码。过去几周或几个月忙的项目让你感到沮丧。

有时候你会不记得本身往代码库里添加过东西——甚至是上周刚刚查看过的项目!

17. “我不知道这是什么意思”

最糟糕的状况是,你一边阅读源代码,一边不知道该作点什么。多是你本身的项目,也多是其余人的项目,但问题是同样的。如今,你必须决定是花更多的时间查找替代方案,仍是花时间分析脚本,把它看懂。

 


 

18. “我要在谷歌上搜一下这个错误消息”

在作了多年 PHP 开发以后,我不得不说谷歌是个人好朋友。若是你使用的是其它编程语言,好比 Objective-C、C++、Java、Python 等,应该也会有一样的体会。

错误消息试图为咱们提供帮助,但除非你已经记住了各类错误代码的含义,不然它们看起来更像是通过翻译的计算机语言。

值得庆幸的是,网上有不少内容能够帮助咱们肯定这些错误消息究竟是什么意思。

19. “今天应该到此为止,但我真的很想解决这个问题!”

咱们都知道,当你想要放弃一件事情,会有一种挫败感,同时又以为放弃并非正确的选择。你但愿继续前进,并尝试新的解决方案。

但若是你发现你又所以浪费了一个小时呢?我常常遇到这种状况,这让人感到很是沮丧。

20. “天哪,我为何没写注释?”

在写前端 HTML/CSS/JS 代码时,并不老是须要写注释。但对于复杂一些的脚本和程序,就须要某种类型的注释,以便你在几个月后甚至几年后回过头来查看。

有时候你会忘记给函数及其参数、输出格式和其余基本数据添加注释。

当出现错误时,你须要调试整个脚本才能找到解决方案时,这无疑会给你添乱。这个时候你就会想,若是当初加一些有用的注释就行了。

21. “刚才它还能运行……”

开发程序最使人感到沮丧的,多是什么都没作——既没有更新,也没有修改代码——程序却忽然不能正常运行了。我发誓,这种事请常常发生。

也许是由于其余程序正在运行旧的版本?有时候,更新一小段代码就会致使整个程序崩溃,而后只能恢复到最近的可运行版本,并从那里接着往下开发。

22. “就由于忘记加个分号,整个程序都崩溃了”

我用过的每一种编程语言几乎都须要行终止符,固然并非全部的都须要,但 C/C++ 族编程语言一般是这样的。

若是你忘记添加结束分号,只是一个无意的错误,但解析器不理解这一点,它会无情地抛出一个致命错误。而后,你必须再花 20 分钟来查看代码,最后你发现缺乏了一个分号。也许这就是调试的“乐趣”。

23. “我想知道若是请人来修复我犯下的错误要花多少钱?”

聘请其余开发者来修复问题,这种想法很诱人,但显然财务上不容许。另外,若是你不亲自动手,怎么能从这些错误中吸收到教训呢?

在经历了屡次失败以后,当你最终对一个编程概念有了透彻的理解,你才会感受良好,但这并不能阻止个人脑子里出现想要聘请更多人的想法。

24. “快速浏览一下 Hacker News 确定能提升工做效率”

不少程序员喜欢在 Hacker News 上了解与软件及初创公司相关的社会新闻。这个网站上有不少关于自由职业、时间管理、软件开发、新公司启动和融资的信息。

虽然浏览这个网站会给你带来高效的感受,但它也在消耗你的时间。每隔几个小时休息一下,趁这个时候去看看新闻或许会更好。

25. “这个 API 怎么能没有文档!”

若是你使用的插件或框架没有文档,那么最使人感到沮丧的是你必须本身深刻查看它们的源代码。我喜欢那些开发人员会花时间专门设计文档的项目。

文档解释了全部可用的参数和选项,甚至可能还会提供一些示例代码片断。但遗憾的是,并非全部的项目都会这样。最简单的方法就是远离那些没有详细文档的项目,这样你就不会那么痛苦了。

26. “我多么但愿给数据库作过备份……”

在开发和调试代码时,我并不老是会想到给数据库作备份。可是,数据备份提供了一个保障,在作出某些变动以前能够及时回退。

记住,请在本地保留网站项目文件和数据库的副本,以备不时之需!这多是一项烦人的任务,但绝对没有重建被损坏的 SQL 数据库那么烦人。

27. “要解决这个问题,最快的方案是什么?”

在通过了几个小时毫无头绪的工做以后,很明显,你可能须要尝试一种新的方法。在设计接口以前,程序员但愿先让功能正常运行起来。

肯定最快速、最准确的解决方案,并保证 100% 的时间均可以正常运行,而后继续作那些锦上添花的东西。

28. “我打赌,更新新版本就能够解决这个问题”

负责管理编程语言依赖项和插件的团队不须要常常发布新版本。有时候,更新 PHP/Ruby/Python/SQL 版本就能够解决将文件从本地传输到服务器时的调试问题。

本地更新不多有助于修复源代码中的 bug,除非你的版本已通过时。值得一试!

29. “我应该学习 Git……但我想从下周开始”

版本控制系统 Git 在程序员中很是流行,它的学习曲线比其余竞争对手要容易些,被用于管理不少在线代码仓库,好比 Github 和 Bitbucket。

开发人员之因此想要延后学习,是由于对于初学者来讲,它的入门曲线很是陡峭。可是,一旦理解了它的基本命令,Git 就变得很是简单了。

30. “扔掉这个,我要从头开始”

有时候,在花了几个小时尝试某个解决方案以后,你会将工做文件移动到存档目录(或删除它们),而后从头开始。

以前几个小时的辛苦工做几乎没获得有什么回报,因此作出这个决定是很艰难的。但当我陷入困境时,从新开始每每正是完成一个项目所须要作的事情。

看看,这是否是你本身

 


 

另外若是你想更好的提高你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许能够帮到你~

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比本身琢磨更快哦!

免费学习书籍:


 

免费学习资料:

相关文章
相关标签/搜索