
TypeScript のサーバサイドフレームワーク – NestJS と Marble.js で書き比べ
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
TypeScript のサーバサイドフレームワーク – NestJS と Marble.js で書き比べ
サーバサイドの言語として、python, Go など 多様な言語があります
フロント側が Single Page Application の場合は
TypeScriptで実装すると メリットが多いはずです
下記で登場した、TypeScriptのサーバサイドフレームワークと実装の違いを見ていきます
TypeScript のメリット – Front と Server の架け橋
サーバサイドフレームワーク
NestJS
Angularのような書き心地でコードが書けます
Decoratorでルーティングをします
classベースの実装です
Marble.js
RxJSのような書き心地でコードが書けます
chainで一致させルーティングをします
functionalベースの実装です
NestJS と Marble.js で書き比べ
NestJS
http://api.com/cats を get された場合
Decoratorで処理していく手法です
GetのDecoratorをimportし
findAll -> this.catsService.findAll の流れ
import { Get } from '@nestjs/common';
class CatsController {
constructor(private readonly catsService: CatsService) {}
@Get()
async findAll(): Promise<Cat[]> {
return this.catsService.findAll();
}
}
Marble.js
http://api.com/me を get された場合
chainで処理していく手法です
EffectFactoryからchainし
matchPath -> matchType -> use(getMeEffect$) の流れ
const getMe$ = EffectFactory
.matchPath('/me')
.matchType('GET')
.use(getMeEffect$);
classベース と functionalベース
classベースの方が馴染みのある方が多いと思います
オブジェクト指向プログラミングは1兆ドル規模の大失敗なのか?
の影響もあり別の手法を知ることは良い事だと思います
functionalベースのコードだと流れるようにコードリードができ
ポイントフリースタイルでの、テストのしやすさなどメリットがあります
まとめ
プログラミングは、料理に似ていると思っています
同じ素材を使い 同じ結果を 目指しても そこに至る過程 に違いが生まれます
classベース と functionalベース 双方を比較して
雰囲気を掴んでもらえればと思います







