首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >写个取代自己的工具:Coco —— 自动化项目分析与建议

写个取代自己的工具:Coco —— 自动化项目分析与建议

作者头像
Phodal
发布2021-01-28 16:05:31
2950
发布2021-01-28 16:05:31
举报
文章被收录于专栏:phodalphodal

作为一个资深的软件工程师,我经常遇到其他/她开发人员大量的重复问题。过去只靠写博客,现在,我有了四种方式来解决:

  • 博客。我的博客 phodal.com 上有 850+ 的博客
  • 工具。创造开源工具解决重复性问题,如:ADR、Lemonj、Coca、Clij
  • 开源电子书。系统性的归纳某一个领域相关实践和模式,如:《Serverless 应用架构》
  • 知识平台。结合工具和电子书,如 DevOps 知识平台:Ledge

即使如此,依旧没有解决一个问题:我需要人力来分析项目、再抛出这些链接。于是,过去我一直就在想:能否做一个工具来取代自己? 当然了,我的真实意思不是:取代我自己,而是取代我做的那些重复性活动。(PS:等写完之后,再写一个自动化写 PPT 的工具,就完美了。)

所以,我开始编写一个新的工具,一个关于对代码进行自动化分析与建议的工具。

Coco:自动化分析与建议工具

在 Coco 的 README ( https://github.com/phodal/coco )里,可以看到现在规划的 1.0 的相关的 Todo 列表。从某种意义上来说,这是一个 AI 工具(专家系统),它依赖于资深工程师的大量的经验。它的难度主要在于:

  • 工具的 MVP 版本。验证工具在技术上是可行的(PS:从我的角度来看,它并不存在问题)
  • 持续性的经验输入。持续完善整个工具的建议体系和架构
  • 上下游生态完善。获取上下游工具相关的资料和数据(PS:如 DevOps、云原生相关)
  • 避免功能膨胀。必要的情况下,通过插件的方式来扩展功能

Coco 与 Coca 的关系

Coca 是笔者(@phodal)写的一个用于系统重构、系统迁移和系统分析的瑞士军刀。它可以分析代码中的测试坏味道、模块化分析、行数统计、分析调用与依赖、Git 分析以及自动化重构等。

Coco 这个名字的来源是椰子鸡,正如 Coca 项目(https://github.com/phodal/coca )的来源是 Coca Cola,只是维度上由喝的变成吃的而已。Coco 是 Coca 的姊妹工具,与 Coca 工具是相互补充。

Coco:自动化分析与建议工具

Coco 要实现的主要功能是:

  • 分析。对项目进行全面化的分析,如 Git 历史、模块化分析、框架使用等
  • 报告。以可视化和文档的形式输出项目的总览信息(结合 D3 可视化的形式)
  • 建议。针对于项目中的问题,进行自动化的建议
  • 成熟度。(TBC,待定)

从里程碑来说,我们所要做的功能特别多。而结合 Coca 和 DevOps 知识平台 Ledge 在开源社区经受了一年多的洗礼,它们受到了越来越多的开发者的喜爱。与此同时,在这一年多的时间里,我也将自己的经验不断也输入到了项目中。

与此同时,我们将先创建一个组织:Inherd,作为这一系列工具的核心团队。

Coco 技术栈

作为一个 CLI 工具,我本该选取 Golang 作为主要技术栈的。但是,经常与 Ledge 的开发者们讨论一番后,大家决定使用 Rust(虽然大部分人都没有经验)作为主要语言。与此同时,作为一个已经使用了一年的 Rust 语言的开发者,我觉得这并不是太大的难题。与此同时,这个工具未来也将在浏览器上运行,Rust 的 Web Assembly 支持比几大主流语言友好。

除了 Rust 之外,我们还需要可视化相关的报告等,为此我们还需要前端相关技术栈的开发,如 D3.js。当然了,能结合 Web Assembly + D3.js + 其它框架也是一个不错选项。

Coco 进度

对于写一个工具来说,最难的是开个头,随后就是补充功能和重构了,谁都能做。

当前主要进展:

  • 使用 libgit2 实现对 Git 相关的分析中。
  • 集成 Tokei 实现 CLOC 相关的行数统计。
  • 集成 Scie 的框架检测功能,对技术栈进行可视化

以下主要模块还未开始:

  • 模块化分析
  • 可视化报告
  • 标签生成(AI,分词)
  • 改进建议
  • 工具建议

还有其它诸如案例学习等等,详细见项目的 README。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 phodal 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作为一个资深的软件工程师,我经常遇到其他/她开发人员大量的重复问题。过去只靠写博客,现在,我有了四种方式来解决:
    • Coco:自动化分析与建议工具
      • Coco 与 Coca 的关系
      • Coco:自动化分析与建议工具
      • Coco 技术栈
      • Coco 进度
相关产品与服务
CODING DevOps
CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档