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
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
590
rails newと同時に型を書く
aki19035vc
5
710
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.1k
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
1.9k
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
450
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
240
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
400
Jaspr Dart Web Framework 박제창 @Devfest 2024
itsmedreamwalker
0
150
サーバーゆる勉強会 DBMS の仕組み編
kj455
1
300
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.9k
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
870
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
74
9.2k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
173
51k
Typedesign – Prime Four
hannesfritz
40
2.5k
A designer walks into a library…
pauljervisheath
205
24k
Into the Great Unknown - MozCon
thekraken
34
1.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
870
Visualization
eitanlees
146
15k
Mobile First: as difficult as doing things right
swwweet
222
9k
Unsuck your backbone
ammeep
669
57k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
What's in a price? How to price your products and services
michaelherold
244
12k
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