高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

Web 开发者的十大噩梦

  • 2020-02-14
  • 本文字数:2610 字

    阅读完需:约 9 分钟

Web开发者的十大噩梦

我是一名 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


2020-02-14 17:294019
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 352.8 次阅读, 收获喜欢 1920 次。

关注

评论 1 条评论

发布
用户头像
这个年代还要支持IE6,我自杀算了。想用time machine,得买个移动硬盘
2020-02-17 08:51
回复
没有更多了
发现更多内容

全球Top 2!腾讯计算机视觉能力再突破

脑极体

如何系统地学习 C++ 语言?太全面了!

Jackpop

【世界海洋日】TcaplusDB号召你一同保护海洋生物多样性

TcaplusDB

融云 x 川航: 为民航通信安上“即时之翼”

融云 RongCloud

python简介

左手の明天

Python Python解释器

为什么都认为confluence非常好,好在哪里

PingCode

类似Confluence的软件有哪些

PingCode

@开发者 云端一条生产线,让软件开发更敏捷、更安全

华为云开发者联盟

云计算 敏捷 华为云 devcloud

华为云重磅发布:“乐高式”自动驾驶研发开放平台,携手伙伴共建生态

华为云开发者联盟

自动驾驶 云计算 华为云

【TcaplusDB知识库】查看tcapdir目录服务器

TcaplusDB

API 网关 Apache APISIX 助力雪球双活架构演进

Apache APISIX 中文社区

zookeeper 投资 网关 APISIX APISIX Summit

如何修改 Rancher v2.6 的 Rancher Server IP 地址

Rancher

Kubernetes k8s rancher

测试进阶必备,这5款http接口自动化测试工具不要太香~

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口自动化测试

【TcaplusDB知识库】修改业务修改集群cluster

TcaplusDB

【TcaplusDB知识库】批量复制游戏区

TcaplusDB

凿开数据冰层,透出智能时代的光:华为云与开发者的结伴旅行

脑极体

从链上数据出发,分析stETH脱锚之后的市场动态

区块链前沿News

eth Hoo

【TcaplusDB知识库】TcaplusDB技术支持介绍

TcaplusDB

APISIX 助力中东社交软件,实现本地化部署

Apache APISIX 中文社区

API网关 社交软件 APISIX Summit

基于 Apache APISIX 的自动化运维平台

Apache APISIX 中文社区

自动化运维 APISIX 网关 APISIX Summit

FutureTask

周杰伦本人

6月月更

大数据平台迁移实践 | Apache DolphinScheduler 在当贝大数据环境中的应用

Apache DolphinScheduler

Apache 大数据 开源 DolphinScheduler workflow

【TcaplusDB知识库】查看业务密码

TcaplusDB

【TcaplusDB知识库】TDR表GOSDK示例代码-查询数据

TcaplusDB

Curve 进入 CNCF Sandbox,完善统一云原生开源存储拼图

网易数帆

开源 分布式 云原生 存储 cncf

阿里云 MSE 基于 Apache APISIX 的全链路灰度方案实践

Apache APISIX 中文社区

阿里云 MSE APISIX 网关 全链路灰度

使用 Amazon EC2 降低 DeepRacer 的训练成本 DeepRacer-for-cloud 的实践操作

亚马逊云科技 (Amazon Web Services)

Amazon EC2 EC2

瀑布式项目管理软件测评!

PingCode

【TcaplusDB知识库】TcaplusDB限制条件介绍

TcaplusDB

【TcaplusDB】祝大家端午安康!

TcaplusDB

文档管理系统对于企业有哪些优势

小炮

Web开发者的十大噩梦_前端_Thoriq Firdaus_InfoQ精选文章