バックエンド技術調査
フロントエンドと同じく、技術選定のための調査
最強を知りたい。
社内で使いたい技術のメモみたいなものなので精査しないでね
- Ruby on Rails
- NodeJS (TypeScript)
- Go
- Rust
が評判良い。
できるだけ型あり言語が嬉しい。
また、NuxtとかNestとかはもうNodeJSと同じ枠と判断する
Node上で動いてるならそうだよね?
Ruby on Rails
- 型はないがデバッグがしやすい
- 最強候補
時間ある時さわりたい
NodeJS
- TypeScriptを使用できるので学習コストが低い
- フロントと言語が統一できるのでクラス設計が楽になると思う
- NodeJSがDenoになっても生存できそう
Nodeで動作するフレームワークにNestJSがあるらしい。
DB設計とクラス設計で微妙に話が食い違うことがあるから嬉しいかもしれない
ファイル構成は至って普通。MVCとユニットテストがある。
とっつきやすい
ModelじゃなくてModuleだった。
ちょっとわっかんない
コントローラーは同じ、View (クライアント)からのリクエストを受けるIF
CLI使うと複数ファイルを変更したり、生成できるから便利
nest g mo posts
コントローラーからServiceを参照する
ModuleはAppモジュールなど大きいModuleの中に小さいModuleがある。
Providerというクラスがあるわけではなく、依存関係を注入/提供/供給することを指す。
ModuleにProviderするクラスをIF化すると良さげ。
共通化をイメージしやすいかも。
基本的な考えとしては
Moduleに対してのコントローラー
Moduleに対してのProvider
Moduleに対してのModule
などModuleが一番偉そう。
MiddWareはプレゼンテーションやコンバーターにも使えるが、公式のおすすめはLogなど共有で行う処理に使って欲しそう。
チュートリアルのORMコマンドがうまく動作しない、Prismaを使った方法を試してみる。
npm run migration:generate
NESTJSではCRUDのプロトタイプを以下コマンドで生成できる
npx nest g resource
便利すぎてあんまわからなくても実装できそう。
微妙に手順が違うのかエラーが発生したりして動作しない。
別の方法をためそうかしら
GO
- 情報が少ない
- 速度が早い
- マルチプラットフォームとして使用できる
- 継承が使えないが嫌いなひとがおおいから良い。私は好き
- 人気。今後も生き延びそう
RUST
- はやい。描きやすい。すごい
- 人気
- 組み込みにも使える
- 便利
- 長く生きると思う
分量多くてさわれないなぁ