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
ソフトウェア開発とコミュニケーション / Communication in Software ...
Search
Junichi Kobayashi
September 18, 2021
Programming
0
1.2k
ソフトウェア開発とコミュニケーション / Communication in Software Development
Junichi Kobayashi
September 18, 2021
Tweet
Share
More Decks by Junichi Kobayashi
See All by Junichi Kobayashi
LR で JSON パーサーを作る / Coding LR JSON Parser
junk0612
2
440
「ナントカLR」を整理する / Clarifying LR Algorithms
junk0612
1
360
From LALR to IELR: A Lrama's Next Step
junk0612
2
3.5k
RubyConf Taiwan / Understanding Parser Generators surrounding Ruby with Contributing Lrama
junk0612
1
4.8k
LL法とLR法の違いは?調べてみた!-完全版-/Comparing LL and LR parse algorithm -EX Edition-
junk0612
0
500
ESM Super LT/Comparing LL and LR parse algorithm
junk0612
1
100
Lrama へのコントリビューションを通して学ぶ Ruby のパーサジェネレータ事情
junk0612
4
5k
アジャイルという「マインドセット」 / Mindset named Agile
junk0612
0
900
Rails × パターン / Rails meets Patterns
junk0612
3
2.4k
Other Decks in Programming
See All in Programming
データサイエンスのフルサイクル開発を実現する機械学習パイプライン
xcnkx
2
510
Vue :: Better Testing 2024
up1
1
410
RDBの世界をぬりかえていくモデルグラフDB〜truncus graphによるモデルファースト開発〜
jurabi
0
170
Cloud Adoption Framework にみる組織とクラウド導入戦略
tomokusaba
2
570
Memory API: Patterns, Use Cases, and Performance
josepaumard
1
180
Unlocking Python's Core Magic
leew
0
130
sqlcを利用してsqlに型付けを
kamiyam
0
240
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
0
170
XP2024 っていう国際会議に行ってきたよの記
bonotake
4
240
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
12
1.6k
"noncopyable types" の使いどころについて考えてみた
andpad
0
160
Modern Functional Fluent CFML REST by Luis Majano
ortus24
0
140
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
240
How GitHub (no longer) Works
holman
311
140k
How GitHub Uses GitHub to Build GitHub
holman
473
290k
GitHub's CSS Performance
jonrohan
1030
450k
How To Stay Up To Date on Web Technology
chriscoyier
787
250k
How STYLIGHT went responsive
nonsquared
95
5.1k
Become a Pro
speakerdeck
PRO
24
4.9k
Six Lessons from altMBA
skipperchong
26
3.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Transcript
ιϑτΣΞ։ൃͱ ίϛϡχέʔγϣϯ גࣜձࣾӬγεςϜϚωδϝϯτΞδϟΠϧࣄۀ෦ খྛ७Ұ !KVOL 91ࡇΓ POMJOF 4BU
খྛ७Ұ !KVOL
ࣗݾհ • খྛ७Ұ !KVOL • גࣜձࣾӬγεςϜϚωδϝϯτ ‣ ΞδϟΠϧࣄۀ෦3VCZº"HJMFάϧʔϓॴଐ •
ԻήʔϚʔɺϘʔυήʔϚʔ ‣ ͖ͳۂ%FTUJOZ4XPSE **%9 ‣ ͖ͳϘʔυήʔϜ4DZUIFେחઓ
None
None
࠷ॳʹ͓Θͼ
ιϑτΣΞ։ൃͱίϛϡχέʔγϣϯ • ༰͕ܾ·Γ͖ͬͯͳ͔ͬͨͷͰλΠτϧ͕େ͛͞ʹͳΓ·ͨ͠ • ࣗͷܦݧ͔ΒΛ͢ΔͷͰɺΞδϟΠϧ ಛʹ91 ʹݶͬͨ ʹͳΓ·͢ • ΥʔλʔϑΥʔϧܕͷେن։ൃͰΤοηϯε
͓࣋ͪؼΓ͍͚ͨͩΔͱࢥ͍·͕͢ʜʜ
ؾΛऔΓͯ͠
ιϑτΣΞ։ൃͱ ίϛϡχέʔγϣϯ גࣜձࣾӬγεςϜϚωδϝϯτΞδϟΠϧࣄۀ෦ খྛ७Ұ !KVOL 91ࡇΓ POMJOF 4BU 91ͳ
͓͠ͳ͕͖ • 91ʹ͓͚Δίϛϡχέʔγϣϯͱ • ࣮ࡍͷ։ൃͰֶΜͩίϛϡχέʔγϣϯͷॏཁੑ ‣ ্ख͍ͬͨ͘ࣄྫɾࣦഊͨ͠ࣄྫ • 91ͷϓϥΫςΟεΛίϛϡχέʔγϣϯͷࢹͰݟΔ
91ʹ͓͚Δ ίϛϡχέʔγϣϯͱ
ίϛϡχέʔγϣϯͷҐஔ͚ͮ • 91ͰʮՁʯͷҰͭ ‣ ίϛϡχέʔγϣϯ ‣ γϯϓϦγςΟ ‣ ϑΟʔυόοΫ ‣
༐ؾ ‣ ϦεϖΫτ
ίϛϡχέʔγϣϯͷҐஔ͚ͮ • ʮνʔϜʹΑΔιϑτΣΞ։ൃͰͬͱॏཁͳͷɺ ίϛϡχέʔγϣϯͰ͋Δɻʯ ‣ ʰΤΫετϦʔϜϓϩάϥϛϯάʱୈষQ • ଞͷՁͱີʹؔΘΔ ‣ ʮϑΟʔυόοΫίϛϡχέʔγϣϯʹ͔ܽͤͳ͍ʯ
‣ ʮ༐ؾΛ࣋ͬͯਅ࣮ΛޠΕɺίϛϡχέʔγϣϯ৴པ͕ ڧԽ͞ΕΔʯ
ίϛϡχέʔγϣϯͷޮՌ • ιϑτΣΞ։ൃɺίϛϡχέʔγϣϯͷ ળ͠ѱ͠ʹΑͬͯ༰қʹ݁Ռ͕ࠨӈ͞ΕΔ ‣ ఆظతͳ֬ೝͷ͓͔͛Ͱϝϯόʔͷঢ়گ͕Θ͔ͬͨ ‣ ઃܭҙਤ͕Θ͍ͬͯͳ͔ͬͨͷͰɺ ࡉ͔͍ͱ͜ΖͰஅϛεΛͯ͠͠·ͬͨ ‣
Ҏલίςϯύϯʹ٧ΊΒΕͯ͠·ͬͨͷ͕τϥϚͰɺ ٞʹ͚͍ܽͯΔॏཁͳࢹΛݴ͍ग़ͤͳ͔ͬͨ
ίϛϡχέʔγϣϯͷछྨ • νʔϜͷೝࣝΛἧ͑ΔͨΊʹଧͪ߹ΘͤΛ͢Δ • ேձɾ༦ձͰ͓ޓ͍ͷঢ়گΛ֬ೝ͢Δ • ϨϏϡʔΛͯ͠ରͷཧղΛิ͍߹͏ • ΑΓྑ͍ίϛϡχέʔγϣϯΛऔΔͨΊࡶஊΛదʹߦ͏ •
ະདྷͷࣗ৽ͨͳνʔϜϝϯόʔ͕ࠔΒͳ͍Α͏ʹ ઃܭҙਤΛυΩϡϝϯτԽ͠ɺ ࣮ҙਤΛϦʔμϒϧίʔυͱ͓ͯͯ͘͠͠
ίϛϡχέʔγϣϯͱ • ϓϩδΣΫτΛલʹਐΊΔͨΊʹߦΘΕΔશͯͷΓऔΓ ‣ ͋͘·ͰશͯͷతΑΓྑ͍ࣄΛ͢Δ͜ͱ ‣ ϦΞϧλΠϜͰ͋ΔͱݶΒͳ͍ ‣ ํͰ͋ΔͱݶΒͳ͍
։ൃ͔ΒֶΜͩ ίϛϡχέʔγϣϯͷ ॏཁੑ
લఏͱͳΔڥ • ࣮ࡍʹ։ൃΛߦ͏ϝϯόʔগਓ ‣ ʙ໊ఔ • ։ൃର3BJMTΞϓϦέʔγϣϯ ‣ ϑϩϯτΤϯυͷϑϨʔϜϫʔΫΛͬͨ͜ͱ͋Δ͕ 41"ͷܦݧͳ͍
‣ Πϯϑϥ"84ΦϯϓϨ)FSPLVͳͲ ϓϩδΣΫτʹΑΓ͞·͟·
લఏͱͳΔڥ • ։ൃख๏جຊతʹΞδϟΠϧ ‣ 91ϕʔε͔εΫϥϜϕʔε͔ϓϩδΣΫτʹΑΔ • ΠςϨʔγϣϯ εϓϦϯτ ʙिؒ ‣
ि࣍αΠΫϧ ‣ ΠςϨʔγϣϯ͝ͱʹ;Γ͔͑ΓͱݟੵΓ
લఏͱͳΔڥ • ϦϦʔεपظຖʙΠςϨʔγϣϯ͝ͱ ‣ σΠϦʔσϓϩΠ • ۠Γͷͨͼʹதظతͳ;Γ͔͑Γ ‣ ࢛ظαΠΫϧ ‣
େ͖ͳػೳͷϦϦʔεޙ͝ͱͳͲ
্ख͍ͬͨ͘ྫ
ى͖͍ͯͨ͜ͱ • ༏ઌॱҐʹैͬͯऔͬͨλεΫ͕ॳΊͯ৮Δػೳͷमਖ਼ͩͬͨ • ͦͷػೳ5ZQF4DSJQU3FBDUͰ࣮͞Ε͓ͯΓɺ ࠓ·ͰࣄͰ৮ͬͨ͜ͱ͕ͳ͘ෆ׳Εͩͬͨ
࣮ࡍʹͬͨ͜ͱ • ෆ׳ΕͰ͋Δ͜ͱΛൃݴͯ͠૬ஊͨ͠ ‣ ͍͕࣌ؒ͋ͬͨͷͰɺ׳Εͨਓʹότϯλονͤͣ ࣗͰΔ͜ͱʹͨ͠ • ଞʹෆ׳Εͳϝϯόʔ͕͍ͨͷͰ ৄ͍͠ਓͷ࣌ؒΛΒͬͯΈΜͳͰઆ໌Λฉ͍ͨ •
ಛʹ͍͠ͱ͜ΖϖΞϓϩͳͲͰ ॿ͚ͯΒͬͨ
͜ͷํ๏ΛऔΕͨഎܠ • ීஈ͔Βࡶஊ͕ͦΕͳΓʹଟ͔ͬͨͷͰ ͔͚͘͢͠૬ஊ͔ͬͨ͢͠ ‣ ϦϞʔτϫʔΫࣾձʹͳΔલͷͰ͢ ‣ ޙड़͠·͕͢ཧతʹ੮͕͔ۙͬͨͷ͋Γ·͢
͜ͷํ๏ΛऔΕͨഎܠ • ීஈ։ൃʹ͏ͷͱผͷ େ͖ͳσΟεϓϨΠ͕νʔϜʹͭ͋Γɺ ͦͷͰͪΐͬͱͨ͠ଧͪ߹ΘͤͳͲ͕Ͱ͖ͨ ‣ ேձ༦ձͰΧϯόϯ༻ͷ5SFMMPΛөͨ͠Γ ใຬࡌͷϫʔΫεϖʔε ɺ ίʔυΛө͠ͳ͕Βઆ໌ϞϒϓϩΛͨ͠Γ
͜ͷํ๏ΛऔΕͨഎܠ • ։ൃνʔϜͰౡʹͳͬͯ࠲͍ͬͯͨͷͰ શһಉ੮ ɺ ཧతʹڑ͕ۙ͘ϖΞϓϩͳͲͷରԠ͕औΓ͔ͬͨ͢
্ख͍͔͘ͳ͔ͬͨྫ
࣮ݱ͔ͨͬͨ͜͠ͱ • ճͷϦΫΤετͰ࠷େສ݅ͷϨίʔυΛ %#ʹ࡞͢ΔॲཧΛ࣮͢Δ ‣ ϚελΛจࣈྻͰ෦Ұகݕࡧ͠ɺ ΤϯυϢʔβʔͱͷؒʹଟରଟͷަࠩςʔϒϧΛ࡞͢Δ • ݟੵΓஈ֊Ͱɺ ࡞ۀྔଟ͍͕ͦΕ΄Ͳ͘͠ͳ͍λεΫͱࢥΘΕ͍ͯͨ
࣮ࡍʹىͬͨ͜͜ͱ • ࣮ͷஈʹͳͬͯߟྀ͖͕ͩͬͨ͢ଓग़͠ɺઃܭ͕໎ͨ͠ ‣ 8FCαʔόͷߴෛՙɾλΠϜΞτ ‣ %#ͷߴෛՙ ‣ ͔ͨ͠ɺಉ͡νέοτͰճ͘Β͍࣮Λ͕Βͬͱ ॻ͖͑·ͨ͠ʜʜ😭
8FCαʔόͷߴෛՙ • ສ݅ͷϨίʔυ࡞Λ͍ͬͯΔͱλΠϜΞτ͢Δ ‣ Ұఆ݅Ҏ্ώοτ͢Δ͜ͱ͕Θ͔ͬͨΒ ͦͷͰ࡞ΒͣόονॲཧΛ༧͢Δ͜ͱʹͨ͠ • %#Ͱͷจࣈྻݕࡧͷ݁ՌΛ͍ͬͯΔͱ ݅ͷώοτͰλΠϜΞτ͢Δ ‣
࠷ऴతʹશจݕࡧΤϯδϯʹಀ͕ͨ͠
%#ͷߴෛՙ • ୯७ʹສ݅ͷϨίʔυΛ࡞Δͷ͕͔͔࣌ؒΔ ‣ ͜ΕճආͰ͖ͳ͍ͷͰͤΊͯόονͰॲཧ͢Δ • จࣈྻͷ෦Ұகݕࡧ͕ඞཁͩͬͨͨΊ ΠϯσοΫε͕ޮ͔ͳ͍ ‣ લड़ͷ௨Γɺ%#ͰΒͳ͍͜ͱʹͨ͠
ݪҼੳ • ؚࣗΊɺଟछଟ༷ͳܦݧΛੵΜͰ͖ͨνʔϜϝϯόʔ͕ ू·͍ͬͯΔͷʹɺ͜ͷʹ୭ؾ͚ͮͳ͔ͬͨ Βͳ͔ͬͨ ͱߟ͑ʹ͍͘ • ͓ޓ͍͕ࢥߟͷ͖͔͚ͬʹͳΔΑ͏ͳ ίϛϡχέʔγϣϯΛेʹऔΕ͍ͯͳ͔ͬͨͷͰͳ͍͔ʁ ‣
ͦΕͳ͔ͥʹ͍ͭͯࠓޙͷݕূΛ͓ͪԼ͍͞
ࠒ࣮ફ͍ͯ͠Δ 91ͷϓϥΫςΟεΛ ίϛϡχέʔγϣϯͷ؍͔ΒݟΔ
ϖΞϓϩάϥϛϯά • ਓͰϖΞΛΈɺυϥΠόʔͱφϏήʔλʔͷׂʹ͔Εͯ ϓϩάϥϛϯά͢Δ
ϖΞϓϩάϥϛϯά • ਓͰϖΞΛΈɺυϥΠόʔͱφϏήʔλʔͷׂʹ͔Εͯ ϓϩάϥϛϯά͢Δ ‣ ࣮͠ͳ͕ΒϨϏϡʔΛಉ࣌ʹߦ͏ ‣ ϨϏϡʔίϛϡχέʔγϣϯͷछ
શһಉ੮ • νʔϜશһ͕ཧతʹ͍ۙॴ Ͱ͖Ε෦ ͰࣄΛ͢Δ
શһಉ੮ • νʔϜશһ͕ཧతʹ͍ۙॴ Ͱ͖Ε෦ ͰࣄΛ͢Δ ‣ ίϛϡχέʔγϣϯΛ༠ൃ͘͢͢͠Δ ‣ ϦϞʔτϫʔΫͰ࣮ݱͰ͖ͳ͍ͷͰɺͤΊͯςΩετνϟοτ ϘΠενϟοτΛ׆༻͢Δ
UJNFTνϟϯωϧͳͲ
ि࣍αΠΫϧ • ຖि ֤ΠςϨʔγϣϯ ͝ͱʹ;Γ͔͑Γͱ ࣍ͷΠςϨʔγϣϯͷݟੵΓΛߦ͏
ि࣍αΠΫϧ • ຖि ֤ΠςϨʔγϣϯ ͝ͱʹ;Γ͔͑Γͱ ࣍ͷΠςϨʔγϣϯͷݟੵΓΛߦ͏ ‣ ͜·ΊͳใಉظΛͯ͠ίϛϡχέʔγϣϯΛ ൃੜͤ͞Δ
࢛ظαΠΫϧ • ࢛ظ͝ͱʹܭըΛཱͯɺ͜͜·Ͱ͖ͬͯͨ͜ͱΛ;Γ͔͑Δ
࢛ظαΠΫϧ • ࢛ظ͝ͱʹܭըΛཱͯɺ͜͜·Ͱ͖ͬͯͨ͜ͱΛ;Γ͔͑Δ ‣ ͭͷςʔϚͰ͠߹͏ػձΛ૿͢ ‣ தظతͳهԱҙ֎ͱͳ͘ͳΓ͍͢ͷͰɺ ීஈ͔Β͜·Ίʹه͓ͯ͘͠ͱྑ͍
ใຬࡌͷϫʔΫεϖʔε • ࠓͷϓϩδΣΫτͷঢ়گ͕ͻͱͰ͔Δ ϫʔΫεϖʔε ΧϯόϯͳͲ Λ࡞Δ
ใຬࡌͷϫʔΫεϖʔε • ࠓͷϓϩδΣΫτͷঢ়گ͕ͻͱͰ͔Δ ϫʔΫεϖʔε ΧϯόϯͳͲ Λ࡞Δ ‣ ঢ়گΛՄࢹԽ͠ɺͨ͘͠ͳ͍ࣄฑΛ ͟͞ΔΛಘͳ͍Α͏ʹ͢Δ
΄͔ͷՁͰ ϓϥΫςΟεΛݟ͢ͱ ࢥΘ͵ൃݟ͕͋Δ͔ʁ
·ͱΊ • ίϛϡχέʔγϣϯϓϩδΣΫτΛલʹਐΊΔͨΊʹ ߦΘΕΔશͯͷΓऔΓ • ίϛϡχέʔγϣϯΛ্ख͘औΕΔͱେ͖ͳϝϦοτ͕͋Δ͠ɺ ࣦഊͨ͠Βେมͳ͜ͱʹͳΔ • ࠒ࣮ફ͍ͯ͠Δ91ͷϓϥΫςΟεΛɺίϛϡχέʔγϣϯͷ ؍Ͱଊ͑ͯ͠հ