在过去一个月左右的时间内,我一直在Atomic Smash上构建新的前端框架(最近被称为“ Snap”),该框架包含所有脚本,软件包和启动文件,使开发团队中的任何人都可以获取快速,轻松地开始一个新项目。 在我看来,最简单的目标是在前端开发环境中实现简单性。
我之前写过一些关于我有时对这个行业可能不必要的复杂性感到沮丧的文章,以及关于仅使用HTML和CSS构建小型项目站点的令人耳目一新的经验。 但是,正如我在文章中所承认的那样,在构建除非常简单的网站之外的其他任何东西时,几乎都肯定缺乏这种方法。 我们需要使用开发工具,只要它们提供的帮助多于障碍。
“简单”是什么意思?
“简单”是一个相对术语,对一个人来说简单的事情对其他人而言可能要困难得多。 该框架的主要目标是使团队中的开发人员能够更智能,更快,更一致地进行构建。 我们希望通过交付高性能,可访问的代码来提供出色的用户体验。 为此,我们需要最小化冗余并强调模块化。 设计团队在其中也起着关键作用–仅当这种态度贯穿整个组织时,才可以实现专注于构建组件而不是页面的模块化方法。
务实的简约
但是结果的简单性只是等式的一部分。 结果的简单性经常(有必要)将复杂性隐藏在幕后。 对于团队中的任何开发人员而言,该框架应该都很简单,可以用来启动项目。 但是我不希望其他开发人员觉得他们正在捡黑盒子。 我希望团队成员觉得他们也对框架和我们使用该框架构建的项目拥有所有权。 作为团队,我们的目标应该是一致地进行构建,以便团队中的任何人可以在需要时选择并进行项目。 但是事实是,不同的人有不同的专业领域,或者处于发展过程的不同阶段,并不是每个人都对同一技术感到满意和熟练。 我可以坚持认为,每个人都使用原始Javascript,但是有些人可能对jQuery最满意,而试图阻止人们使用能够帮助他们做好工作的工具,则会使他们感到沮丧。 因此,框架应该是规范性的,而不是限制性的。 它应该允许灵活性和实用主义。
构建工具和权衡
经过调查,我们选择使用Parcel作为构建工具。 Parcel声称是一个“零配置”模块捆绑程序,而且起步确实非常简单–我之前已经写过关于如何启动和使用它的简单项目的文章。 但是选择构建工具会带来一些折衷:例如,Parcel不如Gulp和Webpack那样成熟,因此,如果遇到问题,那里的支持会更少。 另一方面,保持事情相对简单将(希望)导致更少的问题。 尽管我有最好的打算,但不久之后我发现自己正在挖掘比我预期的更多的复杂性。 例如,用于SVG Sprite创建和模板语言支持的插件都增加了需要维护的依赖项开销。
现在我很满意,我们已经为了使利用包裹在值得只是简单的足够到达-如果我们需要更多复杂的配置,可能是时候考虑其他的选择。
原子CSS
我与原子CSS之间存在着爱恨交织的关系,我将为您省去细节。 (如果您想了解我的感受,请阅读本文 !)总的来说,我相信我们团队的好处超过了痛点,并且谨慎地应用它确实可以加快UI开发。 在Atomic Smash上,我们最近选择使用Tailwind CSS ,我已经很熟悉了。 但是令我沮丧的是,它感觉像是Java开发人员使用的工具。 所有配置都使用Javascript进行,因此在讨论中很大程度上忽略了它增加了工具链的复杂性。
例如,如果您使用的是Tailwind,则在构建中使用PurgeCSS删除未使用CSS几乎是必不可少的,否则您将交付一个大约800kb的旧旧CSS文件。 但是要有效使用Purge,您需要做更多的配置–例如,确保不清除动态添加的选择器。 UI构建过程的简单性在一定程度上被保持该计算机处于活动状态的复杂性所抵消。 我花了几个小时尝试调试Purge,这删除了太多样式,然后我的同事Dave在沙发背面的在线等效位置上找到了答案(Stack Overflow答案):缺少! 在代码注释中(我可能还会添加Purge文档的内容)。
在没有人告诉我之前,我只是“不了解”原子CSS框架的好处–我理解它们很好,我喜欢使用Tailwind,并且我相信这是在正确情况下使用的正确工具。 只是不要自欺欺人,它比编写普通的旧CSS / Sass“简单”,因为事实并非如此。 重视您CSS开发人员。
文件和交流
我每天都将使用易于使用,直观的工具来代替有据可查的工具,但是在一个前者资源不多的世界中,我们可以期望的最好是后者。 我最喜欢使用Gatsby的一件事是它的文档,这使它即使在没有React或静态站点生成器的先验知识的情况下也相对易于使用。
文档授权,花时间适当地记录我们的框架对我来说是当务之急,目的是使任何选择它的开发人员都能够找到入门方法,了解最佳实践并解决常见错误。 我希望该文档将继续有机地增长,并且随着他们对使用它的更加熟悉,以及对框架本身的贡献,其他文档将为它做出贡献。
但是文档并不能代替直接交流–如果您可以亲自面对面交流,或者是远程的话可以通过电波进行交流。 我半信半疑,使事情简单的关键是彼此交谈,并且我们沟通的价值大于我们工具的价值。 令人遗憾的是,它被认为是“软”技能。