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
1.9k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コードレビューしない
Seiei Miyagi
March 23, 2019
More Decks by Seiei Miyagi
See All by Seiei Miyagi
Redmineプラグイン開発とCIのmatrix
hanachin
1
1.6k
Other Decks in Programming
See All in Programming
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
350
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
250
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
230
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
2.4k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.7k
AIエージェントで 変わるAndroid開発環境
takahirom
1
270
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
300
Creating Composable Callables in Contemporary C++
rollbear
0
190
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.6k
AIで効率化できた業務・日常
ochtum
0
160
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Contextとはなにか
chiroruxx
1
390
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
55k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Being A Developer After 40
akosma
91
590k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
600
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
210
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
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