0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

何か作れと言われたので在庫管理システムを作った(その2)

0
Last updated at Posted at 2026-06-03

前回の続きです

E2Eテストで激突した現実と、講師にガチで諭された話」

  1. 「テスト」という未知の領域への挑戦
    それなりに自分では「いいシステムができた」と思っていた。
    しかし、これまでは手動でポチポチ触っていただけで、いわゆる「テスト」というものを一切していなかった。一度ちゃんとやってみようと思い、お馴染みのChatGPTに相談してみた。

すると、「E2E(End to End)テスト」という、ブラウザの動きを自動でシミュレートしてテストする手法があるらしい。

「なら、それをやってみよう!」と、軽い気持ちで導入してみた。

  1. 合格しないテストと、この世にない数字
    テストを開始したものの、なぜか全然合格しない。
    ログを見ると、どうも同じところでずっと引っかかっている気がした。

画面がフリーズしているわけでもないのに、何が悪いんだ?
不思議に思ってAIに相談し、返ってきたデータを見て目を疑った。

「在庫:−100個」

……マイナス100?
物理的な商品を取り扱う在庫管理システムにおいて、マイナス100なんていう在庫はこの世に存在しない。完全にシステム上のバグだった。

  1. 「そうだ、SQLを入れよう」で無理やりクリア
    データのバリデーションがガバガバだったのもあるが、ここで私は気づいた。
    「そういえば、データ管理をずっとJSONファイルだけでやってたな。SQLを使ってなかったなぁ」

よし、データベースを導入してデータをちゃんと管理させよう。そう思い立ち、AIの力を借りてシステムにSQLを組み込んだ。
SQLを導入したことでデータ管理の仕組みを見直し、
在庫数に対する制約や入力チェックも追加した。

おかげであれだけ引っかかっていたE2Eテストもすべて綺麗に合格と相成った。めでたしめでたし。

「あーおわった」
テストの自動化もクリアし、私はまた一つ壁を越えたと満足していた。

  1. プログラミングスクール講師の、重い一言
    この成果を引っ提げて、プログラミングスクールの講師に色々と相談してみた。
    IT転職では、成果物は必須なのは言うまでもないので講師に相談した。

「どうやってマイナスになるバグを解決したの?」
「JSONではデータ管理が安定しなかったので、SQLを導入し、入力制御やデータ管理の仕組みを見直して解決しました!」

ドヤ顔の私に、講師から返ってきたのは褒め言葉ではなく、注意であった。

「ウォーターフォール開発では、初期に決めた設計書(方針)から開発途中でブレてしまうのは良くない。今回は自作の個人開発だから大きな問題にならなかっただけだよ」

「SQLを入れるという判断は、一番最初の設計時点で決めておくべきこと。もし最初にJSONでやると決めたなら、最後までJSONの中で解決すべきだったね。つまりマイナス100がでたら、それをjson内で解決すべき
設計を途中で変えるなら、その影響範囲まで考えないといけない」

アジャイル開発がもてはやされているが、大規模な案件では未だにウォーターフォールが今なお中心なのはこういうことなのか・・・・?

  1. テスト合格の裏にある「前提」と、未経験の壁
    うーん、そういうことか……。
    「テストをクリアする」というのは大前提として大事なことだけど、そこに至るまでの「設計思想」という前提を踏みにじっては意味がないのかな・・・・・

力技で解決はしたけれど、開発プロセスとしては問題だらけだったらしい。

実務経験が少ない私だが、今回の経験を通じて、目先のバグ修正だけでなく、設計全体を見る視点の重要性を実感した。実務ではこうした視点が求められるのだろうと感じた。

とはいえ、実際に手を動かして痛い目を見たからこそ得られた、最高の経験値だ。この失敗は次に活かせばいい。

実は、作れと言われて作ったソフトはこれだけではない。次回以降も、何本か作ったシステムがあるので、そのあたりの泥臭いエピソードをアップしていこうと思います。

今回の成果物(GitHub)
👉https://github.com/mitsuosa0903/Browser-Based-Inventory-System2026_github

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?