软件开发工作充斥了挑战性。人无完人,对于程序员来说,写出有 bug 的代码是在劫难逃的。有些人很淡定,也有一些人会感到怄气、丧气、不安或泄气。在修复 bug 的过程中咱们都经验了什么?这个值得咱们一探到底。
本文列出了程序员在修复 bug 时可能会说的一些话或者想法。我敢说很多程序员都曾经验过编程的艰苦,但在预先都会一笑而过。
1.“我不晓得该把它删掉还是该重写”
看着旧代码,你总有一种想要重写它们的激动。俊俏的逻辑语句和啰嗦的语法极大升高了代码可读性!然而,如果代码跑得好好的,为什么要去批改它们呢?我常常会陷入这样的两难地步,而且我置信这也困扰着很多其余程序员。
2.“我先到 GitHub 上找个框架”
我想大多数人都晓得 GitHub,这个网站每天都会有很多开源我的项目公布进去。开发者们退出这个网站,给已有的我的项目拉取分支,在 wiki 上探讨,或者创立本人的代码库。网站提供了很多很好的插件和模板,能够被用在各种各样的我的项目中。
3.“为什么这个脚本要用这么多库?”
如果你要应用热门的编程语言,比方 Java 和 Objective-C,那么我的项目依赖库的数量会变得十分大。在采纳一个须要大量依赖项的框架时这一点就变得非常明显。一些 JavaScript 插件也须要大量的额定文件。有时候这些芜杂的货色会让人腻烦,但至多它们是能够用的!
4.“网上肯定能找到解决方案”
在碰到难题时,我的第一反馈是上网。很多程序员会在论坛上问问题,这些问题最终会失去解答。谷歌十分长于筛选与你的问题相干的关键字,并为你提供这些有用论坛帖子。但惋惜的是,有时候对于某个特定的问题并没有太多的信息。
《2020 最新 Java 根底精讲视频教程和学习路线!》
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.“或者当初是测验鲍尔默巅峰实践的好时机”
我想很多人都晓得鲍尔默巅峰实践:https://xkcd.com/323/ 该实践认为,程序员在摄入肯定数量的酒精后,其编码能力将达到巅峰。这是由史蒂夫·鲍尔默的乖僻行为引起的,它可能只是一个酒鬼的胡说八道。不过这有点讥刺,因为鲍尔默在微软并不是一名程序员。我想咱们得等他人来试验一下这个实践。
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.“扔掉这个,我要从头开始”
有时候,在花了几个小时尝试某个解决方案之后,你会将工作文件挪动到存档目录(或删除它们),而后从头开始。之前几个小时的辛苦工作简直没失去有什么回报,所以做出这个决定是很艰巨的。但当我陷入困境时,从新开始往往正是实现一个我的项目所须要做的事件。
看看,这是不是你本人?