翻译 | 将开发人员摆在用户面前:框架是如何毁掉网页性能的

2020-01-051452

原文自博客发布平台medium,作者为 cheatmaster30,传送门

在近年来,网页的性能貌似已经逐渐下降了。事实上,随着越来越多网站在现在使用像 React 和 Vue 之类的框架,SPAs(单页Web应用)变得越来越常见了并且需求量也越来越大,网页的平均大小也变得比以往更大,每页占 2 到 3 MB 已经是司空见惯的事了。

这是互联网中的一个忧患,并且很多人将其归罪到框架身上。毕竟,大部分网站都是构建于 JavaScript 框架上的,即使实际上它并不需要(像很多新闻网站),而且还有少数的还会在 CSS 中使用 Bootstrap 之类的框架。

但我不认为这是真正问题的所在。一个高性能、良好的网站可以被现在存在的任何类型的框架或者技术所创建。这看起来会比其他的难,但是也可以做到。

问题在于许多公司的开发人员和设计师在思维上已经定性了。

定性的意思是他们认为网站开发和设计应该是“有趣的”。我完全相信,许多开发者以及开发工程师将他们的工作满意度置于用户或者客户之上。

这就是所有问题的根源,就像对事情失去兴趣一样。像 Webpack 这样的重型构建系统以及 NPM 中数以万计的预设组件,都是为了“节省开发者时间或者负担”而存在,而并没有考虑这也会增加最终产品额外的 JavaScript 文件存储量。第三方组件也会带有大量的 CSS 和 JavaScript 文件,只是为了减轻从头开始构建组件的麻烦,而带来了那该死的页面大小。

另外,在很多情况下,许多语言被选择的原因是这个语言“非常的 cool”,而并不是它确实符合这项工程。我想说的是,请大家看看那些由重型 JavaScript 框架构建起来的 SPAs 新闻网站。它们其实并不需要被弄成这样,并且它们大多数也不应该弄成这样...但这都是因为开发团队宁愿假装自己在 Google 或者 Facebook 这样的公司工作,而不是像在 Colchester Enquirer(译者:暗指一些小企业) 一样。

设计也是如此。许多设计师都厌烦于为像沃尔玛这种企业设计那些千篇一律且枯燥的增删改查应用,他们都想工作于那些在硅谷上的像春笋般崛起的初创企业。

因此,像开发人员那样,他们把秀操作置于实用性之上。特效被无缘无故地放置在任何地方,页面效果重置着所有地方因为它看起来很“独特”,并且在他们的 Dribbble 或者 Behance (译者:这些都是针对设计师的门户网站)的个人信息中所有内容都看起来设计得很好看,然而可用性却非常的差。

幸运的是,大多是比 Boris Muller’s 描述的 “Future retro” 系列 实用性强。而上述的是 Hacker News 的重构

这就像你拥有一支由麦当劳厨师组成的军队一样,他们也幻想自己成为米其林星级厨师,并且花费心思尝试将他们的工作环境也转变为那样。噢,我能肯定的是,那些顾客想要的其实只是巨无霸和炸薯条而已,但谁在意呢?我们只是为了尝试打动我们互联网的同行,而做出他们想做的料理而已。

但不仅仅是开发者是这样。工作链中的的所有人也是如此。管理者、CEO 们、投资者、营销团队、销售人员等,每一个人都希望自己在同行或者高层上看起来好一点,结果一切都因过度设计和笨拙粗糙而以失败告终。

这就是需要改变的地方。在设计上,顾客和使用者必须排在第一位,而非那些从事在产品或者商务中的人。

又或者,正如肖恩·马尔斯特罗姆(Sean Malstrom)在关于游戏设计师的措辞中说到:

电子游戏的存在目的是让玩家感到很爽,而不是让设计师感到很爽。

换而言之,产品应该为用户带来更好的体验,而不是为了让创造者炫技。好产品的目标并不是让创造者对自己的“创造力”感到满意或者对他们的“技术造诣”感到自豪,而是以一种易用、高效且高性能的方式来帮助用户解决问题。

肖恩的帖子中提到很多和游戏设计有关的事项,因为在这上面也犯了许多相同的毛病。你让设计师去充当电影导演而牺牲在视觉和电影摄影当中实际的玩法机制。你设计出一些不适合游戏的花里胡哨的机制,而只因为他们运行起来非常“有趣”。或者因为这种新的控制机制看起来非常“聪明”而复杂化那些原本简单的动作。另外,你会忽略整个元素只因为他们在运作中并不“有趣”,例如在任天堂和一些 2D 平台游戏中的一些游戏那样。

这在建筑中也非常常见。在这当中,有些建筑物并不是为了人们生活或者工作而设计的,而是建筑师为了展示他们的能力或者美化他们的资历而做。

而且最可怕的是,在某些时候,用户也理解这点。你可以看到有多少“糟糕”的产品和服务最终打败那些更实用的选手。

例如,看下 Craig 上面的列表,上面有很多愚蠢、无聊的作品并且也没有很多值得记录的技术在上面。

但这却有效。对于它们的用户群体确实很好用,并且在背后,投资人为了使网站更好看、技术更先进,投入大量资金在上面,那些用户也坚持使用这些产品。

Hacker News 是这样,旧版本的 Reddit 也是这样。

而现在的一些流行游戏,类似 Minecraft、Wii Sports 或者 Tetris 这类产品,它们都没有设计得特别花哨,但它们通过设计优秀的游玩体验循环和让玩家反复摆脱困境这种方式,来帮助他们卖出好几百万份。

因此,所有的创作者们,不要再将视野放置在你的简历或者便利当中了,也请停止将你个人的兴趣置于你的用户之上,亦或者耗费资源在别人不关心的事项上。你并不是在 Facebook 或者 Google 中工作,而且即使你是,你也不应该这样去设计或者创作。

相反的是,完成那些工作中需要做的事情,并且使用尽可能少的资源来提供那些用户享受于此的体验元素。

这样做,你的用户或者客户才会感谢你。

译者总结

这篇文章作者提到一个很重要的观念,一切以用户出发,个人认为也是现在很多公司所缺乏的。对于那些身在产品、设计或者开发中的人员,有条件的话可以看看原文,或许也能得到一些灵感和思考。

分享
点赞0
打赏
上一篇:Docker常用命令笔记(一)
下一篇:有关BPM、BPMN以及Flowable的概述