Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
新規機能開発からモジュール分割を始めてみる
Search
izumi
September 20, 2020
Programming
7
5.8k
新規機能開発からモジュール分割を始めてみる
izumi
September 20, 2020
Tweet
Share
More Decks by izumi
See All by izumi
サーバーと同期してリアルタイムに更新する画面を実装する
rizumi
2
4.4k
5分でわかるMint
rizumi
1
860
Introducing SourceKit-LSP
rizumi
2
2.3k
レイアウト実装方法の比較ポイント
rizumi
0
2.3k
アプリ内の絵文字をカスタム絵文字化した話
rizumi
1
280
Other Decks in Programming
See All in Programming
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.3k
Grafana:建立系統全知視角的捷徑
blueswen
0
220
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
190
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
190
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
360
GISエンジニアから見たLINKSデータ
nokonoko1203
0
180
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
450
AIコーディングエージェント(Manus)
kondai24
0
220
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
140
GoLab2025 Recap
kuro_kurorrr
0
780
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
970
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
160
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
30
WCS-LA-2024
lcolladotor
0
390
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
51
46k
Music & Morning Musume
bryan
46
7k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
35k
Site-Speed That Sticks
csswizardry
13
1k
GitHub's CSS Performance
jonrohan
1032
470k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
110
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
0
310
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
110
Six Lessons from altMBA
skipperchong
29
4.1k
Transcript
৽نػೳ։ൃ͔Β ϞδϡʔϧׂΛ࢝ΊͯΈΔ 3ZP*[VNJ J04%$+BQBO
3ZP*[VNJ OPIBOB *OD 5XJUUFS!J[N (JU)VC!SJ[VNJ
None
ࠓ͢ࣄ w ػೳ։ൃͱฒߦͯ͠ϞδϡʔϧׂΛߦͬͨ w ࣮ࡍʹײͨ͡ϝϦοτσϝϦοτମݧஊ
ϚϧνϞδϡʔϧ
࠷ۙͷΞϓϦ w ͭͷΞϓϦ͕ଟػೳԽ͍ͯ͠Δ w FYεʔύʔΞϓϦ
ϊϋφྫ֎Ͱͳ͘ w ϑΥτϒοΫΛ࡞Δ͚ͩͷػೳ͔Β w ϓϨϛΞϜϑΥτϒοΫͳͲࡐͷՃ w (PPHMFϑΥτͱͷ࿈ܞͳͲ w εʔύʔΞϓϦ΄ͲͰͳ͍͕
ػೳ͕૿͍͑ͯΔ
ػೳ͕૿͑Δͱ w ίʔυϕʔεڊେʹͳΔ w ઃܭͷෳࡶԽ w Ϗϧυ࣌ؒͷ૿Ճ w ˠ։ൃޮͷԼ
ϚϧνϞδϡʔϧ w ΞϓϦΛෳϞδϡʔϧʹׂ͢Δ͜ͱͰ w ʹΑΔӨڹൣғͷॖখ w ࠩϏϧυʹΑΔϏϧυ࣌ؒͷॖ
طଘΞϓϦʹऔΓೖΕ͍͕ͨ 997JFX$POUSPMMFS 997JFX.PEFM 99.PEFM 99"1*$MJFOU ػೳ" ::7JFX$POUSPMMFS
::7JFX.PEFM ::.PEFM ::"1*$MJFOU ػೳ# ;;7JFX$POUSPMMFS ;;7JFX.PEFM ;;.PEFM ;;"1*$MJFOU ػೳ$
طଘΞϓϦʹऔΓೖΕ͍͕ͨ 99.BOBHFSͱ͔ͷਆΫϥε 997JFX$POUSPMMFS 997JFX.PEFM 99.PEFM 99"1*$MJFOU ػೳ"
::7JFX$POUSPMMFS ::7JFX.PEFM 99.PEFM ::"1*$MJFOU ػೳ# 'BU7JFX$POUSPMMFS ػೳ$ ґଘ ґଘ ڞ௨Ϋϥε ֎෦Ϧιʔε ґଘ ґଘ 4IBSFE*OTUBODF
طଘΞϓϦʹऔΓೖΕ͍͕ͨ 99.BOBHFSͱ͔ͷਆΫϥε 997JFX$POUSPMMFS 997JFX.PEFM 99.PEFM 99"1*$MJFOU ػೳ"
::7JFX$POUSPMMFS ::7JFX.PEFM 99.PEFM ::"1*$MJFOU ػೳ# 'BU7JFX$POUSPMMFS ػೳ$ ґଘ ґଘ ڞ௨Ϋϥε ֎෦Ϧιʔε ґଘ ґଘ 4IBSFE*OTUBODF Ͳ͔͜ΒΓग़͍͍͔ͯ͠ ͔Βͳ͍
طଘΞϓϦʹऔΓೖΕ͍͕ͨ 99.BOBHFSͱ͔ͷਆΫϥε 997JFX$POUSPMMFS 997JFX.PEFM 99.PEFM 99"1*$MJFOU ػೳ"
::7JFX$POUSPMMFS ::7JFX.PEFM 99.PEFM ::"1*$MJFOU ػೳ# 'BU7JFX$POUSPMMFS ػೳ$ ґଘ ґଘ ڞ௨Ϋϥε ֎෦Ϧιʔε ґଘ ґଘ 4IBSFE*OTUBODF େنϦϑΝΫλ͕ඞཁͦ͏ ৽نػೳ։ൃࢭΊΒΕͳ͍
৽نػೳ͔ΒϞδϡʔϧׂ
৽نػೳ͔ΒϞδϡʔϧׂ w ৽͍͠ࢪࡦͷػೳΛϞδϡʔϧʹׂ͢Δ લఏͰઃܭ͢Δ w ྫ (PPHMFϑΥτͷ࿈ܞ
खॱ w ཁ݅ ༷ͷཧ w ΛܾΊΔ w JOQVUPVUQVUΛఆٛ w GSBNFXPSLͷ࡞
w ։ൃ
खॱཁ݅ ༷ͷཧ w ཁ݅ ྫ w (PPHMFΞΧϯτͱ࿈ܞ͕Ͱ͖Δ w ࣸਅ͕ҰཡͰ͖Δ
w ࣸਅΛબͯ͠ΞϓϦͰར༻Ͱ͖Δ
Ϟδϡʔϧׂ͍༷͢͠ w ಠཱͨ͠৽نը໘ w طଘͷυϝΠϯ༷ͷґଘ͕গͳ͍ w ϊϋφͰطଘͷ*NBHF1JDLFSաڈʹϥΠϒϥϦͱͯ͠Γग़͠ ͍ͯͨ w IUUQTHJUIVCDPNOPIBOB/PIBOB*NBHF1JDLFS
w ٯʹطଘը໘υϝΠϯͷґଘ͕ߴׂ͍༷ͮ͠Β͍
खॱΛܾΊΔ w (PPHMFΞΧϯτϩάΠϯ w (PPHMFΞΧϯτϩάΞτ w (PPHMFϑΥτͷࣸਅऔಘ w ࣸਅબ
ϑϨʔϜϫʔΫଆͷϧʔϧ w 4XJGU w ݹ͍࣮࣋ͪࠐ·ͳ͍
ϑϨʔϜϫʔΫଆͷϧʔϧ w Ͳ͏ͯ͠ݹ͍࣮Λ͍͍ͨ߹ 1SPUPDPM͚ͩఆ࣮ٛͯ͠"QQଆ͔Βೖ͢Δ
खॱJOQVUPVUQVUΛఆٛ w "QQͱϞδϡʔϧؒͰͷJOQVUPVUQVUΛఆٛ͢Δ
खॱJOQVUPVUQVUΛఆٛ w "QQͱϞδϡʔϧؒͰͷJOQVUPVUQVUΛఆٛ͢Δ "1*5PLFO બͨࣸ͠ਅͷϦετ
खॱGSBNFXPSLͷ࡞
खॱ։ൃ w جຊతʹීஈͷ։ൃͱมΘΒͳ͍ w ΞϓϦଆʹެ։͢Δͷ໌ࣔతʹQVCMJDPQFOʹ͢Δ w αʔυύʔςΟͷϥΠϒϥϦΛ͏߹͚ͩগ͠ҙ͕ඞཁ
5JQTϑϨʔϜϫʔΫଆͰϥΠϒϥϦΛ͏ w $PDPB1PET w $BSUIBHF w 4XJGU1BDLBHF.BOBHFS
$PDPB1PET w ϝΠϯλʔήοτʹ ϥΠϒϥϦΛؚΊΔ
$BSUIBHF w ϝΠϯλʔήοτʹ ϦϯΫ͢Δ ϝΠϯλʔήοτ ϑϨʔϜϫʔΫ
$BSUIBHF w DPQZGSBNFXPSLTϝΠϯλʔήοτ͚ͩͰߦ͏
4XJGU1BDLBHF.BOBHFS w Ϟδϡʔϧଆ͚ͩʹೖΕΕ0,ͬΆ͍ w ˞ΞʔΧΠϒ·Ͱ֬ೝ͠·͕ͨ͠ετΞϦϦʔεະ֬ೝͰ͢
4XJGU1BDLBHF.BOBHFS w ෳϞδϡʔϧͰѻ͍͍ͨ߹ w %ZOBNJD-JCSBSZෳʹϦϯΫՄೳ w 4UBUJD-JCSBSZෳϞδϡʔϧʹೖΕΑ͏ͱ͢ΔͱΤϥʔʹͳΔ w ෳϞδϡʔϧͰѻ͍͍ͨ߹ڞ௨Ϟδϡʔϧʹಋೖ͠ɺ ͦͷϞδϡʔϧΛհͯ͠͏ͳͲ͢Δͱྑͦ͞͏
खॱ։ൃ w جຊతʹීஈͷ։ൃͱมΘΒͳ͍ w ΞϓϦଆʹެ։͢Δͷ໌ࣔతʹQVCMJDPQFOʹ͢Δ w αʔυύʔςΟͷϥΠϒϥϦΛ͏߹͚ͩগ͠ҙ͕ඞཁ
ϦϦʔε
ϝϦοτ
ڞ௨Խ͖͢෦͕ݟ͑ͯ͘Δ w ࣮ࡍʹϞδϡʔϧଆͷ։ൃΛ͍ͯͯ͠ w ΞϓϦଆͷ&YUFOTJPOΛ͍͍ͨέʔεͳͲ͕͋ͬͨ Ϟδϡʔϧͷ૬ޓࢀরͰ͖ͳ͍ͷͰͦͷ··Ͱ͑ͳ͍ &YUFOTJPOͳͲ ͍͍ͨ
ڞ௨Խ͖͢෦͕ݟ͑ͯ͘Δ w ڞ௨ϞδϡʔϧͳͲ ࠓޙͷϞδϡʔϧ͚ͷ ώϯτ͕ಘΒΕΔ &YUFOTJPOͳͲ ڞ௨Ϟδϡʔϧ
طଘίʔυʹनΘΕͳ͘ͳΔ w طଘͷԚ͍෦ͳͲΛൃݟ͢ΔͱϞνϕʔγϣϯԼ ˠ৽ن։ൃͯ͠ΔͷʹӬԕʹϦϑΝΫλΛ࢝Ίͯ͠·ͬͨΓ w ৽نϞδϡʔϧΛΔ͜ͱͰطଘͷߏίʔυΛࢀর͢Δػձ͕ ݮΓɺ্هͷΑ͏ͳΈ͕গ͠ղফ͞Εͨ
Өڹൣғͷॖখ w جຊతʹϞδϡʔϧ෦Ͱ݁Ͱ͖Δ w ӨڹൣғݶΒΕΔͷͰ։ൃޮϦϦʔε࣌ͷ҆৺Ξοϓ w 2"Ϣʔβʔ͍߹ΘͤௐࠪͳͲϞδϡʔϧͰ݁
ϝϦοτ w ڞ௨Խ͖͢෦͕ݟ͑ͯ͘Δ w طଘίʔυʹनΘΕͳ͘ͳΔ w Өڹൣғͷॖখ
σϝϦοτ
ϓϩδΣΫτϑΝΠϧͷίϯϑϦΫτ w λʔήοτͷՃͰൃੜͨ͠ίϯϑϦΫτͷղফࠔ w Ұ෦$BQBCJMJUZͷઃఆΛਧ͖ඈ͠·ͨ͠
9DPEF(FO w IUUQTHJUIVCDPNZPOBTLPMC9DPEF(FO w σΟϨΫτϦߏͱ:".-ϑΝΠϧ͔Β ϓϩδΣΫτϑΝΠϧΛ࡞ΕΔπʔϧ w ϓϩδΣΫτϑΝΠϧͷ(JUཧ͔Βղ์͞ΕΔ w ઌʹಋೖ͖ͩͬͨ͢
Ϟδϡʔϧׂͷ୯Ґ͕ػೳ୯ҐʹͳΔ BQQ ػೳ" ػೳ# ػೳ$ ڞ௨Ϟδϡʔϧ BQQ 1SFTFOUBUJPO %PNBJO *OGSBTUSVDUVSF
ػೳ୯Ґ ϨΠϠʔ୯Ґ
Ϟδϡʔϧׂͷ୯Ґ͕ػೳ୯ҐʹͳΔ BQQ ػೳ" ػೳ# ػೳ$ ڞ௨Ϟδϡʔϧ BQQ 1SFTFOUBUJPO %PNBJO *OGSBTUSVDUVSF
ͬͪ͜ͷ͚ํʹ͢Δͷ͕͘͠ͳΔ
σϝϦοτ w ϓϩδΣΫτϑΝΠϧͷίϯϑϦΫτ w Ϟδϡʔϧׂͷ୯Ґ͕ػೳ୯Ґʹͳͬͯ͠·͏ w ந্͕͕ΔͷͰ࣮͕Ͳ͜ʹ͋Δ͔͔Γʹ͘͘ͳΔՄೳੑ
ࠓޙͷల w 9DPEF(FOͷಋೖ w طଘػೳͷϞδϡʔϧׂ w 0CKFDUJWF$ͳͲݹ͍ίʔυͷӅṭ w ࠓޙͷ৽ػೳͷϞδϡʔϧׂ w
EZOBNJDGSBNFXPSL͕૿͑ͨ߹ͷରࡦ w ͳͲͳͲ
·ͱΊ w ৽نػೳ͔ΒϞδϡʔϧΛ͚Δͱ͍͏ࣄΛͬͯΈͯ w ڞ௨Խ͖͢෦ͳͲࠓޙͷϞδϡʔϧׂͷώϯτ͕ಘΒΕͨ w ػೳ͕૿͑ͯӨڹൣғΛ͢Δ͜ͱ͕Ͱ͖ͨ
·ͱΊ w ϞδϡʔϧΛׂ͢Δ͜ͱࣗମͦ͜·Ͱେม͡Όͳ͍ w ໖ີͳܭըେ͕ͩखΛಈ͔ͯ͠ΈΔ͜ͱେ w ಠཱͨ͠৽ػೳΛ࡞ΔࡍϞδϡʔϧׂΛ࢝ΊΔνϟϯε w ίʔυن͕૿͑ͯ։ൃޮΛམͱ͞ͳ͍Α͏Λ͠Α͏ʂ
5IBOL:PV