前回の記事では、データベースの初期化といった基本的な準備について紹介しました。今回は、その続きとしてデータの追加・削除を行うCRUD操作の実装の様子を紹介します。
CRUD操作を実装しよう
CRUDとはデータベース操作におけるCreate(作成)、Read(読み取り)、Update(更新)、Delete(削除)の頭文字を取ったものです。
既存のデータを取得したり、データを更新したり削除するためのエンドポイントを作成することが含まれます。
例えば、ハンドメイドの素材を購入した際、その素材の単価や購入場所、購入日などを登録しておくことで、原価管理や在庫管理が簡単に行えるようになります。
直面した課題:ルーティングの不整合
今回の実装中に、ルーティングがうまく噛み合わず、何度も試行錯誤しました。
AIとの連携がうまく取れていない部分があり、何度やってもCRUDの実装がうまくできず、ディレクトリ構造のチェックやAIからのコードの再提案を何度も繰り返しました。
今回の苦戦の中から学べたこととして、ChatGPTにディレクトリ構造をどうやって伝えればいいんだろうと悩んでいましたが、コマンドラインで
ls -R と入力して実行することで、現在のファイルのディレクトリ構造を表示することができます。
それをコピペすることで、ディレクトリ構造をAIに理解させることができました。
一つ学びになりました。
解決方法と原因
今回の苦戦の原因
- 循環インポートエラー: ファイル間の依存関係が複雑で、モジュール間の循環インポートエラーが発生。
- アプリケーションコンテキストのミス: データベース操作時にアプリケーションコンテキストが適切に管理されておらず、エラーが発生。
- ファイル分割による複雑化: 初期段階でファイルを分割しすぎたため、コードが複雑になりエラーの原因が特定しにくくなった。
要はファイルをたくさん分割したせいで、複雑になっていたせいで、うまく動作しなかったというものでした。
解決方法
ネットでCRUD実装に関する記事を書いている方の方法を参考にして、
まず、非常にシンプルなコードを使って、動作するものを用意しました。
それを徐々に自分が作りたいハンドメイドアプリの内容に変更することで、
実装にこぎつけました。
AIの指示ばかりを頼りにしていては、うまくいくものもうまくいかないケースもあります。
なので、過信しすぎずに進めることと、開発の最初の方はファイルを複雑にしてはいけないことを学びました。
最終的には機能ごとにファイルを分けていく必要があるので、またそこで苦戦しそうですね。
まとめ:現在の進捗度
今回の作業で40%が完了しました。
これでデータの追加や削除が可能になりました。
このあとは追加したデータの絞り込み機能・検索機能を実装したいと思います。
進捗があれば引き続き、シリーズとして記事にしていきますのでお楽しみに!
自己紹介
pekopokoです。プロフィールページはこちら
普段はハンドメイド作品をオンラインで販売しています。
メタバース空間にハンドメイドショップを自分で構えることを目標に現在プログラミングも学習中です。
作品はオンラインショップでご覧いただけます。
物作りで日常を明るく♪をコンセプトに活動中のハンドメイド作家です。minneやメルカリショップス 、Creemaにてマクラメ・レザーブレスレットなどを中心に出品中です。
コメント