【第1回】なぜWiki機能を追加しようと思ったのか?〜40代エンジニアがCodeXに挑む理由〜

wiki管理アプリ作成

こんにちは。今回は、新たに個人用アプリに「Wiki機能」を追加した理由と、その実装にあたってOpenAIのCodeXを活用した試みについてご紹介します。

【第1回】の記事は以下を参照してください。

【第1回】なぜ自分でパスワード管理アプリを作ったのか?〜40代エンジニアの試行錯誤〜

エンジニアにとっての「知識の記録」の重要性

エンジニアとして業務をしていると、日々新しい技術や用語に出会います。これらの情報は時間が経つとすぐに忘れてしまいがちです。そのため、自分自身の理解を深め、再利用しやすくするためにも「記録する習慣」は非常に大切です。

これまでも、私はDropBox PaperやGitHubのWikiなど、さまざまなサービスを使って情報をまとめてきました。またOSSのWikiツールをVPSにインストールして使うこともありました。しかし、長く続きませんでした。

クラウド型サービスの限界

便利ではあるものの、クラウド型のサービスにはいくつかの課題があります。

  • 個人的な情報は外部に置きたくない:ローカル環境で実験しているコードのメモや、業務で得た知見など、プライベートな情報を外部に保存することに抵抗がありました。
  • ログインの煩雑さ:サービスによってはログインに時間がかかるものもあり、ちょっとメモをとりたいだけなのに煩わしさを感じることがありました。
  • サービス終了リスク:長期間にわたって記録を保存するには、外部サービスの継続性も考慮しなければなりません。

これらの理由から、前回作成した「パスワード管理アプリ」にローカル環境で完結する個人用のWikiシステムを追加することを決めました。

個人用Wikiの要件

構築にあたって、以下のような機能を持たせることを目指しました。

  • 記事の登録ができる
  • 記事の更新ができる
  • 更新画面から削除ができる(削除ボタン付き)
  • ダッシュボードに最新3件の記事をカード型で表示
  • 記事ごとの詳細画面がある
  • 一覧画面で過去のWiki記事を閲覧可能

また、前回と同じくNext.jsとSQLiteをベースに、シンプルかつ高速に動作する構成を想定しています。

OpenAI Codexでの実装アプローチ

今回の挑戦は、OpenAIが提供するコード支援AI「Codex」を使ってWiki機能を構築するという試みです。

Codexは、プロンプト(命令文)を与えることでコードを自動生成してくれるAIです。今回、次のようなプロンプトを入力してみました。

Wikiの機能を付けてください。

  • - 登録ができる
  • - 更新ができる
  • - 更新画面から削除ができる(削除ボタン)
  • - 詳細画面がある
  • - ダッシュボードの一覧画面がある

データーベースの構成は以下の通りでお願いします。
CREATE TABLE wiki (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Codexはこのプロンプトに応じて、適切なAPIエンドポイントやReactコンポーネント、SQLite操作コードなどを提案してくれました。もちろん、そのまま動くコードにはならない場合もありますが、方向性のガイドとして非常に参考になります。

プロンプト設計のポイント

Codexに正しく意図を伝えるためには、プロンプトの設計がとても重要です。今回意識した点は以下の通りです。

  • 具体的な機能の列挙:「登録・更新・削除・表示」などを明記
  • 画面単位での要件記述:「ダッシュボード」「詳細画面」「一覧画面」など、UIの構成に言及
  • データベース定義の提示:テーブル設計を具体的に示すことで、Codexがモデルやスキーマを理解しやすくなります

Codexを使ったプロンプト駆動型開発では、「コードを生成してもらう」というよりは、「一緒に考えてもらう」ような感覚で進めるのがポイントだと感じました。

下の図はCodexが作った画面です。

wiki管理アプリ作成

今後の構成予定

このWiki機能の実装を通して、次のような構成でブログ記事を公開していく予定です。

  • 【第2回】Wikiテーブルの追加とダッシュボードの改修
  • 【第3回】Wiki記事の登録・更新機能を実装する
  • 【第4回】Wiki一覧と詳細画面を作る
  • 【第5回】使ってみて感じたことと今後の展望

前回のパスワード管理アプリ同様、「シンプルで使いやすい」「個人の技術的な備忘録として最適」な形を目指して、開発を進めていきます。

まとめ

今回は、なぜWiki機能を追加しようと思ったのか、その背景や目的、Codexを使ったプロンプトの設計方法についてご紹介しました。

クラウドに頼らず、完全ローカルで動作する自分専用のWikiを持つことで、安心感とスピード感が両立できます。また、CodexのようなAIツールを使えば、開発のハードルも大きく下げられます。

次回は、実際にデータベースやテーブルを追加し、ダッシュボードをどのように改修したかをご紹介する予定です。どうぞお楽しみに!

コメント

0 件のコメント:

コメントを投稿

コメントをお待ちしています。