作為一個資深的軟體工程師,我經常遇到其他/她開發人員大量的重復問題,過去只靠寫博客,現在,我有了四種方式來解決:
博客,我的博客 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,
其它
作為 Inherd(硬核)小分隊開源的第一個專案,歡迎加入我們:https://github.com/phodal/coco
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/251685.html
標籤:AI
上一篇:滴滴副總裁章文嵩離職,但繼續擔任滴滴技術委員會名譽主席
下一篇:從難免的線上bug說起代碼的思考
