远程小组软件开发过程(2):工具

工欲善其事,必先利其器,我们以 CSDN 技能树的分层构架和工具链构建为例子,展示投资工具链在软件开发中的好处。流畅的工具链,是软件开发团队效能的关键之一。

技能树功能描述

CSDN技能树是一个在线的领域技术学习 区,我们以最新发布的“ 络技能树”为例,先简单介绍下它的核心功能。

  • 参考资料可以通过算法匹配合适的资料。
  • 每个练习题在交流讨论区里有一个对应的讨论贴
  • 我的笔记频道是用户在该节上的私密笔记,数据发布到了用户在CSDN上的个人私密 区。

练习题视图和答题页面如下:

  • 为每个章/节,生成一个文件,同时为每个生成一个。
  • 为每个习题文件生成一个同名的文件,同时生成习题的
  • 生成技能树的骨架元数据:tree.json

如果在核心章节习题都提交的差不多的时候。技能树的结构数据(章/节、习题)就会被技能树管道工具来处理。技能树管道工具目前是一个内部仓库,会在内部提供一组操作命令:

  • 在开发环境导入 络技能树仓库数据,这里会对node_id/exercises_id做校验
  • 在开发环境下调用技能树服务的api来创建节 区相关的资源( 区/频道):
  • 在开发环境下调用技能树服务的api来发送节 区的讨论交流频道帖子
  • 在开发环境下调用技能树服务的api来创建骨架和同步习题数据
  • 在开发环境下调用技能树服务的api来触发AI算法挂载参考资料到节上
  • 在开发环境下调用业务层api来通知业务数据层更新技能树数据,将变动上线到前端

其中命令路由的第二个子路由表示,这是在测试环境调试技能树。如果测试环境数据都没有问题,就可以对生产环境重复上述过程。例如:

注意,管道工具的 依然是用来控制管道工具的环境配置依赖,里面配置了每个不同技能树相关的账 依赖等重要信息。有了 参数,为什么还需要在命令路由里有 / 区分呢是为了

  • 将 / 环境合并看成一个测试维度。
  • 将 环境看成是 环境。

构建中的重要的元数据,都会在管道工具仓库里保存并提交到。便于后续的更新操作对数据的校验、去重。

可以看到每个子命令内部,都会有相关的访问技能树数据服务api的操作。管道工具的每个子命令对各种数据格式转换、资源创建等做了细致的错误处理。其基本原则是遇错就立刻退出,而不是隐藏。

如果在开发/测试环境,管道工具将 区贡献者一起贡献的技能树数据成功的转换、构建、并成功的在测试环境预览界面上完成验证。那么就可以去预发环境上再测试下,最后在正式环境上完成构建/编译和部署。

自动化

到目前为止,我们并没有提到“自动化”。一方面我们在项目实践中是根据需求按需演化,不同阶段需要解决不同的问题。全流程的自动化编译/构建/部署/上线并非是一个急需问题,我们目前的方式在实践中:

  • 有着足够好的对编译/构建的环境的解决。
  • 有着足够好的不同粒度数据集、模型、服务、管道操作控制。

工程上的两个重要的部分流程和工具,我们对源码、仓库、服务、数据、模型的组织是反碎片化的,工具是半自动化的。有着良好的命令行设计,自动化只是在自动化系统里把这些命令集成进去而已。

小结

本节我们对项目中的工具链设计做了分析。实际上,工具链的设计体现了我们对项目的分层构架的理解,对程序、数据、环境、树状结构的理解。工具解决工程中繁杂的碎片问题,从而软件开发团队可以规避大量的碎片问题,流畅地迭代。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月25日
下一篇 2022年6月25日

相关推荐