Skip to content

概述

由于 Semo 几乎不提供任何直接的好处,所以有必要详细介绍一下如何利用好 Semo,从设计的初衷来说。Semo 被设计用来提高企业级项目开发工作的效率,那么只要项目中需要用到自定义命令或者脚本,都是 Semo 的用武之地。

从项目阶段划分

根据项目所处的阶段,Semo 可以在各个阶段发挥作用:

  • 立项阶段:可以快速初始化项目
  • 开发阶段:通过快速访问核心方法,验证方法的输入输出,封装基础设施,减少重复造轮子的情况
  • 维护阶段:项目进入维护阶段,需要写大量的管理命令或者运维脚本
  • 线上排查问题:线上出了BUG,但是只有线上能够重现,通过 REPL 可以一步步接近真相
  • 线上运维:利用实现写好的脚本和命令,轻松解决需求方提出的各种要求,提高跨部门间的信任

WARNING

我们可能为项目开发一些实用的脚本和命令,但是也要知道执行脚本和命令的风险,尽量不要在生产环境执行。如果出于线上调试的目的,一定要在生产环境执行,需要精心设计脚本和命令,比如确认提示,对于一些危险操作也默认不可用,需要额外的参数来开启。还需要做好命令输入的审计。而 REPL 在线上调试也可能有使用不当的风险,所以在 REPL 中注入业务逻辑也要谨慎,尽量少注入能够写入数据和改变数据的能力,避免误操作。

从形式上划分

Semo 充分考虑各种使用场景,不同的场景发挥的作用也不同:

  • 开发插件:不同的插件功能不同,但代码风格一致
  • 项目整合:为项目提供命令行基础设施,如果配合其他插件,甚至整个项目都可以基于 Semo 构建
  • 解决方案:为各种业务场景提供脚手架,沉淀最佳实践,提高新项目的启动速度
  • 发行版:基于解决方案进一步整合而成,构建完整可用的产品,从而产生商业价值

这里的划分方法不绝对,也没有哪个场景必须由 Semo 来解决,甚至,任何遇到的问题都有无数的解决方案,Semo 存在的目的是提供一致性,使得我们减少重复建设,提高沟通效率,沉淀最佳实践,不断夯实企业技术实力。

企业级Node项目命令行体系建设规范