新聞中心
作為一個(gè)資深的軟件工程師,我經(jīng)常遇到其他/她開發(fā)人員大量的重復(fù)問題。過去只靠寫博客,現(xiàn)在,我有了四種方式來解決:

10年積累的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有芝罘免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
- 博客。我的博客 phodal.com 上有 850+ 的博客
- 工具。創(chuàng)造開源工具解決重復(fù)性問題,如:ADR、Lemonj、Coca、Clij
- 開源電子書。系統(tǒng)性的歸納某一個(gè)領(lǐng)域相關(guān)實(shí)踐和模式,如:《Serverless 應(yīng)用架構(gòu)》
- 知識平臺。結(jié)合工具和電子書,如 DevOps 知識平臺:Ledge
即使如此,依舊沒有解決一個(gè)問題:我需要人力來分析項(xiàng)目、再拋出這些鏈接。于是,過去我一直就在想:能否做一個(gè)工具來取代自己? 當(dāng)然了,我的真實(shí)意思不是:取代我自己,而是取代我做的那些重復(fù)性活動(dòng)。(PS:等寫完之后,再寫一個(gè)自動(dòng)化寫 PPT 的工具,就完美了。)
所以,我開始編寫一個(gè)新的工具,一個(gè)關(guān)于對代碼進(jìn)行自動(dòng)化分析與建議的工具。
Coco:自動(dòng)化分析與建議工具
在 Coco 的 README ( https://github.com/phodal/coco )里,可以看到現(xiàn)在規(guī)劃的 1.0 的相關(guān)的 Todo 列表。從某種意義上來說,這是一個(gè) AI 工具(專家系統(tǒng)),它依賴于資深工程師的大量的經(jīng)驗(yàn)。它的難度主要在于:
- 工具的 MVP 版本。驗(yàn)證工具在技術(shù)上是可行的(PS:從我的角度來看,它并不存在問題)
- 持續(xù)性的經(jīng)驗(yàn)輸入。持續(xù)完善整個(gè)工具的建議體系和架構(gòu)
- 上下游生態(tài)完善。獲取上下游工具相關(guān)的資料和數(shù)據(jù)(PS:如 DevOps、云原生相關(guān))
- 避免功能膨脹。必要的情況下,通過插件的方式來擴(kuò)展功能
Coco 與 Coca 的關(guān)系
Coca 是筆者(@phodal)寫的一個(gè)用于系統(tǒng)重構(gòu)、系統(tǒng)遷移和系統(tǒng)分析的瑞士軍刀。它可以分析代碼中的測試壞味道、模塊化分析、行數(shù)統(tǒng)計(jì)、分析調(diào)用與依賴、Git 分析以及自動(dòng)化重構(gòu)等。
Coco 這個(gè)名字的來源是椰子雞,正如 Coca 項(xiàng)目(https://github.com/phodal/coca )的來源是 Coca Cola,只是維度上由喝的變成吃的而已。Coco 是 Coca 的姊妹工具,與 Coca 工具是相互補(bǔ)充。
Coco:自動(dòng)化分析與建議工具
Coco 要實(shí)現(xiàn)的主要功能是:
- 分析。對項(xiàng)目進(jìn)行全面化的分析,如 Git 歷史、模塊化分析、框架使用等
- 報(bào)告。以可視化和文檔的形式輸出項(xiàng)目的總覽信息(結(jié)合 D3 可視化的形式)
- 建議。針對于項(xiàng)目中的問題,進(jìn)行自動(dòng)化的建議
- 成熟度。(TBC,待定)
從里程碑來說,我們所要做的功能特別多。而結(jié)合 Coca 和 DevOps 知識平臺 Ledge 在開源社區(qū)經(jīng)受了一年多的洗禮,它們受到了越來越多的開發(fā)者的喜愛。與此同時(shí),在這一年多的時(shí)間里,我也將自己的經(jīng)驗(yàn)不斷也輸入到了項(xiàng)目中。
與此同時(shí),我們將先創(chuàng)建一個(gè)組織:Inherd,作為這一系列工具的核心團(tuán)隊(duì)。
Coco 技術(shù)棧
作為一個(gè) CLI 工具,我本該選取 Golang 作為主要技術(shù)棧的。但是,經(jīng)常與 Ledge 的開發(fā)者們討論一番后,大家決定使用 Rust(雖然大部分人都沒有經(jīng)驗(yàn))作為主要語言。與此同時(shí),作為一個(gè)已經(jīng)使用了一年的 Rust 語言的開發(fā)者,我覺得這并不是太大的難題。與此同時(shí),這個(gè)工具未來也將在瀏覽器上運(yùn)行,Rust 的 Web Assembly 支持比幾大主流語言友好。
除了 Rust 之外,我們還需要可視化相關(guān)的報(bào)告等,為此我們還需要前端相關(guān)技術(shù)棧的開發(fā),如 D3.js。當(dāng)然了,能結(jié)合 Web Assembly + D3.js + 其它框架也是一個(gè)不錯(cuò)選項(xiàng)。
Coco 進(jìn)度
對于寫一個(gè)工具來說,最難的是開個(gè)頭,隨后就是補(bǔ)充功能和重構(gòu)了,誰都能做。
當(dāng)前主要進(jìn)展:
- 使用 libgit2 實(shí)現(xiàn)對 Git 相關(guān)的分析中。
- 集成 Tokei 實(shí)現(xiàn) CLOC 相關(guān)的行數(shù)統(tǒng)計(jì)。
- 集成 Scie 的框架檢測功能,對技術(shù)棧進(jìn)行可視化
以下主要模塊還未開始:
- 模塊化分析
- 可視化報(bào)告
- 標(biāo)簽生成(AI,分詞)
- 改進(jìn)建議
- 工具建議
本文轉(zhuǎn)載自微信公眾號「phodal」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系phodal公眾號。
新聞標(biāo)題:寫個(gè)取代自己的工具:Coco——自動(dòng)化項(xiàng)目分析與建議
轉(zhuǎn)載注明:http://www.5511xx.com/article/dhphgpo.html


咨詢
建站咨詢
