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
Webサービス開発の変遷と現在
Search
Naoya Ito
July 12, 2014
Technology
129
22k
Webサービス開発の変遷と現在
Naoya Ito
July 12, 2014
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
5.8k
Functional TypeScript
naoya
15
6.3k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
72
35k
シェルの履歴とイクンリメンタル検索を使う
naoya
8
3.2k
20230227-engineer-type-talk.pdf
naoya
89
76k
関数型プログラミングと型システムのメンタルモデル
naoya
62
100k
TypeScript による GraphQL バックエンド開発
naoya
28
35k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
60k
Other Decks in Technology
See All in Technology
ファインディにおける Dataform ブランチ戦略
hiracky16
0
250
風が吹けばWHOISが使えなくなる~なぜWHOIS・RDAPはサーバー証明書のメール認証に使えなくなったのか~
orangemorishita
15
4.9k
完璧を目指さない小さく始める信頼性向上
kakehashi
PRO
0
130
隙間時間で爆速開発! Claude Code × Vibe Coding で作るマニュアル自動生成サービス
akitomonam
3
240
恐怖!テストコードなき夜
tsukuboshi
2
110
マルチモーダル基盤モデルに基づく動画と音の解析技術
lycorptech_jp
PRO
4
410
生成AIによる情報システムへのインパクト
taka_aki
1
230
2025-07-25 NOT A HOTEL TECH TALK ━ スマートホーム開発の最前線 ━ SOFTWARE
wakinchan
0
200
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
1
220
東京海上日動におけるセキュアな開発プロセスの取り組み
miyabit
0
220
From Live Coding to Vibe Coding with Firebase Studio
firebasethailand
1
390
Gemini in Android Studio - Google I/O Bangkok '25
akexorcist
0
150
Featured
See All Featured
For a Future-Friendly Web
brad_frost
179
9.8k
Balancing Empowerment & Direction
lara
1
520
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Being A Developer After 40
akosma
90
590k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Building Adaptive Systems
keathley
43
2.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
530
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Transcript
8FCαʔϏε։ൃτϨϯυͷ มભͱݱࡏ /BPZB*UP ,"*;&/QMBUGPSN*OD )BDLFST$IBNQMPP
None
None
None
None
None
None
ԭೄͷΈͳ͞Μ͜Μʹͪ
ΞδΣϯμ • ͘Β͍ͷ8FC։ൃΛৼΓฦΔ • ࡢࠓͷ8FCαʔϏε։ൃϓϩηε • ߟ
͜ͷͷ8FC։ൃͷมભ
ΤϙοΫϝΠΩϯάͩͬͨࣄ • +&& • ΞδϟΠϧ։ൃ • 044 • -".1 •
3BJMT"KBY • εϚʔτϑΥϯ • Ϋϥυ • Ϗοάσʔλ • (JU)VC ࠒ த൫ Ҏ߱
ͬ͘͟Γ͚Δͱ • લޙ – +&&ɺΞδϟΠϧ։ൃ • த൫ – 044ɺ-".1ɺ3BJMT"KBY
• Ҏ߱ – εϚʔτϑΥϯ – ΫϥυɺϏοάσʔλ – (JU)VC
ࣗͷλΠϜϥΠϯͱॏͶΔ • લޙ – +&&ɺΞδϟΠϧ։ൃ • த൫ – 044ɺ-".1ɺ3BJMT"KBY
• Ҏ߱ – εϚʔτϑΥϯ – ΫϥυɺϏοάσʔλ – (JU)VC χϑςΟ ʙ ͯͳ ʙ (3&& ʙ ,"*;&/QMBUGPSN*OD ʙ
લޙ • +&&ɺΞδϟΠϧ։ൃ – 4USVUTɺ91 • ʮ8FCΞϓϦέʔγϣϯʯͱ͍͏֓೦͕ఆண͠ ͨ • ΤϯλʔϓϥΠζͰੜ·Εͨ։ൃख๏ɾιϑτ
ΣΞ͕ίϯγϡʔϚ։ൃʹ – 4PMBSJTɺ0SBDMFɺ+BWBɺ/FUTDBQF&OUFSQSJTF 4FSWFS ࣮ࡍʹۀͰͬͯ·ͨ͠
࣌ͷงғؾ • ݸਓ͕దʹॻ͍ͨεΫϦϓτͰμϝ • Ұํɺ+&&ΤϯλʔϓϥΠζख๏ɺͬ ͯΈΔͱ8FCʹॏ͍ • ঃʑʹεΫϦϓτݴޠ 1FSM 1)1
Ͱͷ8FC ։ൃɺΞδϟΠϧ։ൃ͕Γ্͕Γ࢝ΊΔ ʮ1FSM+BWBΑΓ͍͔ Βμϝʯͱ՝ʹݴΘΕ ͨͷࠓͰΑ͍ࢥ͍ग़ Ͱ͢
(PPHMFͷ಄ ςΫϊϩδʔ͕ۀքΛݗ Ҿ͢Δɺͱ͍͏ைྲྀ
த൫ • 044ɺ-".1 – εΫϦϓτݴޠͰ։ൃ͢ΔࣄʹҟΛএ͑Δਓ ͍ͳ͘ͳͬͨ – -JOVYɺ.Z42-ͳͲ͕࣮༻తͳ࣭ʹ • Χʔωϧ.Z42-ͷϨϓϦέʔγϣϯػ ೳ
࣌ͷงғؾ • 8FCΞϓϦέʔγϣϯɺͬͱΧδϡΞϧʹ࡞ΕΔ ͣ – -".1044ʹ͔ͬΓɺݸਓখ͞ͳूஂ͕8FCαʔϏ εΛੜΈग़࣌͢ʹ – ˠ8FC –
։ൃϓϩηεɺͦΕʹ߹ΘͤͯϥΠτΣΠτʹ ͯͳɺͱ͍͏ͷ·͞ ʹͦΕΛମݱͨ͠Α͏ͳ ूஂͰͨ͠
None
8FC • (PPHMFͷϋοΧʔΧϧνϟʔ • 044-".1ʹΑͬͯɺΤϯύϫʔϝϯτ͞Εͨݸਓ খ͞ͳूஂ • ͦ͏͍͏த͔Βग़͖ͯͨ৽͍͠8FCاۀ
3BJMTͱ"KBY • ͦͷޙͷ8FCΞϓϦέʔγϣϯ։ൃͷ ํੑΛܾఆ͚ͮͨͭͷτϨϯυ – 8FCจࣈ௨ΓʮΞϓϦέʔγϣϯʯʹͳ Δ – ෳࡶͳ͜ͱΛ؆୯ʹˠ8FCΞϓϦέʔγϣ ϯ͕ߴԽ͍ͯ͘͠ͱ͍͏લஹ
h"p://www.slideshare.net/yohei/webapi-‐36871915
Ҏ߱ • ΫϥυɺϏοάσʔλɺ(JU)VC – *5ͷத৺ͱͳͬͨ8FC • 5IFDPOTVNFSJ[BUJPOPG*5ᴷίϯγϡʔϚ͔ΒΤϯ λʔϓϥΠζɻߏͷٯస – Ϋϥυ
*BB41BB4 ŋŋŋෳࡶԽ͍ͯ͘͠8FCΞ ϓϦέʔγϣϯ։ൃͷ෦ΛʮαʔϏεʯʹ – খ͞ͳूஂͰߴͳΞϓϦέʔγϣϯɻେ͖ͳूஂ ΑΓෳࡶͭߴͳγεςϜ ଓ͚ͯɺ͜ͷลΛΈ ͍͖ͯ·͢
None
None
(JU)VCͱΫϥυͷ࣌ ΠϚίί
,"*;&/QMBUGPSN*OD "#ςετΫϥυαʔϏεQMBO#$%Λ։ൃ͢Δ໊ఔͷελʔτΞοϓ
None
8FC։ൃͷӈཌྷɾࠨཌྷ • ϥΠτΟϯά – ܧଓతΠϯςάϨʔγϣϯɺܧଓతσϦό ϦʔɺςετࣗಈԽFUD • ϨϑτΟϯά – εΫϥϜɺேձɺࣗݾ৫ԽFUD cf.
h"p://blogs.itmedia.co.jp/hiranabe/2012/09/rightwing-‐and-‐leDwing-‐of-‐agile.html
։ൃϓϩηε • ϥΠτΟϯά ٕज़తϓϥΫςΟε – (JU)VCɺίʔυϨϏϡʔ – ܧଓతΠϯςάϨʔγϣϯσϦόϦʔ –
$IBU0QT – Ϋϥυͷ׆༻ • ϨϑτΟϯά νʔϜڥ – ϦϞʔτϫʔΫ – ேձɺ,15 – 2JJUB5FBNʹΑΔใڞ༗ – ࣗݾ৫Խ ओʹͬͪ͜ͷΛ͠ ·͢
(JU)VC • (JUSFQPTJUPSZIPTUJOHˠ4PDJBM $PEJOH – (JUͷͨΊͷதԝϨϙδτϦݟ͑ΔԽ – ίϛϡχέʔγϣϯ 044։ൃͳͲʹ͏ɺ͔ Βɺ͜ͷʙͰʮا ۀͰ͏ʯ
(JU)VCͰϓϧϦΫ։ൃ ͯ͢ͷมߋ1VMM 3FRVFTUͰ
ϓϧϦΫ։ൃͷ࣮ࡍ • ҰߦͷมߋϓϧϦΫͰ – Ϛʔδૢ࡞ʹϫʔΫϑϩʔ͕ඥ͍ͯΔ͔Β ޙड़ – Ұߦͷมߋɺͱ͔ͷ࣌΄Ͳো͕͓͖͍͢ $PPLQBEஊ
ʮ(JU)VC্Ͱ͢ʯͷ ͕Α͍࡞๏ ձͷݟ͑ ΔԽ ίʔυϨϏϡʔ
ίʔυϨϏϡϫʔͷࣗಈΞαΠϯ
8*1 8PSL*O1SPHSFTT ʮऴΘ͔ͬͯΒ1VMM 3FRVFTUʯͰͳ͘ ʮ࢝ΊΔͱ͖ʹ1VMM 3FRVFTUʯ
ܧଓతΠϯςάϨʔγϣϯ $JSDMF$*
1VMM3FRVFTUͱ$* • มߋͷͨͼʹςετ • ςετ݁Ռ1VMM3FRVFTU্ͰՄࢹԽ
Ϛʔδͨ͠ΒσϓϩΠ • $JSDMF$*ͰσϓϩΠ – ಛఆͷϒϥϯνʹมߋ͕͋ͬͨΒσϓϩΠ – 1VMM3FRVFTUΛϚʔδ͢ΔσϓϩΠ͢Δ production:
branch: deployment/production commands: -‐ ./script/assets_precompile.sh: -‐ bundle exec cap production deploy:migrations: qa: branch: deployment/qa commands: -‐ ./script/assets_precompile.sh: -‐ bundle exec cap qa deploy:migrations:
ܧଓతσϦόϦʔ master deployment/ edge deployment/ qa มߋNBTUFS QVMMSFRVFTU NFSHFͨ͠ ΒࣗಈͰ
FEHFɻ (開発環境) ຊ൪ϦϦʔε NBTUFS͔ΒRB QVMMSFRVFTU RBNFSHF͞ ΕΔͱ2"ڥࣗ ಈσϓϩΠ FEHFQVTI ͞ΕΔͱ։ൃػ ࣗಈσϓϩΠ deployment/ production 2"ऴΘͬͨ ΒQSPEVDUJPO ಉ༷ʹ
1VMM3FRVFTUσϓϩΠ • σϓϩΠλεΫ1VMM3FRVFTUͰ࣮ߦ – σϓϩΠͷݟ͑ΔԽ – NFSHFϘλϯΛԡ͢ͱ$JSDMF$*ܦ༝ͰσϓϩΠ͕Δ
͜Εԡ͢ɻҎ্ ݁ՌɺσϓϩΠͷํ๏
$IBU0QT • IVCPU • CPUʹ͓ئ͍ͯ͠ΦϖϨʔγϣϯ
None
None
ϦϦʔε࣌ͷνΣοΫϦετΛ IVCPU͕ࣗಈ࡞
࠷ۙCPU͕CPUΛಈ͔ͯ͠Δ ʮ͓લͷมߋؒͳ͘Ͱ Δ͔Β࠷ऴ֬ೝ͠ΖΑʯ ͱ͍͏ͷIVCPU͕ఆظ తʹݺͼ͔͚ͯ͘Δ CPU͕IVCPUʹ ໋ྩΛग़͢
(JU)VCͰมΘͬͨ͜ͱ • 044։ൃͷΑ͏ͳΓํΛɺاۀνʔ Ϝ։ൃʹ ͦ͏͍͑(PPHMF͕ɺͦ ΜͳΓํΛͯ͠Δͱ͍ͣ ͿΜલʹݴͬͯͨ
(JU)VCͰมΘͬͨ͜ͱ • 1VMM3FRVFTUʹϫʔΫϑϩʔΛू͞ ͤΔɺͱ͍͏ߟ͑ํ – ίʔυϨϏϡʔɺςετɺ2"ɺσϓϩΠŋŋŋ – ؔ࿈λεΫ͕ɺͭͷ1VMM3FRVFTUͷจ຺ Ͱ·ͱΊΒΕΔ ʮ˓˓ͱ͍͏ػೳΛՃ͢ΔͨΊ ʹߦΘΕͨίϛοτ܈ɺσΟε ΧογϣϯɺϨϏϡʔ݁Ռɺςɹ
ετͷཤྺŋŋŋʯͰҰͭͷ1VMM 3FRVFTU
ΫϥυαʔϏεͷ࣌ • ࣗͨͪͷϑΥʔΧεͰͳ͍ͱ͜Ζɺ ੵۃతʹΫϥυΞτιʔε
"84 QMBO#$%ͷαʔόʔΠ ϯϑϥશͯ"84Ͱ
)FSPLV • IVCPUQMBO#$%ͷαϒγεςϜͷӡ ༻ʹར༻
$JSDMF$* $JBTB4FSWJDF ςετ࣮ߦ͚ͩͰͳ͘ɺ σϓϩΠͳͲ(JU)VC ϫʔΫϑϩʔͷ͏ͻͱ ͭͷཁʹͳ͍ͬͯ·͢
$BTQFS+4Ͱ&&
&&Λ$JSDMF$*Ͱ
4USJQF ܾࡁ
.BOESJMM ϝʔϧૹ৴
#VHTOBH ྫ֎ཧ
#SPXTFS4UBDL Ϋϩεϒϥβςετ
IVCPUͰΫϩεϒϥβͷ εΫγϣࡱӨ
.BDLFSFM ϞχλϦϯά
/FX3FMJD ϞχλϦϯάͱࢹ
1BHFS%VUZ Ξϥʔτ TFOTV͕ҟৗΛݕ͢ Δͱ1BHFS%VUZ͕ࣗ ಈͰ୲ʹ ి
#JH2VFSZ σʔλղੳ ԯϨίʔυΛඵͰ 42- .11
%FWFMPQFS1SPEVDUJWJUZ • 2ʮ͜ͷखͷಋೖͷۀ࣌ؒͲ͏ͬͯ࡞ΔΜͰ͔͢ ʯ • "ʮͦΕΛϛογϣϯʹͯ͠ΔνʔϜ͕͋Γ·͢ʯ ଞࣾͰࣅͨΑ͏ͳΛ ͱ͖Ͳ͖ฉ͘
ࢥͬͨ͜ͱ
8FCͷਐԽࢭ·Βͳ͍ • ؒɺԿ͜ΕͰܾఆ൛͔ͱࢥͬͨ ͜ͱ͕͋ͬͨ – ࣮ࡍɺͦ͜Ͱࢭ·Δ͜ͱͳ͔ͬͨ • (PPHMFɺ'BDFCPPLɺ5XJUUFS • 3BJMTɺ/PEFKTɺJ04"OESPJEɺ(PMBOH •
ͲΜͲΜߴԽɾෳࡶԽ͢Δ8FCΞϓϦέʔγϣ ϯεϚʔτϑΥϯ։ൃ ͍ͭ·Ͱཱͬͯམͪ ண͔ͳ͍
ະདྷ༧ଌ͍͠ • (JU)VC͕ɺΫϥυ͕ɺΈ͍ͨͳ͙ۙΒ͍ ͋Δఔݟ͑Δ • େ͖ͳมԽಥવͬͯ͘Δɻ༧ଌͰ͖ͳ͍ – 3VCZPO3BJMTͷϦϦʔεɺ"84ɺ(JU)VCͷا ۀͰͷར༻ŋŋŋFUD –
όζϫʔυͱݴΘΕ͍ͯͨͷɺؾͮ͘ͱఆணͨ͠ Γ͢Δ ྫΫϥυɺϏοάσʔλ
ະདྷ༧ଌΑΓɺมԽͷదԠ • มԽ͢Δ͜ͱΛલఏʹɺదԠ͠ଓ͚Δ͔͠ͳ͍ – ܧଓతʹ – ΞδϦςΟͷ্ • ໘ന͍͜ͱ͕ىͬͨ͜ͱ͖ɺͬ͞ͱඈͼ͔͔Ε Δ͔Ͳ͏͔
– ݸਓతʹɺνʔϜతʹ – จԽॏཁ
อकతPSਐาత ͍͠ŋŋŋ • ผʹɺ৽͍͜͠ͱ͕ॏཁͳͷͰͳ͍ – ྡͷࣳৗʹ੨͍ – ྲྀߦΛऔΓೖΕΔ͜ͱ͕ඞͣ͠ਖ਼ղͱݴ͑ͳ͍ •
ݴޠΛΓ͑ͨΒ࣍ͷݴޠ͕དྷͨɺͱ͔ɻӬٱʹϑΥʔΧεͰ͖ ͳ͍ • อकత͗ͯ͢औΓ͞ΕΔ – ʮखஈͱతΛཤ͖ҧ͑Δͳʯ͓͡͞Μ – खஈΛతԽͯ͠Ͱ͔ͬͬͨํ͕݁Ռతʹྑ͍͜ͱ͋Δ
ͳͥখ͞ͳνʔϜ͕༗ར͔ খ͞ͳνʔϜมԽ ͷ߅ྗ͕খ͍͞
اۀ͖͔͢ • Α͘Θ͔Βͳ͍ – ιϑτΣΞ։ൃʹ͓͍ͯ େہతʹ খ ͞ͳνʔϜͷํ͕༗ར – (PPHMF'BDFCPPLͷΑ͏ͳ)BDLFS 8BZ͕εέʔϧ͢Δ৫ͷͨΊͷཁૉɺ͔
• େ͖͘ͳͬͯյͤΔจԽ • ϗϥΫϥγʔ
݁ŋŋŋͳ͠ • ͳͥͳΒɺ͜Ε͔ΒมԽ͠ଓ͚Δ͔Β • େࣄʹ͍ͯ͠Δ͜ͱ – ʮͦͷ࣌ͦͷ࣌Ͱɺೲಘͯ͠Ε͍ͯΔ͔ʯ • ࠓ͕͍ࣗͬͯΔ͜ͱ͕ɺେͰؒҧ͍ͬͯ ͳ͍ͱࢥ͑Δ͜ͱ •
ೲಘͰ͖͍ͯΕɺͤʹ։ൃͰ͖ΔɻೲಘͰ͖ ͳ͍ͳΒյ͢
·ͱΊ • 8FC։ൃͷͱࠓΛΈͨ • (JU)VCɺΫϥυͷ࣌ • ͜Ε͔Β8FC։ൃ8FCͱڞʹมԽ͠ ଓ͚Δ • มԽʹదԠ
• ೲಘތΓ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ण࢘Ώ͖CZBXBZVLJ $$#:/$/%