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
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
25
OpenCensusでcustom context propagationとexporterを書いた話 / OpenCensus with custom context propagation and exporter
takashabe
0
1.5k
pubsub with concurrent
takashabe
1
840
社内ISUCONを開催した話
takashabe
0
1.5k
ISUCON大反省会
takashabe
0
1.8k
gitのブランチ戦略
takashabe
8
5.7k
サルでもわかるgit
takashabe
0
1.3k
playで複数DBする
takashabe
0
1.6k
MySQLで高トラフィックに立ち向かう
takashabe
0
1.7k
Other Decks in Programming
See All in Programming
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
距離関数を極める! / SESSIONS 2024
gam0022
0
290
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
140
役立つログに取り組もう
irof
28
9.6k
flutterkaigi_2024.pdf
kyoheig3
0
150
RubyLSPのマルチバイト文字対応
notfounds
0
120
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
970
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
100
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
CSC509 Lecture 12
javiergs
PRO
0
160
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Why Our Code Smells
bkeepers
PRO
334
57k
Done Done
chrislema
181
16k
Side Projects
sachag
452
42k
Facilitating Awesome Meetings
lara
50
6.1k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
The Language of Interfaces
destraynor
154
24k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Making Projects Easy
brettharned
115
5.9k
How STYLIGHT went responsive
nonsquared
95
5.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
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