mercari-build / mercari-build-training

24 stars 225 forks source link

Step4 #201

Closed Fuki-san closed 8 months ago

Fuki-san commented 8 months ago

感想

データ管理を変更したら、コードの変更が大変になることを痛感しました。。 特にSTEP3でデータベースの情報を取得する際に、addItemと似たような関数を書いたので他に簡略的な書き方がありそうと思いました!結果として、エラーハンドリングで入れ子構造が多くて条件分岐で複数の関数に分岐させる書き方をしてしまったのが時間のかかった原因でした! でも一人huddleを増やして、ありがたいことに毎回誰かは絶対に参加してくれて、教えていただいたりすることで何とかstep4乗り越えることができました!

【STEP3のときよりも成長したこと】 ・エラーハンドリングが少し早くなった 🐇 ・Go言語の理解 👍 ・huddleで助けてもらいまくれたこと 🥇 ・チームメンバーへのレビュー意識UP 🆙 ・huddleを通してteamメンバーとの交流強化 💫 ・team外との繋がり! 👏

【STEP5以降の目標】 ・きれいなコード意識 ✋ ・(基礎部分を強化して、)コメントアウトを全て英語でかけるよになる! ・公式ドキュメントをもっと読めるようになること! ・huddle誘う! 📞

1.SQLiteに情報を移行する

step3でコーディングした部分のどこを変更すべきで、どこはそのままでいいかを考えることが大変でした!json部分を消して、db接続から取得までを調べて実装しました!

2.商品を検索する

SQL文の%keyword%の情報にたどり着くまで多少時間がかかりましたが、1で実装したコードをリサイクルして乗り切りました!

3.カテゴリの情報を別のテーブルに移す

テーブルが二つになったことで、データを取得するロジックに苦戦しました! cmd := SELECT items.id, items.name, categories.name, items.category_id ,items.image_name FROM items LEFT OUTER JOIN categories ON items.category_id = categories.id WHERE items.id = ? このSQL文にLEFT OUTER JOINと書かなければいけないところ、ずっとJOINだけだったり、queryでScanする際にも受け取るカラム順に変数を置いていなかったりしたために、1日分くらい時間がつぶれました 😿

items table アイテムテーブル

スクリーンショット 2024-02-25 143104

categories table カテゴリーテーブル

スクリーンショット 2024-02-25 143115

curl http://localhost:9000/items/{item_id} -getItemByItemId関数 IDで商品検索

スクリーンショット 2024-02-25 143224

sqlite3 .schema テーブル構造

スクリーンショット 2024-02-25 143238

curl http://localhost:9000/items -getItems 商品一覧取得

スクリーンショット 2024-02-25 143403

curl -X POST --url "http://localhost:9000/items" -F "name=jacket" -F "category=fashion" -F "image=@/mnt/c/Users/ff102/mercari/mercari-build-training//go/images/default.jpg" 商品登録

スクリーンショット 2024-02-25 143500

curl http://localhost:9000/items/search 商品の詳細情報を返す

スクリーンショット 2024-02-25 143726 スクリーンショット 2024-02-25 150027
momom-i commented 8 months ago

@Fuki-san すみません、ご自身でフォークしたレポジトリでPR作成していただけますか? 🙏 一旦こちらクローズさせてください