SlideShare a Scribd company logo
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
コード規約の
策定会を実施した話
株式会社 虎の穴ラボ
河野 裕隆
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
名前:河野裕隆
所属:虎の穴ラボ
同人誌販売を行っている
「とらのあな」のエンジニア会社
自己紹介

2
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
名前:河野裕隆
担当:開発リーダー
   プログラミング+調整など
自己紹介

3
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
今回は1について話します
1. 問題のないコードか確認
a. バグ、抽象度、拡張性など
2. 知らなかった書き方や仕様を知る
コードレビューは何をする?

4
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
コードレビューの目的
良いコードを書く!
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
良いコード?🤔🤔🤔
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
• 読みやすい、追いやすい
– 主観的すぎる・・・
• メンテしやすい
– 環境によって違うのでは?
良いコードとは?

7
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
同意できる内容を
みんなで決めちゃえ!
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
チーム内で
良いコードの認識統一会の実施
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
• プロジェクト固有、お気持ち󰢃
• 定量的、第三者的な見解󰢏
書籍『Clean Code』と
実際のコードから策定
策定会ルール

10
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
• 発音可能な単語を使う
– rtn(returnの略)などは󰢃
合意した内容の一例

11
なぜ?
• 新規参入者に説明が必要
• 音声コミュニケーション時に面倒
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
なぜ?
• コード見ればわかるため
• わからない=>命名が適切ではない
• 意図の説明や処理の理由をコメント
– XXXを取得する󰢃
合意した内容の一例

12
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
• メンテが必要なコメント󰢃
実際のコード例で説明します
合意した内容の一例

13
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
• メンテが必要なコメント󰢃
合意した内容の一例

14
const CACHE_VALID_SECONDS = 604800;
604800ってわからないし、
1週間ってコメントつけておいて
󰢃󰢃󰢃󰢃󰢃󰢃󰢃󰢃󰢃
󰢃󰢃
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
const SECOND_PER_MINUTE = 60;
const MINUTES_PER_HOUR = 60;
const HOURS_PER_DAY = 24;
const WEEK_DAYS = 7;
const CACHE_VALID_SECONDS = SECOND_PER_MINUTE *
MINUTES_PER_HOUR * HOURS_PER_DAY * WEEK_DAYS;
• メンテが必要なコメント󰢃
合意した内容の一例

15
Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved.
• みなさんもぜひコード規約策定会を開
いてみてください
– 何を思ってコード書いているか知ることが
できる
– 書くときに困っていたことがわかる
まとめ

16

More Related Content

Similar to 【コードレビューLT資料】コード規約の策定会を実施した話

Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good parts
Jarek Ratajski
 
Democratic Deploys at Airbnb
Democratic Deploys at AirbnbDemocratic Deploys at Airbnb
Democratic Deploys at Airbnb
New Relic
 
Branding manual
Branding manualBranding manual
Branding manual
Alejandro Correa
 
A geek sifts through the bullshit
A geek sifts through the bullshitA geek sifts through the bullshit
A geek sifts through the bullshit
Webstock
 
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
DOCOMO Innovations, Inc.
 
Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)
DotNetMarche
 
20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs
虎の穴 開発室
 
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
DOCOMO Innovations, Inc.
 
VBS2 2.0 Update March 2012
VBS2 2.0 Update March 2012VBS2 2.0 Update March 2012
VBS2 2.0 Update March 2012
Brian Lucke
 
仕様決定、部品化、ディレクションがなぜ重要か
仕様決定、部品化、ディレクションがなぜ重要か仕様決定、部品化、ディレクションがなぜ重要か
仕様決定、部品化、ディレクションがなぜ重要か
Kohei Otsuka
 
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
Evan Lin
 
Gen AI: tech du-jour or the next big thing?
Gen AI: tech du-jour or the next big thing?Gen AI: tech du-jour or the next big thing?
Gen AI: tech du-jour or the next big thing?
massimoreferre
 
Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017
Lemi Orhan Ergin
 
React - Component Based Approach
React - Component Based ApproachReact - Component Based Approach
React - Component Based Approach
Fabio Biondi
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
ZeroTurnaround
 
Design Guidelines
Design GuidelinesDesign Guidelines
Design Guidelines
Petros Antoniou
 
Design guidelines
Design guidelinesDesign guidelines
Design guidelines
Petros Antoniou
 
Chatbots e Musica: Como criar um Digital Assistant para o meu Spotify?
Chatbots e Musica: Como criar um Digital Assistant para o meu Spotify?Chatbots e Musica: Como criar um Digital Assistant para o meu Spotify?
Chatbots e Musica: Como criar um Digital Assistant para o meu Spotify?
Eliel Roger
 
6 Rs of story refinement (c) expresso technology agile partners etap
6 Rs of story refinement (c) expresso   technology agile partners etap6 Rs of story refinement (c) expresso   technology agile partners etap
6 Rs of story refinement (c) expresso technology agile partners etap
Jacqueline K. Sanders-Blackman, Agilist,CBAP,SSBB,CSM,SAFe
 
Wwdc extended21 tomonish
Wwdc extended21 tomonishWwdc extended21 tomonish
Wwdc extended21 tomonish
智也 大西
 

Similar to 【コードレビューLT資料】コード規約の策定会を実施した話 (20)

Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good parts
 
Democratic Deploys at Airbnb
Democratic Deploys at AirbnbDemocratic Deploys at Airbnb
Democratic Deploys at Airbnb
 
Branding manual
Branding manualBranding manual
Branding manual
 
A geek sifts through the bullshit
A geek sifts through the bullshitA geek sifts through the bullshit
A geek sifts through the bullshit
 
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
 
Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)
 
20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs
 
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
 
VBS2 2.0 Update March 2012
VBS2 2.0 Update March 2012VBS2 2.0 Update March 2012
VBS2 2.0 Update March 2012
 
仕様決定、部品化、ディレクションがなぜ重要か
仕様決定、部品化、ディレクションがなぜ重要か仕様決定、部品化、ディレクションがなぜ重要か
仕様決定、部品化、ディレクションがなぜ重要か
 
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
 
Gen AI: tech du-jour or the next big thing?
Gen AI: tech du-jour or the next big thing?Gen AI: tech du-jour or the next big thing?
Gen AI: tech du-jour or the next big thing?
 
Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017
 
React - Component Based Approach
React - Component Based ApproachReact - Component Based Approach
React - Component Based Approach
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
 
Design Guidelines
Design GuidelinesDesign Guidelines
Design Guidelines
 
Design guidelines
Design guidelinesDesign guidelines
Design guidelines
 
Chatbots e Musica: Como criar um Digital Assistant para o meu Spotify?
Chatbots e Musica: Como criar um Digital Assistant para o meu Spotify?Chatbots e Musica: Como criar um Digital Assistant para o meu Spotify?
Chatbots e Musica: Como criar um Digital Assistant para o meu Spotify?
 
6 Rs of story refinement (c) expresso technology agile partners etap
6 Rs of story refinement (c) expresso   technology agile partners etap6 Rs of story refinement (c) expresso   technology agile partners etap
6 Rs of story refinement (c) expresso technology agile partners etap
 
Wwdc extended21 tomonish
Wwdc extended21 tomonishWwdc extended21 tomonish
Wwdc extended21 tomonish
 

More from 虎の穴 開発室

FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化
虎の穴 開発室
 
Railsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認するRailsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認する
虎の穴 開発室
 
虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴 開発室
 
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdfDeno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
虎の穴 開発室
 
toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明
虎の穴 開発室
 
Deno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介しますDeno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介します
虎の穴 開発室
 
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
虎の穴 開発室
 
GCPの画像認識APIの紹介
GCPの画像認識APIの紹介 GCPの画像認識APIの紹介
GCPの画像認識APIの紹介
虎の穴 開発室
 
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
虎の穴 開発室
 
GitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼうGitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼう
虎の穴 開発室
 
通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」
虎の穴 開発室
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
虎の穴 開発室
 
セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説
虎の穴 開発室
 
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
虎の穴 開発室
 
Amplify Studioを使ってみた
Amplify Studioを使ってみたAmplify Studioを使ってみた
Amplify Studioを使ってみた
虎の穴 開発室
 
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!
虎の穴 開発室
 
【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ
虎の穴 開発室
 
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴 開発室
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
虎の穴 開発室
 
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴 開発室
 

More from 虎の穴 開発室 (20)

FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化
 
Railsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認するRailsのデバッグ どうやるかを改めて確認する
Railsのデバッグ どうやるかを改めて確認する
 
虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf虎の穴ラボ エンジニア採用説明資料 .pdf
虎の穴ラボ エンジニア採用説明資料 .pdf
 
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdfDeno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
 
toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明toranoana.deno #6 アジェンダ 採用説明
toranoana.deno #6 アジェンダ 採用説明
 
Deno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介しますDeno 向け WEB 開発用のツールを作ったので 紹介します
Deno 向け WEB 開発用のツールを作ったので 紹介します
 
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
Supabase Edge Functions と Netlify Edge Functions を使ってみる – 機能とその比較 –
 
GCPの画像認識APIの紹介
GCPの画像認識APIの紹介 GCPの画像認識APIの紹介
GCPの画像認識APIの紹介
 
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
【エンジニアの勉強法ハックLT- vol.7】ゲームから学んだ勉強のこと
 
GitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼうGitHub APIとfreshで遊ぼう
GitHub APIとfreshで遊ぼう
 
通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」通販開発部の西田さん「通販開発マネジメントの5ルール」
通販開発部の西田さん「通販開発マネジメントの5ルール」
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
 
セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説セキュリティを強化しよう!CloudArmorの機能解説
セキュリティを強化しよう!CloudArmorの機能解説
 
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発JavaScript LT会 〜 React.js   Node.js歓迎 〜 Deno で やってみるweb開発
JavaScript LT会 〜 React.js Node.js歓迎 〜 Deno で やってみるweb開発
 
Amplify Studioを使ってみた
Amplify Studioを使ってみたAmplify Studioを使ってみた
Amplify Studioを使ってみた
 
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!
 
【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ【Saitama.js】Denoのすすめ
【Saitama.js】Denoのすすめ
 
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
虎の穴ラボ Tech day#3 チームで戦う!とらのあな通販冬の大感謝祭でのフロント開発について
 
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜	【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
 
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント 虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
虎の穴ラボ TechDay#3 フルリモート率100%!リモートワークを可能にするマネージメント
 

Recently uploaded

P5 Working Drawings.pdf floor plan, civil
P5 Working Drawings.pdf floor plan, civilP5 Working Drawings.pdf floor plan, civil
P5 Working Drawings.pdf floor plan, civil
AnasAhmadNoor
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 
Height and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdfHeight and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdf
q30122000
 
2. protection of river banks and bed erosion protection works.ppt
2. protection of river banks and bed erosion protection works.ppt2. protection of river banks and bed erosion protection works.ppt
2. protection of river banks and bed erosion protection works.ppt
abdatawakjira
 
Data Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason WebinarData Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason Webinar
UReason
 
Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...
Prakhyath Rai
 
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICSUNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
vmspraneeth
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
Dwarkadas J Sanghvi College of Engineering
 
Accident detection system project report.pdf
Accident detection system project report.pdfAccident detection system project report.pdf
Accident detection system project report.pdf
Kamal Acharya
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENTNATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
Addu25809
 
Zener Diode and its V-I Characteristics and Applications
Zener Diode and its V-I Characteristics and ApplicationsZener Diode and its V-I Characteristics and Applications
Zener Diode and its V-I Characteristics and Applications
Shiny Christobel
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
Anant Corporation
 
Blood finder application project report (1).pdf
Blood finder application project report (1).pdfBlood finder application project report (1).pdf
Blood finder application project report (1).pdf
Kamal Acharya
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf
AlvianRamadhani5
 
AI-Based Home Security System : Home security
AI-Based Home Security System : Home securityAI-Based Home Security System : Home security
AI-Based Home Security System : Home security
AIRCC Publishing Corporation
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
mahaffeycheryld
 

Recently uploaded (20)

P5 Working Drawings.pdf floor plan, civil
P5 Working Drawings.pdf floor plan, civilP5 Working Drawings.pdf floor plan, civil
P5 Working Drawings.pdf floor plan, civil
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 
Height and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdfHeight and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdf
 
2. protection of river banks and bed erosion protection works.ppt
2. protection of river banks and bed erosion protection works.ppt2. protection of river banks and bed erosion protection works.ppt
2. protection of river banks and bed erosion protection works.ppt
 
Data Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason WebinarData Driven Maintenance | UReason Webinar
Data Driven Maintenance | UReason Webinar
 
Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...Software Engineering and Project Management - Software Testing + Agile Method...
Software Engineering and Project Management - Software Testing + Agile Method...
 
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICSUNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
UNIT 4 LINEAR INTEGRATED CIRCUITS-DIGITAL ICS
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
 
Accident detection system project report.pdf
Accident detection system project report.pdfAccident detection system project report.pdf
Accident detection system project report.pdf
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENTNATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
 
Zener Diode and its V-I Characteristics and Applications
Zener Diode and its V-I Characteristics and ApplicationsZener Diode and its V-I Characteristics and Applications
Zener Diode and its V-I Characteristics and Applications
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
 
Blood finder application project report (1).pdf
Blood finder application project report (1).pdfBlood finder application project report (1).pdf
Blood finder application project report (1).pdf
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf
 
AI-Based Home Security System : Home security
AI-Based Home Security System : Home securityAI-Based Home Security System : Home security
AI-Based Home Security System : Home security
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
 

【コードレビューLT資料】コード規約の策定会を実施した話

  • 1. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. コード規約の 策定会を実施した話 株式会社 虎の穴ラボ 河野 裕隆
  • 2. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. 名前:河野裕隆 所属:虎の穴ラボ 同人誌販売を行っている 「とらのあな」のエンジニア会社 自己紹介
 2
  • 3. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. 名前:河野裕隆 担当:開発リーダー    プログラミング+調整など 自己紹介
 3
  • 4. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. 今回は1について話します 1. 問題のないコードか確認 a. バグ、抽象度、拡張性など 2. 知らなかった書き方や仕様を知る コードレビューは何をする?
 4
  • 5. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. コードレビューの目的 良いコードを書く!
  • 6. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. 良いコード?🤔🤔🤔
  • 7. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. • 読みやすい、追いやすい – 主観的すぎる・・・ • メンテしやすい – 環境によって違うのでは? 良いコードとは?
 7
  • 8. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. 同意できる内容を みんなで決めちゃえ!
  • 9. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. チーム内で 良いコードの認識統一会の実施
  • 10. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. • プロジェクト固有、お気持ち󰢃 • 定量的、第三者的な見解󰢏 書籍『Clean Code』と 実際のコードから策定 策定会ルール
 10
  • 11. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. • 発音可能な単語を使う – rtn(returnの略)などは󰢃 合意した内容の一例
 11 なぜ? • 新規参入者に説明が必要 • 音声コミュニケーション時に面倒
  • 12. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. なぜ? • コード見ればわかるため • わからない=>命名が適切ではない • 意図の説明や処理の理由をコメント – XXXを取得する󰢃 合意した内容の一例
 12
  • 13. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. • メンテが必要なコメント󰢃 実際のコード例で説明します 合意した内容の一例
 13
  • 14. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. • メンテが必要なコメント󰢃 合意した内容の一例
 14 const CACHE_VALID_SECONDS = 604800; 604800ってわからないし、 1週間ってコメントつけておいて 󰢃󰢃󰢃󰢃󰢃󰢃󰢃󰢃󰢃 󰢃󰢃
  • 15. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. const SECOND_PER_MINUTE = 60; const MINUTES_PER_HOUR = 60; const HOURS_PER_DAY = 24; const WEEK_DAYS = 7; const CACHE_VALID_SECONDS = SECOND_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY * WEEK_DAYS; • メンテが必要なコメント󰢃 合意した内容の一例
 15
  • 16. Copyright (C) 2021 虎の穴ラボ株式会社All Right Reserved. • みなさんもぜひコード規約策定会を開 いてみてください – 何を思ってコード書いているか知ることが できる – 書くときに困っていたことがわかる まとめ
 16