POS Lite構築から学んだ教訓
小規模ビジネス向けのフルスタックPOSシステム「POS Lite」の構築を完了しました。以前、アーキテクチャとデプロイについて共有しましたが、今回はそこから学んだことを共有したいと思います。
実際のプロジェクトを構築することは、チュートリアルに従うこととは異なります。チュートリアルは代わりに判断を下してくれますが、実際のプロジェクトでは自ら選択を迫られます。
以下のことを決める必要があります:
- コードの構造をどうするか
- どの機能を最初に構築するか
- フロントエンドとバックエンドをどう連携させるか
- 認証をどう扱うか
- データをどう保存するか
- アプリをどうデプロイするか
主な教訓は以下の通りです:
完璧主義は進捗を遅らせる 完璧なアーキテクチャやUIを待ってはいけません。まずは動作するバージョンから始め、一歩ずつ改善していきましょう。例えば、まずは商品モジュールを動かし、次にバリデーションを追加し、その次に在庫管理を連携させます。小さな成功の積み重ねが、完成した製品へとつながります。
成長に合わせて構造が重要になる 小規模なバックエンドなら管理は簡単ですが、大規模になると整理整頓が必要になります。私は整理された状態を保つために、レイヤード構造を採用しました:
- Controller: HTTPリクエストを処理
- Service: ビジネスロジックを保持
- Repository: データベースとの通信を担当
認証は複雑である 認証は単なるログインフォームではありません。資格情報の検証、トークンの生成、ルートの保護、ユーザーアクセスの管理などが含まれます。JWTを使用することで、セキュリティがどのようにフロントエンドとバックエンドを繋いでいるかを理解できました。
UXにおいて重要なのは実用性である フロントエンドは見た目だけではありません。ユーザーは商品を検索し、販売処理を行い、レポートを素早く確認できる必要があります。見た目が美しいものよりも、実用的なインターフェースの方が優れています。
デプロイはエンジニアリングである ローカル開発からクラウドへ移行すると、新たな問題が浮き彫りになります。CORSエラー、環境変数の問題、DNSの設定作業などに直面することでしょう。デプロイは最終ステップではなく、プロセスの中核となる部分です。
間違いは教訓である 小さなミスが大きな教訓を与えてくれます。環境変数の欠落やポート番号の間違いが、すべてを台無しにすることもあります。これらのバグを通じて、より注意深くデバッグする方法を学びました。
自身のプロジェクトへのアドバイス:
- 現実的なものを作る
- 小さく始める
- 動作するバージョンを完成させる
- 少しずつ改善していく
- デプロイする
- プロセスを文書化する
未完成で完璧なアイデアよりも、完成してデプロイされたプロジェクトの方が多くのことを教えてくれます。