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
ikyu-frontend
Search
kentana20
March 29, 2016
Technology
21
7.3k
ikyu-frontend
3.29 Sansan✕一休.com 勉強会での発表資料です
kentana20
March 29, 2016
Tweet
Share
More Decks by kentana20
See All by kentana20
一休.comでの開発組織改善の取り組みとこれから /improve-ikyu-devlove-x
kensuketanaka
24
37k
株式会社一休 会社紹介資料 / introduce-ikyu
kensuketanaka
15
110k
一休での開発における改善の取組み /devops-at-ikyu
kensuketanaka
13
10k
一休.com における改善事例のご紹介 /ikyu-storage-improvement
kensuketanaka
6
11k
開発合宿@京都 /hack-camp-kyoto
kensuketanaka
0
3.8k
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
kensuketanaka
9
8.9k
sushi_route_2015
kensuketanaka
0
220
qiita meetup#12
kensuketanaka
4
71k
cross_2015_trave_ec
kensuketanaka
1
3.4k
Other Decks in Technology
See All in Technology
Digitization部 紹介資料
sansan33
PRO
1
4.5k
RapidPen: AIエージェントによる高度なペネトレーションテスト自動化の研究開発
laysakura
1
250
cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files
tomoki10
1
700
Building GoReleaser - from shell script to paid product
caarlos0
0
160
ソフトウェアQAがハードウェアの人になったの
mineo_matsuya
3
230
公開初日に Gemini CLI を試した話や FFmpeg と組み合わせてみた話など / Gemini CLI 初学者勉強会(#AI道場)
you
PRO
0
1.5k
Shadow DOM & Security - Exploring the boundary between light and shadow
masatokinugawa
0
410
スタックチャン家庭用アシスタントへの道
kanekoh
0
130
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
1
610
LLM拡張解体新書/llm-extension-deep-dive
oracle4engineer
PRO
24
7k
ClaudeCode_vs_GeminiCLI_Terraformで比較してみた
tkikuchi
1
2.9k
AIエージェントが書くのなら直接CloudFormationを書かせればいいじゃないですか何故AWS CDKを使う必要があるのさ
watany
20
7.7k
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
750
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
It's Worth the Effort
3n
185
28k
A designer walks into a library…
pauljervisheath
207
24k
RailsConf 2023
tenderlove
30
1.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Art, The Web, and Tiny UX
lynnandtonic
300
21k
Transcript
Ұٳ.com ʹ͓͚Δ ϑϩϯτΤϯυ։ൃ ʙSansan✕Ұٳ ϑϩϯτΤϯυษڧձʙ kensuke tanaka (@kentana20)
About me • ాத ݈հ • @kentana20 • 20065݄͔ΒҰٳ •
॓ധαʔϏε։ൃ(9) →γεςϜຊ෦(1)
Agenda • Ұٳ.com & ࠾༻ٕज़ / Tools • ։ൃମ੍ɺ։ൃϑϩʔ •
σβΠφʔͱͷίϥϘϨʔγϣϯ • ϚʔέςΟϯάɺCSͱͷίϥϘϨʔγϣϯ
ຊͷςʔϚ ϑϩϯτΤϯυ։ൃͷ࣮ྫ
͝ҙ • ϑϩϯτΤϯυ։ൃͷલஈͷΛ͠·͢ • ͍͔ʹͯ͠σβΠφʔϚʔέςΟϯάɺCS ΤϯδχΞͷίϥϘϨʔγϣϯΛߴΊ͍ͯΔ͔ ͱ͍͏͕ϝΠϯͰ͢ • TechগͳΊ •
ޙฤͰผ్͓͍͖ͤͯͨͩ͞·͢
Ұٳ.com & ࠾༻ٕज़ / Tools
About Ұٳ.com
None
Ұٳ.com • ओྗαʔϏε • ্࣭ͳϗςϧɾཱྀؗͷ༧αʔϏε • 20005݄Φʔϓϯͷ15ࡀ
Ұٳ.com KPI (2015.03) • ձһ: 400ສ+ • ϗςϧ/ཱྀؗ: 2,600ࢪઃ+ •
ؒൢചࣨ: 189ສࣨ+
͓ྡ͞·
࠾༻ٕज़ / Tools
࠾༻ٕज़ / Tools • ASP.NET WebForms/MVC (VB/C#) • IIS, SQLServer,
Solr • Sass, Compass • GitHub Enterprise • nxlog, Fluentd, Elasticsearch, Google Big Query • Jenkins, Selenium WebDriver • NewRelic, Kibana, Bugsnag • Redmine, Trello, Slack, Hubot
࠾༻ٕज़ / Tools (2લ) • ASP.NET WebForms/MVC (VB/C#) • IIS,
SQLServer, Solr • Sass, Compass • GitHub Enterprise • nxlog, Fluentd, Elasticsearch, Google Big Query • Jenkins, Selenium WebDriver • NewRelic, Kibana, Bugsnag • Redmine, Trello, Slack, Hubot
࠾༻ٕज़ / Tools (1લ) • ASP.NET WebForms/MVC (VB/C#) • IIS,
SQLServer, Solr • Sass, Compass • GitHub Enterprise • nxlog, Fluentd, Elasticsearch, Google Big Query • Jenkins, Selenium WebDriver • NewRelic, Kibana, Bugsnag • Redmine, Trello, Slack, Hubot
։ൃମ੍ɾ։ൃϑϩʔ
։ൃମ੍
։ൃମ੍(2016.3) αʔϏε։ൃ ΤϯδχΞ ໊ ج൫ܥΤϯδχΞ ໊ ΠϯϑϥΤϯδχΞ ໊ σβΠφʔ ໊
%FW %FT %FW 0QT Ϛʔέ एׯ໊ .LU
։ൃମ੍(2016.3) αʔϏε։ൃ ΤϯδχΞ ໊ ج൫ܥΤϯδχΞ ໊ ΠϯϑϥΤϯδχΞ ໊ σβΠφʔ ໊
%FW %FT %FW 0QT Ϛʔέ एׯ໊ .LU
σβΠφʔ3ͭͷάϧʔϓͰߏ ը૾ ੩తϖʔδ ΫϦΤΠςΟϒ σβΠϯ ίʔσΟϯά
ը૾ ੩తϖʔδ ΫϦΤΠςΟϒ σβΠϯ ίʔσΟϯά %FW σβΠφʔ3ͭͷϢχοτ ΤϯδχΞͱΑ͘ίϥϘ͢Δͷ ΫϦΤΠςΟϒσβΠϯͱίʔσΟϯά Λ͍ͯ͠ΔνʔϜ
σβΠφʔͱͷίϥϘϨʔγϣϯ
աڈ
ίϥϘϨʔγϣϯ͕ͮ͠Β͔ͬͨ • ։ൃڥ • ΤϯδχΞ֤ࣗϩʔΧϧͰ࡞ۀ • σβΠφʔڞ༻αʔό্Ͱશһ͕࡞ۀ • ڞ༻αʔόΤϯδχΞ͕ि࣍Ͱߋ৽ •
ڞ༻αʔόͷࢿࡐΤϯδχΞ͕ίϛοτ
چࣜͷίϥϘϨʔγϣϯ ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ڞ༻σβΠϯڥ 3FQPTJUPSZ
$PNNJU
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ڞ༻σβΠϯڥ ߋ৽ ि࣍
3FQPTJUPSZ $PNNJU 6QEBUF چࣜͷίϥϘϨʔγϣϯ
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ڞ༻σβΠϯڥ ߋ৽ ि࣍
3FQPTJUPSZ $PNNJU 6QEBUF σβΠϯ࡞ۀ چࣜͷίϥϘϨʔγϣϯ
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ڞ༻σβΠϯڥ ߋ৽ ि࣍
3FQPTJUPSZ $PNNJU 6QEBUF ཧ$PNNJU چࣜͷίϥϘϨʔγϣϯ
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ڞ༻σβΠϯڥ ߋ৽ ि࣍
3FQPTJUPSZ $PNNJU 6QEBUF ཧ$PNNJU 4UBHJOHڥ %FQMPZ چࣜͷίϥϘϨʔγϣϯ
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ڞ༻σβΠϯڥ ߋ৽ ि࣍
3FQPTJUPSZ $PNNJU 6QEBUF ཧ$PNNJU 4UBHJOHڥ %FQMPZ ຊ൪ڥ چࣜͷίϥϘϨʔγϣϯ
ͭΒ͍
ίϥϘͷͨΊͷίετ͕ߴ͔ͬͨ • ΤϯδχΞ • ڞ༻σβΠϯڥͷϝϯς͠ΜͲ͍ • ڞ༻ͳͷͰϒϥϯν͚ͯ࡞ۀ͓ئ͍ͮ͠Β͍ • σβΠφʔ •
ڞ༻σβΠϯڥ͕ϝϯς͞Εͳ͍ͱ࡞ۀͰ͖ͳ͍ • σβΠφʔಉ࢜Ͱ࡞ۀ͕ڝ߹
ޡͬͨํʹߦ͖͔͚ͨ • ΤϯδχΞ • (… ͳΔ͘1ճͰσβΠϯܾΊͯΒ͓͏) • σβΠφʔ • (…
͜ͷલ࡞ۀͨ͋͠ͷը໘ɺ͏ͪΐ͍վળ Ͱ͖Δ͚Ͳڞ༻ڥߋ৽͞Εͯͳ͍͠ɺདྷि ݴ͍͍͔͑)
ޡͬͨํʹߦ͖͔͚ͨ • ΤϯδχΞ • (… ͳΔ͘1ճͰσβΠϯܾΊͯΒ͓͏) • σβΠφʔ • (…
͜ͷલ࡞ۀͨ͋͠ͷը໘ɺ͏ͪΐ͍վળ Ͱ͖Δ͚Ͳڞ༻ڥߋ৽͞Εͯͳ͍͠ɺདྷि ݴ͍͍͔͑) ΤϯδχΞͱσβΠφʔͷڑ͕ ԕ͔ͬͨ
ޡͬͨํʹߦ͖͔͚ͨ • ΤϯδχΞ • (… ͳΔ͘1ճͰσβΠϯܾΊͯΒ͓͏) • σβΠφʔ • (…
͜ͷલ࡞ۀͨ͋͠ͷը໘ɺ͏ͪΐ͍վળ Ͱ͖Δ͚Ͳڞ༻ڥߋ৽͞Εͯͳ͍͠ɺདྷि ݴ͍͍͔͑) ͜ΕͰϢʔβʹ ՁΛૣ͘ಧ͚ΒΕͳ͍
None
σβΠφʔGitHub FlowͰ • ࡞ۀڥɺϫʔΫϑϩʔΛΤϯδχΞͱἧ͑ͨ • ΤϯδχΞͱಉ༷ʹϩʔΧϧʹ։ൃڥΛඋ (ڥߏஙͱ࠷৽ԽɺϏϧυͳͲࣗಈԽ) • σβΠφʔ։ൃ༻ϒϥϯνͰ࡞ۀ •
ϓϧϦΫ্ͰίϥϘϨʔγϣϯ
σβΠϯ࡞ۀͷϒϥϯνઓུ NBTUFS EYYYY EZZZZ EYYYY EYYYY EZZZZ EZZZZ DIFDLPVU DIFDLPVU
NFSHF 1VMM3FRVFTU NFSHF 1VMM3FRVFTU 4UBHJOH
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ϩʔΧϧ ڥ 3FQPTJUPSZ
$PNNJU1VTI $IFDLPVU σβΠϯ࡞ۀ ΤϯδχΞͱͷίϥϘϨʔγϣϯ $PNNJU1VTI 4UBHJOHڥ ຊ൪ڥ %FQMPZ
࣮ࡍͷϓϧϦΫྫ
࣮ࡍͷϓϧϦΫྫ
࣮ࡍͷϓϧϦΫྫ
ಓͳྗ • Gitʹ׳ΕͯΒ͏ͨΊ • σβΠφʔ͚ͷࣾϫʔΫγϣοϓ • ಋೖ࣌ΦϯαΠτͰϑϧαϙʔτ • ಋೖޙʹ;Γ͔͑Γ
Sass
Sassಋೖͷഎܠ • ϗςϧɾཱྀؗΛѻ͏ Ұٳ.com • ϏδωεϗςϧΛѻ͏Ұٳ.com Ϗδωε
͓ޓ͍ͭΒ͔ͬͨ • ΤϯδχΞ • ϏϋΠϯυίʔυʹுΓ͍ͨۀϩδοΫͷ ॏෳ • σβΠφʔ • ྨࣅը໘ͷଘࡏ(CSSҰ෦Λআ͍ͯॏෳ)
ͭΒ͍
ϩδοΫ౷߹ʴSassಋೖ • ΤϯδχΞ • ϩδοΫ౷߹ͯ͠ϏϋΠϯυίʔυΛ1ͭʹ • σβΠφʔ • Sassಋೖͯ͠ޮԽɾߏԽ
׳ΕͯΒ͏ • Sassಋೖܦݧͷ͋ΔσβΠφʔओಋ • ߨٛࣜͷηϛφʔ • ΤϯδχΞϑΥϩʔ • Sass࡞ۀڥͳΔࣗ͘ಈԽ
લਐதʹࣄނ
None
None
ϩʔΧϧڥͰCSSޮ͔ͳ͍
߄ͯͯϏϧυόον͍͔͚ରԠ
Try&ErrorͰΞΫγϣϯܧଓ • ΤϯδχΞɺσβΠφʔͷʑͷෆຬΛΩϟον Ξοϓ • ղܾࡦΛߟ͑ͯTry&Error • ໎Λ͔͚Δ͜ͱ͋Δ͚Ͳલਐͯ͠·͢
ϚʔέςΟϯάɺCSͱͷ ίϥϘϨʔγϣϯ
աڈ
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ϩʔΧϧ ڥ 3FQPTJUPSZ
$PNNJU1VTI $IFDLPVU σβΠϯ࡞ۀ GitಋೖޙͷϫʔΫϑϩʔ(લड़) $PNNJU1VTI 4UBHJOHڥ %FQMPZ
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ϩʔΧϧ ڥ σβΠϯ࡞ۀ
ϚʔέςΟϯά / CSͷσϞ#1 ର໘ͰϚʔέςΟϯά $4ʹ͚ͯσϞ
ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϦϦʔε ݕূ ϩʔΧϧ ڥ 3FQPTJUPSZ
$PNNJU1VTI $IFDLPVU σβΠϯ࡞ۀ $PNNJU1VTI 4UBHJOHڥ %FQMPZ 4UBHJOHσϓϩΠޙʹ ϚʔέςΟϯά $4ϝϯόʔʹσϞ ϚʔέςΟϯά / CSͷσϞ#2
ίϥϘϨʔγϣϯ͕ͮ͠Β͔ͬͨ • ର໘ͰͷϨϏϡʔɾσϞ • ඇಉظʹݟͯΒ͑ͳ͍ • StagingσϓϩΠޙͷϨϏϡʔɾσϞ • λΠϛϯάతʹ͍
ίϥϘϨʔγϣϯ͕ͮ͠Β͔ͬͨ • ڞ௨ͷΈ • ςετσʔλ͕ΠϚΠν • ର໘ͰͷϨϏϡʔɾσϞ • ඇಉظʹݟͯΒ͑ͳ͍ •
StagingσϓϩΠޙͷϨϏϡʔɾσϞ • λΠϛϯάతʹ͍ ඇಉظʹ masterʹmerge͢Δલʹ ϨϏϡʔɾσϞ͍ͨ͠
σϞɾϨϏϡʔڥ
σϞɾϨϏϡʔڥ • ࡞ۀϒϥϯνΛࢦఆͯ͠σϓϩΠ • Webը໘͔Βϒϥϯν໊Λࢦఆͯ͠Ϙλϯ1ൃ • ϩʔΧϧ։ൃڥͱඇಉظʹ࡞ΕΔ • ίʔυϨϏϡʔʹԊ͑ͨΓɺΤϯδχΞҎ֎ (ϚʔέςΟϯάɾCSϝϯόʔ)ʹσϞͨ͠Γ
None
σϞ༻ڥͱͯ͠σϓϩΠͯ͠ ϓϧϦΫͰΓͱΓ
ίϥϘϨʔγϣϯ͕ͮ͠Β͔ͬͨ • ର໘ͰͷϨϏϡʔɾσϞ • ඇಉظʹݟͯΒ͑ͳ͍ • StagingσϓϩΠޙͷϨϏϡʔɾσϞ • λΠϛϯάతʹ͍
·ͱΊ • ϢʔβʹՁΛఏڙ͢ΔʹίϥϘϨʔγϣϯ͕େࣄ • ͓ޓ͍ͷΈ৳ͼ͠Ζ • ίϥϘ͢Δ૬खʹาΈدΔ • ΈͰղܾͰ͖Δ෦ҙ֎ͱଟ͍ •
վળͷ༨·ͩ·ͩ͋Δ • ଓ͖·ͨͲ͔͜Ͱ͓͍ͤͯͩ͘͞͞ʂ
ଓ͍ͯۙͰͷϦϓϨΠε ʹΑΔࣄྫΛ͝հ͠·͢ (ότϯλον)