2026年1月のフリーランス独立に向けて、日々勉強中の管理人の勉強日記。
4月はNestJSの勉強をひたすらしてました。
現在の管理人のスキルはこんな感じ。
担当工程経験
多)実装/単体テスト/結合テスト
少)基本設計/詳細設計
無)要件定義/保守運用
★★★:自信あり
・AIを使った画像処理
・サロゲート最適化(実験計画)
・デスクトップアプリ作り
★★:多分そこそこできる
・Reactを使った表とかグラフとかのフロントエンド処理
・要件定義(製造業の品質管理関係のみ)
★:自信ないけど教えてもらえればできる
・APIとかデータベース回りのバックエンド処理
×自信なし
・デザイン
・AWSとかのクラウド関係
・要件定義とか上流工程(製造業以外)
・正直ここに書いていないこと全般
上のスキル一覧の赤アンダーバーのあたりを勉強していきます。
APIは会社の先輩から教わり実装しているだけなので自分でも勉強してみました。
勉強題材
Nestの勉強にはUdemyの「NestJS入門 TypeScriptではじめるサーバーサイド開発」を使用しました。
NestJSはNode.jsで動作するTypeScriptを使用したバックエンド開発フレームワークで
・TypeScriptで型があるので、安定してエラーの少ないチーム開発ができる。
・テストフレームワークが標準で用意
・WebSocket, セキュリティ、DBもRDBやNoSQLが使えるなど拡張性が高い
など色々メリットがあります。
ただ、公式には日本語が無いので取っつきにくい欠点が。。。
ということでUdemy講座で勉強しました。
覚えたこと
NestJSに関しては以下のようなこと
・FeatureモジュールやらFeatureコントローラーやらFeatureサービスなどの役割
・EntityでRDBに対応するオブジェクト作って、Reposiroryで操作を抽象
など
他にもこの講座から以下のような内容も勉強しました。
・DTO(Data Transfer Object)←これを使ってパスワードは8文字以上等のバリデーション可能(Pipe機能)
・ORM(Object Relational Mapping)←SQLを使わずに、DB操作ができるようになる
・JWT(JSON Web Token)←ヘッダ、ペイロード、署名のJsonをエンコードした認証情報
・Jestによるテストの書き方
など
上記の箇条書き中の単語について聞いたこと無い人にとっても分かりやすく教えてくれる講座だったので非常に◎な講座でした。
自分の中でもバックエンドの基本について分かった気がしますし、ようやく基本情報技術者試験で勉強した内容を実装している感がありました。
上記の記事を読んで、去年のゴールデンウイークに基本情報取った事を思い出し懐かしい気分になりました。
おわりに
ここまで読んでいただきありがとうございました。
これまでバックエンド開発だとPythonのFastAPIを勉強していたのでNestJSとFastAPIどっちがいいのか気になってchatGPTに聞いてみたら
どちらを選択するかは、以下の要因によって異なります。
chat GPTより
- 言語の選択: FastAPIはPython、NestJSはTypeScript/JavaScriptです。チームのスキルセットやプロジェクトのニーズに合った言語を選択する必要があります。
- パフォーマンスとスケーラビリティ: FastAPIは非同期処理をサポートしており、高速なAPIの構築に適しています。NestJSも高性能ながら、PythonよりもNode.jsの方が一般的に高速な処理ができる場合があります。
- 開発速度とコード品質: FastAPIはPydanticや型ヒントを使用して、コードの品質を維持しながら開発速度を向上させます。NestJSは、モジュール化された構造やDIを使用して、アプリケーションの保守性を高めます。
- エコシステムとサポート: Pythonのエコシステムは非常に広範で、FastAPIも多くのサードパーティライブラリやツールが利用可能です。Node.jsエコシステムも大きく成長しており、NestJSも多くのサポートとリソースがあります。
との回答が。
自分的にはこの回答は、①のチーム状況次第じゃんという印象。
どっちも使えたら個人的にはカッコいいと思います。
聞きたかったこととは違うけど③のPydanticは今後FastAPI使う以外にも使っていきたいな~。