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
CDKで始めるTypeScript開発のススメ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
つくぼし
February 01, 2026
Technology
1
1.5k
CDKで始めるTypeScript開発のススメ
つくぼし
February 01, 2026
Tweet
Share
More Decks by つくぼし
See All by つくぼし
Mastraに入門してみた ~AWS CDKを添えて~
tsukuboshi
0
1.2k
Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
710
Amazon Bedrock GenUハンズオン座学資料 #1 GenU環境で生成AIを体験してみよう
tsukuboshi
0
1.3k
AWSエンジニアに捧ぐLangChainの歩き方
tsukuboshi
5
2.1k
世界の中心でApp Runnerを叫ぶ ~Aurora DSQLを添えて~
tsukuboshi
0
830
初めてのGPTs ~ネコ派を〇〇派に変える技術~
tsukuboshi
0
850
Amplify Gen 2ではじめる 生成AIアプリ開発入門
tsukuboshi
1
1.8k
AWSで構築するパターン別RAG構成解説
tsukuboshi
5
8.7k
AWS構成図から CloudFormationとパラメータシートを 自動生成するシステムを作ってみた
tsukuboshi
0
11k
Other Decks in Technology
See All in Technology
ランサムウエア対策してますか?やられた時の対策は本当にできてますか?AWSでのリスク分析と対応フローの泥臭いお話。
hootaki
0
130
スクリプトの先へ!AIエージェントと組み合わせる モバイルE2Eテスト
error96num
0
180
[JAWSDAYS2026]Who is responsible for IAM
mizukibbb
0
660
OCI Security サービス 概要
oracle4engineer
PRO
2
13k
プラットフォームエンジニアリングはAI時代の開発者をどう救うのか
jacopen
5
2.2k
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
680
チームのモメンタムに投資せよ! 不確実性と共存しながら勢いを生み出す3つの実践
kakehashi
PRO
1
100
情シスのための生成AI実践ガイド2026 / Generative AI Practical Guide for Business Technology 2026
glidenote
0
250
OSC仙台プレ勉強会 AlmaLinuxとは
koedoyoshida
0
170
わからなくて良いなら、わからなきゃだめなの?
kotaoue
1
360
親子 or ペアで Mashup for the Future! しゃべって楽しむ 初手AI駆動でものづくり体験
hiroramos4
PRO
0
120
内製AIチャットボットで学んだDatadog LLM Observability活用術
mkdev10
0
110
Featured
See All Featured
Making Projects Easy
brettharned
120
6.6k
The SEO identity crisis: Don't let AI make you average
varn
0
410
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
160
Claude Code のすすめ
schroneko
67
220k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
830
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
Visualization
eitanlees
150
17k
Being A Developer After 40
akosma
91
590k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
BBQ
matthewcrist
89
10k
Design in an AI World
tapps
0
170
Transcript
CDKで始めるTypeScript開発のススメ 2026/2/1 JAWS-茨城⽀部 x CDK⽀部コラボ回
2 ⾃⼰紹介 • 部署 ◦ クラウド事業本部 • ニックネーム ◦ つくぼし
• 最近推しているようでいないAWSサービス ◦ AWS App Runner • SNS/ブログ ◦ X(@tsukuboshi0755) ◦ DevelopersIO(つくぼし) 職種歴: 1. インフラエンジニア:3年 2. クラウドエンジニア:3.5年 3. 開発エンジニア:2年
CDKからTypeScriptを学んだ元インフラエンジニアの⾃分が、 開発業務にも取り組む中で気づいたポイントを紹介したい 3
対象者 4 • CDKでのみTypeScriptを書いた事がある⽅ • CDKは書いているけど、開発は未経験という⽅ • TypeScriptで開発もやってみたいと思っているCDKユーザ
普段からアプリ開発している⽅にとっては、 それ基本的な事では?と思われるかもしれません。 何卒シバくのだけはお許し下さい🙏 5
TypeScriptという⾔語のすごさ
JavaScriptやTypeScriptという⾔語が 何者か知ってますか? 7
JavaScriptとは何者か • 1995年に作られた、様々なWebブラウザでインタラクティブなWebページを動的に作 成するための⾔語 ◦ 当時から現在に⾄るまで、WebサイトやアプリのUI(≒フロントエンド)は原則 HTML‧CSS‧JavaScriptの3技術で成り⽴つ(※WebAssemblyという例外はある) • 元々はクライアンドサイドのみ対応していたが、2009年にNode.jsの登場によりサーバ サイドのプログラムも書けるようになった
◦ いわゆるPython/Ruby/PHP等のバックエンドを⽤いてプログラムを書く場合と同 等の要件を実現できる 8
TypeScriptとは何者か • Microsoftにより2012年に作成された、JavaScriptの上位互換⾔語 • 主にTypeScriptコードをコンパイル(=変換)してJavaScriptコードを⽣成し、そのコー ドがフロントエンドやバックエンドで実⾏される • 基本的な⽂法はJavaScriptに沿いつつ、変数や関数の引数に対して静的型付けを強制 する事でバグを事前に発⾒しやすくなる特徴を持つ 9
JavaScriptの書き方 const add= (a, b) => a + b; add("5", 3); // 正しくは”8”だが、エラーにならず"53"と表示される(実行時までバグに気づかない) TypeScriptの書き方 const add = (a: number, b: number): number => a + b; add("5", 3); // コンパイル時に文字列が入っているためエラーとなる!(事前にバグを発見できる)
TypeScriptとは フロントエンドとバックエンドの両⽅で動き かつ型によりバグを発⽣させにくくさせた⾔語 10
TypeScriptの⻑所 • フロントエンドとバックエンド、さらにインフラの⾔語を全て統⼀できる ◦ 同じ⾔語や型定義を使い回せるため、チーム内での認識のズレが減りやすい • 世界最⼤級のJavaScriptパッケージ管理システム(npm)をそのまま活⽤できる ◦ 世界中の開発者が様々なライブラリを作成しているため、⼤抵のやりたい事は npmのライブラリを取り込む事で簡単に実現できる
• 型によりエディタ補完やAI駆動開発との相性が良い ◦ 型の情報を元に、コードエディタ(VSCode等)の補完機能が賢く動きやすい ◦ 型が明⽰されているコードはAIが⽂脈を理解しやすく、コーディングエージェント (Claude Code等)によるコード⽣成の精度も上がりやすい 11
TypeScriptで対応できる開発要件及び代表フレームワーク フロントエンド React.js Next.js Vue.js etc… バックエンド Hono Express Fastify
etc… インフラ その他 12 AWS CDK Pulumi etc… Mobile:React Native GAS:clasp Desktop:Electron AI Agent:Mastra etc…
TypeScriptだけで幅広い開発要件に対応できる 13
余談 TypeScriptの⽋点 • バージョンアップデートが早い ◦ バックエンドやインフラのみに使⽤すると、アップデートタスクが 多くて⼤変かも • 実⾏速度が他の⾔語と⽐べてイマイチ ◦
最近はコンパイルツールであるtsc→tsgo移⾏等の取り組みで改善し つつある • フレームワークが乱⽴気味でどれを使えば良いか正解が難しい ◦ 特にバックエンドは定番といえるフレームワークが決まっていない 印象 14
CDKからTypeScript開発に取り組む際のポイント
CDKからTypeScriptを学ぶメリットは たくさんあります! 16
インフラ領域からアプリ開発に参⼊しやすい 17 • インフラエンジニアがIaCでCDKを利⽤する場合、⼤抵の場合利⽤例の⼤多数を占める TypeScriptを採⽤する事になる • アプリ開発に取り組む際、TypeScriptの対応領域が幅広いため同じ⾔語で統⼀しやす く、結果TypeScriptの知識をそのまま活かせる • さらにAWSサービスのAmplifyやLambdaと組み合わせれば、さらにCDKプロジェクト
の中でTypeScriptアプリケーションを完結できて相性が良い ◦ CDK + Lambda(Node.js)でバックエンドアプリケーションを作ったり ◦ CDK + Amplify(React.js)でフロントエンドアプリケーションを作ったり
TypeScriptを通してプログラミングの基本的な習慣を学べる 18 • 変数の型を考える習慣 ◦ 型定義を知る事で、「この変数にはどのような値が⼊るのか?」を意識できるよう になる • 変数スコープを絞る習慣 ◦
constとletの違いを知る事で、「この変数はどこまで使えるようにするべきか?」 を意識できるようになる • バグを先に潰す習慣 ◦ コードを動かす前にコンパイルエラーを表⽰できるので、まずバグを直してから動 かす事を意識できるようになる • エディタ補完を活⽤する習慣 ◦ タイプミスや⼿⼊⼒の⼿間を減らすために、候補から選んでコードを書く事を意識 できるようになる
TypeScript⾃体の需要が⾼まりつつある 19 • 幅広い開発要件に対応し、フルスタック開発を実現できる⾔語として注⽬されている ◦ フロントエンド開発では元から必須なので、UIを持つアプリケーションを作るなら 採⽤せざるをえない ◦ バックエンド開発もある程度成熟し始め、採⽤例を⾒かけるようになってきた •
最近流⾏しているAI駆動開発も、ファーストチョイスがTypeScriptとなりつつある ◦ フロントエンド+バックエンドを⼀緒に開発しようとすると、TypeScriptを⽤いて 開発⾔語を統⼀するのが⾮常に便利 ◦ 世の中にはTypeScriptのOSSが⼤量に公開されているため、AIの学習教材も豊富で 精度を向上させやすい
今ならAI駆動開発もあるし、 CDKでTypeScriptさえ学べば アプリ開発も余裕 …? 20
全然そんなことはない 21
CDKを経験した後に学ぶべき開発の主な知識 22 • ⼀般的なプログラミング作法 ◦ アルゴリズム/DRYの原則/関⼼の分離/エラーハンドリング⽅法/変数の命名規則/コ メントの書き⽅/etc… • アプリケーション側のセキュリティ ◦
⼊⼒値の検証/認証‧認可の実装/SQLインジェクション対策/機密情報の管理/etc… • ソフトウェアアーキテクチャ ◦ フロントエンドではコンポーネント設計、バックエンドはDDDとクリーンアーキテ クチャが要になりやすい • テスト戦略 ◦ インフラはテスト仕様書による⼿動確認が多いが、アプリではテストコードによる ⾃動チェック(CI)が主となり⽂化⾃体が⼤きく違うので注意
アプリを作るだけならAI駆動開発で何とかなるかもしれないが、 そのアプリを問題起こさず運⽤するには開発知識が必要 23
まとめ
最後に 25 • TypeScriptは様々な開発要件に対応できかつバグを発⽣ させにくくさせたすごい⾔語 • インフラエンジニアでもCDKを経験する事で⾃然と TypeScriptを学ぶ事になり、他の開発にも応⽤できる • とはいえ業務で本格的にアプリ開発する際は、ただ
TypeScriptを学ぶだけでは知識が不⾜しがちなので注意
TypeScript開発は作れるモノの幅が広くて超絶⾯⽩いです!!! 26
None