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
コードレビューしない
Search
Seiei Miyagi
March 23, 2019
Programming
2
1.8k
コードレビューしない
Seiei Miyagi
March 23, 2019
Tweet
Share
More Decks by Seiei Miyagi
See All by Seiei Miyagi
Redmineプラグイン開発とCIのmatrix
hanachin
1
1.5k
Other Decks in Programming
See All in Programming
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
240
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
150
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
0
490
Implementation Patterns
denyspoltorak
0
140
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
Developing static sites with Ruby
okuramasafumi
0
340
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
430
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
230
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.2k
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
Python札幌 LT資料
t3tra
7
1.1k
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
290
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
First, design no harm
axbom
PRO
1
1.1k
Scaling GitHub
holman
464
140k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
74
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
0
990
Raft: Consensus for Rubyists
vanstee
141
7.3k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
Why Our Code Smells
bkeepers
PRO
340
58k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Heart Work Chapter 1 - Part 1
lfama
PRO
3
35k
Transcript
ίʔυϨϏϡʔ ͠ͳ͍ Seiei Miyagi
ͳ͢͜ͱ □ ⾃⼰紹介 □ □ □ □
Θͨ͠ • ID: hanachin、旧姓: ⽐嘉 • 沖縄⽣ 沖縄育 • •
既婚・⼀児 ⽗・三⼈家族 XXXIBOBDIJO
None
͠͝ͱ ZBTTMBCKQ
͠͝ͱ
͠͝ͱ
ͳ͢͜ͱ ✔ ⾃⼰紹介 □ □ □ □
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
動作確認しぐさ
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
かわらないもの なんかない
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
のびしろをみつける
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
どうするどうする ?
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
きえるTODO
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
脇道にそれない
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
いいやりかたを伝える
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
何度でも いいやりかたを伝える
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
何度でも いいやりかたを伝え…
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
͍·ίʔυϨϏϡʔͰ ͳʹΛ͍ͯ͠Δͷ͔
三桁じゃないから セーフ
ͳ͢͜ͱ ✔ ⾃⼰紹介 ✔ □ □ □
Ͳ͏ͯ͠ίʔυϨϏϡʔΛ ͍ͯ͠Δͷ͔ ⽬的 、 誤 修正 。重要 、 全員 同
知識 共有 、 全員 守 確⽴ 。⾃分 書 他 共有 「 共同所有(collective code ownership)」 可能 。 ―― 知 97 なるほど?
なるほど?
自分が うれしかったこと
Ͳ͏ͯ͠ίʔυϨϏϡʔΛ ͍ͯ͠Δͷ͔
Ͳ͏ͯ͠ίʔυϨϏϡʔΛ ͍ͯ͠Δͷ͔
自分のことは 信頼してないけど みんなのこと 信頼してる
みんなのコード
ͳ͢͜ͱ ✔ ⾃⼰紹介 ✔ ✔ □ □
Ͳ͏ΕίʔυϨϏϡʔΛ ͠ͳͯ͘Α͘ͳΔ͔ 1. ⾃分 2. 、⼤丈夫 3. ⾃分 増
ࣗͰΒͳ͍ɺػցʹΒͤΔ • CircleCI 2.1 Parameterized jobs • Heroku Review Apps
←これをはなすね
ͱ͜ΖͰ3FENJOFϓϥάΠϯ։ൃ 3FENJOF 3.3 3.4 4.0 3BJMT 4.2 4.2 5.2
ͱ͜ΖͰ3FENJOFϓϥάΠϯ։ൃ SVCZ3FENJOF ✔ ✔ ✔
✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
ͱ͜ΖͰ3FENJOFϓϥάΠϯ։ൃ • Microsoft SQL Server • MySQL (MariaDB) • PostgreSQL
• SQLite 3 3FENJOF͕αϙʔτ͍ͯ͠Δ3%#.4
多様な 動作環境
3FENJOFϓϥάΠϯ։ൃͰͷίʔυϨϏϡʔ • 機能 <Redmine > 動 ? • <RDBMS >
動 ? • <Ruby > 動 ?
やってないから わかんない!
テストを動かせばわかる!
かばれっじ 100ぱーなら だいじょうぶ!
ͱ͜ΖͰ3FENJOFϓϥάΠϯ։ൃ • 組 合 実⾏ • 毎⽇ ⼈ 浦島太郎状態 特
• ⼿元 動 記録 共有・再現 • ⼈ 環境 ⼿元 ( )
Ͳ͏ΕίʔυϨϏϡʔΛ ͠ͳͯ͘Α͘ͳΔ͔ • ⾃分 動 • Redmine/ruby/RDBMS 組 合 全部試
• 動 結果 ⾒
$JSDMF$*ͷ1BSBNFUFSJ[FEKPCT workflows: test: jobs: - rspec: db: mysql redmine_version: ‘4.0.1’
ruby_version: ‘2.6’
$JSDMF$*ͷ1BSBNFUFSJ[FEKPCT jobs: rspec: parameters: ruby_version: description: version of Ruby type:
string
$JSDMF$*ͷ1BSBNFUFSJ[FEKPCT jobs: rspec: executor: name: ruby-<<parameters.db>> ruby_version: <<parameters.ruby_version>>
$JSDMF$*ͷ1BSBNFUFSJ[FEKPCT executors: ruby-mysql: parameters: ruby_version: description: version of Ruby type:
string docker: - image: circleci/mysql - image: circleci/ruby-<<parameters.ruby_version>>
$JSDMF$*ͷ8PSLqPX workflows: nightly: triggers: - schedule: cron: ‘0 15 *
* *’ jobs: - rspec: # ここで組み合わせを列挙して行く
executors: ruby-mysql: docker: - image: circleci/mysql - image: circleci/ruby-<<parameterized.ruby_version>> jobs:
rspec: executor: name: ruby-<<parameters.db>> ruby_version: <<parameters.ruby_version>> workflows: test: jobs: - rspec: db: mysql redmine_version: ‘4.0.1’ ruby_version: ‘2.6’
Ͳ͏ΕίʔυϨϏϡʔΛ ͠ͳͯ͘Α͘ͳΔ͔ ✔ CircleCI 実⾏ ✔ Redmine/ruby/RDBMS 組 合 動
✔CircleCI 結果 ⾒ ・記録 残 わたしもできるし あなたもできる
ίʔυϨϏϡʔ͠ͳͯ͘Α͘ͳͬͨ • 機能 <Redmine > 動 ? • <RDBMS >
動 ? • <Ruby > 動 ?
ࣗͰΒͳ͍ɺػցʹΒͤΔ • CircleCI 2.1 Parameterized jobs • Heroku Review Apps
←これをはなすね
ಈ࡞֬ೝ͙͠͞ • ⾒ ⽬ 崩 、実機 確認 • ⽂⾯ 変更
、⽂⾯ 確認 • 捨 弾 、確認 • production環境 ⼤丈夫…?
ಈ࡞֬ೝ͙͠͞ てもとではうごいてたし じどうテストもとおった けどコードだけ見ても不安
ಈ࡞֬ೝ͙͠͞ • 動 • 動 ⼿間 • 外 ⾒ ⼿間
• ⼿元 動 動
さわってみてだいじょーぶそう なら だいじょーぶ
Ͳ͏ΕίʔυϨϏϡʔΛ ͠ͳͯ͘Α͘ͳΔ͔ • ⼿元 動作確認 • 実際 試 • production
同 環境 動
)FSPLV3FWJFX"QQT
Ͳ͏ΕίʔυϨϏϡʔΛ ͠ͳͯ͘Α͘ͳΔ͔ ✔ Heroku Review Apps push 動 ✔ view
deployment ⾒ ✔ Review App production 動 わたしもできるし あなたもできる
ಈ࡞֬ೝΛͯͱͰ͠ͳͯ͘Α͘ͳͬͨ • ⾒ ⽬ 崩 、実機 確認 • ⽂⾯ 変更
、⽂⾯ 確認 • 捨 弾 、確認 • production環境 ⼤丈夫…? やったー
Ͳ͏ΕίʔυϨϏϡʔΛ ͠ͳͯ͘Α͘ͳΔ͔ 1. ⾃分 、機械 ! 2. 、⼤丈夫 3. ⾃分
増
͏·͍͔͘ͳͯ͘ɺେৎʂͳֻ͚ • 問題 起 • 戻 • 変 ⼤丈夫 ←これをはなすね
͕ى͖ͨΒ͙͢Θ͔ΔΑ͏ʹ͢Δ
͕ى͖ͨΒ͙͢Θ͔ΔΑ͏ʹ͢Δ
2分で戻せた! すごい!
ロールバック王
͏·͍͔͘ͳͯ͘ɺେৎʂͳֻ͚ • 問題 起 • 戻 • 変 ⼤丈夫 ←これをはなすね
ͤΔΑ͏ʹ͢Δ • 戻 ⽅ 考 ・共有 • 戻
ͤΔΑ͏ʹ͢Δ
ͤΔΑ͏ʹϚΠάϨʔγϣϯͷ ϩʔϧόοΫΛςετ͢Δ bin/rails db:migrate VERSION=0
͏·͍͔͘ͳͯ͘ɺେৎʂͳֻ͚ • 問題 起 • 戻 • 変 ⼤丈夫 ←これをはなすね
ม͑ΒΕΕେৎ 変えたくないことはテストする
ม͑ΒΕΕେৎ 変えづらくなるのは よくない
ม͑ΒΕΕେৎ 機を待つ
͏·͍͔͘ͳͯ͘ɺେৎʂͳֻ͚ • ⾒落 • 問題 起 気 ⼤丈夫 • 戻
⼤丈夫 • 変 ⼤丈夫
Ͳ͏ΕίʔυϨϏϡʔΛ ͠ͳͯ͘Α͘ͳΔ͔ 1. ⾃分 、機械 ! 2. 、⼤丈夫!! 3. ⾃分
増
ࣗΛ૿͢ ⼈数 増 参加 増 • 同 扱 • ⼈・
⼈ 増 • 探 ⽅ 教 機会 増
コードレビューするとき ドキュメントの探し方が わからない
ࣗΛ૿͢
ࣗΛ૿͢
記事は休まず働ける
ドキュメントを読む能力が 育ってしまう環境 よくなさそう
Ͳ͏ΕίʔυϨϏϡʔΛ ͠ͳͯ͘Α͘ͳΔ͔ 1. ⾃分 、機械 ! 2. 、⼤丈夫!! 3. ⾃分
増 !!!
ͳ͢͜ͱ ✔ ⾃⼰紹介 ✔ ✔ ✔ □
ίʔυϨϏϡʔ͠ͳ͍Λ͢Δܾҙ • ? 考 • 機械 働 • 発表資料 書
発表資料 働
ͳ͢͜ͱ ✔ ⾃⼰紹介 ✔ ✔ ✔ ✔
ίʔυϨϏϡʔ ͠ͳ͍ Seiei Miyagi