$30 off During Our Annual Pro Sale. View Details »

Tama Ruby Kaigi 01

Tama Ruby Kaigi 01

Yuki Kondo

July 04, 2019
Tweet

Other Decks in Technology

Transcript

  1. プロになるためのレビューのススメ
 Tama Ruby会議01, 2019/07/06
 @konchan_x


  2. Yuki Kondo(@konchan_x)
 
 # 所属 
 DeNA ヘルスケア
 
 #

    やってること 
 サーバーサイドエンジニア
 Ruby, Rails
 Go, GAE, Firestore
 Vue.js, Nuxt.js, Flutter
 
 # 前職
 SIer, SE, Dive into Code

  3. Rubyistとしての成長...
 
 いつした?


  4. レビューされた or した
 
 => 成長を実感


  5. レビューされるメリット


  6. ベテランのチェックでコード品質&スキルUP
 01
 User.all.each do |user|...
 
 > 全件取得でオンメモリになってまうで...
 User.find_each do

    |user|...

  7. 見てもらうために読みやすいコードを意識する
 02
 # 命名規則
 ユーザーのメールアドレスを取得したい
 NG: user.get_email
 OK: user.email
 


    # メソッド定義のシグネチャ
 ユーザーIDに該当するユーザーを取得したい
 NG: def find_by_id(user)
 OK: def find_by_id(user_id)

  8. レビューするメリット
 オススメ


  9. プロの技を盗める
 01
 ・責務分割
 ・delegate(移譲)
 ・||= (自己代入)
 ・DI(依存性注入)
 ・開発Contextごとの実装の違い
 class User


    attr_reader :id
 delegate :name, to: :profile
 
 def initialize(id)
 @id = id
 end
 
 private
 
 def profile
 @profile ||= ::Profile.new(self)
 end
 end
 
 class Profile
 def initialize(user)
 @user = user
 end
 
 def name
 "#{@user.id}: konchan"
 end
 end
 

  10. コードから始まるコミュニケーションが増える
 02
 あそこの
 アーキテクチャどう なってた?
 コンポーネントの認 証について教えて 欲しいっす
 外部連携データの
 フォーマットどうなっ

    てる?
 二日酔いやばい...

  11. プロジェクトの状況を把握する力がつく
 03
 A案件
 B案件
 C案件
 日頃からタスクや仕様を確認する
 むりぽ...


  12. ・命名
 ・デザインパターン
 ・責務
 ・アーキテクチャ
 ・DDD
 ・パフォーマンス
 ・セキュリティ
 自分ならどう実装するか比較する
 04


  13. レビューサイクルのメリット


  14. 適切な単位でPRを作成するようになる
 01
 変更ファイル50ファイル
 
 差分+2000行, -500行
 修行かな?
 変更ファイル5ファイル
 
 差分+100行,

    -20行

  15. 相手に理解してもらうために資料を用意する
 02
 ・シーケンス図
 ・業務フロー図
 ・ER図
 ・アーキテクチャ図
 ・API仕様
 ...
 PlantUML
 Swagger,

    OpenAPI
 便利なツールも覚える

  16. レビュー...めっちゃええやん


  17. 個人
 チーム
 プロダクト
 スキルアップ
 開発力アップ
 品質アップ


  18. レビューおすすめしてきたが...
 注意すること


  19. 過度に細かくレビューすることが
 良い訳ではない
 
 ・相手のコンテキストを理解する
 ・開発状況を理解する
 ・許容できるレベルかどうか判断する


  20. 何を達成したいかが重要


  21. 価値をユーザーに届けること


  22. 用法・用量を守って適切なレビュー