Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NestJS で始める怖くないバックエンド開発
Search
mikakane
December 03, 2022
Technology
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NestJS で始める怖くない バックエンド開発
mikakane
December 03, 2022
More Decks by mikakane
See All by mikakane
コーディングがわからない
mikakane
0
160
Web制作現場のディレクションを支えるGitHub
mikakane
0
620
nuxt.js で plugins を作る
mikakane
0
830
@ionic/vue で Web アプリを作ってみる
mikakane
0
3k
Laravel Package Development
mikakane
16
7k
Nuxt.js x Firebase で非同期に開発する
mikakane
0
2.2k
フロントエンドで作る理由
mikakane
1
1.3k
Firebase で作る Web アプリケーション
mikakane
1
180
技術顧問の現場から - 制作と教育、学習と生産
mikakane
0
730
Other Decks in Technology
See All in Technology
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
150
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
320
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
410
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
0
100
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
3.9k
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.4k
企業でAWS Organizationsを動かすための組織設計の考え方
nrinetcom
PRO
1
110
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
0
210
AI x 開発生産性を取り巻く予算戦略と投資対効果
i35_267
1
150
そのドキュメント、自動化しませんか?
yuksew
1
310
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
240
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
450
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
500
Navigating Weather and Climate Data
rabernat
0
380
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
The SEO Collaboration Effect
kristinabergwall1
1
510
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
390
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
The Pragmatic Product Professional
lauravandoore
37
7.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Transcript
NestJS で始める怖くない バックエンド開発 PWA Night Conference 2022.12.03 tomohiro.goto
goto tomohiro accenture Application engineer @_mikakane
NestJS で始める怖くないバックエンド開発 Why NestJS ?
NestJS で始める怖くないバックエンド開発 NestJS is backend framework And, this is PWA
Night.
NestJS で始める怖くないバックエンド開発 But, Important for you. (Maybe!)
NestJS で始める怖くないバックエンド開発 Target Frontend Engineer Backend Beginner
NestJS で始める怖くないバックエンド開発 today’s topic NestJS introduction Work with Backend Work
with NestJS
NestJS Introduction
NestJS introduction NestJS Progressive Node.js Framework
NestJS introduction Next.js NestJS NuxtJS
NestJS introduction Next.js NestJS NuxtJS frontend framework (react) backend framework
(Angular Module) frontend framework (Vue)
NestJS – Progressive Framework NestJS は Node.js の Backend フレームワークです。
All-in-one for Backend NestJS introduction out-of-box configuration Angular Module / DI REST API や GraphQL , CLI や OpenAPI など Backend 開発で必要とされる様々な シーンの開発ニーズを柔軟に サポート。 初期状態でTypeScript や Jest など、モダンな開発に必 要なツール構成が整っており、 誰にとって明瞭な構成でプロ ジェクトに取り掛かることが できます。 Angular Module を採⽤し拡 張性の⾼い DI を実現。アプ リケーション構造化の指針を 提供し、チーム開発における 設計指針の共有をより容易に。
NestJS introduction NestJS Tutorial
NestJS – REST Endpoint NestJS を⽤いた REST API の作成は⾮常にシンプルで簡単です。 NestJS
introduction シンプルなクラスを⽤いた Controller 実装 デコレータを利⽤した HTTP メソド定義 Array/Object を return し て JSON レスポンス⽣成
NestJS – Validation NestJS では class-validator を⽤いたバリデーション処理がサポートされています。 NestJS introduction class-validator
準拠のバリ デーション処理 Request Body / Route Param に⾃動でバリデー ションを適⽤ ルートごとの DTO を⽣成し て型付け
NestJS – Prisma Support Database を活⽤するバックエンド開発に⽋かせないORM ライブラリ対応も充実 TypeORM や Prisma
をサポートしています。 NestJS introduction Prisma / TypeORM のサ ポート Prisma の強⼒な migration & ORM 機能の活⽤
NestJS introduction Easy to Use シンプルなだけでなく豊富な機能を活⽤して、バックエンド のプロジェクトを効率的に進めることができます。 Easy to Team
事前に⽤意された NestJS の構成に沿って作業を進めること が可能で、チーム制作における設計共有も簡単です。 Easy to Design Angular Module の採⽤でモジュール化の⽅針が提供されて おり、設計のハードルが下がる。 NestJS – Progressive Style “Progressive“ をコンセプトにおく NestJS は、⼤⼩様々なチーム構成に適合する魅⼒的な要素が詰 まったバックエンドフレームワークです。
NestJS introduction とはいえ私はフロントエンドエンジニア
Work with Backend
Backend dev Style 10年前ならいざ知らず、今や Backend の開発スタイルにも様々なものがあります。 Work with Backend BaaS
FaaS Application no code low code scratch サービスとしてのバックエン ドで、クライアント部分の コード記述のみでアプリケー ションを構築できる。 簡単なスクリプトファイルを 使ってバックエンドの API を 構築できる。 フレームワークを⽤いて、イ チからコードを記述してバッ クエンドを構築する。
Backend with Framework Scratch の バックエンド開発が必要となるケースは、どのようなケースでしょうか︖ Work with Backend ⼤規模な制作を
⼤規模なアプリケーション開発では、BaaS や Faas の 導⼊よりもスクラッチ開発が好まれる傾向にあります。 保守性も考慮しつつ フレームワークを⽤いたフルスクラッチの開発は、 チーム内での設計指針の共有を進めやすく、安定的に 修正や拡張を進められる傾向にあります。 ⾼い拡張性で BaaS や FaaS の開発では、サービスベンダの制約に 直⾯するケースが多く、導⼊前の要件突合が重要な作 業になります。 逆に⾔えば、⼩規模な Web サービスの開発では、 BaaS や FaaS でも⼗分、ということ
You may think Too large for me Work with Backend
Knowledge Backend with Framework フロントエンドエンジニアが BaaS や FaaS を利⽤する上で、バックエンドの知識はとても重要なも のになってくるでしょう。
Work with Backend Web Application において Backend の領域の概念は必 要不可⽋ BaaS や FaaS の評価に、 Backend の観点が必要とな るケースも Image by https://www.cloudflare.com/ja- jp/learning/serverless/glossary/backend-as-a-service-baas/
Not Only Function Also Backend Work with Backend
Security Performance Maintainability Work with Backend
Start to learn Backend With NestJS Work with Backend
Work with Backend とはいえ私はフロントエンドエンジニア
Work with NestJS/Heroku
Hitch in learning Backend とはいえ、新しい概念を学び始めるのはとても億劫なものです。 NestJS introduction 新しい技術 新しい概念 インフラ知識
Backend を始めるにあたっ て、まず新しいフレームワー クで新しい書き⽅を⾝につけ る必要があり、技術選定の段 階で困難がつきまといます。 Frontend の開発が⽬に⾒え る UI を扱うのに対し、 Backend の開発は、保守性、 パフォーマンス、セキュリ ティなど⽬に⾒えない分野の 関⼼が⼤きくなります。 Backend アプリケーション を動作させるインフラの世界 は、Frontend の領域ではほ とんど触れることのない未知 の領域です。
NestJS for Backend Beginner これから Backend の開発にチャレンジする Frontend Engineer にとって、
NestJS x Heroku はとても魅⼒的な選択肢に映るはずです。 NestJS introduction 新しい技術 新しい概念 インフラ知識 TypeScript Angular Module Heroku NestJS x Heroku NestJS のコードは、 TypeScript ベース。これま でに⾝につけた JS 知識をフ ルに活⽤できます。 Angular ベースの Module 構造 を活⽤することで、DI や保守性の⾼いコード記述の 仕組みを理解することが出来 ます。 Heroku はインフラ知識不要 で Backend の環境を⽤意で きアプリケーションる PaaS のサービスです。
NestJS & Heroku They will suite for you Work with
Backend
NestJS – FullStack Framework NestJS はフルスタックのフレームワークで、Web アプリケーション構築に必要な様々な機能が備 わっています。 NestJS introduction
• TypeORM, Prisma など主要な ORM のサポート • REST API / GraphQL / Websocket サポート • Open API を利⽤したドキュメントのサポート • Jest を利⽤した⾃動テスト Express を利⽤した開発では、必要なラ イブラリを選定して導⼊する必要があり、 初学者にはハードルが⾼くなりがち。 Express を利⽤した開発では、必要な構 成をチームが⾃分で⽤意する必要があり、 ビルドやテストの構造が独⾃のスタイル に陥りがち 信頼性の⾼い Node.js ライブラリ群の活⽤で、薄くて広いフ レームワークとして、Backend 開発の様々なシーンをサポート note Concept
NestJS – Configuration-less NestJS は多機能さに加えて、設定の簡便さと Angular Module を利⽤した明瞭なコード構成が特徴 で、チーム開発における保守性を⼤きく向上させます。 NestJS
introduction • TypeScript や Jest の構築が out of box • 各種機能の利⽤も npm install & 簡単な設定のみで利⽤可 • Angular Module による構造化指針の提供 • StandAlone Mode での構造分離 TypeScript や Jest などでチーム独⾃の 設定が⼊れば⼊るほど、チームの学習コ ストが増加。 Angular Module で構造化のフォーマッ トが提供されているため、プロジェクト 個別のニーズにもモジュール単位での設 計を通じて簡潔な設計指針が共有できる。 プロジェクトの環境設定やコードの構造化の指針をフレームワー ク側が提供することで、理解しやすいコード構成を⻑期的に維持 note Concept
Heroku – PaaS for Enterprise Heroku は Node.js アプリケーションをデプロイ可能な PaaS
のサービスです。 Computing だけでなく Postgres や Redis などの Storage サービスも簡単に構築できます。 NestJS introduction • Web GUI / CLI で構築可能なインフラ環境 • Postgres や Redis など Storage サービスの提供 • GitHubと連動した CD 環境 • Enterprise ユースに対応した豊富な機能 • Heroku Connect を利⽤した Salesforce との連携 EC2 などの IaaS 環境の整備には、様々 な⼿間と知識が必要なり、構築後のサー バ管理も⾮常に⾯倒 チーム開発で必要な CD 環境の構築や、 チームのニーズに合わせた検証環境の複 製などが簡単にできるのも Heroku の強 み インフラ知識不要の PaaS を活⽤し、アプリケーション開発者が ⾃⾝でインフラ環境を整備する開発体制を構築 note Concept 2022 冬より Pricing に変更があったので注意が必要
Heroku – Pricing Heroku の無料プランは 2022.winter で廃⽌となり、代わって廉価で新しいプランがリリースされる こととなりました。 NestJS introduction
See also https://blog.heroku.com/new-low-cost-plans dyno postgres redis eco mini mini $5 for 1000h per month $0.007/hour up to $5/month $0.004/hour up to $3/month Heroku new Pricing アプリ単位ではなく、ア カウント単位での利⽤が 可能になった新プラン 従来の hobby プラン Postgres が、値下げし てより使いやすく。 新しくリリースされた、 Redis の廉価版プラン。 アプリケーションのデプロイと、使い捨 ての Postgres 利⽤といったユースケー スでも ⽉ $10 未満で PaaS が利⽤可能。 Usecase • Private な素振り環境に • Private Product の開発環境に note
Of course, Other PaaS Available Work with Backend 「Heroku 代替」で検索
NestJS で始める怖くない バックエンド開発
NestJS で始める怖くないバックエンド開発 Why NestJS ?
NestJS で始める怖くないバックエンド開発 It’s best way to start Backend
NestJS で始める怖くないバックエンド開発 Deep Dive to Application (not only UI/Views)
Thank you.