Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
LR で JSON パーサーを作る / Coding LR JSON Parser
junk0612
2
740
「ナントカLR」を整理する / Clarifying LR Algorithms
junk0612
1
440
From LALR to IELR: A Lrama's Next Step
junk0612
2
3.7k
RubyConf Taiwan / Understanding Parser Generators surrounding Ruby with Contributing Lrama
junk0612
2
5.3k
LL法とLR法の違いは?調べてみた!-完全版-/Comparing LL and LR parse algorithm -EX Edition-
junk0612
0
590
ESM Super LT/Comparing LL and LR parse algorithm
junk0612
1
120
Lrama へのコントリビューションを通して学ぶ Ruby のパーサジェネレータ事情
junk0612
4
5.5k
アジャイルという「マインドセット」 / Mindset named Agile
junk0612
0
930
Other Decks in Programming
See All in Programming
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
140
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
3
820
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
880
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
140
Leverage LLMs in Java with LangChain4j and Quarkus
hollycummins
0
110
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
140
subpath importsで始めるモック生活
10tera
0
380
@nifty天気予報のフロントエンドを 実装するまで - NIFTY Tech Talk #22
niftycorp
PRO
0
120
競技プログラミングで 基礎体力を身につけよう / You can get basic skills through competitive programming
mdstoy
0
130
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
140
Jakarta EE meets AI
ivargrimstad
0
330
Better Code Design in PHP
afilina
PRO
0
140
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
181
21k
Optimizing for Happiness
mojombo
376
70k
What's new in Ruby 2.0
geeforr
343
31k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
27
2.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Bash Introduction
62gerente
608
210k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Unsuck your backbone
ammeep
669
57k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
A designer walks into a library…
pauljervisheath
204
24k
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ͷϓϥΫςΟεΛɺίϛϡχέʔγϣϯͷ ؍Ͱଊ͑ͯ͠հ