深入探究顶级 Web 开发者的痛点

收集关于开发者的主要痛点的一系列数据洞见,这些信息是从多次一对一对话中收集而来。

几个月前,Paul Kinlan 发布了 2021 年开发者的主要痛点,因此不妨在本文开头介绍过去 2 个季度的最新动态。数据略有变动,但排名没有变化。

挑战 2021 年第 1 季度 2021 年第 2 季度 2021 年第 3 季度 2021 年第 4 季度
及时掌握网络平台或网络标准的变化。 27% 26% 27% 22%
跟上大量新的和现有的工具或框架的发展步伐。 26% 26% 25% 21%
让设计或体验在各种浏览器中都能以相同的方式运作。 26% 28% 24% 21%
在各种浏览器中进行测试。 23% 24% 20% 20%
了解并实施安全措施。 23% 25% 20% 19%

正如 Paul 的博文中所提到的,我们需要解决这些痛点。为了实现这一目标,我的同事 Kadir Topal 和我采访了超过 18 位开发者。我们的目标是进行调查,并开始找出解决开发者主要痛点的方法。

开发者讨论

免责声明这些数据分析仅基于与开发者进行的少量对话。使用“all”时或“部分”,这指的是受访开发者,而不是整个社区。我们需要进行更多研究,才能更广泛地推断出这些数据洞见。

这些对话再次提醒了我们 Web 开发者社区多么了不起的多元性,我想要感谢所有与我们进行交流的开发者。有些开发者拥有超过 25 年的经验,有些开发者从 2020 年才开始开发。有些开发者通过获得正式的计算机科学学位开始职业生涯,有些则是独立开启职业生涯的。有些开发者通过阅读浏览器发行说明积极寻找新功能并跟上发展,而有些开发者则通过同事和朋友了解新知识。有些人认为复杂是工作的一部分,乐于接受挑战,而另一些人则只是想完成工作。在考虑解决这些痛点时,我们必须时刻谨记这种多样性!

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

说到 Web 平台,大多数开发者都将平台视为他们开发的平台。这不仅包括网络平台的经典定义,还包括 CMS、框架、工具和 polyfill。在许多情况下,最大的困难在于要及时掌握这些动态。这改变了我们对该问题的解读,我们现在知道需要更新调查问卷,将其细分为更加清晰的不同部分。

另一个不明确的地方是网站标准的定义。当被问及有关如何遵循标准的例子时,许多开发者指出了难以遵循最佳实践。这也是我们需要在调查问卷中澄清的另一个方面。

在实现特定用例和模式时,开发者会寻找最佳实践。我们提到博文和 StackOverflow 是最佳做法的参考来源,但开发者经常想知道他们阅读的信息是否确实是最佳做法,以及是否包含最新功能和 API。他们想要一个更官方的信息来源来阅读这些消息。

跟上支持新用例的功能和 API 是一个小问题。开发者在功能、API 和平台变更方面面临更多挑战,导致最佳实践发生变化。

大多数开发者都认同,兼容性是最大的挑战之一。通过 Compat 2021Interop 2022 等工作正在有所改善,但很明显,开发者还没有将其视为一个已解决的问题。

大多数开发者都会以这样或那样的方式使用 polyfill。不过,在许多情况下,使用对开发者来说是透明的,因为 polyfill 可以由 Babel 等工具或框架自动添加。对于自行管理 polyfill 的用户而言,弄清 polyfill 是否“有用”也可能是个问题开发者提到,将 NPM 上的安装量和 polyfill 的创建者用作信号。一些开发者提到,他们正在努力移除因不再支持 IE 11 而变得不必要的 polyfill。

框架会引入碎片问题。有报告称开发者“陷入困境”并因此限制了他们可以使用的功能,但迁移到同一框架的较新版本可能成本高昂且难以证明。

总结

现代 Web 开发包含许多动态元素,包括标准、浏览器、库、polyfill、CMS、框架、最佳实践和工具。这种多样性是 Web 的一大优势,但目前,每个开发者都需要各自理解每个组件以及它们之间的兼容性。

我想知道有没有什么方法可以在不影响多样性的前提下,让开发者更清楚地了解各个部分之间是如何相互关联的,并使各个部分更加一致。这是一个复杂的大问题,很难一次性解决所有问题。但从何处入手呢?

如果您有任何观点和意见,想要与大家分享。我也很想和你聊聊。我会设置一种直接预订对话的方式,但与此同时,我的私信可以在 Twitter 上开放。请与我们联系,我们可以约个时间聊一聊!