Slide 1

Slide 1 text

ZEALS Co.,Ltd チームが10人を越えたら考えたいgem周り ZEALS テクノロジー開発部 福本 晃之 技術を使わない問題解決

Slide 2

Slide 2 text

● 自己紹介 ● 起きた問題と使った技術 ○ danger ○ debride2okuribito & okuribito_rails ○ Circle CI bundle update PR ● エンジニアにとっての問題解決 Agenda

Slide 3

Slide 3 text

ZEALS Engineer 福本 晃之 [ Teruhisa Fukumoto ] 前職:富士通G 法人セールス 4月 ~ ZEALS Ruby Python SQL Product Manager Developer Relations :f-teruhisa :@terry_i_ :@teruhisafukumoto :Terry

Slide 4

Slide 4 text

起きた問題と 使った技術

Slide 5

Slide 5 text

プルリクの秩序の乱れ ラベルつけて!! テストは? 差分多くね? ずっとWIPやん...

Slide 6

Slide 6 text

Danger(https://github.com/danger/danger) ● コードの差分を検知、閾値を超えるとキレる ● labelが選択されていないとキレる ● spec配下に差分がないとキレる ● titleの “WIP” 文字列を検知しキレる

Slide 7

Slide 7 text

技術的負債の増加

Slide 8

Slide 8 text

debride2okuribito(https://github.com/shakemurasan/debride2okuribito) ● コードを静的解析するgem ● 未使用の可能性が高いメソッドを列挙してくれる ● 静的解析なので、列挙に時間がかからない

Slide 9

Slide 9 text

okuribito_rails(https://github.com/shakemurasan/okuribito_rails) ● コードを動的解析するgem ● APIによる外部呼び出しも含めて分析可能 ● ymlファイルにメソッドを記述するだけで使用可能

Slide 10

Slide 10 text

Image

Slide 11

Slide 11 text

debride2okuribito & okuribito_rails 合わせ技で効率よくコードを看取る 引用(http://www.cine.co.jp/okuribito/)

Slide 12

Slide 12 text

gem updateの責任なすりつけ

Slide 13

Slide 13 text

CircleCI bundle updatePR(https://github.com/masutaka/circleci-bundle-update-pr) ● Circle CIのymlに変更を加えるだけで実行可能 ● Gemfile.lockとbundle updateの差分を検知 ● 差分をgit commitし、リモートリポジトリにpushする

Slide 14

Slide 14 text

レビューフローにgem updateを乗せる

Slide 15

Slide 15 text

エンジニアに とっての問題解決

Slide 16

Slide 16 text

Copyright© ZEALS Co ., Ltd All Right Reserved gem自体は負債化 しないのか?

Slide 17

Slide 17 text

Copyright© ZEALS Co ., Ltd All Right Reserved します

Slide 18

Slide 18 text

問題解決の方法を切り分けよう ● 人がやるべきことなのか? ● 実装すべきことなのか? ● 車輪を再開発すべきか?

Slide 19

Slide 19 text

問題解決のLevel(by ところてん氏) 技術を使わないで問題を解決する 簡単な技術を使って問題を解決する 難しい技術を使って問題を解決する 難しい技術を使ってるだけ 上 下

Slide 20

Slide 20 text

なぜ技術を使わない方が良いのか? ● 技術は必ず陳腐化する ● 技術は必ず属人化する ● 技術は必ず負債になる

Slide 21

Slide 21 text

技術を安売りせず、 快適な Engineer Life を

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Thank you!!