小团队如何快速搭建完善基建(一)

149 阅读5分钟

基建的搭建,不仅是对前端团队内部提效,也是对外影响的一种较快的方式,投入产出比较高。

中小团队由于其资源限制,对于基建的态度,我都是推荐尽可能采用业内成熟方案,避免完全自研。

其一是,投入成本较高,

第二是,烂尾率高,中小公司无法确保有资源,在这个上面的长期投入。一旦烂尾,对于公司已接入项目,则是个灾难。

但我们可以,站在巨人的肩膀上,做事情。集成公司认证体系或其他基建,进行二次开发。

当然,这个成本,也是需要慎重评估。

接下来,我将结合我自身的生产实践,和大家分享,基建常见几个领域上,中小团队可以用极低成本尝试的方案。

每个领域,在这篇文章中,我只大概讲述下。有感兴趣的话,后续会有针对每个部分的详细文章。

脚手架

在没有太多要求下,无论你处于哪个技术栈,都推荐直接用官方脚手架。

但这种简单的方式,会存在一个问题。

很多团队,都会有自身定制的一套构建与项目配置,这时候就不可避免地出现封装的情况。

此时对于中小团队,就需要谨慎了。因为中小团队无法确定,公司能够在基建方向上的持续投入。

因此,就要提前给自己一个假设,如果明天脚手架不维护了,已接入项目,该如何能够低成本进退。

这个在封装的设计方式与尺度上,是值得深思的。

低代码搭建

业内方案较多,各有侧重。基于我个人实践来谈,在中后台场景下,还是首推百度的 amis 。主要是如下几个方面:

- 至今已发展多年,覆盖大多数中后台场景,成熟度高

  • 设计方向偏零代码,可视化程度高,对于非前端人员很友好
  • 维护频率较高,至今几乎一个月发一个正式版本
  • 它主要分为「编辑器」与「渲染引擎」两部分,中间基于一份 JSON 协议做桥接。模块关系较为简单,后续平台化发展,围绕这份 JSON 即可。
  • 自由度高,几乎无配置不出的中后台场景。只是看配置的复杂度。

这个方向,最终还是要平台化。虽然有一定的实现成本,但如果只实现核心流程,成本是较低的。

无非就是「编辑器生成 JSON」-> 「保存 JSON」-> 「渲染引擎渲染 JSON」。

移动端方面,由于其场景更偏向展示,视觉变化较多。基于 amis 虽然也可以完成,但要从细粒度开始搭建,成本还是过高,手动编码可能更高效。

同时,amis 协议是基于 JSON ,再加上 amis 本身设计的一些限制,组件的 Treeshaking 实现成本较高(我们有实现,但不推荐,效果提升有限),但如果全量打入组件库,其包体积与性能,也不太符合要求。

业内的其他方案,有做得很好的,但投入的资源,可能也是中小团队较难承担的。

**错误监控
**

推荐私有部署 Sentry 。申请一台硬盘较大的机器就行,如果还有压力,就只保存近一周数据。

错误监控方面难点,并不是把服务搭起来,而是,真正的使用阶段。

见过太多被海量生产错误淹没的情况,有用的没用的杂在一起,这时有监控和没监控,没太大区别了。

所以,错误监控要想取得实效,与其说是个技术问题,不如说是个管理与实施问题,强硬的制度,或许是必不可少的。

NPM 私服

推荐私有部署 Verdaccio。这个较为简单,只是有几点建议:

  • 私有包只允许发布到公司域下,避免与上游官方源相撞,引起污染。如 @xxx/packageA
  • 私有包发布只允许用固定账号与密码。

上述均可在 Verdaccio 的配置文件中完成。

组件库

基础组件库推荐直接用社区成熟组件库,主题不同,可通过定制主题或直接覆盖样式的方式解决。

业务组件库,可考虑使用阿里飞冰的方案,较为成熟,也有相关插件支持。

方法库

基础方法库建议直接用社区成熟方案,列出各场景下的推荐依赖,如时间处理,URL 处理,缓存处理等。

如更加严谨与安全,可规定版本。不建议再包一层。

业务方法库,可酌情封装。

接口协作平台

接口平台推荐 YAPI。个人认为,应该没有其他方案,从全面性上,能够与 YAPI 齐平的,真正的一站式。

同时,其独特支持的「期望」能力,在实际实践中,具有较高价值。能够在 mock 的场景下,轻松切换与模拟,各种返回值场景。

好了,先简单聊这么多了。上述都是基于自身实践经验,以及站在中小团队视角,聊的一些想法。

有错误的,望包涵与指正。

欢迎关注公众号:feniubi