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
大多数のメンバーがコードを書けるチームにおけるエンジニアの役割 / pixiv TECH SALON
Search
TOYOTA Misaki
March 05, 2019
Technology
2
3.4k
大多数のメンバーがコードを書けるチームにおけるエンジニアの役割 / pixiv TECH SALON
TOYOTA Misaki
March 05, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
2
320
実践アプリケーション設計 ②トランザクションスクリプトへの対応
recruitengineers
PRO
4
1.1k
JuniorからSeniorまで: DevOpsエンジニアの成長ロードマップ
yuriemori
2
330
「魔法少女まどか☆マギカ Magia Exedra」のグローバル展開を支える、開発チームと翻訳チームの「意識しない協創」を実現するローカライズシステム
gree_tech
PRO
0
360
【Grafana Meetup Japan #6】Grafanaをリバプロ配下で動かすときにやること ~ Grafana Liveってなんだ ~
yoshitake945
0
200
Bye-Bye Query Spaghetti: Write Queries You'll Actually Understand Using Pipelined SQL Syntax
tobiaslampertlotum
0
110
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / Beyond Secret Management! Let's Encrypt Data with HashiCorp Vault
nnstt1
2
130
実運用で考える PGO
kworkdev
PRO
0
120
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
2
490
実践データベース設計 ①データベース設計概論
recruitengineers
PRO
4
1.8k
コスト削減の基本の「キ」~ コスト消費3大リソースへの対策 ~
smt7174
2
290
Browser
recruitengineers
PRO
6
2k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.8k
It's Worth the Effort
3n
187
28k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
284
13k
Building an army of robots
kneath
306
46k
Designing Experiences People Love
moore
142
24k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Fireside Chat
paigeccino
39
3.6k
Transcript
େଟͷϝϯόʔ͕ ίʔυΛॻ͚ΔνʔϜʹ͓͚Δ ΤϯδχΞͷׂ pixiv.inc misakit
• ๛ా ඒ࡙ (Misaki TOYOTA) • 20164݄ೖࣾ • BOOTH νʔϜͷ
Rails ΤϯδχΞ ࣗݾհ
''࡞׆ಈ͕ΑΓָ͘͠ͳΔ'' γϣοϓ࡞αʔϏε
େଟͷϝϯόʔ͕ίʔυΛॻ͚Δ BOOTHνʔϜͰͷΤϯδχΞͷׂ ࠓ͢͜ͱ
ͷνʔϜߏ ίϛϡχςΟʔϚωʔδϟʔ σΟϨΫλʔ ϓϩμΫτ Ϛωʔδϟʔ αʔόʔ ΞϓϦΤϯδχΞ σβΠφʔ WebϑϩϯτΤϯδχΞ
PR͕Ϛʔδ͞Εͨ͜ͱ͕͋Δਓ ίϛϡχςΟʔϚωʔδϟʔ σΟϨΫλʔ ϓϩμΫτ Ϛωʔδϟʔ αʔόʔ ΞϓϦΤϯδχΞ σβΠφʔ WebϑϩϯτΤϯδχΞ
IssueΛཱͯͨ͜ͱ͕͋Δਓ ίϛϡχςΟʔϚωʔδϟʔ σΟϨΫλʔ ϓϩμΫτ Ϛωʔδϟʔ αʔόʔ ΞϓϦΤϯδχΞ σβΠφʔ WebϑϩϯτΤϯδχΞ
Ϣʔβʔ Ϗδωε৬ ٕज़৬ ίʔυ
BOOTH νʔϜͷಛ Ϣʔβʔ Ϗδωε৬ ٕज़৬ ίʔυ
• ΤϯδχΞ͍߹ΘͤΛݟΔ ‣ ฦ৴ͷ͖ͨͨΛ࡞ͬͨΓ • ෆਖ਼ͳจ͕ͳ͍͔νΣοΫ ‣ ΤϯδχΞ͔ͩΒؾ͚ͮΔෆਖ਼ײ BOOTH νʔϜͷಛ
• ͍߹ΘͤΛݟͨ CM ͕จݴमਖ਼ͷ PR / issueΛ࡞Δ • σΟϨΫλʔ͕ SEO
ͷͨΊͷจݴௐ PR / issue Λ࡞Δ BOOTH νʔϜͷಛ
σΟϨΫλʔ͕LPΛؙʑ࡞ͬͯ͘Δ
• ΤϯδχΞ͕ PR ࡞͔Βຊ൪ڥͷσϓϩΠ·ͰΛαϙʔτ͢ΔจԽ ‣ ਓ͔Βر͕͋ͬͨΒɺ࠷ݶͷ git ͷ͍ํɾPRͷ࡞ΓํΛڭ͑Δ ‣ Ή͔͍ͣ͠ͱ͜Ζॿ͚Δ
- ։ൃڥΛ࡞Δ - git rebase - ίϯϑϦΫτղফ ‣ جຊతʹ࠷ޙ·ͰͬͯΒ͏ νʔϜ͕ৢ͞Εͨഎܠ
• ΤϯδχΞ͕ؾ͚ͮͳ͍վળ͕Ϗδωε৬ଆ͚ͩͰճͤΔ ‣ LP੍࡞ ‣ ͍߹Θ͕ͤଟ͍ϖʔδͷදࣔΛվળ͢Δ ‣ Ϣʔβʔ͕ΜͰ͍Δػೳͷ։ൃ • ίϛϡχέʔγϣϯͷίετ͕ݮΔ
ྑ͍͜ͱ
• GitHub IssueΛஸೡʹॻ͍ͯΒ͑Δ ‣ ٕज़తͳՄ൱Λਪଌͯ͠ఏҊͯ͠Β͑Δ ‣ ߟྀ͖͢ύλʔϯΛͯ͢ྻڍͯ͠ఏҊͯ͠Β͑Δ ྑ͍͜ͱ
• ඇޮͳ࣮ํͰIssuePR ͕ඈΜͰ͘Δ ‣ ྫɿJS͔͔͠Βͳ͍ͷͰશ෦JSͰղܾͯ͘͠Δ • ເΛ٧ΊࠐΜͩϏοάͳIssuePR ͕ඈΜͰ͘Δ ‣ ྫɿϖʔδͷϨΠΞτΛΨϥοͱมߋ
ͪΐͬͱࠔΔ໘
ͪΐͬͱࠔΔ໘ ίʔυαʔϏεͷ࣭͕Լ͍͢͠ • ඇޮͳ࣮ํͰIssuePR ͕ඈΜͰ͘Δ ‣ ྫɿJS͔͔͠Βͳ͍ͷͰશ෦JSͰղܾͯ͘͠Δ • ເΛ٧ΊࠐΜͩϏοάͳIssuePR ͕ඈΜͰ͘Δ
‣ ྫɿϖʔδͷϨΠΞτΛΨϥοͱมߋ
ίʔυαʔϏεͷ࣭͕Լ͍͢͠ ͜ΕΛ͙ͷ͕ΤϯδχΞͷׂ
࣮ࡍʹؾΛ͚͍ͭͯΔ͜ͱ ຊ࣭తͳ՝Λฉ͖ग़͢ 1 খ͘͞ग़͢Α͏ʹ͢Δ 2
ຊ࣭తͳ՝Λฉ͖ग़͢ 1 খ͘͞ग़͢Α͏ʹ͢Δ 2 ࣮ࡍʹؾΛ͚͍ͭͯΔ͜ͱ
• ʮղܾҊʯ͚͕ͩ͑ΒΕΔ͜ͱ͕͋Δ • ຊʹΓ͍ͨ͜ͱ͕ཪʹӅΕ͍ͯΔ ຊ࣭తͳ՝Λฉ͖ग़͢
ຊ࣭తͳ՝Λฉ͖ग़͢ ൃૹεςʔλεΛՃ͍ͯͩ͘͠͞ʂ ͑ͬ ίϛϡχςΟʔ Ϛωʔδϟʔ ΤϯδχΞ
ຊ࣭తͳ՝Λฉ͖ग़͢ ൃૹεςʔλε • ͓·ͱΊத • ४උத • ग़ՙͪ • ൃૹ࡞ۀத
• ग़ՙࡁΈ • Ωϟϯηϧ
ຊ࣭తͳ՝Λฉ͖ग़͢ ൃૹεςʔλε • ͓·ͱΊத • ४උத • ग़ՙͪ • ൃૹ࡞ۀத
• ग़ՙࡁΈ • Ωϟϯηϧ • ೖՙ։࢝த [NEW!]
ຊ࣭తͳ՝Λฉ͖ग़͢ ൃૹεςʔλε • ͓·ͱΊத • ४උத • ग़ՙͪ • ൃૹ࡞ۀத
• ग़ՙࡁΈ • Ωϟϯηϧ • ೖՙ։࢝த [NEW!] • ঢ়ଶΛ૿ͨ͘͠ͳ͍ • දࣔͷϩδοΫ͕૿͑Δ • Өڹൣғ͕େ͖͍ • ϏδωεϩδοΫ্ͷෆ߹ ॏ͍…
ຊ࣭తͳ՝Λฉ͖ग़͢ ൃૹεςʔλεΛՃ͍ͯͩ͘͠͞ʂ ͑ͬ Ͳ͏ͯ͠৽͍͠εςʔλε͕͍ΔΜͰ͔͢ʁ ίϛϡχςΟʔ Ϛωʔδϟʔ ΤϯδχΞ
࣮…… • "४උத"͔Β"ग़ՙͪ"ʹมԽ͢Δ·Ͱͷظ͕͓͍ؒ͘߹Θ͕ͤଟ • ͜ͷظؒBOOTHʹ͍߹ΘͤΛΒͬͯͰ͖Δ͜ͱ͕ͳ͍ • γϣοϓΦʔφʔ͞Μʹ͍߹Θͤͯ΄͍͠ • ͳͷͰதؒతͳεςʔλε૿͢ҊΛఏҊ ͳΔ΄ͲͶ
࣮…… • "४උத"͔Β"ग़ՙͪ"ʹมԽ͢Δ·Ͱͷظ͕͓͍ؒ͘߹Θ͕ͤଟ • ͜ͷظؒBOOTHʹ͍߹ΘͤΛΒͬͯͰ͖Δ͜ͱ͕ͳ͍ • γϣοϓΦʔφʔ͞Μʹ͍߹Θͤͯ΄͍͠ • ͳͷͰதؒతͳεςʔλε૿͢ҊΛఏҊ ͳΔ΄ͲͶ
• 20ߦఔͷมߋͰࡁΜͩ ղܾࡦ
• νʔϜશһ͕༷ʑͳղܾࡦΛఏҊͯ͘͠ΕΔ • ͨ·ʹΤϯδχΞϦϯάతʹඇޮͳղܾࡦ͕ඈΜͰ͘Δ…… • ͕͜͜ΤϯδχΞͷͷݟͤॴ • ΤϯδχΞ͕୲อ͢ΔͷαʔϏεɾίʔυͷ্࣭ • ຊ࣭తͳ՝ΛώΞϦϯάͯ͠ɺҰॹʹ࠷ળࡦΛ୳Δ
ຊ࣭తͳ՝Λฉ͖ग़͢
খ͘͞ग़͢Α͏ʹ͢Δ 2 ຊ࣭తͳ՝Λฉ͖ग़͢ 1 ࣮ࡍʹؾΛ͚͍ͭͯΔ͜ͱ
• ৽ػೳվળΛ࠷খ୯ҐͰϦϦʔε͍ͯ͘͠ • ߴʹԾઆݕূ͕ճͤΔ • ΤϯόάखΓ͕ൃੜ͠ʹ͍͘ • খ͍͞มߋΛଓ͚ͯɺϢʔβʔʹՁΛఏڙ͠ଓ͚Δ͜ͱ͕େ খ͘͞ग़͢ͱ
খ͘͞ग़ࣦ͢ഊྫ จݴΛมߋ͠·ͨ͠ʂ
খ͘͞ग़ࣦ͢ഊྫ ͍ͭͰʹɺϨΠΞτΛมߋ͠·ͨ͠ จݴΛมߋ͠·ͨ͠ʂ
খ͘͞ग़ࣦ͢ഊྫ ͍ͭͰʹɺϨΠΞτΛมߋ͠·ͨ͠ ͍ͭͰʹɺϦϑΝΫλϦϯά͠·ͨ͠ จݴΛมߋ͠·ͨ͠ʂ
খ͘͞ग़ࣦ͢ഊྫ จݴΛมߋ͠·ͨ͠ʂ จݴมߋ͚ͩͳΒ͙͢ϦϦʔεͰ͖ͨͷʹ…… ͍ͭͰʹɺϨΠΞτΛมߋ͠·ͨ͠ ͍ͭͰʹɺϦϑΝΫλϦϯά͠·ͨ͠
• ʮ͍ͭͰʹʯͰ1ͭͷIssue/PRʹ͋Ε͜ΕΓࠐΜͰ͠·͏ • ϢʔβʔʹՁ͕ಧ͘·Ͱʹ͕͔͔࣌ؒΔ • Τϯόά͍͢͠ • खΓ͕ൃੜ͍͢͠ ʮ͍ͭͰʹʯͷঈ
• ͯ͢ͷʮ͍ͭͰʹʯΛੜ·ΕΔલʹࢭΊΔ • ͷࡉԽɾ࠷খԽɾίετͳରԠํ๏Λܒ ‣ ʮ͜ͷIssueจݴมߋ͚ͩઌʹग़ͤ·͢Αʯ ‣ ʮ͜ͷมߋҰ෦ը໘͚ͩͰࢼͯ͠Έ·ͤΜ͔ʁʯ ΤϯδχΞͷׂ
• IssueʮαʔϏεAͷϩΰͱҙจϖʔδͷϦϯΫΛมߋ͍ͯͩ͘͠͞ʯ ྑ͍ύλʔϯ
• IssueʮαʔϏεAͷϩΰͱҙจϖʔδͷϦϯΫΛมߋ͍ͯͩ͘͠͞ʯ ྑ͍ύλʔϯ ઌʹϚʔδͰ͖ͨ
• νʔϜϝϯόʔʹʮখ͘͞ग़͢ʯ͕ਁಁ࢝͠Ίͨ • ϨϏϡʔָ͕ʹͳͬͨ • ϦϦʔε্͕ͨ͠ • ϢʔβʔʹՁΛߴͰಧ͚ΒΕΔΑ͏ʹͳͬͨ ܒΛଓ͚ͨ݁Ռ
• νʔϜશһ͕PRΛ࡞ͬͨΓɺIssueͰٞͯ͠ղܾΛ͍ͯ͠Δ • ΤϯδχΞ͕ؾ͚ͮͳ͍՝ʹؾ͍ͮͯΒ͑ͯͱͯॿ͔Δ • ΤϯδχΞίʔυαʔϏεͷ࣭ΛकΔ • ࣭ΛकΔͨΊʹʮຊ࣭తͳ՝Λฉ͍ͯʯͦΕΛʮখ͘͞ग़͢ʯ ·ͱΊ