深入了解顶级前端开发者的痛点

语言: CN / TW / HK

作者:André Cipriani Bandarra

原文链接:Deep dive into top web developer pain points

译者:Yodonicc

从一些与顶级开发者一对一的对话中,收集到的关于开发者痛点的见解。

几个月前,Paul Kinlan(译者注:Paul Kinlan是Google Chrome团队总负责)发布了2021年开发者的首要痛点,所以在这篇文章的开头,对过去两个季度的情况进行了更新,感觉很合适。数字有一些变化,但排名没有变化。

| 挑战 | 2021年第一季度 | 2021年第二季度 | 2021年第三季度 | 2021年第四季度 | | ------------------ | --------- | --------- | --------- | --------- | | 跟上网络平台或网络标准的变化 | 27% | 26% | 27% | 22% | | 跟上大量的新的和现有的工具或框架 | 26% | 26% | 25% | 21% | | 使设计或体验在不同的浏览器上运行一致 | 26% | 28% | 24% | 21% | | 跨浏览器测试 | 23% | 24% | 20% | 20% | | 了解并实施安全措施 | 23% | 25% | 20% | 19% |

正如保罗的博文中提到的,我们需要解决这些痛点。作为一个更大的努力的一部分,我和我的同事Kadir Topal已经采访了超过18个开发者。我们的目的是调查并开始了解解决顶级开发者痛点的路径。

开发者讨论

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

这些对话很好地提醒了我们,网络开发者社区是多么令人惊讶和多样化,我想感谢所有与我们交谈的开发者。一些开发者有超过25年的经验,而另一些则在2020年才开始。一些开发者通过正式的计算机科学学位开始他们的职业生涯,而另一些则是独立开始他们的职业生涯。一些开发者积极寻求新事物,并通过阅读浏览器的发布说明来跟上潮流,而另一些则通过同事和朋友了解新事物。有些人认为复杂性是工作的一部分,并喜欢接受挑战,而其他人只是想完成他们的工作。在考虑解决这些痛点时,重要的是在我们的脑海中保持这种多样性!

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

谈到网络平台,大多数开发者把平台理解为他们在上面开发的东西。这不仅包括网络平台的经典定义,还包括CMSs、框架、工具和polyfills。在许多情况下,与这些保持同步是最大的困难所在。这改变了我们对这个问题的解释,我们现在知道我们需要更新我们的调查,把它分成不同的部分,使之不那么含糊。

另一个含糊不清的领域是网络标准的定义。当被问及围绕跟上标准的例子时,许多开发者更多强调了跟上最佳实践的困难。这是我们需要在调查中澄清的另一个领域。

开发人员在实现特定的用例和模式时寻找最佳实践。博客文章和StackOverflow被提到是最佳实践的来源,但开发者经常怀疑他们所读的信息是否真的是最佳实践,是否是最新的功能和API。他们希望有一个更官方的来源来阅读这些。

跟上实现新用例的功能和API是一个较小的问题。开发者们更多的是在功能、API和导致最佳实践变化的平台变化中挣扎。

大多数开发者同意,兼容性是最大的挑战之一。通过像Compat 2021Interop 2022这样的努力,情况正在改善,但很明显,开发人员还没有把它看作一个已经解决的问题。

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

框架带来了碎片化的问题。我们听到这样的报告:开发者被 "困 "在一个旧版本的框架中,并因此限制了他们可以使用的功能,但迁移到同一框架的较新版本的代价可能是昂贵的,而且难以证明。

总结

现代网络开发有许多移动部件,包括标准、浏览器、库、polyfills、CMS、框架、最佳实践和工具。这种多样性是网络的伟大之处,但是现在,每个开发者都要对每个部分进行理解,以及它们如何相互兼容。

我想知道是否有一种方法可以让开发者更清楚地了解所有的东西是如何联系在一起的,以及在所有的部分之间有更多的一致性,而不影响多样性。这是一个巨大的、复杂的问题,而且很难一下子做到。但是从哪里开始呢?

注:特别感谢技术指导dazhao(赵达)对本文翻译的审阅指正