Web 开发人员应避免的 5 个错误

2023-05-26 0 751

责任编辑起初刊登于 DEV 中文网站,经原作 Liviu Lupei 许可,InfoQ 英文站译者并撷取。

他们都有他们的行事形式,但浑然不觉许多他们能防止的严重错误。

上面是许多我较常碰到的难题:

采用过分繁杂的技术栈

你能采用两个单纯的控制技术栈来构筑能处置上百万使用者的插件。

上面让他们来看一看 HEY 采用了甚么样控制技术栈:

HEY 所制的控制技术栈:

后端为 Vanilla Ruby on Rails,运转在 edge 上。后端为 Stimulus、Turbolinks、Trix + NEW MAGIC。统计资料库为 MySQL(用 Vitess 展开统计数据新溪洲)。Redis 用作中长期统计数据 + 内存。ElasticSearch 用作检索。AWS/K8S

那条贴文是 David Heinemeier Hansson 正式发布的,他是 Ruby on Rails 的创办人,也是 Basecamp 和 HEY 的创办人。

就像你预料的那般,文章许多看法:

Nedim F:

我真的我陈述了甚么。对那么多统计数据而言,Mongo 是轻松的优先选择。除此之外,为何此种中高档商品没采用 Go 或 Ruby C语言呢?

Popa Adrian Marius:

尽管 HEY 用到的栈枯燥乏味,但却非常有效。现在,我会优先选择 TypeScript 和 React,而不是 Ruby on Rails 和 MySQL。

如果你对 MySQL 持怀疑态度,你应该知道 Uber 在 2016 年就从 Postgres 转而采用 MySQL 吧?

有时候,采用普通的 JavaScript 也是完全没难题的。

诸如 React 和 Angular 这样的控制技术背后的想法是,将其用作大型 Web 插件,在这些插件中,你需要在许多不同的使用者界面元素之间同步状态。

在许多情况下,轻量级的东西可能更适合。

如果你不是在开发两个被上百万人采用的插件的话,你可能还不应该将重点放在将插件分离成微服务上。

当你的插件开始拥有上百万的使用者时,你能稍后再处置这个难题。

Web 开发人员应避免的 5 个错误

出人意料的是,如果你对单体架构展开适当的扩展和优化,它仍然能处置 600~800 万使用者。

忽略可访问性

他们应该开发两个包容性强、人人都能访问的中文网站。

Web 开发人员应避免的 5 个错误

残疾有六个主要的方面:

视力残疾听力残疾肢体残疾精神残疾语言残疾多重残疾

从 Addy Osmani 写的这篇文章《Web 开发者的可访问性贴士》(Accessibility Tips for Web Developers)中,我了解到了许多关于可访问性方面的知识。

https://dev.to/addyosmani/accessibility-tips-for-web-developers-4cn0

关于中文网站的可访问性的立法仍处于灰色地带,但这一状况可能在不久的将来会有所改变,不遵守规定的公司可能会面临类似于 GDPR 的巨额罚款。

忽略跨浏览器兼容性

上面让他们来看一看这张来自 Star Counter 中文网站的图表:

Web 开发人员应避免的 5 个错误

Google Chrome 占据了 63.6% 的市场份额。如果你的中文网站只兼容 Chrome,就意味着你将失去 36.4% 的使用者。

虽说新版本的 Microsoft Edge 采用的是 Chromium 内核,但这并不意味着你的中文网站在 Chrome 和 Microsoft Edge 的表现会完全一样。

Safari 拥有 17.7% 的市场份额,它采用 WebKit 作为渲染引擎。

IE 仍然还有人采用。英国政府的 服务手册 仍然要求使用者 2021 年采用 IE 11 展开应用测试。

你仍然需要测试跨浏览器的兼容性,没甚么灵丹妙药或神奇的解决方案。

有些测试工具从一开始就可能会影响跨浏览器测试工作。举例而言,Cypress 不支持 Safari 和 IE,并且也没迹象表明它将支持这两种浏览器。

由于我在 Endtest 工作,因此对跨浏览器测试非常熟悉,因为他们的平台有成千上万的开发者用来构筑和执行自动化测试。

我所知道的最优秀的 Web 开发者总是会确保他们的插件能在所有主流浏览器上运转。

用“气泡”展开开发

开发人员能为金融行业开发插件,无需了解或熟悉任何特定领域。要做到这一点很容易,因为所有事情都被分解成小任务,并且业务逻辑是由商品团队处置的。

Web 开发人员应避免的 5 个错误

花点时间更多地了解这个领域和使用者,能帮助你为他们提供更好的体验。首先和商品和销售团队展开更多的讨论,你能从中学到许多东西。

盲目信任开源

开源是软件行业迄今为止发生的最好的事情。但现在的难题是,有些公司将“开源”这个词当作一种营销手段。

Web 开发人员应避免的 5 个错误

许多公司注意到,开发人员对专有解决方案的容忍度很低,因此他们用“开源”将他们重新包装。

这往往给了他们在开源社区推广他们品牌的自由通行证,防止展开安全评估,也防止引起开发者的注意,而开发者可能还没意识到这个解决方案背后有一家营利性公司。

你最喜欢的许多开源解决方案,实际上是由营利性公司所拥有的,如下:

npm 公司 是 npm 背后的营利性公司。他们筹集的资金超过 1000 万美元,并于 2020 年被 GitHub 收购。Nginx Software 公司 是 Nginx 背后的营利性公司。他们筹集的资金超过 8400 万美元。Gatsby 公司 是 GatsbyJS 背后的营利性公司。他们筹集的资金超过 4600 万美元。

事实上,太多的开源解决方案都是由员工开发和维护的,并没活跃的社区支持。而且有些营利性公司也会不遗余力地给人留下这样一种印象:他们的解决方案背后有两个活跃的社区。还记得《小鬼当家》(Home Alone)电影里 Kevin 吗?由于他独自一人在家,为了吓跑窃贼,他制造出假象,让窃贼以为屋子里有人而不敢下手。

Web 开发人员应避免的 5 个错误

在这个领域许多不道德的做法,比如,雇人在 Slack 和 Gitter 的公共频道上为这个解决方案辩护,并驳回其他解决方案;或通过人们发红包,让他们在 Twitter 上正式发布关于这一开源解决方案的贴文。

多许可并不是难题所在,这是一种可靠的、合乎道德的商业模式。真正的难题是误导使用者,让他们认为开源解决方案是由社区构筑的,它的受欢迎程度并没被人为扩大。

在采用开源解决方案之前对其展开调查总是两个不错的主意,因为大多数炒作可能都是下作的营销预算造成的。

作者介绍:

Liviu Lupei,专注于自动化测试。

延伸阅读:

PHP与.NET统治Web开发世界的八个理由-InfoQ

移动后端开发和 Web 后端开发的区别是甚么?-InfoQ

2020年较常见的25个Web开发面试难题-InfoQ

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务