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
For Whom the Quality Exists
Search
Koichi ITO
September 27, 2018
Programming
5
1.8k
For Whom the Quality Exists
Code Review Meetup #4 (
https://sideci.connpass.com/event/98378
)
Koichi ITO
September 27, 2018
Tweet
Share
More Decks by Koichi ITO
See All by Koichi ITO
RuboCop: Modularity and AST Insights
koic
3
3.6k
Carving the Way to Ruby Engineering
koic
3
860
Beyond the RuboCop Defaults
koic
3
4.1k
Minify Ruby Code
koic
2
2.3k
Permanent Agility
koic
37
9k
RuboCop: LSP and Prism
koic
3
5k
Organizational Pattern Hatching
koic
0
1.5k
A Practitioner's Journey from Ruby 1.8 to Present
koic
1
2.1k
A Story Featuring Right Hand Archetype
koic
0
1.1k
Other Decks in Programming
See All in Programming
Zennの運営完全に理解した #完全に理解したTalk
wadayusuke
1
140
AIにコードを生成するコードを作らせて、再現性を担保しよう! / Let AI generate code to ensure reproducibility
yamachu
7
6k
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
0
160
バリデーションライブラリ徹底比較
nayuta999999
1
410
推論された型の移植性エラーTS2742に挑む
teamlab
PRO
0
150
ソフトウェア品質特性、意識してますか?AIの真の力を引き出す活用事例 / ai-and-software-quality
minodriven
19
6.6k
TSConfig Solution Style & subpath imports to switch types on a per-file basis
maminami373
1
180
Devinで実践する!AIエージェントと協働する開発組織の作り方
masahiro_nishimi
6
2.5k
Practical Domain-Driven Design - Workshop at NDC 2025
mufrid
0
130
テスト分析入門/Test Analysis Tutorial
goyoki
11
2.7k
少数精鋭エンジニアがフルスタック力を磨く理由 -そしてAI時代へ-
rebase_engineering
0
120
ts-morph実践:型を利用するcodemodのテクニック
ypresto
1
530
Featured
See All Featured
Writing Fast Ruby
sferik
628
61k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Balancing Empowerment & Direction
lara
1
83
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Become a Pro
speakerdeck
PRO
28
5.4k
What's in a price? How to price your products and services
michaelherold
245
12k
Bash Introduction
62gerente
614
210k
Code Review Best Practice
trishagee
68
18k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Facilitating Awesome Meetings
lara
54
6.4k
Transcript
For Whom the Quality Exists ίʔυϨϏϡʔ͙͠͞ ,PJDIJ*50FTN 5IV $PEF3FWJFX.FFUVQ
0QFO/FUXPSL4QBDFJO%BJLBOZBNB
࣭ͱ୭͔ʹͱͬͯ ͷՁͰ͋Δ ʵ(FSBME.BSWJO8FJOCFSH
!LPJD w ג ӬγεςϜϚωδϝϯτ ίϛϡχςΟϚωʔδϟ w 3VCP$PQίϛολʔ w "30SBDMFFOIBODFE BEBQUFSίϛολʔ
w $VDVNCFSίϛολʔ
None
None
None
"3VCZDPEF def badName if something test end end
None
None
ࠓͷ
$PEF 3FWJFX
$PEF 3FWJFX
2VBMJUZ 1FPQMF
࣭ʹର͢Δωλຊ wιϑτΣΞֶ͔Βͷώ ϯτ
ਓʹର͢Δωλຊ wϏδωείϛϡχέʔγϣ ϯ͔Βͷώϯτ
For Whom the Quality Exists ίʔυϨϏϡʔ͙͠͞ ,PJDIJ*50FTN 5IV $PEF3FWJFX.FFUVQ
0QFO/FUXPSL4QBDFJO%BJLBOZBNB
ଟ༷ͳϝϯόʔ͕ࢀը͢Δ ϓϩδΣΫτʹ͓͍ͯ Կʹίʔυͷ࣭Λ্͛ͯ ͔͘ʁ
ࣗԿΛϓϩδΣΫτʹߩݙ ͢ΔͭΓͰɺϝϯόʔϓϩ δΣΫτʹԿΛߩݙͯ͠Β͍ ͍͔ͨΛڞ༗͢Δ࣮ફज़ υϥοΧʔ෩ΤΫααΠζ ʰΞδϟΠϧαϜϥΠʱ +POBUIBO3BTNVTTPOஶ
None
wख़࿅ऀ͔ΒϫφϏʔ·Ͱ͍ ΔϓϩδΣΫτΛྫͱ͢Δ wϨϏϡΞʔͱͯ͠ϨϏϡΠʔ ͷؔͱͯ͠ίʔυʹର͢ ΔظΛ͓࣋ͬͯ͘ 13ͷظͷ͢Γ߹Θͤ
ਅ࣮ɿϓϩάϥϚݸਓΛੳ ͨ͠ݚڀʹΑΔͱɺ࠷༏लͳ ϓϩάϥϚ࠷ѱʹൺɺഒ ༏Ε͍ͯΔɻ ιϑτΣΞΤϯδχΞϦϯά ʰιϑτΣΞ։ൃͷਅ࣮ͱͷιʱ ϩόʔτɾ-ɾάϥε
w܁Γฦ͠ίʔυΛߟ͖͑ͯͨϕ ςϥϯͱ࠷ۙϓϩάϥϛϯάΛ ֮͑ͨϫφϏʔͷίʔυҧ͏ w͋ΔݚڀʹΑΔͱϓϩάϥϚͷ ྗྔࠩഒ͋Δͱ͍͏ ϓϩάϥϛϯάೳྗͷࠩ
ΧςΰϥΠζྫ ϫφϏʔ ٕज़తͳ ࣮ݱೳྗ υϝΠϯࣝ ˢ ˠ ίΞ։ൃऀ υϝΠϯΤΩεύʔτ ৽نࢀըͷ
։ൃऀ υϝΠϯ ΤΩεύʔτ
ϓϩάϥϛϯάͱ͍͏ ٕܳ
ͲΕ͕͓ΈͰ͔͢ʁ bmi = weight / (height ** 2) bmi=w/(h**2) bmi=weight/(height**2)
" # $
ಡΈͮΒ͍ίʔυͰ ίϯϐϡʔλΛಈ͔ͤ Δ͕ɺͩΕ͔ʹͱͬͯ ಡΈ͍͢ίʔυʹ͢ ΔʹηϯεΛཁ͢Δ
wϩδοΫͷଥੑɺ໊͚ͷଥੑɺ ιϑτΣΞςετख๏ͳͲਓͷྖҬ wελΠϧͷϨΠΞτͳͲͷϓϩδΣ Ϋτݻ༗จԽ w/ ݕग़ɺػցతʹݕग़ՄೳͳηΩϡ ϦςΟରࡦɺͳͲࣗಈԽͷྖҬ ϨϏϡʔൣғྫ
wਓͰͳ͍ͱϨϏϡʔͰ͖ͳ ͍ϙΠϯτʹͰ͖Δ͚ͩয Λ͍͋ͯͨ wਓ͔ΒਓʹٕܳΛ͑Δ ຊ࣭తͳϨϏϡʔ
None
wίʔυϨϏϡʔʹΑΔ ػձେ͖͍ wͬͱίʔυϨϏϡʔྗ ͕ߴ͍༰͕νʔϜͰ࠷ߴ ͷ࣭ΛੜΈग़ͤΔ ։ൃϓϩηεਓ
4/ൺ 4Λ૿͠ /ΛݮΒ͢
w13Λ։͘લʹࣗʹग़དྷΔ࠷ߴͷ13 Ͱ͋Δ͜ͱΛηϧϑϨϏϡʔ͢Δ wgit log -pͰݟฦ͢ɺ3VCP$PQ ͳͲͷ-JOUFSΛ࣮ߦ͢ΔɺͳͲ wࣗͷͰ͖ΔҎ্ͷ͜ͱͰ͖ͳ͍ ͷͰɺͦ͜ΛϨϏϡΞʔʹͤΔ 4/ൺͷ/ΛݮΒ͢ॳख
w-JOUFS͕ߦ͏ͷݴޠ༷ϓ ϩδΣΫτϧʔϧʹରͯ͠ग़དྷ ͍ͯͳ͍Ұఆظج४Ϩϕϧ· Ͱͷఈ্͛͢Δ wͰ͖ΔਓΛΑΓͰ͖ΔΑ͏ʹ͢ ΔͷͰͳ͍ -JOUFSΛͬͨࣗಈԽ
w৽͘͠ϓϩδΣΫτʹೖͬͨϝ ϯόʔͷελΠϧͷػցతͳ ୡΛߦ͑Δ wਓϨϏϡʔͨ͠Βਓಉ ͡ࢦఠ͕Ͱ͖Δ༰-JOUFS ͖ -JOUFSͷྑ͍ͱ͜Ζ
wࣗͷॻ͍ͨίʔυʹࣗ ͕Ө͞Ε͕ͪ wϨϏϡΞʔରϨϏϡΠʔ :PVWTNF ͔Βࢦఠࣄ߲ ରϨϏϡΠʔͷߏਤʹม͑Δ 1SPCMFNWT6T
-JOUπʔϧ Ξϯνύλʔϯ
wܯࠂΛड͚ೖΕ͍ͯΔঢ়ଶ wσϑΥϧτͰͷద༻͕ϓϩ δΣΫτʹ߹͏͔ݕ౼͢Δ wͦΕ-JOUFSͷόά͔ʁ कഁ
wͳͥͦͷελΠϧ͕·͍͠ ͷ͔͕ϝοηʔδ͚ͩͰ அ͕͍͜͠ͱ͕͋Δ wతʹ-JOUFSΛ͏ͷͰ ͳ͘ελΠϧͷഎܠΛΔ -JOUFSʹݶΒͣίϛϡχέʔγϣϯΛཔΕ
wϋογϡͷΧοίʹۭനΛೖ Εͳ͍ {foo: 1, bar: 2} wϋογϡͷΧοίʹۭനΛೖ ΕΔ { foo:
1, bar: 2 } എ͢ΔίʔσΟϯάελΠϧ
wΧοίʹۭനΛೖΕͳ͍ͷࢥ wϒϩοΫͱ͍ͬͨແ໊ؔͱͷ ରൺΛͯ͠ϋογϡͷΑ͏ͳී วతͳΦϒδΣΫτʹΧοί ͷۭനෆཁ ࢥΛΔ
w໊લͷू·ΓͰ͋Δίʔυ ͦͷͷʹҙຯ͕͋ΔΑ͏ ʹɺϨΠΞτۭߦʹ ҙຯΛ࣋ͨͤΔ ίʔυͷҰߦɺ݂ͷҰణ
wೣɺݘ w͖ͷ͜ɺ͚ͨͷ͜ wจࣈྻμϒϧΫΥʔτɺ γϯάϧΫΥʔτ ͦΕͧΕͷΈʹݴ͍͕͋Δ
IUUQEIBUFOBOFKQLFZXPSE""%"$&"#"#'"#"$&"#$&'$&
wܯࠂΛड͚ೖΕ͍ͯΔঢ়ଶ wσϑΥϧτͰͷద༻͕ϓϩ δΣΫτʹ߹͏͔ݕ౼͢Δ wͦΕ-JOUFSͷόά͔ʁ ߟ͑Λ࣋ͬͯक͔Βഁ
For Whom the Quality Exists
wࣗಈԽ͞ΕͨϨΠΞτɺ -JOUJOH3VCP$PQ &4-JOU FUD w/ 944ରࡦͳͲඇػೳཁ݅ #SBLFNBO #VMMFU
FUD w։ൃऀͷϨϕϧʹ͋·Γґଘ͠ͳ͍ ࣗಈԽ͕ൺֱత༰қ
wςʔϒϧઃܭɺΫϥεઃܭɺ໊͚ͷ ଥੑɺϩδοΫͷଥੑɺͳͲਓͷ ྖҬʹ͓͚Δ΄΅ͯ͢ wϨϏϡʔΛࣗಈԽͰ͖ͳ͍ίʔυ͕ຊ དྷϨϏϡʔ͍ͨ͠ର wˢ։ൃऀͷٕܳʹґଘ͢Δͷݟͤॴ -JOUFSͷۤखͳͱ͜Ζ
wϨϏϡʔʹ࣌ؒΛ͏ w܁Γฦ͠දग़͢Δࣄʹର ͯ͠ίϯϐϡʔλಘҙ wະͷࣄʹ͍ͭͯ·ͩί ϯϐϡʔλʹݶք͕͋Δ ਓͱίϯϐϡʔλͷϨϏϡʔ
ϨϏϡʔ5JQT
wϨϏϡʔॳظʹ͚ۙΕ͍ۙ΄Ͳ ࢦఠࣄ߲͕ग़қ͍ wBQQSPWFͷ͕ҰఆҎ্ʹͳͬͯ ͦΕ΄Ͳ্࣭͕Βͳ͍ wܦݧ্֓ͶͭBQQSPWF͋Εྑ͍ wͪΖΜνʔϜͷͱ࣭ʹΑΔ Կਓ·ͰΫϩεϨϏϡʔʁ
wؒҧ͍ͬͯΔ͜ͱΛؒҧ͍ͬͯΔͱݴΘΕΔ ͷπϥ͍ wࣗͷࢦఠ͕ؒҧͬͯΔ͜ͱ͕͋Δ wʮ˓˓Ͱ͠ΐ͏͔ʁʯৗ۟ͰͬͨΓ͢ Δ w͔ͳΓͷ֬৴͕͋ͬͯͬͨΓ͢Δ wಛʹҭ͖ͷख๏ ֬৴Λࣔ͢ΑΓ͍͔͚Α
౪ਓʹޒͷཧΛೝΊΔ ॏཁײΛ࣋ͨͤΔ ਓͷཱʹΛஔ͘ ਓΛಈ͔̏͢ݪଇ ʰਓΛಈ͔͢ʱ %ɾΧʔωΪʔ
wҰՈݴ͋ΔϨϏϡΞʔ͕͍Δػೳ ͕͋Δ w13Ͱ3FWJFX3FRVFTUΛ͋Β ͔͡Ίૹ͓ͬͯ͘ w͋ͱͰ͜Ε·ͰͷϨϏϡʔ͕Ҿͬ ܁ΓฦΔ͜ͱΛ༧͢Δ ൪ͷϨϏϡʔґཔ
w৭ใͰ͋Δ wϨϏϡΞʔʹରͯ͠Χϥϑϧͳใʹͯ͠ ෛՙΛݮΒ͓ͯ͢ͳ͠ wόοΫΫΥʔτͭͷޙΖʹݴޠΛࢦఆ͠ ͯғΉ͜ͱͰϋΠϥΠτ͢Δ ```ruby puts 'hello, world' ```
ಡΈखͷෛՙΛݮΒ͓ͯ͢ͳ͠
wՃใͱͯ͠۩ମతͳίʔυߦͷ63- ΛϦϯΫ͚Δͱ༗ޮͳ͜ͱ͕͋Δ w͋Δ(JU)VCͷίʔυϦϯΫͷ༰Λ ݟͨΒҧ͏ՕॴΛ͍ࣔͯ͠Δ wNBTUFSϒϥϯνࠁʑͱมԽ͍ͯ͘͠ w(JU)VCͷίϛοτ্ͰlZzΛԡ͢ ύʔϚϦϯΫΛҾ༻͢Δ
͋ΘͤͯಡΈ͍ͨ
wॻ͘ਓΑΓಡΉਓͷํ͕ଟ͍ wͯ͘͠ߦ͘αʔϏε΄Ͳ ίʔυಡΈܧ͕Ε͍ͯ͘ wݱࡏͷಡऀͱະདྷͷಡऀʹͪΐͬ ͱͨ͠ؾΓΛ͓ͯ͘͠ 5IFXBZUPUIFUJNFMFTTXBZPG
For Whom the Quality Exists
࣭ͷཐટ
ίʔυ Ϗδωε ϨϏϡʔ
ίʔυ Ϗδωε ϨϏϡʔ
Ϗδωε ίʔυ ϨϏϡʔ
ϨϏϡʔ Ϗδωε ίʔυ
ίʔυ Ϗδωε ϨϏϡʔ lશମz
ίʔυ Ϗδωε ϨϏϡʔ lશମz γεςϜΈࠐΈͷ ্࣭ͱ։ൃऀͷ
wϏδωεϑΟʔυόοΫͷૉૣ࣮֬͘ͳ ରԠෳࡶͰͳ͍ίʔυ͕Մೳͱ͢Δ wणΞϓϦέʔγϣϯΛϦϓϨʔε͢Δͷ ԟʑʹ༧ࢉͱ࣌ؒΛ͏ wίʔυϨϏϡʔͱ͍͏ఆظతͳ݈߁அ w༏लͳ։ൃऀ݈શͳίʔυ͕॓Δγες Ϝ։ൃʹ͔͏ ͳͥͦΜͳʹͳΔ࣭ॏཁ͔ʁ
࣭ͱ୭͔ʹͱͬͯ ͷՁͰ͋Δ ʵ(FSBME.BSWJO8FJOCFSH
None