深入探讨 Web 开发者最头疼的问题

从多次一对一对话中收集的关于开发者最头疼问题的见解集合。

几个月前,Paul Kinlan 发布了关于 2021 年 Web 开发者最头疼的问题 的文章,因此本文以更新最近两个季度的情况作为开篇似乎很合适。数字有所变动,但排名没有变化。

挑战 2021 年第一季度 2021 年第二季度 2021 年第三季度 2021 年第四季度
跟上 Web 平台或 Web 标准的变化。 27% 26% 27% 22%
跟上大量新的和现有的工具或框架。 26% 26% 25% 21%
使设计或体验在不同浏览器中工作方式相同。 26% 28% 24% 21%
跨浏览器测试。 23% 24% 20% 20%
理解和实施安全措施。 23% 25% 20% 19%

正如 Paul 的博文中所提到的,我们需要解决这些痛点。作为更大努力的一部分,我的同事 Kadir Topal 和我采访了超过 18 位开发者。我们的目标是调查并开始理解解决开发者最头疼问题的路径。

开发者讨论

免责声明: 这些见解基于与少量开发者的对话。当使用“所有”或“一些”时,指的是接受采访的开发者,而不是整个社区。需要进行更多研究以更广泛地推断这些见解。

这些对话很好地提醒了我们 Web 开发者社区是多么的精彩和多元化,我想感谢所有与我们交谈的开发者。一些开发者拥有超过 25 年的经验,而另一些开发者则在 2020 年才刚刚起步。一些开发者通过正规的计算机科学学位开始他们的职业生涯,而另一些开发者则独立开始他们的职业生涯。一些开发者积极寻找新事物,并通过阅读浏览器发布说明来跟进,而另一些开发者则通过同事和朋友了解新事物。有些人认为复杂性是工作的一部分,并享受挑战,而另一些人只想完成他们的工作。在考虑解决这些痛点时,重要的是要牢记这种多样性!

所有开发者之间的共同点之一是,他们都使用 CMS 或框架来完成他们的工作。Wordpress、React、Bootstrap、Angular 和 Tailwind 都被提及,没有开发者在生产环境中使用原生 Web 平台。在开始一个项目时选择框架是一个挑战,开发者经常会考虑非技术要求。例如,是否容易聘请开发者来使用该框架。如果解决方案不包括框架和 CMS,我们就无法改善开发者的痛点。

说到 Web 平台,大多数开发者将平台理解为他们在之上进行开发的东西。这不仅包括 Web 平台的经典定义,还包括 CMS、框架、工具和 polyfill。在许多情况下,跟上这些的最新进展是最大的困难所在。这改变了我们对该问题的理解,我们现在知道我们需要更新我们的调查,将其分解为不太模棱两可的不同部分。

另一个模糊不清的领域是 Web 标准 的定义。当被问及关于跟上标准的例子时,许多开发者指出,跟上最佳实践反而存在困难。这是我们需要在调查中澄清的另一个领域。

开发者在实施特定用例和模式时会寻找最佳实践。博客文章和 StackOverflow 被认为是最佳实践的来源,但开发者经常怀疑他们正在阅读的信息是否真的是最佳实践,以及它是否与最新的功能和 API 同步。他们希望有一个更官方的来源来阅读这些内容。

跟上启用新用例的功能和 API 是一个小问题。开发者更难应对那些导致最佳实践发生变化的功能、API 和平台更改。

大多数开发者都认为兼容性是最大的挑战之一。通过 Compat 2021Interop 2022 等努力,情况正在改善,但很明显,开发者并不认为这是一个已解决的问题。

大多数开发者以某种方式使用 polyfill。然而,在许多情况下,使用情况对开发者是透明的,因为 polyfill 可以由 Babel 或框架等工具自动添加。对于那些自己管理 polyfill 的人来说,弄清楚一个 polyfill 是否“好”可能是一个问题。开发者提到使用 NPM 上的安装数量和 polyfill 的创建者作为信号。一些开发者提到,由于放弃对 IE 11 的支持,他们正在努力删除那些变得不必要的 polyfill。

框架引入了碎片化问题。我们听到了报告,其中开发者“卡在”框架的旧版本中,并且由于这个原因,他们可以使用的功能受到限制,但是迁移到同一框架的新版本可能成本高昂且难以证明其合理性。

结论

现代 Web 开发包含许多活动部件,包括标准、浏览器、库、polyfill、CMS、框架、最佳实践和工具。这种多样性是 Web 的伟大之处之一,但目前,如何理解每个部分以及它们彼此如何兼容,这取决于每个开发者自己。

我想知道是否有一种方法可以为开发者更清晰地说明所有内容是如何联系在一起的,以及如何在所有部分之间实现更多对齐,而又不影响多样性。这是一个庞大而复杂的问题,很难一次性完成。但是,从哪里开始呢?

如果您有任何观点和意见想要分享。我也很乐意与您交谈。我将设置一种直接预订对话的方式,但在那之前,我的私信在 Twitter 上是开放的。联系我,我们可以安排时间聊天!