SlideShare a Scribd company logo
リーダブルコードを
                     読んだ後
                        須藤功平
                  株式会社クリアコード
                      DevLOVE 2012
                          2012/12/16

リーダブルコードを読んだ後               Powered by Rabbit 2.0.5
やること



      クリアコードの
      開発方法を体験

リーダブルコードを読んだ後          Powered by Rabbit 2.0.5
目標


           リーダブルコードを
      当たり前にする

リーダブルコードを読んだ後        Powered by Rabbit 2.0.5
イベントのテーマ




リーダブルコードを読んだ後          Powered by Rabbit 2.0.5
目標


                あなたが
           リーダブルコードを
      当たり前にする
リーダブルコードを読んだ後          Powered by Rabbit 2.0.5
やること

   ✓ クリアコードの開発方法を体験
      ✓ 対象: 野生のフリーソフトウェア

   ✓ 読む人を「想像」しない
   ✓ 読む人を「思い出す」


リーダブルコードを読んだ後          Powered by Rabbit 2.0.5
想像上の誰か


       想像上の誰かが自分のコード
      を理解しやすいかなんて考える
      のは大変なことだ。
      [「リーダブルコード 1.5 でもやるんだよ」より引用
                                ]




リーダブルコードを読んだ後                 Powered by Rabbit 2.0.5
想像しない



   ✓ 読む人を「想像」しない
   ✓ 読む人を「思い出す」



リーダブルコードを読んだ後           Powered by Rabbit 2.0.5
思い出すには?




          読む人になる

リーダブルコードを読んだ後             Powered by Rabbit 2.0.5
クリアコードの開発方法
   ✓ コミットメールが全員に届く
       (diff入り)

      ✓ 全員が読む

   ✓ 気になったらコメント
       (プロジェクト外の人でも)

   ✓ 「昨日印象に残ったコミット」
     を朝会で報告

リーダブルコードを読んだ後          Powered by Rabbit 2.0.5
ポイント
   ✓ 全員が書く人で読む人
   ✓ 書く時:
      ✓ 読む時の事を思いながら
          (こう書くと読みやすいんだよな。)


   ✓ 読む時:
      ✓ 書く時の事を思いながら
          (これ読みやすいから今度同じように書こう。)


リーダブルコードを読んだ後                 Powered by Rabbit 2.0.5
当日は
省略
なぜリーダブルコード?



                 開発を
                続けるため

リーダブルコードを読んだ後           Powered by Rabbit 2.0.5
メリット

   ✓ メンテナンスコストを低く保つ
       (開発を続けるわりにあわなくなってしまう)

   ✓ 機能追加・変更をしやすくする
       (使われないものになって開発する必要がなくなる)

   ✓ プログラマーの意欲を保つ
       (プログラマーも人です)




リーダブルコードを読んだ後                  Powered by Rabbit 2.0.5
注意


   ✓ すべてを解決するわけではない
      ✓ よりよくする重要な方法の1つ

   ✓ トレードオフ



リーダブルコードを読んだ後            Powered by Rabbit 2.0.5
メンテナンスコスト


       メンテナンスコストを低く保
      つためにずっとリファクタリン
      グをし続けると…高いメンテナ
      ンスコスト


リーダブルコードを読んだ後      Powered by Rabbit 2.0.5
素早い変更

       素早く機能追加・変更できる
      よう、リーダブルコードにする
      ために必要な時間を確保して開
      発しているのに、機能を追加し
      たいというと必ず1週間以上は
      必要だと言われる…素早くない
      変更

リーダブルコードを読んだ後           Powered by Rabbit 2.0.5
ゴール
   ✓ 本末転倒にならないように!
   ✓ リーダブルコードを書くことは
     ゴールじゃない
      ✓ 効率よく目的を実現するのがゴール
          (今だけ効率がよければよいのではない。念のため。)


   ✓ 手早くリーダブルコードを
     書けるようになろう!

リーダブルコードを読んだ後                 Powered by Rabbit 2.0.5
なぜコミットメール?



          ペアプロより
          スケールする

リーダブルコードを読んだ後   Powered by Rabbit 2.0.5
ペアプロ

   ✓ 常にコードレビュー
   ✓ 2人だけ
   ✓ 時間をあわせる
   ✓ 距離をあわせる
   ✓ プロジェクトをあわせる

リーダブルコードを読んだ後          Powered by Rabbit 2.0.5
コミットメール

   ✓ 常にコードレビュー
   ✓ 2人以上も読める
   ✓ 時間がずれてもよい
   ✓ 距離がずれてもよい
   ✓ プロジェクトがずれてもよい

リーダブルコードを読んだ後             Powered by Rabbit 2.0.5
コミット


    ペアプロしているように!
   ✓ 小さくコミット
   ✓ 意図が伝わるコミット


リーダブルコードを読んだ後          Powered by Rabbit 2.0.5
ペアプロの方がよいこと

      全体の設計とかもみれる
   ✓ コミットメールだけだとムリ
   ✓ pull requestだけでもムリ
   ✓ 一緒に書いていないとムリ
       (同じプロジェクトだといけそう)



リーダブルコードを読んだ後             Powered by Rabbit 2.0.5
ここまで
 飛ばす
確認




                事前課題

リーダブルコードを読んだ後          Powered by Rabbit 2.0.5
事前課題
    1. リーダブルコードを読む
    2. Rubyコードの感想戦を読む
    3. github://clear-code/git-utils
       をfork
    4. commit-email.rbを読む
          ✓ Rubyコードの感想戦のように読む

リーダブルコードを読んだ後                 Powered by Rabbit 2.0.5
事前課題確認1
    1. リーダブルコードを読む
    2. Rubyコードの感想戦を読む
    3. github://clear-code/git-utils
       をfork
    4. commit-email.rbを読む
          ✓ Rubyコードの感想戦のように読む

リーダブルコードを読んだ後                 Powered by Rabbit 2.0.5
事前課題確認2
    1. リーダブルコードを読む
    2. Rubyコードの感想戦を読む
    3. github://clear-code/git-utils
       をfork
    4. commit-email.rbを読む
          ✓ Rubyコードの感想戦のように読む

リーダブルコードを読んだ後                 Powered by Rabbit 2.0.5
事前課題確認3
    1. リーダブルコードを読む
    2. Rubyコードの感想戦を読む
    3. github://clear-code/git-utils
       をfork
    4. commit-email.rbを読む
          ✓ Rubyコードの感想戦のように読む

リーダブルコードを読んだ後                 Powered by Rabbit 2.0.5
事前課題確認4
    1. リーダブルコードを読む
    2. Rubyコードの感想戦を読む
    3. github://clear-code/git-utils
       をfork
    4. commit-email.rbを読む
          ✓ Rubyコードの感想戦のように読む

リーダブルコードを読んだ後                 Powered by Rabbit 2.0.5
むずかしい?



   ✓ 「うまくできない」は今のうち
   ✓ 聞けば答えます



リーダブルコードを読んだ後            Powered by Rabbit 2.0.5
進め方

   ✓ 読み手になる: 15分
      ✓ 事前課題をやっていない人:   Rubyコードの感想戦を読
          む


   ✓ 読み手目線で書く: 15分
      ✓ 事前課題をやっていない人:   読み手になる


   ✓ 質疑応答: 10分

リーダブルコードを読んだ後                    Powered by Rabbit 2.0.5
読み手になる: 15分
    1. 数人のグループを作る
    2. グループ用のgit-utilsをclone
    3. 読んでcommit & push
          ✓ リーダブルなら理由をコメントと
            して書く
          ✓ リーダブルじゃないなら直してコ
            ミットメッセージで理由を説明

リーダブルコードを読んだ後             Powered by Rabbit 2.0.5
読み手目線で書く: 15分
    1. 他のグループのリポジトリの
       コミットを確認
          コミットメールが届いているはず

          ✓ 自分達にピンとこないものを選ぶ
          ✓ 直してメッセージで理由を説明
          ✓ コードで伝える

    2. 自分たちのリポジトリを確認
    3. 繰り返す
リーダブルコードを読んだ後               Powered by Rabbit 2.0.5
質疑応答: 10分


   ✓ 気になったコミットは?
   ✓ やってみて困ったことは?
   ✓ 実践すると困りそうなことは?



リーダブルコードを読んだ後               Powered by Rabbit 2.0.5
宣伝
      コミットへのコメントサービス
   https://www.clear-code.com/services/#commit-comment


       お客様の開発プロジェクトの
      コミットを読んでコメントする
      ことにより、お客様の開発チー
      ムが「当たり前のようにクリア
      なコードを書く文化」を育むこ
      とを支援します。
リーダブルコードを読んだ後                                Powered by Rabbit 2.0.5

More Related Content

What's hot

負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)
Yohei Hamada
 
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Yamamoto Reki
 
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみDoma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
Toshihiro Nakamura
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
 
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
PHPでAIプログラミングコンテスト準優勝するまでの軌跡PHPでAIプログラミングコンテスト準優勝するまでの軌跡
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
Shintaro Kurachi
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
 
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
amusementcreators
 
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
Kouhei Sutou
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
 
スタイル変換技術による対訳コーパスから同時通訳コーパスへの拡張
スタイル変換技術による対訳コーパスから同時通訳コーパスへの拡張スタイル変換技術による対訳コーパスから同時通訳コーパスへの拡張
スタイル変換技術による対訳コーパスから同時通訳コーパスへの拡張
Kosuke Futamata
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
Kazunori Hamamoto
 
第4部「Tddとペアプロのめざめ」
第4部「Tddとペアプロのめざめ」第4部「Tddとペアプロのめざめ」
第4部「Tddとペアプロのめざめ」Hiromu Shioya
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
 
ゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼンゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼン光晶 上原
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterMasanori Oobayashi
 
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
kumake
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
 
どこに何を書くのか?
どこに何を書くのか?どこに何を書くのか?
どこに何を書くのか?
pospome
 

What's hot (20)

負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)
 
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
 
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみDoma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
PHPでAIプログラミングコンテスト準優勝するまでの軌跡PHPでAIプログラミングコンテスト準優勝するまでの軌跡
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
 
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
 
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
リーダブルコードワークショップ(パイオニア向け) - 課題の実装の進め方
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
 
スタイル変換技術による対訳コーパスから同時通訳コーパスへの拡張
スタイル変換技術による対訳コーパスから同時通訳コーパスへの拡張スタイル変換技術による対訳コーパスから同時通訳コーパスへの拡張
スタイル変換技術による対訳コーパスから同時通訳コーパスへの拡張
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
 
第4部「Tddとペアプロのめざめ」
第4部「Tddとペアプロのめざめ」第4部「Tddとペアプロのめざめ」
第4部「Tddとペアプロのめざめ」
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
 
ゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼンゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼン
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
どこに何を書くのか?
どこに何を書くのか?どこに何を書くのか?
どこに何を書くのか?
 

Similar to リーダブルコードを読んだ後

開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?
Kouhei Sutou
 
SEゼミ2015 - コードチェンジ
SEゼミ2015 - コードチェンジSEゼミ2015 - コードチェンジ
SEゼミ2015 - コードチェンジ
Kouhei Sutou
 
リーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジリーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジ
Kouhei Sutou
 
リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要
Kouhei Sutou
 
SEゼミ2015 - リーダブルコード勉強会のまとめ
SEゼミ2015 - リーダブルコード勉強会のまとめSEゼミ2015 - リーダブルコード勉強会のまとめ
SEゼミ2015 - リーダブルコード勉強会のまとめ
Kouhei Sutou
 
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめリーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめ
Kouhei Sutou
 
実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ
Kouhei Sutou
 
SEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジSEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジ
Kouhei Sutou
 
リーダブルコードワークショップ(パイオニア向け)のコードチェンジ
リーダブルコードワークショップ(パイオニア向け)のコードチェンジリーダブルコードワークショップ(パイオニア向け)のコードチェンジ
リーダブルコードワークショップ(パイオニア向け)のコードチェンジ
Kouhei Sutou
 
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
Kouhei Sutou
 
クリアなコードの作り方 - How to make clear code
クリアなコードの作り方 - How to make clear codeクリアなコードの作り方 - How to make clear code
クリアなコードの作り方 - How to make clear code
Kouhei Sutou
 
実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり
Kouhei Sutou
 
SEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめSEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめ
Kouhei Sutou
 
SEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめSEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめ
Kouhei Sutou
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
プログラマー
プログラマープログラマー
プログラマー
Kouhei Sutou
 
リーダブルコード勉強会 in 筑波大のグループふりかえり
リーダブルコード勉強会 in 筑波大のグループふりかえりリーダブルコード勉強会 in 筑波大のグループふりかえり
リーダブルコード勉強会 in 筑波大のグループふりかえり
Kouhei Sutou
 
実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり
Kouhei Sutou
 
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
Tomofumi Yagi
 
Potatotops20141217
Potatotops20141217Potatotops20141217
Potatotops20141217Mogi Isamu
 

Similar to リーダブルコードを読んだ後 (20)

開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?
 
SEゼミ2015 - コードチェンジ
SEゼミ2015 - コードチェンジSEゼミ2015 - コードチェンジ
SEゼミ2015 - コードチェンジ
 
リーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジリーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジ
 
リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要
 
SEゼミ2015 - リーダブルコード勉強会のまとめ
SEゼミ2015 - リーダブルコード勉強会のまとめSEゼミ2015 - リーダブルコード勉強会のまとめ
SEゼミ2015 - リーダブルコード勉強会のまとめ
 
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめリーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめ
 
実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ
 
SEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジSEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジ
 
リーダブルコードワークショップ(パイオニア向け)のコードチェンジ
リーダブルコードワークショップ(パイオニア向け)のコードチェンジリーダブルコードワークショップ(パイオニア向け)のコードチェンジ
リーダブルコードワークショップ(パイオニア向け)のコードチェンジ
 
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
リーダブルコードワークショップ(パイオニア向け)のリーダブルコードの共有
 
クリアなコードの作り方 - How to make clear code
クリアなコードの作り方 - How to make clear codeクリアなコードの作り方 - How to make clear code
クリアなコードの作り方 - How to make clear code
 
実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり
 
SEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめSEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめ
 
SEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめSEゼミ2014 - リーダブルコード勉強会のまとめ
SEゼミ2014 - リーダブルコード勉強会のまとめ
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
プログラマー
プログラマープログラマー
プログラマー
 
リーダブルコード勉強会 in 筑波大のグループふりかえり
リーダブルコード勉強会 in 筑波大のグループふりかえりリーダブルコード勉強会 in 筑波大のグループふりかえり
リーダブルコード勉強会 in 筑波大のグループふりかえり
 
実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり実践リーダブルコードのふりかえり
実践リーダブルコードのふりかえり
 
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
 
Potatotops20141217
Potatotops20141217Potatotops20141217
Potatotops20141217
 

More from Kouhei Sutou

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
Kouhei Sutou
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Kouhei Sutou
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
Kouhei Sutou
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
Kouhei Sutou
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのか
Kouhei Sutou
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Kouhei Sutou
 
Apache Arrow 2019
Apache Arrow 2019Apache Arrow 2019
Apache Arrow 2019
Kouhei Sutou
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像
Kouhei Sutou
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
Kouhei Sutou
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6
Kouhei Sutou
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
Kouhei Sutou
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
Kouhei Sutou
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
Kouhei Sutou
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroonga
Kouhei Sutou
 
My way with Ruby
My way with RubyMy way with Ruby
My way with Ruby
Kouhei Sutou
 
Red Data Tools
Red Data ToolsRed Data Tools
Red Data Tools
Kouhei Sutou
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Kouhei Sutou
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
Kouhei Sutou
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!
Kouhei Sutou
 

More from Kouhei Sutou (20)

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのか
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
 
Apache Arrow 2019
Apache Arrow 2019Apache Arrow 2019
Apache Arrow 2019
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroonga
 
My way with Ruby
My way with RubyMy way with Ruby
My way with Ruby
 
Red Data Tools
Red Data ToolsRed Data Tools
Red Data Tools
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!
 

Recently uploaded

FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 

リーダブルコードを読んだ後

  • 1. リーダブルコードを 読んだ後 須藤功平 株式会社クリアコード DevLOVE 2012 2012/12/16 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 2. やること クリアコードの 開発方法を体験 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 3. 目標 リーダブルコードを 当たり前にする リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 5. 目標 あなたが リーダブルコードを 当たり前にする リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 6. やること ✓ クリアコードの開発方法を体験 ✓ 対象: 野生のフリーソフトウェア ✓ 読む人を「想像」しない ✓ 読む人を「思い出す」 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 7. 想像上の誰か 想像上の誰かが自分のコード を理解しやすいかなんて考える のは大変なことだ。 [「リーダブルコード 1.5 でもやるんだよ」より引用 ] リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 8. 想像しない ✓ 読む人を「想像」しない ✓ 読む人を「思い出す」 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 9. 思い出すには? 読む人になる リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 10. クリアコードの開発方法 ✓ コミットメールが全員に届く (diff入り) ✓ 全員が読む ✓ 気になったらコメント (プロジェクト外の人でも) ✓ 「昨日印象に残ったコミット」 を朝会で報告 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 11. ポイント ✓ 全員が書く人で読む人 ✓ 書く時: ✓ 読む時の事を思いながら (こう書くと読みやすいんだよな。) ✓ 読む時: ✓ 書く時の事を思いながら (これ読みやすいから今度同じように書こう。) リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 13. なぜリーダブルコード? 開発を 続けるため リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 14. メリット ✓ メンテナンスコストを低く保つ (開発を続けるわりにあわなくなってしまう) ✓ 機能追加・変更をしやすくする (使われないものになって開発する必要がなくなる) ✓ プログラマーの意欲を保つ (プログラマーも人です) リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 15. 注意 ✓ すべてを解決するわけではない ✓ よりよくする重要な方法の1つ ✓ トレードオフ リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 16. メンテナンスコスト メンテナンスコストを低く保 つためにずっとリファクタリン グをし続けると…高いメンテナ ンスコスト リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 17. 素早い変更 素早く機能追加・変更できる よう、リーダブルコードにする ために必要な時間を確保して開 発しているのに、機能を追加し たいというと必ず1週間以上は 必要だと言われる…素早くない 変更 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 18. ゴール ✓ 本末転倒にならないように! ✓ リーダブルコードを書くことは ゴールじゃない ✓ 効率よく目的を実現するのがゴール (今だけ効率がよければよいのではない。念のため。) ✓ 手早くリーダブルコードを 書けるようになろう! リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 19. なぜコミットメール? ペアプロより スケールする リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 20. ペアプロ ✓ 常にコードレビュー ✓ 2人だけ ✓ 時間をあわせる ✓ 距離をあわせる ✓ プロジェクトをあわせる リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 21. コミットメール ✓ 常にコードレビュー ✓ 2人以上も読める ✓ 時間がずれてもよい ✓ 距離がずれてもよい ✓ プロジェクトがずれてもよい リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 22. コミット ペアプロしているように! ✓ 小さくコミット ✓ 意図が伝わるコミット リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 23. ペアプロの方がよいこと 全体の設計とかもみれる ✓ コミットメールだけだとムリ ✓ pull requestだけでもムリ ✓ 一緒に書いていないとムリ (同じプロジェクトだといけそう) リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 25. 確認 事前課題 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 26. 事前課題 1. リーダブルコードを読む 2. Rubyコードの感想戦を読む 3. github://clear-code/git-utils をfork 4. commit-email.rbを読む ✓ Rubyコードの感想戦のように読む リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 27. 事前課題確認1 1. リーダブルコードを読む 2. Rubyコードの感想戦を読む 3. github://clear-code/git-utils をfork 4. commit-email.rbを読む ✓ Rubyコードの感想戦のように読む リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 28. 事前課題確認2 1. リーダブルコードを読む 2. Rubyコードの感想戦を読む 3. github://clear-code/git-utils をfork 4. commit-email.rbを読む ✓ Rubyコードの感想戦のように読む リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 29. 事前課題確認3 1. リーダブルコードを読む 2. Rubyコードの感想戦を読む 3. github://clear-code/git-utils をfork 4. commit-email.rbを読む ✓ Rubyコードの感想戦のように読む リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 30. 事前課題確認4 1. リーダブルコードを読む 2. Rubyコードの感想戦を読む 3. github://clear-code/git-utils をfork 4. commit-email.rbを読む ✓ Rubyコードの感想戦のように読む リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 31. むずかしい? ✓ 「うまくできない」は今のうち ✓ 聞けば答えます リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 32. 進め方 ✓ 読み手になる: 15分 ✓ 事前課題をやっていない人: Rubyコードの感想戦を読 む ✓ 読み手目線で書く: 15分 ✓ 事前課題をやっていない人: 読み手になる ✓ 質疑応答: 10分 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 33. 読み手になる: 15分 1. 数人のグループを作る 2. グループ用のgit-utilsをclone 3. 読んでcommit & push ✓ リーダブルなら理由をコメントと して書く ✓ リーダブルじゃないなら直してコ ミットメッセージで理由を説明 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 34. 読み手目線で書く: 15分 1. 他のグループのリポジトリの コミットを確認 コミットメールが届いているはず ✓ 自分達にピンとこないものを選ぶ ✓ 直してメッセージで理由を説明 ✓ コードで伝える 2. 自分たちのリポジトリを確認 3. 繰り返す リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 35. 質疑応答: 10分 ✓ 気になったコミットは? ✓ やってみて困ったことは? ✓ 実践すると困りそうなことは? リーダブルコードを読んだ後 Powered by Rabbit 2.0.5
  • 36. 宣伝 コミットへのコメントサービス https://www.clear-code.com/services/#commit-comment お客様の開発プロジェクトの コミットを読んでコメントする ことにより、お客様の開発チー ムが「当たり前のようにクリア なコードを書く文化」を育むこ とを支援します。 リーダブルコードを読んだ後 Powered by Rabbit 2.0.5