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
Angular中〜大規模アプリ設計
Search
OKUNOKENTARO
October 10, 2017
Technology
5
1.8k
Angular中〜大規模アプリ設計
2017/10/10 ng-japan meetup 2017 Autumnで発表した資料です。
OKUNOKENTARO
October 10, 2017
Tweet
Share
More Decks by OKUNOKENTARO
See All by OKUNOKENTARO
トレタO/X アーキテクチャ移行記 Next.js App Router化への道のり / TORETA TECH UPDATE 1
okunokentaro
5
11k
Podcastを継続する技術 / refactoradio-240119
okunokentaro
1
170
Webアプリケーション設計の第一歩は ディレクトリの整理から / Encraft 1
okunokentaro
34
10k
JSONとJSON Schemaを改めて理解する / tokyo_study
okunokentaro
9
2.3k
それでもどうしてRecoilを使うのか / Harajuku.ts Meetup Recoil
okunokentaro
19
5.5k
TypeScriptは10年でこんなに進化しました / TechFeed Experts Night 11
okunokentaro
6
1.7k
Hasura.io RDBをサクサク作る方法はARやO/RMだけじゃなくなりました/hasura-io
okunokentaro
5
640
コードには型アノテーションよりも要件アノテーションを増やせ!/harajukuts2
okunokentaro
14
6.3k
10年と3ヶ月でWebサービスを作った話 / Piyogrammer Conference 2021
okunokentaro
2
1k
Other Decks in Technology
See All in Technology
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
260
Pwned Labsのすゝめ
ken5scal
0
190
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
390
実は強い 非ViTな画像認識モデル
tattaka
1
1k
AIエージェント入門
minorun365
PRO
7
2.8k
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
設計を積み重ねてシステムを刷新する
sansantech
PRO
0
130
偏光画像処理ライブラリを作った話
elerac
1
150
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
6
1.2k
プロダクトエンジニア 360°フィードバックを実施した話
hacomono
PRO
0
130
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
27
14k
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
530
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
How STYLIGHT went responsive
nonsquared
98
5.4k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Thoughts on Productivity
jonyablonski
69
4.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
500
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Transcript
"OHVMBSதʙେنΞϓϦઃܭ 0DU OHKBQBONFFUVQ"VUVNO !PLVOPLFOUBSP
"CPVUNF w Ԟݡଠ!PLVOPLFOUBSP w גࣜձࣾϐΫηϧάϦ ο υ w $PEF(SJE࿈ࡌத 3Y+4
5ZQF4DSJQU w OHLZPUP OHKBQBO 8FC"VEJPUPLZP
ࢲͱ"OHVMBS w "OHVMBS+4 w w "OHVMBS w ʢBMQIB͔࣌Β͑ͯʣ
w "OHVMBSWYར༻த
ࠓճ͢͜ͱ
ࠓճ͢͜ͱ w "OHVMBSϑϧελοΫ w ࣮ࡍɺ ͳΜͰ࡞ΕΔ w ͋͞࡞ΕͱݴΘΕΔͱɺ w
νϡʔ τ ϦΞϧͷ࣍ʹͲ͏͢Ε͍͍͔͕͍͠ w தʙେنΞϓϦ։ൃͰʹͳΔͱ͜ΖΛɺ ࣮ମݧΛݩʹղઆ
ఆٛ ʢ͋͘ ·Ͱɺ ࠓճʹ͓͍ͯʣ w খن w ΞϓϦण໋ ɿ Ҏ
w தن w ΞϓϦण໋ ɿ Ҏ্ w τʔλϧສߦҎ ʢIUNMɺ DTTআ͘ɺ ۭߦؚΉʣ w େن w ͦΕҎ্
࣮େ͕தن wʮͲ͏ͤখ͍͞ΞϓϦ͔ͩΒʯ ͱԿߟ͑ͳ͍ͱ w ҙ֎ͱ͘͏ ͜ͱʹʜ w தنʹ֘͢ΔͷͰ͋ͱ͋ͱࠔΔ w খنΞϓϦ
ͱ w ͍ࣺͯͷπʔϧͳͲʹ͔֘͠͠ͳ͍
தنΞϓϦ
தنͩͱԿʹࠔΔ͔ w ίʔ υʹॏෳ͕ੜ·ΕΔ w Ͳ͜ʹڞ௨Խ͠Α ͏ w ΞϓϦશମͰཧ͢Δ͕ग़ͯ͘ Δ
w Ͳ͜ʹஔ͜͏ w ࢹςε τ͚ͩͰݶքʹ w ࣗಈςε τΛߟ͑͡ΊΔ w Կߟ࣮͔͑ͣΓਐΊΔͱςε τ͕ॻ͖ʹ͍͘ίʔ υʹʜ
"OHVMBSͷఏڙൣғ 7JFX $PNQPOFOU 5FNQMBUF 4UPSBHF GSPN9)3 *OEFYFE%#FUD ͜ͷลͲ͏࡞Ε͍͍ͷ
"OHVMBSͷఏڙൣғ 7JFX $PNQPOFOU 5FNQMBUF 4UPSBHF GSPN9)3 *OEFYFE%#FUD ͜ͷลͲ͏࡞Ε͍͍ͷ Ͱɺ ͜͏ͳΔ
"OHVMBS։ൃઃܭͱͷઓ͍ 7JFX $PNQPOFOU 5FNQMBUF 4UPSBHF GSPN9)3 *OEFYFE%#FUD ͜͜ΛͲ͏ͬͯΩϨΠʹ࡞Δ͔
جຊʹΔ w 'MVY $234 Ұ୴ΕΑ ͏ w "OHVMBSʹৄ͘͠ͳ͍ ʁ େৎ
w ΤϯδχΞͱͯ͠جຊʹΔ w 40-*%ݪଇ ʢΦϒδΣΫ τࢦઃܭݪଇʣ w :"(/* ,*44 ʢඞཁʹͳΔ·Ͱ࣮͢Δͳɺ γϯϓϧʹ͓͚ͯ͠ʣ w %3: ʢ%POUSFQFBUZPVSTFMGʣ
4FSWJDFΛͲ͏࡞Δ͔ 7JFX $PNQPOFOU 5FNQMBUF 4UPSBHF GSPN9)3 *OEFYFE%#FUD ͜͜"OHVMBSཁૉ͕গͳ͍ Ͳ͏4FSWJDFΛఆٛ͢Δ͔ʹݒ͔͍ͬͯΔ w
4FSWJDF5ZQF4DSJQUͷDMBTT୯Ґ w DMBTTͷΓํ40-*%ݪଇʹ ै͑Α͍ w దͳେ͖͞ͷDMBTTςε τॻ͖ ͍͢ w "OHVMBSʹґଘੑೖ͋Δ w DMBTT୯ମͷςε τ͕࣮ࢪ͍͢͠
DMBTTͷΓํΘ͔ͬͨɺ ࣍ʹؾʹ͢Δ͜ͱ ʁ w Πϕϯ τඇಉظॲཧ w Ϣʔβͷೖྗɺ Ϋ Ϧ
οΫͳͲͷૢ࡞ w αʔό͔ΒͷϨεϙϯε w "OHVMBSʹݶΒ͕ͣͩɺ 8FCΞϓϦέʔγϣϯ։ൃϋϯ υ Ϧ ϯάͱͷ͖߹͍
ඇಉظͰ͋Δ͜ͱΛલఏͱ͢Δ w "OHVMBS͕3Y+4Λ࠾༻͍ͯ͠Δͷ w ͍ͭى͜Δ͔Θ͔Βͳ͍ॲཧΛ౷Ұతʹѻ͏ͨΊ w 3Y+4͕ා͍ͳΒ1SPNJTFΛ͏Ͱ͍͍ w ͨͩ͠ɺ جຊతʹͯ͢ඇಉظΛલఏʹઃܭ͢Δ͜ͱ
w ಉظॲཧɺ ΄΅օແ
େنΞϓϦ
தنͷઓ͍ํͰେنʹউͯͳ͍ w தنରࡦ w DMBTTΛ͚ͨɺ ςε τॻ͍ͨ w ॏෳίʔ υ
Ϧ ϑΝΫλ Ϧϯάͨ͠ w ͜Ε͚ͩͰେنΞϓϦʹ͢Δͱ͖ʹ಄ଧͪʹͳΓ ·͢
େنಛ༗ͷࣄ w ཁ݅ͷଟ͞ʹର͢Δೲظͷ͞ w ͜ΕΛOϲ݄Ͱ࡞Δͷʜ ʁ w ͡Ό͋ҰਓͰ։ൃ͢Δͷ͍͠ w
ˠେن΄ͲνʔϜମ੍ʹͳΔ
େنͱͷઓ͍νʔϜϚωδϝϯ τͱͷઓ͍ w νʔϜ։ൃͰ࣍ͷ͕ى͜Δ w ΤϯδχΞಉ࢜ͷϨϕϧࠩɺ هड़ελΠϧࠩɺ Ϛφʔҙࣝ w ૬ޓίʔ
υ ϨϏϡʔඞਢ ʢରଟμϝઈରʣ w ίʔ υελΠϧMJOUͰͳΜͱ͔ͳΔ
ίʔ υελΠϧ͡Όͳ͍ w ͲΕΛͲ͜ʹॻ͘ͷ w ͷ͍͍ਓͷΤϯδχΞ͕͍ͯɺ DMBTTͷ͚ํ͕όϥόϥͩͱɺ w ॏෳॲཧ͕ੜ·Εͨͱ͖ཧత
ɾ ػցతͳϦ ϑΝΫλ Ϧ ϯά͕ߦ͑ͳ͍ wʮԶ͕͍͍ͬͪ͜ͱࢥ͏ʯ ʮ͍͍Զʜʯ w ຖճͦͷٞΓ ·͔͢ ʁ
٬؍తͳֶͱઃܭख๏ w υϝΠϯۦಈઃܭ%PNBJOESJWFOEFTJHO w ྺ࢙తʹཱ֬͞Εͨख๏ʹ͕͢Δ w ઌਓͷܙɺ ྑஶΛ࠾ΓೖΕΔ wʮ͜ͷࢦͷԼͰͲ͏͋Δ͖͔ʯ Ͱٞ
w %%%ʹৄ͘͠ͳΕͱݴΘͳ͍ w νʔϜશһ͕ೲಘͰ͖Δ٬؍తͳࢦΛઃ͚ͨ΄͏͕Α͍ɺ ͱ͍͏
ϨΠϠʔ υ ɾ ΞʔΩςΫνϟ 7JFX &YUFSOBM4UPSBHF $PNNBOE 2VFSZ "EBQUFS 3FQPTJUPSZ
3Y+43FBM8PSMEࢀরIUUQTTQFBLFSEFDLDPNBSNPSJLSYKTSFBMXPSME
͍·Ͳ͜ͷΛͯ͠Δ ʁ w ϨΠϠʔ υΞʔΩςΫνϟ w ։ൃλεΫͷݟੵΓٞʹศར w λεΫΛదͳཻʹ͍ͬͯΔલఏͰ͋Δ w
ͦͷλεΫɺ ͦͷػೳͷͲͷՕॴΛ࣮ͤͶͳΒͳ͍͔ɺ νʔϜͰࢹ֮తʹೝࣝͰ͖Δ
ϨΠϠʔ͝ͱʹ࡞ۀݟੵ Γ " ɿ ͜ͷJTTVF7JFXͷʙͷػೳ࣮ʹ͍ͭͯͰ͢ #7JFX͔Β"1*ΛݺͿ͚Ͳɺ ͔ͦ͜Βઌ ɹ$PNNBOEͷͳͷͰผJTTVF͔ $͡Ό͋7JFXͰͷΠϕϯ τϋϯ
υ Ϧ ϯάͷ࣮࡞ۀ ɹ͚ͩݟੵΕ͍͍ΜͩͶ 7JFX &YUFSOBM4UPSBHF $PNNBOE 2VFSZ "EBQUFS 3FQPTJUPSZ ˡ͍·ίίͷΛͯ͠Δ
نͷ֦େ
ඞͣ௧Έ͕ग़ͯ͘ Δ wʮͳΜͰԶ͋ͷ࣌͋͋͠ͳ͔ͬͨΜͩʜʯ wʮ͜ΜͳʕʕΈ͍ͨͳ"1*༷ॻ͕ૹΒΕ͖ͯͨͧʯ wʮ͓͍͓͍ࠓࠒͦΕΛݴ͏͔ɺ େ͖ͳͪΌͿฦͩ͠ ʂ ʂ
ʯ w ࣮͔Ͳ͏͔͓͍ͩ͘͠͞ w ͲΕ͚ͩॳظઃܭΛؤுͬͯඞͣΔ͠ɺ ཧෆਚͳํసΛٻΊΒΕΔ w Ͱɺ ରԠ͠ͳ͘ ͪΌ͍͚ͳ͍
ഊΛڪΕΔͳ w Βͳ͍Α ͏ͳίʔ υΛॻ͘ ͜ͱෆՄೳ w Δ w ͬͨͱ͖ʹɺ
Ͳ͏͢Ε؆୯ʹআڈͰ͖Δ͔Λߟ͑Δ͜ͱՄೳ w ࠓͳʹ͕͔ɺ ͦͷೝࣝ͢Δ w ෛ࠴ܭըతʹฦࡁ͢Δ w ໟͷ͍ϠΫΛ์͠ࣂ͍ʹ͠ͳ͍
ΞϓϦ։ൃͱઓ͍ଓ͚Δ͜ͱ w ͦͷͨΊͷֶ w ͦͷͨΊͷઃܭ w ͦͷͨΊͷϧʔϧ
5IBOLZPV