はじめに
元々フロントエンジニアとしてバックエンドにはあまり触れずに過ごしてきたが、半年ほど前からアサインしている業務でASP.NET coreのバックエンドでWeb API部分の開発にも携わることとなった。
本記事では、私自身が実務でつまずいたポイントや、理解を深めるのに助けられた書籍・記事を中心にまとめる。ASP.NET coreに挑戦する方にとって、スムーズなキャッチアップの一助になればと思います。
筆者の背景
- 基本フロントエンドの開発メインで、SPAを作成するのにAPI設計書を確認・添削したり、バックエンドのコードを確認して多少修正する位で、0から作ることはしてこなかった
- Unityを使ったゲーム開発をしていた時期があり、C#自体はそこそこ使える
- DBやインフラ周りの知識は乏しい
記事の対象読者
- フロントエンドエンジニアで、業務で初めてASP.NET Coreを触ることになった人
- C#は多少書いたことがあるが、本格的なバックエンド開発は未経験の人
- ASP.NET Coreの公式ドキュメントを読んでみたが、難しく感じた人
- MVCやWeb APIの基本的な実装方法を知りたい人
独習ASP.NET Core
C#の文法に触れず、純粋にASP.NET Coreフレームワークの解説に特化した書籍。
MVCの基礎から、Scaffolding機能、ビューエンジンであるRazorの利用、LINQを使ったモデル開発、モデルバインドやフィルターを活用したコントローラー開発といった基本的な内容までを丁寧に解説。さらに、ミドルウェアやサブフレームワークの活用といった実践的・発展的な内容にも踏み込んでいる。
C# 自体はある程度触ったことがあったが、バックエンドの経験が浅いため、「このフレームワークでxxをしたいときは、こうする」といった勘所をつかむのに非常に役立った。
正直、ASP.NET Coreの公式ドキュメントは読みづらく感じたので、フレームワーク全体を学ぶならこの書籍を読み込む方がが良いと感じた。
WEB API 開発のチュートリアル動画
Web API をゼロから作成するチュートリアル動画。
プロジェクトの作成、モデルの設置、コントローラーの実装、EF Core を使ったデータベースへの書き込みなどを段階的に進めていく。さらに、途中でリファクタリングを挟むため、開発の流れを実践的に学べるのも良かった。
完全に英語だが、GitHub にコードが公開されており、動画内のコードもシンプルなので、動画を見ているだけで Web API を作れるようになる。
SQLの学習
案件ではO/RマッパーとしてEntity Framework Coreを使用しているが、それでもSQLをまったく使わないわけではない。
実際にデータベースを直接確認し、WHEREで条件を絞り込んだり、特定の値が存在するかをチェックしたりする機会はある。頻繁には使わなくても、業務で普通に必要になるレベルの知識は求められる。
最初はSQLに苦手意識があったが、使っているうちに「取っつきにくいだけで、実際はシンプルで扱いやすい」と感じるようになった。個人的にはSQLは「勉強する」というより、「書いて慣れる」だけで十分対応できるようになると思う。
ガンガン書いてSQLに慣れるためには、実際にコードをブラウザ上で書いて即実行できる「SQL 道場」がおすすめ。
実戦で役立つ c#プログラミングのイディオム
LINQ、Entity Framework、非同期処理、日付操作など、C#のより実践的なテクニックを網羅した逆引きリファレンスとして非常に優れた一冊。具体的なコード例とともに、現場で直面しやすい課題を効率的に解決する方法が解説されています。
この本に掲載されているイディオムを理解し、実践できるようになれば、C# のコードをより簡潔かつ効率的に書けるようになり、中級者としてのスキルを確実に磨けるはず。
まとめ
バックエンドを半年ほど触って思ったのは、フロントよりも素直ということでした。
大変だったのはフロント側ではあまり意識に上らない、入力値のバリデーションや、DBへのデータ取得や登録部分、共通処理をまとめるミドルウェア、適切なログ出力方法などで、色々勉強するところは多かった。
ただし、値を受け取って返すという点で、フロントよりも分かりやすく感じました。今更ですがプログラミングを学ぶならバックエンドから入った方が、理解がスムーズに進みそうです。
初心者でもスムーズに学べる参考資料を活用しつつ、実際に手を動かしながら経験を積んでいくのが重要だと感じました。