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
1.6k
コードレビューしない
Seiei Miyagi
March 23, 2019
Tweet
Share
More Decks by Seiei Miyagi
See All by Seiei Miyagi
Redmineプラグイン開発とCIのmatrix
hanachin
1
1.3k
Other Decks in Programming
See All in Programming
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
240
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
210
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
260
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
110
Jakarta EE meets AI
ivargrimstad
0
250
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
930
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
Symfony Mapper Component
soyuka
2
730
バグを見つけた?それAppleに直してもらおう!
uetyo
0
180
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
0
160
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
40
7.1k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Scaling GitHub
holman
458
140k
Producing Creativity
orderedlist
PRO
341
39k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Why Our Code Smells
bkeepers
PRO
335
57k
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