SlideShare ist ein Scribd-Unternehmen logo
1 von 109
Downloaden Sie, um offline zu lesen
ソースコードの品質向上
    のための
 効果的で効率的な
  コードレビュー
 日本工学院八王子専門学校
    大圖 衛玄
自己紹介
                         1992年~1997年
                           某ゲーム会社
                           プログラマ
                           SFC,GB,PS1,N64のゲーム開発経験

                        1998年~現在
                           日本工学院八王子専門学校
    @mozmoz1972            専任講師
                           プログラミング教育を中心に担当




twitterもfacebookも実名です。よかったらフォローしてください。
アジェンダ

コードレビューの必要性と問題点
メトリクス計測と関連ツールの紹介
本校の取り組み
まとめ、質疑応答
コードレビュー
していますか?
コードレビューが
 できない理由
時間がない
ソースコード量
  パネェし
気力も残ってないし
うちの会社では
無理です(笑)
(笑)ではありません
よくある怖い話
新人に仕事を丸投げ
コードの酷さに
 怒り爆発
納期直前に絶望
神に祈る
神様どうかバグらないでください
神様どうか止まらないでください
もう二度と悪いコードは書きません
毎日、早寝、早起きします
毎日、日記も書きます
ゲームは1日1時間
南無妙法蓮華経
南無阿弥陀仏




アーーメン!
新人の責任では
 ありません
レビューを怠った
先輩の責任です
コードレビューの問題点

手間、時間、気力の問題
大量のコードをどのようにレビューするのか?
全ソースコードのレビューは非現実的
ペアプログラミング

全ソースのコードレビューが可能!
たぶん、会社的に理解してもらえない
費用対効果も未知数
導入には勇気が必要です
諦めない
知恵を使いましょう!
コードレビューの効率化

時間がないのなら、レビュー対象を絞り込む
明らかに問題がある部分のみレビューする
優先度を決定する
時間を決め、短時間のレビューを行う
最小限の時間で
最大の効果を上げる
コードレビューの対象を絞る

 プログラム設計全体を俯瞰するレビュー
 デバック困難なデリケートな部分のレビュー
 稚拙なコードに対する教育的なレビュー

     対象を絞って、レビューしましょう


これらのレビューは完全に切り分けて行ってください。
本セッションは
教育的レビュー
 が対象です
稚拙なコード
 とは?
Large
MIT石井教授のスライドを参考にしました。 CEDEC2010の基調講演は感動的でした。
巨大な1枚岩のようなクラス、メソッド。初心者に多い非OOなコードです。
Complexity
一見して何をしているかわからない。迷路のようなコード。
if

             if
                     for
                            if
                                 if
                                      if




ネスト地獄です。よく考えずにコードを書くとこうなりますよね。
Duplicate
Ctrl + C   Ctrl + V   Ctrl + V   Ctrl + V




本人の承諾を得ております。
巨大複雑重複コードのレビュー

大量のコードから巨大複雑重複を発見する
ソースファイルを1つずつ開いてチェック?
効率的に行う方法が必要
メトリクス計測ツール
 を活用しましょう!
メトリクス計測
していますか?
メトリクス計測
やったことない
メトリクス計測は
   様々な
種類があります
本セッション
    では
何を計測するのか?
ソフトウェアの
 保守性を
 計測します
ソフトウェアの保守性とは?

可読性
理解が容易であるか?
変更性
変更が容易であるか?
試験性
デバッグが容易であるか?
巨大複雑重複コード
  理解困難
  変更困難
  試験困難
Villainy
メトリクス計測ツール
   活用により
極悪なコードを
 自動的に
検出可能です
ご紹介するツール

  SourceMonitor
   コードの大きさ、複雑さを計測
  CCFinderX
   コードの重複を計測
  Cppcheck
   静的解析によるエラーチェック

検索エンジンにて、各ツール名で検索すれば入手可能です
Free
SourceMonitor

コード行数の計測
コメント行数の計測
ステートメント数の計測
循環的複雑度(サイクロマティック数)の計測
ステートメント数

コメントや空白行を除く純粋なコード行数
{}(ブレース)も含まない
セミコロン+制御文の数と考えてよい
for文は3ステートメントでカウントされる
0001:   // 余計な改行はカウントしない
0002:   a = b
0003:     + c;
0004:   // ブレースはカウントしない
0005:   m = a;
0006:   if (b > m) {
0007:        m = b;
0008:   }

        4ステートメント
循環的複雑度        Cyclomatic Complexity


1976年にThomas J. McCabeが考案
制御構造に着目した複雑さのメトリクス
コードの複雑さを数値化する
分岐が多いコードほど大きな数値となる
m = a;           m=a


   if (b > m) {
                    b>m
      m = b;
   }                m=b

   if (c > m) {
                    c>m
      m = c;
   }                m=c




フローチャートに直して説明します。
①
循環的複雑度            1
                  ②
エッジ数 - ノード数 + 2
                  2
                  ③
エッジ数
 フローチャートの線の数      3
                      7
ノード数              ④

 フローチャートの要素数      4
                  ⑤

                  5
8-7+2=     3      ⑥
                      8
                  6
                  ⑦
ほぼ
制御文の数+1
 になります
複合条件
(&&、||)
でも増加します
循環的複雑度        Cyclomatic Complexity


↓5    単純な構造
↓10   良い構造
↑30   構造に疑問
↑50   テスト、デバッグ困難
↑75   変更時に誤修正を生む原因を作る
循環的複雑度
 10以下
 が望ましい
32を超えると
       バグを含んでいる
       確率が高くなる
          by IBM
IBMの調査結果があるそうです。
SourceMonitor
             デモ

簡単なデモを行いました。
CCFinderX

 コードクローン(重複したコード)の検出
 コピー&ペーストしたコードを顕在化
 プログラム全体での重複チェックを行う
 現在は、オープンソース化されている



更新終了しています。利用してるPythonのバージョンも古いです。注意が必要です。
CCFinderX
             デモ

簡単なデモを行いました。
Cppcheck

 静的コード解析によるエラーチェック
 未初期化変数の警告
 バッファオーバーラン、メモリリークの検出
 STLの正しい使用法の警告



現在、活発にアップデートをしています。商用のものが使用できない方におすすめです。
Cppcheck
                 デモ

簡単なデモを行いました。
メトリクス計測を始めましょう

 明らかに悪い部分を自動的に発見可能
 客観的に数値化される
 リファクタリングを行う明確な基準ができる
 ソースコードの品質を一定以上に保てる



主観的評価では、人を納得させるのは難しいです。特にベテランは・・・
計測できないものは
   コントロールできない
   Lord Kelvin




メトリクス計測関係の本に引用されることが多い言葉です。
品質管理
計測必須
チーム制作の授業の概要

 前期、後期の半年毎のチーム制作
 1チーム5~8名、20チーム前後
 学年を超えたチーム編成
 アジャイル開発(XPとScrumをアレンジ)



本校の取り組みを紹介しました。
クソース問題


アジャイル開発は成功しましたが、ソースコードの質はひどい状態でした。
クソース [kusource]
   理解不能で変更困難なプログラムコード。
   巨大かつ複雑で、重複しているケースも多
   い。変更するたびにバグが発生し、バグが
   収束することはない。
   地方によっては、 uncodeと呼ばれる。


ネタです、申し訳ありません。uncodeの「un 」はローマ字読みしてください。
クソース問題

SourceMonitorの計測を義務化していた
しかし、完成優先でクソースを量産
動作させるので精一杯な学生も多いが…
コーディング規約を決めることにした!
7つのコーディング規約
             お尻は掻いても
             クソース書くな


実際の授業で利用したスライドです。
複雑度
 10
 まで
1メソッド
    10
ステートメントまで
1クラス
   100
ステートメントまで
ネスト
  2
段階まで
複合条件
 2つ
 まで
フィールド
 4つ
 まで
ソースコードを
   愛
  せよ
tweet!




      ソースコードを
         愛
        せよ
恥ずかしがらずに、つぶやいてみましょう。
クソース問題

コーディング規約のチェックをどうするか?
SourceMonitorで全チームチェック?
20チーム以上を毎回計測するのは非効率
計測結果を一覧できる仕組みを作ろう!
KuSourceMonitorの作成

SourceMonitorのXML出力機能を活用
XMLの計測結果を独自に集計しHTML化
違反数、違反率の集計表を作成
違反しているメソッドのソースコードを抽出
バッチ処理用XML



 SourceMonitor    計測結果XML



                 KuSourceMonitor
コマンドラインによる
バッチ処理で行います
                  集計結果HTML
KuSourceMonitor
           デモ

簡単なデモと、使用前、使用後のプロジェクト結果を比較しました。
クソースの顕在化に成功

集計結果を共有サーバーにアップ
全学生が閲覧可能となる
いじめにならないか? という懸念もあった
顕在化後、リファクタリングが活発になる
顕在化による効果

 クソースがさらされるのは誰でも嫌!
 自尊心、羞恥心に訴える
 できる学生ほど、プライドが高い
 チーム間の競争もあった



数値化されると燃える!という学生もいました。
他人に見られていることを
   意識すればコードは美しくなる
   Moriharu Ohzu




ネタです。申し訳ありません。
問題を顕在化
   するのが
品質管理の基本です
今後の取り組み

  商用メトリクス計測ツールの導入
  もっと多くのメトリクス計測が可能
  クラス設計のメトリクス計測をしたい!
  高精度の静的解析によるエラーチェックも!



本校では、Klocworkの導入に向けて、準備中です。
クラス設計のメトリクス計測

 継承の深さ、子クラスの数の計測
 フィールド数、凝集性の計測
 他クラスとの結合度の計測
 明らかに設計が悪いクラスを検出できる



商用ツールは強力です。Javaの世界にはフリーでも良いツールが存在します。
コーディング規約の調整

               理想       標準    妥協
  複雑度           5        10   20
  ネスト           2        3     4
  メソッド長         10       20   40
  クラス長          80      160   240



今後の課題です。厳しすぎても、ユルすぎてもダメです。
計測によるレビューの注意点

 クソースは減りますが・・・
 静的解析にも限界はあります・・・
 油断してはいけません
 新人には丁寧なレビューをしてあげましょう!



短時間で良いので、レビューしてあげてください。
理想的なコード



普通のコード



 クソース
理想的なコード



               普通のコード




計測によるレビューでは、クソースがなくなるだけです。
計測によるレビューの注意点

 明らかに悪い部分を検出するのが目的
 理想を目指すなら、人力レビューが必要
 人力レビューの効率化にも可読性が必須
 クリーンなコードに対して、人力レビューする



理想を目指すなら、人力レビューが必要。しかしクソースはレビューする価値がない。
計測によるレビュー
       により
    品質の底上げが可能

クソースがなくなるだけでも効果はあります。
SourceMonitor
            から
      はじめてみましょう!

コードを計測する習慣をつけましょう。SourceMonitorは手軽なツールです。
予算があれば
        Klocwork
         導入しましょう!
    丸紅情報システムズ株式会社展示ブースにて
       絶賛デモンストレーション中!

CEDEC2011の展示ブースにて、デモが行われていました。
まとめ

 まずは、計測するところから始める
 計測により、効率のよいレビューが可能
 計測結果を分かりやすく顕在化する
 顕在化による効果は絶大!



顕在化しないと、意識が変わりません。
保守性メトリクスに関しては、Code Qualityの第7章に詳しい説明があります。
質問に関しては、ohzu@hac.neec.ac.jpにお願いします。
ソースコードを
         愛
        せよ
ソースコードを愛していれば、クソースは書けません。

Weitere ähnliche Inhalte

Was ist angesagt?

ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターンMoriharu Ohzu
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードShigenori Sagawa
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことBIGLOBE Inc.
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀増田 亨
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2増田 亨
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し増田 亨
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについてkumake
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門増田 亨
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメYoji Kanno
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス増田 亨
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?Yoshitaka Kawashima
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
 

Was ist angesagt? (20)

ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについて
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 

Ähnlich wie ソースコードの品質向上のための効果的で効率的なコードレビュー

ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
コードの複雑さを測ろう
コードの複雑さを測ろうコードの複雑さを測ろう
コードの複雑さを測ろうShinya_131
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
テスト駆動開発入門
テスト駆動開発入門テスト駆動開発入門
テスト駆動開発入門Shuji Watanabe
 
TDD を自分の道具にしよう
TDD を自分の道具にしようTDD を自分の道具にしよう
TDD を自分の道具にしようYuji Okazawa
 
私のチームのリーダブルコード
私のチームのリーダブルコード私のチームのリーダブルコード
私のチームのリーダブルコードKeisuke Tameyasu
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTURE Project
 
C#のココが好き!
C#のココが好き!C#のココが好き!
C#のココが好き!Takaaki Suzuki
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門Kiro Harada
 
設計者がCAEを成功させる10の法則
設計者がCAEを成功させる10の法則設計者がCAEを成功させる10の法則
設計者がCAEを成功させる10の法則Akira KURISAKI
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめhakoika-itwg
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストSeiji KOMATSU
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy systemTakamchiTanaka
 
Code complete ch22_developper_test
Code complete ch22_developper_testCode complete ch22_developper_test
Code complete ch22_developper_testSho Shimauchi
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミングcocodrips
 
より良いコードを書くための
より良いコードを書くためのより良いコードを書くための
より良いコードを書くためのTATSUYA HAYAMIZU
 

Ähnlich wie ソースコードの品質向上のための効果的で効率的なコードレビュー (20)

ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
コードの複雑さを測ろう
コードの複雑さを測ろうコードの複雑さを測ろう
コードの複雑さを測ろう
 
第28回Tokyo.R
第28回Tokyo.R第28回Tokyo.R
第28回Tokyo.R
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
テスト駆動開発入門
テスト駆動開発入門テスト駆動開発入門
テスト駆動開発入門
 
TDD を自分の道具にしよう
TDD を自分の道具にしようTDD を自分の道具にしよう
TDD を自分の道具にしよう
 
私のチームのリーダブルコード
私のチームのリーダブルコード私のチームのリーダブルコード
私のチームのリーダブルコード
 
後期講座07
後期講座07後期講座07
後期講座07
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
C#のココが好き!
C#のココが好き!C#のココが好き!
C#のココが好き!
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門
 
設計者がCAEを成功させる10の法則
設計者がCAEを成功させる10の法則設計者がCAEを成功させる10の法則
設計者がCAEを成功させる10の法則
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy system
 
Code complete ch22_developper_test
Code complete ch22_developper_testCode complete ch22_developper_test
Code complete ch22_developper_test
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
 
より良いコードを書くための
より良いコードを書くためのより良いコードを書くための
より良いコードを書くための
 

Kürzlich hochgeladen

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Kürzlich hochgeladen (10)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

ソースコードの品質向上のための効果的で効率的なコードレビュー