DeepWikiによる全エンジニアOSS時代の幕開け
はじめに
こんにちは!株式会社 ispec で EM をしている shinya です。
突然ですが、エンジニアなら誰しも一度は「OSSに貢献してみたい」と思ったことがあるのではないでしょうか? OSSに貢献している人は一目置かれる雰囲気があるし、純粋にかっこいいですよね。
しかし、実際に「OSS にチャレンジしてみよう」と思ったものの、コードの理解が難しくハードルの高さを感じ、断念した経験がある方も多いのではないでしょうか。かく言う私もこれまでOSSに挑戦したいという思いはありつつも、何度も挫折してきました...
そんな中、最近発表された DeepWiki というツールに出会ったことでOSSのコードを「読める」「触れる」と感じられるようになり、OSS との距離感がぐっと近づきました。
この記事では、DeepWiki を使ってみた体験を通じて、OSS への心理的ハードルがどう変わったかを紹介していきます!
DeepWiki とは
DeepWiki は、コードベースの構造や意図を自然言語と図解で可視化してくれるツールです。githubのレポジトリを自動で解析し、関係性を明示したマップや説明文を生成してくれます。(具体的な始め方はこちらの記事が参考になりました。)
特に OSS や大規模なコードベースに初めて触れる際に、「まずは全体像をつかむ」ことを助けてくれる存在です。
具体的には、以下のような機能があります:
-
自然言語によるrepositoryの説明
- 全体像から詳細の部分まで網羅してくれている
-
ハイレベルアーキテクチャの図示
PR Agentのハイレベルアーキテクチャ -
処理ワークフローの図示
PR Agentの処理ワークフロー -
Repositoryに関するDeepResearch機能
PR Agentの差分取得ロジックについて聞いてみた -
README的な使い方の解説
PR Agentの各種コマンドの使い方
細かいところまで見るとキリがないくらい機能が豊富なのですが、私が新規レポジトリを覗くときに使う機能はこのあたりになります。
実際に OSS のコードに対して使ってみた
PR Agent
1.PR Agent は、ispec でも日常的に使っている OSS のコードレビューツールです。
Pull Request に対して自動で要約やレビューを生成してくれるもので、レビューフローをサポートしてくれる非常に便利な存在です。
ただ、便利に使ってはいるものの、実際に中身がどう動いているのかまではあまり追えていませんでした。そこで、DeepWiki を使ってリポジトリ全体を可視化してみたところ、レビュー処理の流れや構成が想像以上にクリアに見えてきました。
例えば、以下がレビュー機能のワークフローを図解したものなのですが、「PRのdiffだけ取りに行ってくれていたんだな」とか「いきなりmdを生成するんじゃなくて、yamlを一度経由しているのか」といった発見がありました。
また、PR Agentでは複数のプロバイダーが提供しているAIモデルを使うことができるのですが、その共通化には LiteLLM というライブラリを利用している、なんて PR Agent を使うだけでは絶対に意識しない細かい部分まで知ることができました。(そもそも LiteLLM を知らなかったから勉強になった)
starry(OSSで公開している開発テンプレート)
2.次は ispec で新規プロジェクトの立ち上げ時に、利用しているstarry
というテンプレートリポジトリでも試してみました。
まず普段のAPI開発で実装するリクエストワークフローについての図解です。ispecでは DDD × クリーンアーキテクチャをベースとして実装を進めているのですが、完璧に図解できていて正直驚きました。
organizationを取得するサンプルAPI
今回はシンプルな取得系のAPIなのでdomain層が入っていないですが、作成系ならdomain層も図示してくれそうな気配を感じます...すごい...
こうやって図示してくれるとチーム全体で「機能を追加するならこのファイルだな」という共通認識がとりやすくなりそうですね!
オンボーディングでも活用ができそう
このテンプレートを基本としてPJのコードベースを作っていくため、新しく入ってくれるメンバーも利用するテンプレートになります。これまではペアプロで開発しながら、都度「このあたりはこういう設計で……」と説明していました。
でも、DeepWiki を見てもらうだけで全体像がある程度分かるようになれば、オンボーディングはもっとしやすくなると思います。
特に入社直後でまだ質問しづらい時期でも、DeepWikiにはチャット機能が備わっているので「AI相手なら気軽に聞ける」という選択肢があるのは安心感につながって良いですね🫰
まとめと今後の展望
DeepWiki を使うことで、アーキテクチャ図が用意されていないレポジトリに対しても「コードを読む前に全体像を理解する」というアプローチが取れるようになりました。その結果として、OSS に対する心理的なハードルがかなり下がった実感があります...!
これまでなら、コードリーディングに膨大な時間がかかることを理由に OSS へのチャレンジを諦めてしまう場面も多かったのですが、今では「まずは覗いてみようかな」と自然に思えるようになりました。
また、チーム内のオンボーディングや知識共有の文脈でも、DeepWiki の活用には大きな可能性を感じています。図解や自然言語による説明、気軽に質問が出来る環境があることで、メンバー間の理解のズレも減らせると思うのでどんどん導入していきたいと思っています。
まだコントリビュートまでは至っていませんが、「読める」「触れられる」と感じられるようになったこの変化は大きく、OSS に貢献するハードルが大きく下がったように感じています!
これから少しずつ、自分も実際に手を動かしていきたいと思いますし、同じように OSS に興味はあるけれど躊躇している人たちにとって、DeepWiki のようなツールが良い後押しになれば嬉しいです🙆♂️
おわりに:採用情報
ispec では更なる事業拡大を見据え、エンジニア職にて新しいメンバーを募集しています。
採用サイトでは各求人の詳細だけでなく、ispec で大切にしている価値観や、メンバーの紹介記事も掲載しております。
- 技術へのこだわりやプロダクト愛を活かして働きたい
- フルリモート、フルフレックス下で最大限のバリューを発揮したい
- 心理的安全性の高い環境の中、チームで成果をあげてみたい
そんな思いを持った方がいらっしゃいましたら、ぜひ一度カジュアルにお話ができたらと思います。
Discussion