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
Amplify Boostup #2 monorepo 運用による複数プロジェクト開発
Search
cohe aoki
March 20, 2023
Programming
730
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amplify Boostup #2 monorepo 運用による複数プロジェクト開発
cohe aoki
March 20, 2023
More Decks by cohe aoki
See All by cohe aoki
BMG が生成したピッチ資料のデモ
coa00
0
490
Amplify Boostup #2 Multi project using monorepo
coa00
0
74
LLMを使ったチームのプロダクト開発の生産性を向上させる取り組み
coa00
0
47
サーバレス技術を活用したエンジョイ スピード開発
coa00
1
380
【Amplify Japan UG x Startup】Amplify チームによる プロダクト開発
coa00
0
710
Expo と Amplifyを使って Webとアプリを同時開発
coa00
0
1.4k
Expo & Amplifyを使ってWebとアプリを同時開発した話
coa00
2
1k
Other Decks in Programming
See All in Programming
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
140
初めてのKubernetes 本番運用でハマった話
oku053
0
130
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
220
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
330
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
180
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
190
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
500
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
190
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
140
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
350
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
850
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Accessibility Awareness
sabderemane
1
160
Product Roadmaps are Hard
iamctodd
55
12k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
530
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Transcript
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Amplify Boostup #2 monorepo 運用による複数プロジェクト開発 株式会社 PURPOM MEDIA LAB (ピュアポムメディアラボ) 青木光平
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
自己紹介 青木光平 (フロントエンドプログラマー、開発ディ レクター、UIUXデザイナー) 趣味 音楽、スプラトゥーン、メディアアート Amplifyいにしえ歴 3年 所属 Purpom Media Lab CEO Active Core CTO
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
目次 1. 自己紹介 2. 事例紹介 3. Ampfliy monorepo 4. nest.js による lambda の開発 5. 最後に
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
プロダクト開発は冒険。発注するお客さんに楽しんでもらいたい。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
最小からはじめてサービスを大きくしたい MVP(最小限のプロダクト)を早期に 実際にユーザが触れることができる状 態を継続的に構築します。 お客様が実際にユーザー目線で触れ、 フィードバックをすることで、大きな ずれを防ぎます。 またリリース後もフィードバックを通 してアップデートすることで市場の指 示が得られるサービスを構築すること ができます。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
デザインシステム デザイン、フロント構築も早くするた めにReact、Figmaのデザインシステ ムを日々育てています。 Amplify UIを使うとこのあたりも完全 に自動化できます。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
どんなもの作っているの?(事例
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
介護IoT iOS アプリ(2023年リリース予定
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
スタートアップのプロダクト
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Ampfliy monorepo
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
ユースケース)リソースを共有しつつ複数のフロントアプ リケーションに分けたい Front Web CMS Admin AppSync Congito S3 library
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
1. ディレクトリを作る apps/ backend amplify nextApp1 src nextApp2 https://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/monorepo-configuration.html - apps ディレクトリ配下にbackend 飲み のディレクトリ、フロントエンドディレ クトリをそれぞれ作成 - backend は amplify init を行いバックエ ンド生成を実施。 - nextApp1, nextApp2 はnpx create-next-appを実行して生成しま す。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
2. ビルドの設定 フロント - next.js の ホスティングの みを記述します。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
3. ビルドの設定 バックエンド - バックエンドのみを生成し ます。 - フロントは特に何も行いま せん。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
4. Graphql のコードの生成場所の調整 その1 - Amplifyが生成するGraphQL のコー ドをそれぞれに出力する - backend 配下に.graphqlconfig.yml を作成し、生成する場所を指定する ことが可能です。 - こちらは複数記述可能です。 - backend の中で amplify codegen を行うと指定したディレクトリに graqphql ディレクトリを作成する ことが可能です。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
4. Graphql のコードの生成場所の調整 その2 1. フロントエンドで aws appsync get-introspection-schema --api-id {API ID} --format JSON schema.json 2. .graphqlconfig.yml を作成、 schemePathは、1でダウン ロードしたファイルを指定 3. amplify code gen で生成
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
6. 接続情報共有 - 通常だけど複雑 - aws-exports.js 経由で取得します。そのためにはフロント エンドに amplify pull を行う必要があります。 - 完全に分離 - フロント側でシンプルにするために環境は固定で切り替え る - 例 dotenv など
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
6. コードの共有 - npm, yarn の packages を使う - typesciptなら tsconfig の path を使う。 - next-transpile-modules(next.js) 限定を使う
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
6.1 packages workspace を使う - root の package に packages を作って、nodemodules も monorepo 管理することもできます。 - 注意点 yarn classic では動作しますが、yarn berry 以降での動 作が不安定です。他にもこのケースは動かないなどがあるよう です。 - 反省)はまりどころが多いので、個人的には設定しなくても良 いのではと思います。
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
6.2 tsconfig
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
nest.js による lambda の開発
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
ユースケース)アプリケーションの開発が進んだことによる functions 数の増加した - アプリケーションの開発が増えると function 数が増加します。 - 同じようなコードが増える。ライブラリの共通化 - デバッグの高速化が課題。 解決策が二つ - lambda Layer - monorepo
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Nest.jsの特徴 - Webpack, node.js でビルドが 可能 - monorepo ベースの開発に対 応 - library の構築も可能 - TypeScript で対応可能
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Demo
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
最後に ピュアポムメディアラボではAmplifyを使ったMVP開発の研究を行っています。 さらに高速開発をどうすればいいのか、工夫しながらやっています。 一緒に研究してくれる仲間募集中です。
[email protected]
Twitter: coa00
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
MVP 技術を 様々な案件を行いながら、PDCA回しながら改善してい ます
Copyright © 2022 Purpom Media Lab Inc. All Rights Reserved.
Thank You