GitHubリポジトリ
はじめに
「GWの間に100本くらいPRを出せるだろ」と軽い気持ちで始めたRustでの個人開発でしたが、実際に出せたのは30本。Web開発の実務経験はなく、これまでの個人開発も未完成に終わることが多く、Gitもmainに直接コミットするようなやり方で、実務とはほど遠いものでした。
今回はそうした自分を変えるため、あえてブランチを細かく分けて、一つずつ積み上げていくスタイルに挑戦しました。「まず手を動かす」ことを優先し、立ち止まらず進むことを重視した取り組みです。
Rust初挑戦と開発スタイルの変化
Rustの型、所有権、非同期処理などに苦戦しながらも、ChatGPTや公式ドキュメントと向き合い、トライアンドエラーを繰り返しました。Cargo.tomlやSQLも明示的に書くスタイルが自分に合い、安心して開発できました。
実務を意識した開発姿勢
PRベースで進めたことで、ただ“動く”ではなく“保守しやすく、共有しやすい”コードを意識。
- 責務、再利用性を考える
- クライアントを意識したAPIレスポンス設計
- 単体テストと統合テストの住み分け
- SwaggerでのAPIドキュメント生成
コードの“前後関係”や“誰のための実装か”を考えるようになりました。
トレードオフを知った
「DDDを取り入れればいい」「テストを厚くすればいい」──以前の自分は、そんな理想論だけで満足していました。実際に手を動かさずに、実務を分かった気になっていたのです。
しかし今回、小さくブランチを切って少しずつ積み上げる中で、ようやく現実が見えてきました。
- 拡張性を求めるとコード量が増える
- DIやモックの導入タイミングに迷う
- スピードと品質のバランスを取る難しさ
Rustでは、型によるバリデーションは単体テストに、DB操作はDocker Compose+curlで実際に動かして確認するという、現実的で無理のない戦略を選びました。頭で考えるだけでは見えなかった“現実の開発判断”に触れた実感があります。
まだまだ入り口
CI/CD、フロントエンド連携、レビューやチーム開発は未経験。例えるなら入門書の第1部が終わったような感覚。でもその先にある壁を見て、もっと熱くなれそうだと感じています。
この取り組みの動機
就活のためだけではありません。自分のプロダクトを作りたい、人に使ってもらえるものを届けたい。その思いが原動力です。
だからこそ、小さなブランチで進みやすくしながら、今後も着実に積み上げていきます。AIを活用した学びの環境も整ってきた今、実務に携わりたいという思いが一層強くなっています。
主な変更内容
-
認証の整理: JWT認証の追加や、ログイン機能の実装、認証モジュールのリファクタリングを行いました。
-
APIの改良: エンドポイントの追加(GET/POST/PUT/DELETE)、CORS制限の強化、APIレスポンスのフォーマット統一、エラーハンドリングの改善。
-
テストとドキュメント: API統合テストの追加、Swagger UIの設定、READMEにAPIドキュメントを追加。
-
データベース: PostgreSQL接続の設定、DBのエラーハンドリング、partsテーブルのマイグレーション、CRUD操作の実装。
-
ロギング: 構造化ログの追加、エラーログの改善。
読んでいただき、ありがとうございました。