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
エンジニアから見た出版社との共同開発の暮らし / Hatena Engineer Semina...
Search
Mikio Fujita
February 05, 2020
0
2.3k
エンジニアから見た出版社との共同開発の暮らし / Hatena Engineer Seminar #13
Hatena Engineer Seminar #13 でお話した資料です
https://hatena.connpass.com/event/164042/
Mikio Fujita
February 05, 2020
Tweet
Share
More Decks by Mikio Fujita
See All by Mikio Fujita
社内にアクセシビリティ改善を広める際に意識したこと
benevolent0505
0
770
GraphQLを使い続けて気づいたこと ~Hatena Engineer Seminar #21~
benevolent0505
3
2.4k
マンガチームとDevOps / Hatena Engineer Seminar #11
benevolent0505
0
980
授業でWebアプリを作っている?話
benevolent0505
0
920
日曜日といったら
benevolent0505
1
130
朝起きる
benevolent0505
1
83
休講
benevolent0505
0
1.2k
◯◯駆動開発
benevolent0505
0
170
WebRTCで絵チャットを作った話し
benevolent0505
0
780
Featured
See All Featured
Code Review Best Practice
trishagee
65
17k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
BBQ
matthewcrist
85
9.4k
Done Done
chrislema
182
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
A Tale of Four Properties
chriscoyier
157
23k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Scaling GitHub
holman
459
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
A better future with KSS
kneath
238
17k
Why Our Code Smells
bkeepers
PRO
335
57k
Transcript
ΤϯδχΞ͔Βݟͨग़൛ࣾͱͷ ڞಉ։ൃͷΒ͠ JENJLJ@CFOF )BUFOB&OHJOFFS4FNJOBS 1
ࣗݾհ w JENJLJ@CFOF w 8FCΞϓϦέʔγϣϯΤϯδχΞ w αʔόʔαΠυɾϑϩϯτΤϯυ྆ํ w νʔϜวྺ w
৽ଔೖࣾ w ʙதࠒϚϯΨνʔϜ (JHB7JFXFS w தࠒʙϊϕϧνʔϜ ΧΫϤϜ w ࠓݱࡏॴଐ͍ͯ͠ΔΧΫϤϜʹ͍ͭͯͷΛ͠·͢ 2
3
ΧΫϤϜ w ,"%0,"8"͞ΜͱͯͳͰڞಉ։ൃ͍ͯ͠Δ8FCখઆαΠτ w αΠτػೳͱͯ͠খઆߘॎΈରԠࠂऩӹؐݩ w ॻ੶ԽΞχϝɾυϥϚԽ͞ΕΔ࡞ଟ w Πϯλʔωοτ4/4ͷจ຺ͩͱʰԣӺ4'ʱʰ৻ॏ༐ ऀʱͱ͍ͬͨ࡞͕༗໊
4
ʙڞಉ։ൃͷΒ͠ʙ 5 ࠓ͓͢Δ͜ͱ ͚ࣗࣾͩͰͳ͍ɺଞͷձࣾ͞ΜͱҰॹʹ 8FCαʔϏεͷ։ൃΛ͍ͬͯΔ༷ࢠΛ͝հ͠·͢
ʙڞಉ։ൃͷΒ͠ʙ 6 ࠓ͓͢Δ͜ͱ ˞۩ମతͳํ๏νʔϜ։ൃͷମ੍ͳͲ ͓͠͠·ͤΜ
͜ͷΛ͠Α͏ͱࢥͬͨཧ༝ w ͋·ΓࣗࣾαʔϏεҎ֎Λߦ͍ͬͯΔ͜ͱΛΒΕ͍ͯͳ͍ w ʮͯͳͬͯϒϩά.BDLFSFMҎ֎ʹͬͯͨΜͰ͢Ͷʯ w ʮडୗ։ൃͬͯΔΜͰ͢Ͷʯ w ʮ͜ͷαΠτͯͳͩͬͨΜͩʯ w
ͬͱଞࣾ͞ΜͱҰॹʹαʔϏεΛ࡞͍ͬͯΔνʔϜ͔Βͷൃ ৴Λ૿͍͖͍ͯͨ͠ 7
͜ͷΛ͠Α͏ͱࢥͬͨཧ༝ w ࠓճͷηϛφʔͷςʔϚ w ʮࠓճͯͳͰಇ͘एखΤϯδχΞ͕Ͳ͏͍͏ࣄΛ͍ͯ͠Δ ͔ʯ w ͯͳͷडୗɾڞಉ։ൃͷ༷ࢠΛ͑ΔΑ͍ػձ w ೖࣾҎདྷɺଞࣾ͞ΜͱࣄΛ͢ΔνʔϜʹܞ͖ͬͯͨઢ͔Βͷɺ
ΤϯδχΞͷ༷ࢠΛ͍͑ͨ 8
վΊͯ ࠓ͓͢Δ͜ͱʙڞಉ։ൃͷΒ͠ʙ wΧΫϤϜͷڞಉ։ൃελΠϧ wΤϯδχΞ͔Βݟͨڞಉ։ൃ wࣗࣾαʔϏεͷ։ൃͱൺֱͯ͠Έͨײ 9
খωλ λΠτϧʹ͋ΔʮΒ͠ʯ wࣾͰ࣌ʑݟΒΕΔۀੜ׆ࣄͷ༷ࢠΛද͢දݱ w༻๏ʮ(SBQI2-"1*Λಋೖ͓ͨ͠ӄͰΒ͕͠ྑ͘ ͳ͖ͬͯͨʯ 10
ΧΫϤϜͷڞಉ։ൃελΠϧ 11
ΧΫϤϜͷڞಉ։ൃελΠϧ 12 ,"%0,"8" ͯͳ ϊϕϧνʔϜ σΟϨΫλʔ σβΠφʔ ΤϯδχΞ ొਓհ ΧΫϤϜฤू෦
˞ࠓͷൃදΛΘ͔Γ͘͢͢ΔͨΊͷ؆қͷମ੍ਤͰ͢
ͯͳ ϊϕϧνʔϜ σΟϨΫλʔ σβΠφʔ ΤϯδχΞ ΧΫϤϜͷڞಉ։ൃελΠϧ 13 w ΧΫϤϜͰ࣮ݱ͍ͨ͠8FCখઆͷϏδϣϯ w
Ϗδωεతͳઓུ w αʔϏεతͳӡ༻ ϒϩάӡ༻ͳͲ ,"%0,"8" ΧΫϤϜฤू෦ ΧΫϤϜฤू෦
,"%0,"8" ΧΫϤϜฤू෦ ΧΫϤϜͷڞಉ։ൃελΠϧ 14 w ΧΫϤϜΛ։ൃɾӡ༻͢ΔνʔϜ w σΟϨΫλʔαʔϏεͷΦʔφʔ w σβΠφʔɾΤϯδχΞαʔϏεΛ࡞Δ
ͯͳ ϊϕϧνʔϜ σΟϨΫλʔ σβΠφʔ ΤϯδχΞ ϊϕϧνʔϜ 14
ݴΘΕͨͷΛͨͩ࡞Δ͚ͩͰͳ͘ ͯͳҰॹʹԿΛ࡞Δ͔ߟ͑Δ 15 ΧΫϤϜͷڞಉ։ൃελΠϧ
ΧΫϤϜͷڞಉ։ൃελΠϧ 16 ʮݴΘΕͨͷΛ࡞ΔͷͰͳ͘ɺԿΛ࡞Δ͔ΛҰॹʹߟ͑Δʯ ,"%0,"8" ͯͳ ϊϕϧνʔϜ σΟϨΫλʔ σβΠφʔ ΤϯδχΞ ΧΫϤϜฤू෦
͚ͩͰͳ͘
ΧΫϤϜͷڞಉ։ൃελΠϧ 17 ʮݴΘΕͨͷΛ࡞ΔͷͰͳ͘ɺԿΛ࡞Δ͔ΛҰॹʹߟ͑Δʯ ,"%0,"8" ͯͳ ϊϕϧνʔϜ σΟϨΫλʔ σβΠφʔ ΤϯδχΞ ΧΫϤϜฤू෦
ͯͳҰॹʹߟ͑Δ
ΧΫϤϜͷڞಉ։ൃελΠϧ w ΧΫϤϜͰ࣮ݱ͍ͨ͠ϏδϣϯɾઓུΧΫϤϜฤू෦͕͍ͬͯΔ w ࢪࡦɾػೳݕ౼ͰΧΫϤϜฤू෦ͱɺͯͳͷ%ͳͲ͕Ұॹʹߟ͑Δ w ઓུɾํੑͯͳ͔ΒఏҊ͢Δ͜ͱ͋Δ w ͜Ε·Ͱͷ8FCαʔϏεӡӦͷݟΛ׆͔ͯ͠ 18
ʮݴΘΕͨͷΛ࡞ΔͷͰͳ͘ɺԿΛ࡞Δ͔ΛҰॹʹߟ͑Δʯ
ΧΫϤϜͷڞಉ։ൃελΠϧ w ϦϦʔεॳͷͰ͋Γ·͕͢ɺ ͪ͜Βซͤͯ͝ཡ͍͚ͨͩͨΒ w ʮΧΫϤϜͷ։ൃൿͯͳº,"%0,"8"͕ޠΔʯ w IUUQTIBUFOBDPSQKQSFDSVJUJOUFSWJFXLBLVZPNV 19
ΤϯδχΞ͔Βݟͨڞಉ։ൃ 20
wΤϯδχΞೲಘײΛ࣋ͬͯ։ൃʹऔΓΊ͍ͯΔ wαʔϏεΛࣗͷ͜ͱͱͯ͠ଊ͑ΒΕ͍ͯΔ 21 ಛʹݴ͍͍ͨͷ͜ͷ
w ฤू෦ͷϏδϣϯઓུΛ͔ͬ͠Γઆ໌ͯ͠Β͍͑ͯΔͷͰ ೲಘײΛ͍࣋ͯͯΔ w ػೳ։ൃʹ͍ͭͯͯͳͷ%ͳͲ͔ΒఏҊ͍ͯ͠ΔͷͰ ؾܰʹ࣭Λ͛ΒΕΔ 22 ΤϯδχΞೲಘײΛ࣋ͬͯ։ൃʹྟΊ͍ͯΔ
αʔϏεΛࣗͷ͜ͱͱͯ͠ଊ͑ΒΕ͍ͯΔ w ΤϯδχΞಉ༷ʹαʔϏεʹରͯ͠ϑΟʔυόοΫΛ͢Δ w ։ൃʹೲಘͰ͖͍ͯΔͨΊ w ػೳͷఆٛ6*ɾ69ͷઃܭ࣮ͯͳͷࣄͳͷͰɺͦ͜ʹ ରͯ͠ΤϯδχΞఏҊग़དྷΔ w ৽ػೳΛ࣮͢Δͱ͖ʹʮ͜͏ͨ͠ํ͕Ϣʔβخ͍͠Μ
͡Όͳ͍ͩΖ͏͔ʯͳͲݴͬͨΓ͍ͯ͠Δ 23
ΤϯδχΞ͔ΒαʔϏεʹରͯ͠ͷ'#ྫ wߦ͖ಧ͍͍ͯͳ͍͓Βͤͷܝࡌվળ wσβΠϯϞοΫΛݟΔձ 24
ΤϯδχΞ͔ΒαʔϏεʹରͯ͠ͷ'#ྫ wߦ͖ಧ͍͍ͯͳ͍͓Βͤͷܝࡌվળ wσβΠϯϞοΫΛݟΔձ 25
ߦ͖ಧ͍͍ͯͳ͍͓Βͤͷܝࡌվળ 26 https://kakuyomu.jp/info/entry/kakuyomu_reward_1st w ࠂऩӹͷϢʔβؐݩʹؔ͢ΔࠂΛԿ ͔ϒϩάʹܝࡌ͍ͯͨ͠ w 4/4Ͱࠂྲྀ͍ͯͨ͠ w ͕ɺಧ͍͍ͯͳ͍Ϣʔβ͞Μଟ͍ҹ
ͩͬͨ
ߦ͖ಧ͍͍ͯͳ͍͓Βͤͷܝࡌվળ w ͦ͜Ͱීஈܝࡌ͕ແ͍͕ɺݟ͍͑͢ ҐஔʹಋઢΛઃஔͯ͠ΈͯͱఏҊ w ฤू෦ͷํ%ͷԠΑ͔ͬͨͷͰ ͦͷ··ઃஔ͢Δ͜ͱʹ w δϟετΞΠσΞ͕ͩͬͨ ࣗͷఏҊ͕αʔϏεʹߩݙͰ͖ͨ
27
4MBDLͰͱΜͱΜഥࢠʹ͕ਐΉ༷ࢠ 28 ͯͳ4MBDLʹͯ
4MBDLͰͱΜͱΜഥࢠʹ͕ਐΉ༷ࢠ 29 ΧΫϤϜ4MBDLʹͯ ఏҊ͔ΒਐΊΔ͜ͱͷܾఆ·ͰΘ͔ͣ
ͳͥ͜͜·ͰരͰʁ w ػೳΛग़ͨ͠ΓࠂΛग़͢͜ͱʹؔ͢Δ૬ஊΛ͍ͯͨ͠λΠϛϯάͩͬͨ w ؔऀͷϑοτϫʔΫͷܰ͞ w ྆ࣾͷϝϯόʔ͕ಉ͡4MBDLͷϫʔΫεϖʔεʹೖ͍ͬͯͨ w ͕ࣗࠂɺࠂͷਁಁ۩߹ʹ͍ͭͯΕͨ 30
ΤϯδχΞ͔ΒαʔϏεʹରͯ͠ͷ'#ྫ wߦ͖ಧ͍͍ͯͳ͍͓Βͤͷܝࡌվળ wσβΠϯϞοΫΛݟΔձ 31
σβΠϯϞοΫݟΔձ w σβΠϯϞοΫΛݟͳ͕Βɺදࣔཁૉදࣔͷํʹ͍ͭͯΤϯ δχΞɾσβΠφͰձ w ٕज़తͳ࣮ݱՄೳੑͬ͘͟Γͨ͠ݟੵΓײΛڞ༗ w ࡞ΔͷͷΠϝʔδΛἧ͑ΔͱڞʹɺΤϯδχΞઢͰ'#Λ͢Δ 32
σβΠϯϞοΫݟΔձ 33 w ʮ͜ͷ17ͷݟͤํطଘͷσʔλΛՃ͢Ε࡞Ͱ͖ΔͷͰ࣮ ݱՄೳͰ͢ʯ w ʮ͜ͷ6*Λ࣮͢ΔͷʹY͔͔Γ·͕͢ɺ͔͚Δ࣌ؒͷׂʹϢʔ βʹͱͬͯϝϦοτগͳ͍͔ ʯ w
ʮ͜ΕΧοίΠΠͰ͢Ͷʂʯ
σβΠϯϞοΫݟΔձ w ʮ͜ͷ17ͷݟͤํطଘͷσʔλΛՃ͢Ε࡞Ͱ͖ΔͷͰ࣮ݱՄೳͰ͢ʯ w વ࣮ݱՄೳੑʹ͍ͭͯٞ͢Δ w ʮ͜ͷ6*Λ࣮͢ΔͷʹY͔͔Γ·͕͢ɺ͔͚Δ࣌ؒͷׂʹϢʔβʹͱͬͯϝ Ϧοτগͳ͍͔ ʯ w
ग़དྷΔ͔Ͳ͏͔͚ͩͰͳ͘ɺϢʔβͷϝϦοτσϝϦοτߟ͑Δ w ʮ͜ΕΧοίΠΠͰ͢Ͷʂʯ w ྑ͍σβΠϯ๙ΊΔ 34
ٕज़తͳ੍ͱ࣮ݱ͍ͨ͜͠ͱͷ伱ؒΛఏҊ͢Δ w ͕ࣗఏҊ'#ͷࡍʹߟ͍͑ͯΔ͜ͱ w ฤू෦ͷํσβΠφʔͷ࣮ݱ͍ͨ͜͠ͱग़དྷΔ͚࣮ͩݱ͍ͨ͠ w ͔࣌ؒ͠͠༗ݶͰɺ࣌ʹٕज़త੍͕นʹͳͬͯ͠·͏໘ ͋Δʜʜ w ͜͏͍͏໘Ͱٕज़తͳ੍ͱ࣮ݱ͍ͨ͜͠ͱΛཧղͭͭ͠ɺͲ͏
ʹ͔࣮ݱͰ͖ΔఏҊ͕ग़དྷͳ͍͔Λࢼߦࡨޡ͢Δ 35
͜͏͍͖͍ͯͨ͠ w ฤू෦ͷํͱΤϯδχΞͷؒͰࡶஊͳͲͷίϛϡχέʔγϣϯ Λ૿ͤΔͱ໘ന͍ͷͰ w ΧΫϤϜฤू෦ͱͯͳͷσΟϨΫλʔؒͰिʹఆྫΛ ߦ͍ͬͯΔ͕ɺΤϯδχΞ͕إΛ߹ͤΔػձগͳ͍ w ڞ௨ͷ4MBDLϫʔΫεϖʔεଘࡏ͢Δͷͷʜʜ w
Ҏલର໘ͰձΛ͢Δػձ͕͋ΓɺҎདྷҰॹʹࣄΛ͢Δਓͷ ਓͱͳΓΛΔͷେͩͳͱײ͍ͯ͡Δ 36
ࣗࣾαʔϏεͷ։ൃελΠϧͱ ൺֱͯ͠Έͯ 37
ࣗࣾαʔϏεͷ։ൃελΠϧͱͷҧ͍ w গͳ͘ͱΤϯδχΞͷϨϕϧͰແ͍ͱײ͍ͯ͡Δ w ͯͳͷΤϯδχΞʹ Ϣʔβʔʹରͯ͠ՁΛఏڙ͢Δ͕࢟ٻΊΒΕ͍ͯΔ w ͜ͷʹؔͯࣾ͠ɾڞಉ։ൃͰҧ͍ແ͍ͱࢥ͏ 38 ࣗࣾαʔϏεΛ։ൃ͢ΔࡍͷελΠϧ࢟ʹ
ҧ͍ແ͍ͱߟ͍͑ͯΔ
ڞಉ։ൃͰྑ͍ͳͱࢥ͍͑ͯΔ͜ͱ w ΧΫϤϜฤू෦ͷํୡখઆจԽɾ׆ࣈจԽʹ͘͢͝ҙͷ͋Δํୡ w ग़൛ࣾͰͳ͍ɺͯͳ͚ͩͰ࣋ͪͮΒ͍ྔ w ҙΛ࣋ͬͨਓୡͱࣄΛ͢Δͷָ͍͠͠ɺΧΫϤϜͰ࣮ݱ͍ͨ͠ ͜ͱΛ࣮ݱ͍ͤͯ͋͛ͨ͞ͱ͍͏ؾ࣋ͪʹͳΔ 39 ͯͳ͚ͩͰग़དྷͳ͍͜ͱ͕ग़དྷΔ
·ͱΊ w ΧΫϤϜʹ͓͚Δڞಉ։ൃͷΒ͠ʹ͍ͭͯհ w ΤϯδχΞઢͰɺࣗࣾαʔϏεͷ։ൃελΠϧͱมΘΔͱ͜Ζ ແ͘ɺࣗͷ͜ͱͱͯ͠ଊ͑ΔҙࣝΛ࣋ͬͯؔΘ͍ͬͯΔ w Ή͠Ζ͚ࣗࣾͩͰग़དྷͳ͍͜ͱΛҰॹʹ࣮ݱͰ͖ΔͷͰେม໘ന ͍ࣄ 40