我是一名 Web 开发者,身边有很多人以为我的工作很轻松。他们经常看到我坐在家里敲着键盘,旁边放着一杯热腾腾的咖啡,但他们没有看到我面前的这台电脑里都发生了什么。 几乎每个开发者都会面临同样的问题:糟糕的时候犹如噩梦般的恐怖,有时候碰到坏运气,有时候会觉得“一定是有人对我开了个可怕的玩笑”,感觉从桥上纵身一跃比活着更容易。如果你也是一名经验丰富的 Web 开发者,曾经与很多客户合作过项目,那很可能也遇到过这样的情况。
那些想成为 Web 或 App 开发者的人,他们很可能最后也会遇到以下这些情况。准备好面对它们吧,它们是 Web 开发者不得不面对的 10 个最恐怖的噩梦。
1. 修改别人的代码
如果你刚加入一家新公司,很可能会发现自己处于这样的一个境地:接手其他人留下的项目。项目的代码可能很长,很复杂,难以读懂,有很多 bug,而且已经上线了。当然,你有可能是那幸运的 5%,不需要去修改这些代码,但真实的情况是,要你修改代码的可能性更大。
开发者就像作家一样,他们都有自己的编码风格,于是问题就来了。这个时候,文档成了救星。如果你一直讨厌写文档(我们不都讨厌吗?),那么这个时候你会意识到,对于那些需要修改你代码的人来说,文档就是救星。
如果没有文档,接盘的开发者必须逐行阅读代码,以便“参透”代码原始作者的想法。也只有到了这个时候,我们才会希望有心灵感应这种东西。
2. 在最关键时候掉链子
经过几个月的努力,在喝了无数杯咖啡之后,你终于发布了 App。你非常兴奋,终于可以看到隧道尽头的曙光了。
然而,问题出现了。在演示过程中出现了一个致命的错误,或者引来了大量新用户的抱怨。你认为完美的项目此刻崩溃了,但请等一下。
首先,这种情况可能发生在任何一个人身上,甚至是 Facebook 或 Twitter 那些最聪明的开发者。对于他们来说,这种情况有多么令人沮丧。负面评论不断出现,在客户眼里,你就像犯下了最严重的罪行,或者玷污了组织的名声。
你能做些什么呢?保持冷静,尽快修复错误。不要让这些问题拖你太长时间,除非修复代码会导致其他 bug 出现!
3. 修复旧 bug,出现新 bug
修复 bug 是一个无法逃脱的罪恶,它会让你质疑为什么当初想要成为一名开发者。每个开发者都经历过。在敲了几个小时的键盘之后,你把原来的错误修复了,却发现又有了新的错误!
你可能更新了一个库,因为它与正在使用的另一个库不兼容,结果发现新库与代码是冲突的。与此同时,截止日期越来越近,而错误却越来越多。
不要抓狂了,还是试着提前为这种情况做好准备吧。为了防止在未来的项目中发生类似的情况,可以使用 Git 来管理代码,如果新代码不能正常运行,可以很容易回滚到以前的版本。
另外,要仔细把每个修订版本记录下来。这是一项艰巨的任务,但等事情到了紧要关头,你会感谢自己这么做了。
4. 项目依赖库有 bug
你知道什么样的噩梦更可怕吗?当你发现 bug 其实并不存在于你的代码中,而是存在于项目依赖的库中。在开发网站时,我们通常会依赖很多库,一个库也会被用于多个项目。
当你发现项目依赖的库出现了 bug,该怎么办?这是一个两难的选择,不是吗?看看我们可以做些什么吧。
你可能想要自己修复依赖库的 bug,如果是这样,你就要问问自己,你对依赖库的代码有多熟悉?
自己修复不了?那么是否应该请求依赖库的开发者来修复?但这可能需要一些时间,他们没有义务马上为你修复 bug,因为现在是你在赶截止日期,不是他们。
把依赖库换掉?这样可以把 bug 清除掉,但你可能需要重写很多代码。
这些都是可选项,不管你选择了哪一种做法,都不容易。向编程之神祈祷吧,但愿你就永远不会遇到这种情况,也不会遇到下面这种情况。
5.“未知”错误
你花了好几天时间,创建了好多个 Git 分支进行测试,但仍然找不到问题的根源。
你到 StackOverflow 上问问题,发现两年前有人发过同样的问题,却没有人回答。
它可能不是一个致命的错误,但它就像一个无法摆脱的瘙痒,一直在折磨你。你绞尽脑汁,不停地告诉自己,如果再花一个小时,或许就会找到问题的根源。
先歇一歇吧,问题的解决方法可能在山的另一面。合上你的电脑,歇一歇,歇上半天(或者一两天)。此刻你正遭受精神疲劳的折磨,让你无法“看到”或“发现”问题的根源。休息一下会让你的脑力满血复活。
有时候错误会自动“消失”,不再是个问题,根本不需要你做什么。这种情况确实会发生,当你筋疲力尽的时候,根本不会想知道为什么会这样。
6. 数据丢失却没有备份
即使是非开发人员也会遭遇这个噩梦。数据丢了,然后你诅咒自己没有花时间备份文件。如果这发生在你身上,你也只能怪自己了。
即使系统很稳定,硬盘也可能突然出问题,你的小孩有可能按了键盘上的删除按键,或者你不小心把咖啡洒在了笔记本电脑上。与其埋怨打翻的咖啡,不如事先备份好文件,不至于让你的血压升高。要做到这一点其实并不难。
我个人有三种备份文件的办法:Time Machine、Dropbox 和 OneDrive。OS X 用户应该启用 Time Machine,Windows 用户可以从控制面板启用备份和恢复功能。
7. 支持 IE6
由于某些原因,你的网站仍然要支持 IE6,因为一些客户以及他们的用户仍然在使用 IE6。如果你遇到了这种情况,那么我可以明确地告诉你,支持 IE6 是多么耗时、多么痛苦。
开发者花在 IE6 代码上的时间可能是 Chrome 或 Firefox 的三倍或更多。更令人沮丧的是,网站在 IE6 中运行不会像在新浏览器中那样流畅。有些效果不生效,有些 bug 会一直困扰你,更不用提那些安全问题了。
这让开发者的工作变得非常困难。如果说我有什么建议,我会建议对那些想要支持 IE6 的项目收取双倍甚至更高的费用,但即使是这样,仍然不值得。
8. 少了分号
一些编程语言,比如 JavaScript 和 PHP,使用分号作为语句的结尾。
有很多错误是因为少了分号,所以你千万要确保键盘上的分号按键不能坏掉。你可以考虑准备一个备用键盘,以便在紧急情况下使用。
9. 网络或搜索引擎出问题了
如果你的工作或学习非常依赖搜索引擎,那么你就应该知道,它对于开发者来说有多重要。作为 Web 开发者,我们使用搜索引擎来搜索代码示例、查找 bug 解决方案、与同行协作,等等。
如果网络和搜索引擎出了问题,我们就会陷入以前那种孤立无援的“至暗时刻”。一旦遇到某些问题,我们不知道该怎么解决。在大多数时候,搜索引擎可以帮我们解决这些问题。所以,向那些在互联网时代之前从事开发工作的开发者或程序员致敬吧。
10. 成为“无所不能”的专家
最后一点,你会发现成为“专家”有多么的困难。
10 Worst Nightmares For Web Developers
评论 1 条评论