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


prtyaa
prtyaa 2023-12-25 13:29:06 65619
分类专栏: 资讯

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

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

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

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

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

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

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

Coco 与 Coca 的关系

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

Coco 这个名字的来源是椰子鸡,正如 Coca 项目(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。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=30268
赞同 0
评论 0 条
prtyaaL0
粉丝 1 发表 2554 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1323
银河麒麟打印带有图像的文档时出错  1236
银河麒麟添加打印机时,出现“server-error-internal-error”  1023
统信桌面专业版【如何查询系统安装时间】  951
统信操作系统各版本介绍  944
统信桌面专业版【全盘安装UOS系统】介绍  903
麒麟系统也能完整体验微信啦!  889
统信【启动盘制作工具】使用介绍  499
统信桌面专业版【一个U盘做多个系统启动盘】的方法  441
信刻全自动档案蓝光光盘检测一体机  386
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!