はじめてのZine作成 NestJSでバックエンド開発に挑戦

目次

はじめに

こんにちは,光岡です. アンさん,及川さんのブログ記事に引き続き,Zine作成についての最後の記事になります. お二人のブログ記事は以下です.

blog.lab.sugimototatsuo.com

blog.lab.sugimototatsuo.com

ネットワークデザインスタジオの大学院生3名で制作した「カラフルなJavascriptであそぼう p5.js | Konva.js | NestJSのノウハウブック」は以下から確認することができます.

techbookfest.org

私は最後の「PART 3 お手軽にアプリ開発ができるNestJSの始め方」を担当しました.今回,NestJSを選んだ理由と取り組んでみて分かったことについてご紹介します.

NestJSを選んだ理由

アンさん,及川さんのブログ記事にも記載ありますが,3人の共通点からJavaScriptのライブラリに関するZine作成が始まりました.

私の場合,Web開発に関しては,ここ最近Go言語を使ったバックエンド開発をメインに行っており,JavaScriptはしばらく触っていませんでした.以前はAWSを使ったインフラ開発にも挑戦しており,色々な分野を担当できるフルスタックエンジニアを目指しています.フロントエンド開発も本腰入れて勉強したいなと考えていました.そのため,当初はReact, NextJSかReact Nativeに挑戦する予定でした.

ですが,Ruby, Go言語でバックエンド開発を経験してきて,この2つとはまた違った特徴を持ったものに挑戦したいなという気持ちもあり,最終的にはNestJSを選択しました.

NestJSとは,Node.jsサーバーサイドアプリケーションを構築するためのフレームワークです.RubyでいうRuby on RailsPHPでいうLaravelにあたると思います.

事前の情報収集で,NestJSの利用は,下記内容についてメリットがあると感じました.

  • Ruby on RailsのようにORMの利用により開発がしやすい
  • TypeScriptを選択することで型付きにできる
  • フロントエンドと言語を一致させることができる

実際に取り組んで,このメリットを感じることができたかなどについてご紹介していきます.

取り組んでみて分かったこと

情報量はまだ多くない

今回は公式ドキュメント,zennの記事などを参考に基本的なCRUDアプリケーションを作成しました.検索して感じたことは,zennなどの素晴らしい記事があるものの,記事数は他のアプリケーションなどに比べるとまだ多くない印象でした.Ruby on Railsは特に記事が多く,私自身もWeb開発を始めた時にたくさんエラーに遭遇し,素晴らしい記事にたくさんお世話になりましたが,もしこの当時の私がNestJSを選択していたら,きっと挫折していただろうなと思います.

これからはRuby on RailsではなくNestJSを選択する

この子見出しは思い切って言い切ってみましたが,そう思うことができるぐらい,私は魅力を感じました! 主な理由は2つです. 1つ目はRuby on Railsの開発速度に近い状態で型を扱えるからです.最近はGo言語を触っているので,型が無いと私は不安になります. 2つ目はPrismaの存在です.今回ORMとしてPrismaを利用しましたが,Ruby on RailsActiveRecordと同様の恩恵を感じました.DBへのクエリの書き方も直感的で,Prisma Studioも便利でした.

先ほど,情報量のデメリットについて触れましたが,この点がもう少し改善されたら,もっと色々な企業さんで利用されるようになるのではと期待しています!

おわりに

今回は担当したNestJSについて,少し紹介してみました. p5.jsによるジェネラティブアート表現・キャンバスライブラリのKonva.js・Web開発のNestJS,何か少しでも興味を持ってもらった方に是非読んでいただけたら幸いです.