$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitHubの良さ
Search
takashabe
December 11, 2014
Programming
2
2.2k
GitHubの良さ
http://connpass.com/event/10347/
で話した内容です。
takashabe
December 11, 2014
Tweet
Share
More Decks by takashabe
See All by takashabe
より良いターミナルでの生活を求めて
takashabe
0
56
OpenCensusでcustom context propagationとexporterを書いた話 / OpenCensus with custom context propagation and exporter
takashabe
0
1.8k
pubsub with concurrent
takashabe
1
920
社内ISUCONを開催した話
takashabe
0
1.7k
ISUCON大反省会
takashabe
0
1.9k
gitのブランチ戦略
takashabe
8
6k
サルでもわかるgit
takashabe
0
1.5k
playで複数DBする
takashabe
0
1.6k
MySQLで高トラフィックに立ち向かう
takashabe
0
1.8k
Other Decks in Programming
See All in Programming
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.2k
CloudNative Days Winter 2025: 一週間で作る低レイヤコンテナランタイム
ternbusty
7
2k
Level up your Gemini CLI - D&D Style!
palladius
1
180
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
140
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
160
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
160
認証・認可の基本を学ぼう前編
kouyuume
0
190
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
120
認証・認可の基本を学ぼう後編
kouyuume
0
180
無秩序からの脱却 / Emergence from chaos
nrslib
2
13k
関数実行の裏側では何が起きているのか?
minop1205
1
670
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
200
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
GraphQLとの向き合い方2022年版
quramy
50
14k
Documentation Writing (for coders)
carmenintech
76
5.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Automating Front-end Workflow
addyosmani
1371
200k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
[SF Ruby Conf 2025] Rails X
palkan
0
480
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
69k
A Modern Web Designer's Workflow
chriscoyier
698
190k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Transcript
(JU)VCͷྑ͞ 5BLBTIJ"CF .ZOFU*OD #mynet_tech
͓·͑ͩΕΑ !UBLBTIBCF ιγϟήͷ։ൃͬͯ·͢ (JU(JU)VCྺ͘Β͍ ۀྺ ͚ͭ໙͕͖
͡Ίʹ ϓϩδΣΫτ֓ཁ ϒϥβϕʔεͷιγϟή ܞΘͬͯ΄Ͳ ॳΊ͔Β(JU)VCͰӡ༻ ϦϦʔεʙXFFLMZ 1VMM3FRVFTUʙEBZ
"HFOEB (JU)VCͷ؆୯ͳհ (JU)VCͷྑ͞ ϨϏϡʔ λεΫཧ ଞπʔϧͱͷ࿈ܞ ಋೖ࣌ʹͬͨ͜ͱ ·ͱΊ
(JU)VCͷ֓ཁ (JUͷϗεςΟϯάαʔϏε (JUͷϦϞʔτϦϙδτϦʹ͋ͨΔ αʔόΛཧ͢Δ͜ͱͳ͘தԝϦϙδτϦͷΑ͏ ʹͬͨΓ͢Δ͜ͱ͕ग़དྷΔ (JU)VCಠࣗͷػೳ͋Δ
(JU)VCಠࣗͷػೳ 1VMM3FRVFTU *TTVFT 8JLJͳͲʜ (JUͷඪ४ػೳΛ͍͘͢ϥούͨ͠ͷ 1VMM3FRVFTUͳͲ (JUͷػೳͰͳ͍͕ɺ։ൃΛԁʹ͢Δͷ *TTVFT 8JLJͳͲ ͜ΕΒ͕(JU)VCΛ͏ಈػͱͯ͠Ұ൪ڧ͍
"HFOEB (JU)VCͷ؆୯ͳհ (JU)VCͷྑ͞ ϨϏϡʔ λεΫཧ ଞπʔϧͱͷ࿈ܞ ಋೖ࣌ʹͬͨ͜ͱ ·ͱΊ
ैདྷͷϨϏϡʔ ػೳ։ൃऴΘΓ·ͨ͠ɻ featureϒϥϯνͰpushͨ͠ͷ ͰϨϏϡʔ͓ئ͍͠·͢ɻ ྃղ͠·ͨ͠ɻ
ैདྷͷϨϏϡʔ (λʔϛφϧ্Ͱ) git pull git diff master feature ͋ɺͪΐͬͱ͜͜Ϛζͦ͏
ैདྷͷϨϏϡʔ ϨϏϡʔ͠·ͨ͠ɻ xxxͷϝιουͰyyy͕ߟྀ͞ Εͯͳͯ͘Ϡόͦ͏ɻ ྃղ͠·ͨ͠ɻ (xxxͬͯͲ͚ͩͬ͜…)
ैདྷͷϨϏϡʔ νϟοτϕʔεͰϨϏϡʔ͕ਐΉ ͠νϟοτΛݟಀͯ͠͠·͏ͱʜ
ैདྷͷϨϏϡʔ νϟοτϕʔεͰϨϏϡʔ͕ਐΉ ͠νϟοτΛݟಀͯ͠͠·͏ͱʜ ࡢ͓ئ͍͍ͯͨ͠ϨϏϡʔ ͷ݅Ͱ͕͢ɺਐḿͲ͏Ͱ͔͢ʁ
ʊਓਓਓਓਓʊ ʼ ͭΒ͍ ʻ ʉ̮̮̮̮̮ʉ
1VMM3FRVFTUϕʔεͷϨϏϡʔ 1VMM3FRVFTUJTԿʁ ϩʔΧϧͷϦϙδτϦͰߦͬͨมߋΛɺଞͷϦϙ δτϦϒϥϯνʹऔΓࠐΜͰΒ͏ͨΊͷϦΫ ΤετΛग़͢ػೳͷ͜ͱ ϦΫΤετΛग़͞Εͨଆɺ1VMM3FRVFTUͷ༰ ͕ଥ͔Ͳ͏͔Λ֬ೝ্ͨ͠ͰϚʔδΛߦ͏͜ͱ ͕ग़དྷΔ
1VMM3FRVFTUϕʔεͷϨϏϡʔ diffରͷϒϥϯν
1VMM3FRVFTUϕʔεͷϨϏϡʔ
1VMM3FRVFTUϕʔεͷϨϏϡʔ ίϝϯτʹର͢ΔϨε ҟͳΔॴͷίϝϯτ
1VMM3FRVFTUϕʔεͷϨϏϡʔ
1VMM3FRVFTUϕʔεͷϨϏϡʔ ϨϏϡΞʔͨͩૹΒΕͨ1VMM3FRVFTUΛݟΔ͚ͩͰϨϏϡʔ ͕ग़དྷΔ ίʔυߦ୯ҐͰίϝϯτΛॻ͚ΔͷͰɺͦͷίʔυʹର͢ Δ͕ٞΓ͍͢ 1VMM3FRVFTUͰΓऔΓ͕݁͢ΔͷͰ͕ٞൃࢄ͠ͳ͍ ϨϏϡʔґཔͷνϟοτΛݟಀ͍ͯͯ͠ݱࡏग़͞Ε͍ͯΔ 1VMM3FRVFTU͕͔Δ
%FNP
1VMM3FRVFTU࠷ߴʂʂʂ Կ͔Ͱʁ
1VMM3FRVFTUͷঢ়ଶ͕͔ΓͮΒ͍ ϨϏϡʔϚʔδՄೳͳͷ͔ ࡞ۀதͷͷϚʔδ͍͚ͯ͠ͳ͍ 1VMM3FRVFTUͰϨϏϡʔ͕ඇಉظʹߦ͑ΔΑ͏ʹ ͳͬͨɻ͔͠͠ঢ়ଶ͕͔Βͳ͍ͨΊʹ݁ہνϟο τݟಀ͢ͱͭΒ͍ͬͨ··
ࡢ͓ئ͍͍ͯͨ͠ϨϏϡʔ ͷ݅Ͱ͕͢ɺਐḿͲ͏Ͱ͔͢ʁ
ରԠࡦ ϥϕϧͷಋೖ 8*11VMM3FRVFTUͷಋೖ
ϥϕϧ 1VMM3FRVFTUͷঢ়ଶʹԠͯ͡ϥϕϧΛ͚Δ ϨϏϡʔґཔ ϨϏϡʔத ϨϏϡʔྃ Ϛʔδ ίϝϯτʙमਖ਼
ϥϕϧͰϑΟϧλ
8*11VMM3FRVFTU 8*18PSL*O1SPHSFTTͷུ ࡞ۀதͰ͋Δ͜ͱΛλΠτϧʹ໌ه͢Δ ༨ஊɿλΠτϧʹ8*1ͱೖ͍ͬͯΔ1VMM3FRVFTU ͷϚʔδϘλϯΛԡͤͳ͘͢Δ$ISPNF֦ு͕͋ͬ ͨΓ͢Δ %P/PU.FSHF8*1GPS(JU)VC
ϨϏϡʔ·ͱΊ 1VMM3FRVFTUͰͷϨϏϡʔ؆୯Ͱ࠷ߴ ϥϕϧͰ1VMM3FRVFTUͷঢ়ଶΛՄࢹԽͯ͠ϨϏϡʔ Λଅਐ͢Δঢ়ଶΛ࡞Δ
"HFOEB (JU)VCͷ؆୯ͳհ (JU)VCͷྑ͞ ϨϏϡʔ λεΫཧ ଞπʔϧͱͷ࿈ܞ ಋೖ࣌ʹͬͨ͜ͱ ·ͱΊ
λεΫཧ දతͳλεΫ νέοτ ཧπʔϧ +*3" 3FENJOFͳͲ νέοτʹରͯ͠୲ऀɺঢ়ଶɺظݶɺίϝϯτͳͲΛ͚ͯ ཧग़དྷΔ (JU)VCʹ*TTVFTͱ͍͏ػೳ͕͋Δ ͨͩ͠ઐ༻ͷπʔϧͱൺΔͱػೳශऑ
νέοτཧ༻πʔϧΛซ༻͢Δ߹ ։ൃϑϩʔ νέοτཧπʔϧ νέοτΛΔ (JU)VC 1VMM3FRVFTUΛૹΔ (JU)VC
1VMM3FRVFTUͷϨϏϡʔϚʔδ νέοτཧπʔϧ νέοτʹ1VMM3FRVFTUͷϦϯΫΛషͬ ͯΫϩʔζ ͭͷػೳ։ൃʹରͯ͠ෳαʔϏεΛ·͕ͨͬͯͭΒͦ͏
(JU)VC*TTVFTͷಛ *TTVFTʹରͯ͠୲ऀɺঢ়ଶ ΦʔϓϯΫϩʔζͷ Έ ɺίϝϯτ͕͚ΒΕΔ ίʔυ 1VMM3FRVFTU ͱͷ࿈ܞָ͕ 1VMM3FRVFTUʹ*TTVFTͷϦϯΫΛషΔͱɺ*TTVFT ଆͰϦϯΫ͞Ε͍ͯΔࢫͷද͕ࣔ͞ΕΔͳͲ
IssuesͷϦϯΫషΔ ϦϯΫݩͷPull Request͕දࣔ͞Εͨ
*TTVFTͷΓͳ͍ ୭͕ԿΛ͍ͬͯΔͷ͔Ѳͮ͠Β͍ ୲ऀܾΊΕΔ͕ɺঢ়ଶ͕ΦʔϓϯΫϩʔζ͠ ͔ͳ͍ͨΊɺணखத͔Ͳ͏͔Ұݟ͔Βͳ͍ ਐ͕͔ΓͮΒ͍ ༏ઌ͕͔ΓͮΒ͍
ΑΖ͍͠ɺͳΒΧϯόϯͩ
*TTVFT Χϯόϯ λεΫجຊతʹ*TTVFTʹॻ͘ ணख͢Δͷ͔ΒΧϯόϯʹᝦΛష͍ͬͯ͘ Χϯόϯͷ͓͔͛Ͱ୭͕ԿΛ͍ͬͯΔ͔ɺਐ ͕͔ΔΑ͏ʹ
*TTVFT࠷ߴʂʂʂԿ͔Ͱʁ
ෳαʔϏε͏ͷ͕ͭΒ͍͔Β*TTVFTʹͨ͠ͷʹ ݁ہߋ৽Օॴ͕ෳ͋Δ Χϯόϯʹ͚ͩՃ͞ΕΔλεΫ νϟοτޱ಄ͰՃ͞ΕΔλεΫ ಉظ͕औΕͳ͘ͳ͍ͬͯ͘Χϯόϯͱ*TTVFT
None
͏Ұߟ͑ͳ͓͢ *TTVFTίʔυͱͷ࿈ܞָ͕ 1VMM3FRVFTUඞͣ͏ͷͰ(JU)VC্Ͱ݁͢Δͷ ͕·͍͠ ෳͷπʔϧΛ͏ͱಉظΛऔΔͷ͕େม
ΑΖ͍͠ɺͳΒΑΓపఈͨ͠*TTVFTۦಈͩ
ͱʹ͔͘*TTVFTʹશͯͷλεΫΛೖΕΔ ୭ͰɺͲΜͳͷͰ*TTVFTʹೖΕͯྑ͍ ͱ͍͑νϟοτޱ಄ͰͷґཔͪΖΜൃੜ͢ Δ ͔Γ·ͨ͠ɻ Issues͓͍͍ͬͯͯͩ͘͞ɻ ࠷ۙͰIssuesཱͯͨͷͰ͓ئ͍͠·͢ʔ ͱ͍͏ྲྀΕ͕ਁಁ͖ͯͨ͠
શͯͷλεΫ͕*TTVFTͰཧ͞Εͨ ४උͬͨ
*TTVFTʹΓͳ͔ͬͨͷΛཧ͢Δ ୭͕ԿΛ͍ͬͯΔ͔ ਐ λεΫͷ༏ઌ
εΫϥϜͰղܾग़དྷͦ͏
ΏΔ͍εΫϥϜͷಋೖ ಋೖͨ͠ϓϥΫςΟεεϓϦϯτͷΈ पؒͷεϓϦϯτ ϓϩμΫτΦʔφʔ ϓϩσϡʔαʔFUD ΛεϓϦϯτͰऔ ΓΉλεΫΛܾΊΔ༏ઌ εϓϦϯτͷରͱͳͬͨ*TTVFTʹεϓϦϯτϥϕϧΛ ͚Δ୭͕ԿΛ͍ͬͯΔ͔ 8*1ϥϕϧΛ༻ҙͯ͠࡞ۀதͷ*TTVFTʹ͚ΔΑ͏ʹਐ
༨ஊɿ.JMFTUPOF *TTVFTɺ1VMM3FRVFTUʹ.JMFTUPOFΛઃఆ͢Δ͜ͱ͕ग़དྷΔ ৽ػೳ։ൃఆৗΠϕϯτͷ։ൃணख࣌ʹ.JMFTUPOFΛΔ ։ൃʹؔ࿈͢Δ*TTVFTͱ1VMM3FRVFTUΛͦͷ.JMFTUPOFʹඥ ͚Δ͜ͱͰɺ.JMFTUPOF͔Β࡞ۀ༰ΛѲ͢Δ͜ͱ͕ग़ དྷΔ ޙͰݟฦͨ࣌͠ͷ࡞ۀϩάʹͳΔ νʔϜʹ৽͍͠ਓ͕ೖ͖ͬͯͨ࣌ʹ৺ڧ͍
ϚΠϧετʔϯͰϑΟϧλ
λεΫཧͷ·ͱΊ *TTVFTͰλεΫΛཧ͢Δ͜ͱͰίʔυͱͷ࿈ܞ͕ औΓ͘͢ͳͬͯศར *TTVFTͰΓͳ͍ଞͷख๏πʔϧͰิ͏ඞཁ ͕͋Δ .JMFTUPOFΛదʹӡ༻͢Εڧྗͳࢿ࢈ʹͳΔ
"HFOEB (JU)VCͷ؆୯ͳհ (JU)VCͷྑ͞ ϨϏϡʔ λεΫཧ ଞπʔϧͱͷ࿈ܞ ಋೖ࣌ʹͬͨ͜ͱ ·ͱΊ
ଞπʔϧͱͷ࿈ܞ ͏ͪͷνʔϜͰ·ͩಋೖग़དྷͯͳ͍ͷͰ؆୯ͳհ͚ͩ 8FCIPPL (JU)VCͰͷΠϕϯτൃՐΛଞαʔϏεʹ௨ ௨ઌͱͯ͠(JU)VC͔ΒΞΫηεՄೳͳ63-Λ༻ҙ͢Δඞཁ͕͋Δ Πϕϯτͷछྨ 1VMM3FRVFTUΛ࡞ͨ͠ɺϚʔδͨ͠ *TTVFTΛཱͯͨɺΫϩʔζͨ͠ͳͲͳͲʜ 4FSWJDF)PPL طଘͷαʔϏε͚ͷ8FCIPPLɺྫ͑+FOLJOTͷHJUIVCQMVHJO͚ʹ௨ΛૹΔɺͳͲͷ
ઃఆΛߦ͏ࣄ͕ग़དྷΔ
࿈ܞྫ 1VMM3FRVFTUલʹςετΛճ͢ 1VMM3FRVFTUΛ࡞͞Εͨ͜ͱΛ+FOLJOTʹ௨ +FOLJOTͰϏϧυ Ϗϧυ݁ՌΛ1VMM3FRVFTUʹө $IBU0QT 4MBDL͔Β)VCPUܦ༝Ͱ1VMM3FRVFTUΛ࡞
"HFOEB (JU)VCͷ؆୯ͳհ (JU)VCͷྑ͞ ϨϏϡʔ λεΫཧ ଞπʔϧͱͷ࿈ܞ ಋೖ࣌ʹͬͨ͜ͱ ·ͱΊ
(JU)VCಋೖ࣌ ϝϯόʔͷεΩϧηοτ ݸਓͰ(JU(JU)VCΛ͍ͬͯͨ νʔϜ։ൃͰ(JUΛͬͨ͜ͱ͋Δ͕(JU)VCແ ͠ (JU(JU)VCڞʹͦΕ΄Ͳͬͨ͜ͱ͕ͳ͍
νʔϜ։ൃͰ(JU)VCΛͬͨ͜ ͱ͕͋Δϝϯόʔډͳ͔ͬͨ
(JU)VCʹ׳ΕΔͨΊʹ (JU)VCΒ͍͠։ൃϑϩʔͷపఈ طଘϓϩμΫτTWOͰNBTUFSϒϥϯνຊӡ༻ͩͬ ͨ 1VMM3FRVFTUۦಈ։ൃͷపఈ HJUqPXΛϕʔεʹͨ͠ϒϥϯνઓུͷపఈ
(JU)VCͰͷ։ൃͬͯ͜Μͳײ ͩ͡ͱ͍͏͜ͱΛਁಁͤ͞Δ
(JU)VCʹ͍ͭͯͷࣾษڧձνʔϜ.5( (JUࣗମෳࡶͳπʔϧͳͷͰඞཁͳػೳ͚ͩͭ·Έ৯͍͢ Δ ։ൃʹ͓͍ͯ࠷ݶඞཁͳϑϩʔΛυΩϡϝϯτԽͯ͠ڞ༗ ػೳ։ൃʙ1VMM3FRVFTUΛૹΔ·Ͱͷखॱ 2"ڥͷద༻खॱ HJUSFCBTFͱ͔HJUSFTFU͑Εศར͚ͩͲඞਢͰͳ ͍
͜Μͳ࣌Ͳ͏͢Εྑ͍ͷʁͱ͍͏͜ͱΛฉ͚Δͷେࣄ QVMMग़དྷͳ͍ʂ QVTIग़དྷͳ͍ʂ ίϯϑϦΫτͨ͠ʂ ৄ͍͠ਓ͕ਓ͍Δͱศར Ծʹৄ͍͠ਓ͕͍ͳͯ͘(JU)VCͷใάάΕ͍ ͘ΒͰ͋Δ
ͦΕͳΓʹ։ൃ͕ճΔΑ͏ ʹͳ͖ͬͯͨ
ίϛοτཻ 1VMM3FRVFTUཻ ϥϕϧͷӡ༻
νʔϜͷशख़ʹΑͬͯϑΥʔΧε ͢ΔϨΠϠΛม͑Δ
ಋೖ࣌ͷ·ͱΊ ͱΓ͋͑ͣ1VMM3FRVFTUۦಈ։ൃͱHJUqPXͰ(JU)VC ͷ։ൃʹ׳Ε͍ͯ͘ ԿͰฉ͚Δਓ͕͍Δɺฉ͚Δงғؾେࣄ νʔϜͷशख़ʹΑͬͯϑΥʔΧε͢ΔϨΠϠΛม͑ ͍ͯ͘
"HFOEB (JU)VCͷ؆୯ͳհ (JU)VCͷྑ͞ ϨϏϡʔ λεΫཧ ଞπʔϧͱͷ࿈ܞ ಋೖ࣌ʹͬͨ͜ͱ ·ͱΊ
·ͱΊ
ϨϏϡʔ 1VMM3FRVFTUͷϨϏϡʔ࠷ߴ ϥϕϧͰ1VMM3FRVFTUͷঢ়ଶΛՄࢹԽͯ͠ϨϏϡʔ Λଅਐ͢Δঢ়ଶΛ࡞Δ
λεΫཧ *TTVFT ΏΔ͍εΫϥϜ .JMFTUPOFΛͬͯޙ͔Βݕࡧ͘͢͠
ଞπʔϧͱͷ࿈ܞ ࣗಈԽΛଅਐ͢Δ༷ʑͳՄೳੑ͕͕Δ νʔϜͰऔΓೖΕ͍͖͍ͯͨʜʂ
ಋೖ࣌ νʔϜͷशख़ʹ߹Θͤͯɺ·ͣ࠷ݶඞཁͳͱ ͜Ζ͔Β࢝ΊΔ
0OFNPSFUIJOHʜ
(JU)VCΛಋೖ͢Εશ͕ͯ ϋοϐʔʹͳΔΘ͚Ͱͳ͍
(JU)VCΛಋೖͨ͜͠ͱʹΑΔग़ͯ͘Δ ৽͍͠ͷΛಋೖ͕ͯ͠ى͖ΔͱͦΕͷ͍ͤʹ͠ ͯ͠·͍͕ͪ ͕ى͖ͨΒ͖ͪΜͱ͖߹͍ରԠ͢Δ
ࢥߟఀࢭ͍͚ͯ͠ͳ͍
νʔϜͷशख़্͕͕Ε࠷దͳϑϩʔมΘͬͯ ͍͘ (JU)VCΛϕʔεʹͯ͠ΑΓΑΓ։ൃϑϩʔ
)BWFBRVFTUJPO