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
OSSに新機能を追加するまでの苦労話
Search
Masahiro331
December 01, 2022
0
180
OSSに新機能を追加するまでの苦労話
作成時間2時間の書き殴りパワポです
Masahiro331
December 01, 2022
Tweet
Share
More Decks by Masahiro331
See All by Masahiro331
Model Context Protocol 勉強会
masahiro331
0
42
Analyze Filesystem in Virtual Machine Image
masahiro331
0
170
SBOMを利用したソフトウェアサプライチェーンの保護
masahiro331
4
2.6k
Introduction Supply Chain Security
masahiro331
0
150
Container Security with Trivy
masahiro331
0
210
VirtualMachine Image scanning PoC with Molysis
masahiro331
0
160
Featured
See All Featured
BBQ
matthewcrist
89
9.8k
Designing for Performance
lara
610
69k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
It's Worth the Effort
3n
185
28k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Side Projects
sachag
455
43k
How STYLIGHT went responsive
nonsquared
100
5.7k
The Invisible Side of Design
smashingmag
301
51k
Six Lessons from altMBA
skipperchong
28
3.9k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
.BTBIJSP'VKJNVSB 044ʹ৽ػೳΛՃ͢Δ·Ͱͷ ۤ࿑
࠷ॳʹ w ͢Έ·ͤΜλΠτϧٗʹͳΓ·ͨ͠ɻ ʢ044ʹ৽ػೳΈ͍ͨͳநతͳͰͳ͘ී௨ʹԾϚγϯͷ੬ऑੑݕ Λ࣮͢Δۤ࿑ʹͳΓ·ͨ͠ɻʣ
֓ཁ w جૅ࣮ΛؚΊͯɺۤઅҎ্͔͚ͨػೳ͕ϦϦʔε͞ΕͨͷͰɺͦͷۤ࿑ ͱֶͼʹ͍ͭͯ͠·͢ɻ w લճͷࢿྉͱ͢͜͠ඃΔ෦͕͋Γ·͕͢ɺٕज़తͳ༨Γ͠·ͤΜ લճͷࢿྉ
͍͑ͨ͜ͱ օ༷ʹͱׂͬͯͱͨΓલͷ͜ͱͰ͕͢ʜ w ະͷϞϊΛ୳ࡧతʹཧղ͍ͯ͘͠ํ๏ w ༷ॻΛಡΈͳ͕Β࣮͢Δ͜ͱͷ͠͞ w طଘίʔυΛௐࠪ͠ཧղ͢Δ͜ͱͷॏཁੑ w ༗ࣝऀʹཔΔ͜ͱ
w ҰੜΘͳ͍ͱࢥ͕ͬͨࣝੜ͖Δࣄ
എܠ w ࡢɺ5SJWZʢ044ͷηΩϡϦςΟπʔϧʣʹ7.ͷ੬ऑੑݕΛՃͨ͠ w Ұࡢ4FD)BDLͱ͍͏औΓΈͰ্هͷجૅݚڀΛ͍ͯͨ͠
࡞ͬͨͷͷσϞ
None
େࣄͳͷͰΞʔΩςΫνϟ͚ͩషΔ ࠷ऴతͳΞʔΩςΫνϟ4FFLͰ࣮
ࠓͷ͓ͷྲྀΕ w ৽ػೳΛ࡞Δมભʹ͍ͭͯɺ͍͔ͭ͘ͷ࣌ظʹׂͯ͠͠·͢ w ͱʹ͔ͬͯ͘ΈΔظ w ఀظ w ໎ظ w
࡞ΓࠐΈظ
ͱʹ͔ͬͯ͘ΈΔظ w 4FD)BDLͱ͍͏ػձΛ࡞Γ࣮ʹྭΉ w ͬͨ͜ͱ w 7.%,ͷղੳ w .#3(15ͷղੳ w
&95ͷղੳ
7.%,ͷղੳ w ࣌ಡΜͩ͜ͱ͋Δ༷ॻͱ͍͑ɺΈΜͳେ͖3'$ w όΠφϦͳΜͯͷɺ΄΅ಡΜͩ͜ͱͳ͍ w ͱʹ͔༷͘ॻΛಡΈͭͭΤεύʔͰ࣮͍ͯͨ͠
7.%,ͷղੳʢֶͼʣ 3'$͔͠ಡΜͩ͜ͱͷͳ͍͕ظ͢Δ༷ॻ ͱʹ͔༷͘ॻʹॻ͍ͯͳ͍͜ͱ͕ଟ͍ ༷ॻ" ༷ॻ# લఏͱͳΔٕज़ લఏͱͳΔٕज़༻ޠʹΞΫηεͰ͖Δࣝͷ πϦʔ͕͋Δ
7.%,ͷղੳʢֶͼʣ 7.%,ͷ༷ॻ ͱʹ͔༷͘ॻʹॻ͍ͯͳ͍͜ͱ͕ଟ͍ ࣮ࡍʹඞཁͳࣝ ެ։͞Ε͍ͯΔ༷ॻ લఏͱͳΔٕज़༻ޠʹΞΫηεͰ͖ͳ͍ͨΊ ೝͰ͖ͳ͍ Ұൠతͳ༷ͷ߹ɺ҉తʹͳΓ͕ͪ
7.%,ͷղੳʢֶͼʣ ΤεύʔΫΠζʢޙ༷ॻΛΑ͘ಡΉͱॻ͍ͯͨলʣ (SBJO%JSFDUPSZͱݺΕΔ͜ͷόΠφϦྻԿΛද͍ͯ͠ΔͰ͠ΐ͏ʂ w(SBJOѹॖ͞Εͨσʔλͷஅย w(5&ͷαΠζݻఆͱ͢Δ Πϝʔδը૾
.#3(15ͷղੳ w 6&'*ͷ༷ॻʹ.#3(15पΓͷ࣮͕ॻ͔Ε͍ͯΔ w .#3ʹ࣮ؔͯ͠ຊޠͷ8JLJQFEJB͕͔ͳΓॆ࣮͍ͯ͠Δ ʢా͞Μຊޠͷํ͕Α͔ͬͨΒ͍͠ʣ w [͕.#3Λղౚ͢ΔίʔυΛ࣮͓ͯ͠ΓɺͦΕΒΛݩʹ࣮ͨ͠
.#3(15ͷղੳʢֶͼʣ w .#3ͷ༷ޙํޓੑΛอ֦ͪͭͭு͞Ε͍ͯΔ ॳظͷ.#3ͷ༷ ޓੑΛอͭ(15ͷ༷ ޙํޓੑΛอͭΑ͏ͳઃܭ͕ଟ͍ɺޓΛࣺͯΔ༐ؾ
&95ͷղੳ w ϑΝΠϧγεςϜԿΘ͔Βͳ͍ w ༷ॻΛಡΜͰ࣮͢Δ͜ͱʹ׳Εͯ͘Δ w όΠφϦσʔλΛಡΉ͜ͱʹ׳Εͯ͘Δ
&95ͷղੳʢֶͼʣ ݻఆͷςʔϒϧʢྻʣΠϯσοΫεʹҙຯΛ͕࣋ͨͤͪ ཧతͳσʔλ ࢀরςʔϒϧ ࢀর༻ͷςʔϒϧ ࢀরςʔϒϧ ࢀরςʔϒϧ Y$ ࢀরςʔϒϧͷςʔϒϧ Y'
Y Y ɾ ɾ ɾ ҙͷσʔλ *OEFYͷσʔλ൪ͷςʔϒϧΛࢀর
4FD)BDLͰͷൃද w ԾϚγϯΛಁաతʹɺετϦʔϜͰղੳͰ͖ΔΑ͏ʹ։ൃͨ͠
ఀظ ͜ͷ࣌ظଞͷػೳΛ࡞Δͷʹͯ͘͠Β͘৮ͬͯͳ͔ͬͨ ͱʹ͔͕࣌ؒ͋͘Δ࣌ʹطଘͷίʔυΛಡΜͰ͍ͨɻ w ͬͨ͜ͱ w 7.%,ͷόάऔΓ w [RFNVͷ࣮ΛಡΉ
w ผͷλεΫͰ31.%#ͷιʔείʔυΛಡΉ IUUQTNBTBIJSPIBUFOBCMPHDPNFOUSZ
໎ظ ͱʹ͔͘ඞཁͳϑΥʔϚοτʹख͋ͨΓ࣍ୈɺύʔαΛ࣮͍ͯͨ͠ w ͬͨ͜ͱ w 9'4ͷղੳ w -7.ͷղੳ w 7)%9ͷղੳ
9'4ͷղੳ w ϑΝΠϧγεςϜ͕͔ͳΓΘ͔͖ͬͯͨ w ༷ॻΛಡΉ͜ͱʹͳΕͯ͘Δ w -JOVYͷιʔείʔυͱ͍͏ϧτϥ$ʹग़ձ͏ w ஏ͔͕ͣ͠Βͣʹ༗ࣝऀʹฉ͖ʹߦ͘
9'4ͷղੳʢֶͼʣ Θ͔Βͳͯ͘طଘͷιʔείʔυΛಡΉ͜ͱ w ίʔυ͕ཧղͰ͖ ͳͯ͘งғؾͰΑ͍
9'4ͷղੳʢֶͼʣ Θ͔Βͳͯ͘طଘͷιʔείʔυΛಡΉ͜ͱ w ίʔυ͕ཧղͰ͖ ͳͯ͘งғؾͰΑ͍ w ༷ॻʹͳ͍࣮ͷ ͕ίϝϯτʹ͋Δ
9'4ͷղੳʢֶͼʣ Θ͔Βͳͯ͘طଘͷιʔείʔυΛಡΉ͜ͱ w ίʔυ͕ཧղͰ͖ͳ ͯ͘งғؾͰΑ͍ w ༷ॻʹͳ͍࣮ͷ͕ ίϝϯτʹ͋Δ w ͱ͍͏͔༷ॻ͕ݹ͍͜ͱ
͋Δ ʢॻ͍ͯͳ͍ߏମ͋Δʣ
9'4ͷղੳʢֶͼʣ ͱΓ͋͑ͣֆΛॻ͍ͯΈΔ
9'4ͷղੳʢֶͼʣ ༗ࣝऀʹͱʹ͔͘ฉ͖ʹߦ͘ w ࣮ฉ͖ʹߦͬͨΒࡶʹͰฦͯ͘͠ΕΔ
-7.ͷղੳ w ༷ॻΛಡΜͰύʔαΛॻ͘ͷே൧લʹͳΔ w ಠࣗDPO fi HͷύʔαΛॻ͘ͷʹۤ࿑͢Δ w (PMBOHͰֶͿΠϯλϓϦϯλͷ͓͔͛ͰͳΜͱ͔ͳͬͨ
-7.ͷղੳʢֶͼʣ ҰੜΘͳ͍ͱࢥͬͨࣝΛ͏ w ษڧ༻ʹಡΜͩ(PMBOHͰ࡞ΔΠϯλϓϦϯλ ͷ͓͔͛ͰߏจղੳثΛ࡞ͬͯύʔεͰ͖ͨ
7)%9ͷղੳ w .4ͷ༷ॻ͔ͬ͠Γॻ͔Ε͍ͯΔͳͱ͍͏ײಈ w ԾσΟεΫͱ͍͏ͷ͕ཧղͰ͖͍ͯͨͷͰͰऴΘͬͨ
ϦϦʔεظ ϦϦʔεʹ͚ͯɺఀظʹ͑ͨࣝͱɺ໎ظʹ͞·͟·ͳυϝΠϯͷ࣮Λ ͨ͠ݟΛݩʹ͜Ε·Ͱ࣮ͨ͠ϥΠϒϥϦͷΞʔΩςΫνϟΛݟ͠ॻ͖ͨ͠ w ͬͨ͜ͱ w ΞʔΩςΫνϟͷશ໘తͳमਖ਼ w આ໌༻ͷυΩϡϝϯτΛ࡞ w
ӡ༻໘Ͱͷ࣮ w ςετͷ࡞ w ".*ͷղੳ
ΞʔΩςΫνϟͷશ໘తͳमਖ਼ w RFNVͰԾϚγϯΠϝʔδΛม͢ΔॲཧͷΞʔΩςΫνϟΛࢀߟʹ࣮
ΞʔΩςΫνϟͷશ໘తͳमਖ਼ w ετϦʔϜͰ࣮ͨ͠ͷΛ4FFLʹมߋ
ΞʔΩςΫνϟͷશ໘తͳमਖ਼ աڈͷࢿ࢈ʹनΘΕࣺͣͯΔ༐ؾ͕ඞཁ
".*ͷղੳ w ా͞Μ͔ΒͷεΩϟϯ͍ͨ͠ͳʔͱ͍͏͕͘Δ w ௐࠪˠؚ࣮Ίͯ࣌ؒͰɺ΄΅΄΅ͨ͠ w ΞʔΩςΫνϟΛݟ͓͔ͨ͛͠ʂ
આ໌༻ͷυΩϡϝϯτΛ࡞ w "RVBͷઆ໌༻ͷࢿྉΛ࡞ ࣮ࡍʹಡ·Ε͔ͨෆ໌ w *TTVFͰٞͰ͖Δೳྗ͕ͳ͍ ͷͰɺͱΓ͋͑ͣॻ͍ͨ
ӡ༻໘Ͱͷ࣮ w ΫϥΠΞϯτΞϓϦͷͨΊϢʔβ͔Βͷ*TTVFͰௐࠪͰ͖ΔΑ͏ʹݕ౼ w 5SJWZͰEFCVHϩάͱͯ͠JOPEFͷใͳͲΛग़ྗ͢Δ༷ʹ࣮ w 5SFOE.JDSPͳͲͰɺݕূ༻ͷπʔϧΛผ్։ൃ͠ఏڙ͍ͯ͠ΔΒ͍͠ ଟͷϨΠϠʔͰΤϥʔ͕ఆ͞ΕΔͨΊɺ*TTVFରԠ͕ࠈͱͳΓ͏Δ
ςετͷ࡞ w ϑΝΠϧγεςϜͷςετͲ͏ॻ͘Μͩͱ͍͏Έ w ԾϚγϯͷςετͲ͏ॻ͘Μͩͱ͍͏Έ
ϑΝΠϧγεςϜͷςετ w ੲձ͔ࣾΒͬͨ࡞ֶͬͯͿ04ຊʹϒϩοΫσόΠεʹ͍ͭͯॻ͍ͯ͋ͬͨ ͜ͱΛࢥ͍ग़͢ w ࠷খͷϒϩοΫσόΠεΛ࡞͠ςετσʔλΛ࡞
ԾϚγϯͷςετ w ԾϚγϯΠϝʔδΛ*B$ͱͯ͠એݴͰ͖Δ1BDLFSΛར༻ w $*্Ͱ࡞ͨ͠*NBHFΛ༻͍ͯςετ͢ΔΑ͏ʹઃܭ
ϦϦʔε
֤࣌ظΛৼΓฦΔͱ w ͱʹ͔ͬͯ͘ΈΔظ ΞʔΩςΫνϟʹनΘΕͣɺະͷϞϊΛཧղ͢Δ͜ͱʹΊͨ w ఀظ खΛࢭΊͯɺಘͨࣝΛͱʹ͞Βʹֶश͢Δ͜ͱͰࣝͷπϦʔΛ࡞ͬͨ w
໎ظ ࣅ༷ͨͳଞͷϞϊʹ৮ΕͯɺநతͳཧղΛৢͤͨ͞ w ࡞ΓࠐΈظ ઓୂγϦʔζ૯ू߹తͳΠϝʔδͰશͯΛ૯ಈһͯ͠࡞Γͨ͠
֤࣌ظΛৼΓฦΔͱ w ͱʹ͔ͬͯ͘ΈΔظ ΞʔΩςΫνϟʹनΘΕͣɺະͷϞϊΛཧղ͢Δ͜ͱʹΊͨ w ఀظ खΛࢭΊͯɺಘͨࣝΛͱʹ͞Βʹֶश͢Δ͜ͱͰࣝͷπϦʔΛ࡞ͬͨ w
໎ظ ࣅ༷ͨͳଞͷϞϊʹ৮ΕͯɺநతͳཧղΛৢͤͨ͞ w ࡞ΓࠐΈظ ઓୂγϦʔζ૯ू߹తͳΠϝʔδͰશͯΛ૯ಈһͯ͠࡞Γͨ͠ ະͷϞϊʹ͔͏ਓ͜͏͍͏ਐΈํͳͷͰͱ͍͏ֶͼ
ͦͷଞͷֶͼ ɾ༷ॻΛಡΈͳ͕Β࣮͢Δ͜ͱ ༷ॻ͢Δ͜ͱ͋Δɺ͋͘·Ͱ֓ཁཧղͷॿ͚ʹͳΔ ɾطଘͷίʔυͷॏཁੑ ࢥΘ͵πʔϧػೳʹӅΕͨػೳ͕ೖ͍ͬͯΔ͜ͱ͋Δɻ ීஈ͔ΒOSSϓϩάϥϜͷίʔυΛಡΉͷΓ͍͍͜ͱͩͳͱࢥ͍·ͨ͠ɻ ɾ༗ࣝऀͷ૬ஊ ͏ຊʹΘ͔Βͳ͔ͬͨΒɺ୭͜ΕߏΘͣ࿈བྷͯ͠ΈΔͷΓ͍͍ ɾҰੜΘͳ͍ͩΖ͏ͳͱ͍͏͕ࣝੜ͖Δࣄ͋Δ ͖ͬΓݴͬͯࠓճͷ࣮ͰಘֶͨͼҰੜΘͳ͍ͩΖ͏ͱࢥͬͯΔ
༷ॻͷ͢͢Ί w J1BE͕͓͢͢ΊͰ͢ɻ1%'ʹͦͷ··ॻ͖ࠐΊͨΓɺϊʔτͬͨΓ