SlideShare a Scribd company logo
1 of 51
Download to read offline
ⓒ 2015 LINE CORPORATION
コードレビューの進め方
〜全員で行う品質の維持〜
2015/9/14 LINE Fukuoka
きしだ なおき
自己紹介
きしだ なおき
開発センター 開発室
就職して半年以上が過ぎました。
とりあえず午前中に出社
できるようになってきました。
][
今日の話
• LINE Fukuokaで行っている開発者
同士によるコードレビューについて
• どのようにコードレビューをするか
• どのようなコードレビューをするか
• 注意点
• 得られたもの
• など
コードレビューとは
ソースコードを目視して、
修正が必要なところについて議論する。
基本的には、コードを書いた人以外がレビューを行う。
コードを書いた本人が行うセルフレビューもあり。
時系列的には他人。
(一晩寝かすと他人度があがる)
コードレビューの目的
すでに存在する問題を排除する
今後問題が入りこむ可能性を削減する
• コードの見やすさ
• コードの構造
• コードの統一性
• 気持ちよさ
プロダクトの品質を改善する
前提となるプロセス
分散バージョン管理(Git/Mercurial)と
Pull Requestに対応したツールが必要
GitHub+Work in Progress(WIP)パターン
Work In Progress(WIP)パターン
• ブランチを作る
• とりあえず空コミット
• リモートへプッシュ
• Pull Requestを作る(WIP)
• 作業する
• コミット
• プッシュ
• セルフレビュー
• Pull Request更新(WIPをはずす)
• レビュー
• マージ
言語はどうする?
日本語がわかる人だけで開発する
- 日本語
• プルリク名やコミットコメントなどの言語をどうするか
• プロジェクト依存
多くの人にわかる言語で少ない情報を書くより、
自分のわかる言語で多くの情報を書くほうがいい
- 書いてあればだれかが翻訳できる。
- 書いてなければ誰にも補完できない。
• 本人でさえ!
日本語が苦手な人と開発する
- 英語
プルリクやコミットコメントで
英語を練習しないほうがいい
• 英語で書くために余分な時間がかかる
• 英語で書けない情報が欠落する
• 最初はコミットコメントを書くこと自体に不慣れなので
日本語でまず書けるのが大事
• そのコストを支払うなら、オンライン英会話で英語を
勉強したほうがいい
- 会社としてオンライン英会話を受けさせてもらってます
だれがレビューするか
• 2人以上がいい
• 同じプロジェクトの技術者が理想
• いないときは他のプロジェクトの人
• Javaのコードは最初は全部レビュー
していました
いつレビューするか
• 気が向いたとき
• 仕事を始めるときと3時くらい、とか
• マージを急ぐときにはチャットか物理で
連絡がくる
レビューの方法
動かす 動かさない
あったほうがいいもの
• コーディングガイドライン
• 静的コード解析ツール
コーディングガイドライン
• コーディング規約
- フォーマット
- 命名規約
- 用語集
• 対応英語を決めておく
• 迷ったときの基準
• 新メンバーが入りやすく
• すべての人が自信をもってレビューできるわけではない
ので、指針があるとやりやすい
静的コード解析ツール
• フォーマッタ
- Checkstyle
• コードチェック
- FindBugsなど
• 機械的なレビューを減ら
す
何に注目するか
• 読みやすさ
• 統一された形式
• 適切なコメント
• 言語機能・APIの適切な利用
• ロジックの正しさ
• 構造が適切か
• 仕様にあっているか
• テストの妥当性
• パフォーマンス
• セキュリティ
読みやすいコード
コードレビューしやすいコード
だれにとって読みやすいか
レビュワー
つまり
読みやすいコードは
コードレビューの負担をさげる
• コードレビューには時間がかかる
- レビュワーの数だけ
• レビューしやすいコードで時間を節約する
• もちろんメンテナンスの負担もさげる
読みやすいコードとは
読みやすい
• 成長があるものは除く
驚きがないコード=
驚きがないコード
• ありそうなところにありそうなコードが書いてある
• それっぽい名前のメソッドがそれっぽい動きをする
• それっぽい名前の変数にそれっぽい値が入っている
• いつもと違うことをするときには、いつもと違う書き方
になっている
統一された形式
• インデントやカッコの位置、スペース、改行の規則
• 名前付け規則
• 統一された順番
• コードを書いた人の好みも尊重するので自分の好みと
違ってもいいけど、統一すること
改行
• 右に長過ぎない
- GitHubではみ出さない程度に
• 文脈を考えて改行する
- SQLの改行は句単位で
- はみ出さないことが主目的では
なく見やすくすることが主目的
SQLの改行
× SELECT shohin.name, bunrui.name FROM
shohin LEFT JOIN bunrui ON
shohin.id=bunrui.id
○ SELECT shohin.name, bunrui.name
FROM shohin
LEFT JOIN bunrui on shohin.id=bunrui.id
用途の決まった名前
• 変数
- i 整数
- e 例外
• メソッド
- getで始まるメソッドはイミュータブルに
• 通信したりデータベースに書き込んだりしない
• クラス
- XxxErrorはextends Errorっぽい
統一された順番
• 識別情報(id/名前/カテゴリ) 実データ → メタデータ
(登録日付など)
• オーバーロードは引数の少ないほうから多いほうへ
• 引数順と値設定順をあわせる
• ifとelseで同じことをするなら同じ順に処理を行う
オーバーロードは
引数の少ないものから
some(String name){
some(name, false);
}
some(String name, boolean flag){
// proc
}
引数順と値設定順をあわせる
some(long id, String name, boolean enabled){
this.id = id;
this.name = name;
this.enabled = enabled;
}
ifとelseで同じことをするなら
同じ順に処理を行う
• 順番が違うと間違いやヌケに気づきにくい
if(exist){
this.id = id;
this.name = name;
this.enabled = enabled;
}else{
this.id = 0;
this.name = “”;
this.enabled = false;
}
適切なコメント
• 適切にソースコードを書けばコメントは不要?
- ソースコードが何をしてるかはわかりやすくなるけど、
何をしようとしてるかはわからない
• コードレビューはソースを解析して何を
してるか把握する活動ではない
• ソースコードが意図通りになっているか
確認する
- コメントで意図を書く
適切なコメント
• JavaDoc
- publicなメンバにはJavaDocコメントを書く
• @paramなどを埋める必要はない
- 戻り値booleanにはJavaDocを書く
• true/falseの意味するところはコンテキスト依存
• 処理に従ったコメント
- if( data.isEmpty()) hoge()
• ×データがあるときにはhogeをしない
• ○データがないときにhogeをする
• なにもしないブロックにはdo nothing等
• いつもと違うことをするときにはコメント
- forEachのラムダ内でのreturn
forEachのラムダ内でのreturn
void foo(List<Item> list){
list.forEach(item -> {
if(!item.isEnable()){
return; // ループを続ける
}
someProc();
otherProc();
});
}
• ラムダ内でのreturnはメソッド本体を抜けない
言語機能・APIの適切な利用
• Java5以降のAPI
- try-with-resource
- 数値リテラルの区切り
- isEmpty
• String/List
- Files
- Objects
• Java8
Files/Objects
• Files.copy
• Files.lines
• Files.newBufferedReader
• Objects.requireNonNull
• FilesとObjectsはひととおり
確認しておくといいです
Java8
• Stream
• Optional
• Map
Stream
• ソース・中間処理・終端処理を意識する
• ソース
- stream() / Arrays.stream() / Stream.of()
• 中間処理
- map() / flatMap() / filter()
• 終端処理
- anyMatch()
- collect
• toList() / toMap() / joining()
Streamの改行
• ソースまでは一行にする
- stream()を単独行にしない
• 改行をいれるなら終端処理は単独行に
• List<String> items = list.stream()
.filter(item -> !item.isEmpty())
.map(item -> item.toLowerCase())
.collect(Collectors.toList());
Optional
• return nullを書かない
• isPresentでの判定をなるべくさける
- ifPresentを使う
- if(optFoo.isPresent()){
someProc(optFoo.get());
}
- optFoo.ifPresent(foo -> {
someProc(foo);
});
Map
• getOrDefault
- 値がないときにデフォルト値を使う
- value = map.getOrDefault(key, “”)
• computeIfAbsent
- 値がないときに処理した値をMapに設定して返す
- value = map.computeIfAbsent(key,
k -> db.find(key));
ロジックの正しさ
• 条件の不備
- (name != null && name.isEmpty()) ||
name != null
- コピペミスだった
• 値設定もれ
• ぬるぽ
- メソッドに渡ってこないはずだとしても
nullには気をつけたほうがいい。
- あとで他から呼び出されることもある
構造が適切か
• 設計を反映した構造
- ビューに業務ロジックを置かない
• 意味を反映した構造
意味を反映した構造
• 変数名はポジティブに
- 例えば、表示できるかどうかをinvisibleで表すと
• if (!invisible) { 表示できる }
• 「表示できない、ではない」という二重否定になる
• 例外処理を条件処理して通常処理は
インデントなるべくしない
- ×
if(exist){
長い処理
}
return;
- ○
if(!exist) return;
長い処理
意味を反映した構造
仕様にあっているか
• 仕様どおりの動きか
• 漏れはないか
• テンプレート中の金額計算は注意する
• 日本語が正しいか
- 結構typoがある
• 少数→小数
• サーバ → サーバー
テストの妥当性
• テストはコードレビューでしか品質担保できない
• テストにはコメントを書く
- テストは開発者の裁量が大きいので、コメントがないと
意図がわからずレビューできない
• SQLには疎通テストを書く
- 静的文法チェックがないので、テストで代用する
- 文字列でのフィールド指定してるところも
• テストが多すぎない
パフォーマンス/セキュリティ
• パフォーマンス
- データベースアクセス回数は問題ないか
- 計算量として大丈夫か
• セキュリティ
- HTML出力する文字がエスケープされているか
- SQLの組み立ては大丈夫か
コードレビューの効果
• コード品質向上
• 仕様共有
• 小さなノウハウの共有
• コードレビューのやりかたの共有
• コードの健全性をたもつ
- 動くんだけど死にそうなコードとかがないように
• 自分の考えを明確化できる
• ブログの間違いに気づく
- もっといいAPIがあると指摘したら、
「きしだのはてな」に書いてあったと返される
コードレビューの注意
• 事実のみを指摘する
• 対案を提示する
• 結構時間がかかる
GitHubが使えない場合
• よそのサーバーに置けない
- GitHub Enterprise
- Backlog Enterprise
• お金かけれない
- BitBucket
• 5ユーザー無料
- Backlog
• 10ユーザー無料
• よそのサーバーに置けな
い。お金もかけれない
- GitLab
- GitBucket
Gitが使えない場合
• 会議
- 一日一時間とか
• メール
- メーリングリストを使う
• チケット
- タスク管理・バグ管理システムを使う
• ソースのコメントに記述
- http://d.hatena.ne.jp/camlspotter/20120814/1344919762
• レビューツールを使う
- ReviewBoardなど
• がんばってGitを使う
• LINE Fukuokaに転職する
まとめ
• コードレビューは品質面でも、教育面でも、
文化面でも大切
• やりすぎると時間が食われるので、ほどほどに
やりましょう
Thank you.

More Related Content

Viewers also liked

AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化についてAWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
知教 本間
 
地方で集うビジネスにしないITラボ
地方で集うビジネスにしないITラボ地方で集うビジネスにしないITラボ
地方で集うビジネスにしないITラボ
Takeshi Yanagiya
 
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
Fumihiko Kinoshita
 

Viewers also liked (20)

【cybozu conference 2015】nomizu 分科会
【cybozu conference 2015】nomizu 分科会【cybozu conference 2015】nomizu 分科会
【cybozu conference 2015】nomizu 分科会
 
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
 
脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka
 
飲食店サイトのスクレイピング
飲食店サイトのスクレイピング飲食店サイトのスクレイピング
飲食店サイトのスクレイピング
 
大企業Hacks!
大企業Hacks!大企業Hacks!
大企業Hacks!
 
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化についてAWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
 
スキニーなシステム開発にぴったりの契約形態
スキニーなシステム開発にぴったりの契約形態スキニーなシステム開発にぴったりの契約形態
スキニーなシステム開発にぴったりの契約形態
 
地方で集うビジネスにしないITラボ
地方で集うビジネスにしないITラボ地方で集うビジネスにしないITラボ
地方で集うビジネスにしないITラボ
 
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
 
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
 
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
 
デザイナーでも構築できる多言語/マルチデバイス対応サイト
デザイナーでも構築できる多言語/マルチデバイス対応サイトデザイナーでも構築できる多言語/マルチデバイス対応サイト
デザイナーでも構築できる多言語/マルチデバイス対応サイト
 
ロボットのいる生活@enPiT
ロボットのいる生活@enPiTロボットのいる生活@enPiT
ロボットのいる生活@enPiT
 
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤
 
ソフトウェア受託開発の未来
ソフトウェア受託開発の未来ソフトウェア受託開発の未来
ソフトウェア受託開発の未来
 
世界最強のソフトウェアアーキテクト
世界最強のソフトウェアアーキテクト世界最強のソフトウェアアーキテクト
世界最強のソフトウェアアーキテクト
 
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
 
【基調講演】変える覚悟、変わる覚悟。
【基調講演】変える覚悟、変わる覚悟。【基調講演】変える覚悟、変わる覚悟。
【基調講演】変える覚悟、変わる覚悟。
 
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
 
「納品のない受託開発」を支えるコードレビューの取り組み
「納品のない受託開発」を支えるコードレビューの取り組み「納品のない受託開発」を支えるコードレビューの取り組み
「納品のない受託開発」を支えるコードレビューの取り組み
 

Similar to 【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~

20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた
Shugo Numano
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
Katsutoshi Makino
 
モバイルOSとWeb標準とそれらへのアプローチ
モバイルOSとWeb標準とそれらへのアプローチモバイルOSとWeb標準とそれらへのアプローチ
モバイルOSとWeb標準とそれらへのアプローチ
Kisato
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
takuma mori
 

Similar to 【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~ (20)

20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた20120702勉強会 webアプリ作ってみた
20120702勉強会 webアプリ作ってみた
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
Go で Unit Test をやってみた
Go で Unit Test をやってみたGo で Unit Test をやってみた
Go で Unit Test をやってみた
 
モバイルOSとWeb標準とそれらへのアプローチ
モバイルOSとWeb標準とそれらへのアプローチモバイルOSとWeb標準とそれらへのアプローチ
モバイルOSとWeb標準とそれらへのアプローチ
 
What is doobie? - database access for scala -
What is doobie? - database access for scala -What is doobie? - database access for scala -
What is doobie? - database access for scala -
 
Lombok ハンズオン
Lombok ハンズオンLombok ハンズオン
Lombok ハンズオン
 
プログラミングNet framework3のお題
プログラミングNet framework3のお題プログラミングNet framework3のお題
プログラミングNet framework3のお題
 
Ppl
PplPpl
Ppl
 
Java8 code kata (Japanese)
Java8 code kata (Japanese)Java8 code kata (Japanese)
Java8 code kata (Japanese)
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
アジャイル開発やってみた
アジャイル開発やってみたアジャイル開発やってみた
アジャイル開発やってみた
 
jOOQの紹介
jOOQの紹介jOOQの紹介
jOOQの紹介
 
JavaScript 研修
JavaScript 研修JavaScript 研修
JavaScript 研修
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリング
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
 

More from Developers Summit

【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
Developers Summit
 

More from Developers Summit (20)

【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
 
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・小林様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
 
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
 
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
 
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
【B-6】Androidスマホの生体認証の脆弱性、調べてみたらよくある話だった。
 
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦
 
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
 
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
【15-E-7】セキュアな環境でDevOpsを実現する厳選ツール
 
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
【14-E-3】セキュリティ・テストの自動化によるDevSecOpsの実現 (デモ有)
 
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
【15-D-2】デンソーのMaaS開発~アジャイル開発で顧客との協調・チームビルディング・実装概要~
 
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
【14-C-8】みんなの暮らしを支えるAmazon S3の裏側、お伝えします
 
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
【14-C-7】コンピュータビジョンを支える深層学習技術の新潮流
 
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
 
【15-A-1】ドラゴンクエストXを支える失敗事例
【15-A-1】ドラゴンクエストXを支える失敗事例【15-A-1】ドラゴンクエストXを支える失敗事例
【15-A-1】ドラゴンクエストXを支える失敗事例
 
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
 
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
【B-2】福岡発Node.jsで支える大規模システム!〜「誰ガ為のアルケミスト」と歩んだ三年〜
 
【B-5】モダンな開発を実現するツールチェーンのご紹介
【B-5】モダンな開発を実現するツールチェーンのご紹介【B-5】モダンな開発を実現するツールチェーンのご紹介
【B-5】モダンな開発を実現するツールチェーンのご紹介
 
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
【C-2】メモリも、僕のキャパシティも溢れっぱなし。。2年目エンジニアが実現した機械学習
 
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
【A-2】とあるマーケティング部隊とデータエンジニアのデータドリブンへの道
 
【B-2】AI時代におけるエンジニアの生存戦略
【B-2】AI時代におけるエンジニアの生存戦略【B-2】AI時代におけるエンジニアの生存戦略
【B-2】AI時代におけるエンジニアの生存戦略
 

Recently uploaded

Recently uploaded (12)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

【デブサミ福岡B5】コードレビューの進め方~全員で行う品質の維持~