前回はTodoアプリを作成したので、今回は、Todoアプリに必要になるデータを保持するためにSQLiteで使用するデータ構造を生成AIに提案してもらい、かつ、そのデータを操作するためのソースコードを生成してもらう。生成AIに設計からコード提案まで支援してもらえる様子を紹介しよう。

連載「開発&生成AI」のこれまでの回はこちらを参照

データ構造を提案してもらう

ソフトウェアの設計および実装方法には、いろいろなやり方がある。よく使われている方法の一つに、先にソフトウェアで使用するデータの構造を設計し、それに対してコードの方を考えていく方法がある。データ構造さえ適切にわかりやすく設計できていれば、それを扱うソースコードの方はまずくてもあとからなんとでもできるという考え方だ。データ構造の方がめちゃくちゃだと手が付けられないので、データだけは整備しておく。

今回はTodoアプリのデータをSQLiteで扱うと決めたので、SQLiteデータベースのデータ構造を考える必要がある。そこで、ChatGPT GPT-3.5に次のような指示を出す。

PythonでCUIベースのTodoアプリを開発したいと考えています。データの保持にはSQLiteを使いたいと考えています。Todoアプリに必要になるストレージのデータ構造を提案してください。

すると、ChatGPTは次のような返事をする。

  • Todoアプリ向けのSQLiteデータ構造を提案するように指示

    Todoアプリ向けのSQLiteデータ構造を提案するように指示

SQLiteを使用してPythonでCUIベースのTodoアプリを開発する場合、データの保持に関するデータ構造を提案します。以下は、Todoアイテムの情報を格納するためのSQLiteデータベースの単純な構造です。

列名 内容
id INTEGER (主キー) Todoアイテムの一意識別子
title TEXT Todoアイテムのタイトル
description TEXT Todoアイテムの詳細な説明
due_date DATE Todoアイテムの期日
priority INTEGER Todoアイテムの優先度。1が最も高い優先度で、3が最も低い優先度
completed INTEGER Todoアイテムが完了したかどうかを示すフラグ。0は未完了、1は完了

このデータ構造を使用すると、各Todoアイテムに関する基本的な情報を保存できます。ユーザーはタイトル、詳細、期日、優先度、および完了フラグを追加、編集、削除できます。また、SQLiteの強力な機能を活用して、検索、フィルタリング、ソートなどの高度な操作も実装できます。

提案されたデータ構造はTodoアプリで使用するのに必要十分なものであるように見える。今回はこの提案された構造をそのまま使うが、考えている要件を満たせない場合は、さらにChatGPTに話しかけて別の構造を考えてもらったり、自分で手を入れたりして変更を行う。

データ構造からソースコードの生成を指示

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら