SlideShare a Scribd company logo
Rubyにおける
Clean Code戦略


   2011/04/10
  大江戸Ruby会議
赤松 祐希(@ukstudio)
フリーのRubyプログラマ

     http://ukstudio.jp
 y.akamatsu@ukstudio.jp
どうしてこうなった
“しかし、ディルバートよ、間違っている
      のは、我々の星回りではなく、我々自身
      なのです。”

      “あなたがそれに負けない熱意を持っ
      てコードを守ればよいのです。”




Clean Code P.30
戦略



http://www.flickr.com/photos/calliope/2313727442/
もしまだやってないのなら...




   テスト駆動開発
   リファクタリング
 継続的インテグレーション
汚れたコード



http://www.flickr.com/photos/creative_tools/4353923698
20%
 リファクタリング
組み合わせる

      ストーリー



          リファクタ




http://www.flickr.com/photos/picken/3312949360/
細目にクリーンにする




http://www.flickr.com/photos/picken/3312949360/
“ボーイスカウトには大切なルールがあ
   ります。それは、「来た時よりも美しく」
   です。たとえ自分が来た時にキャンプ場
   が汚くなっていたとしても、そしてたとえ
   汚したのが自分ではなかったとしても、
   きれいにしてからその場を去る、という
   ルールです。”
プログラマの知るべき97のこと P.17
S.O.L.I.D原則

 SRP       OCP         LSP
単一責任     オープン・クローズド   リスコフの置換




 ISP        DIP
依存関係逆転   インターフェース分離
単一責任の原則
変更理由 = 役割・責務
Userクラス

    バリデーション
    認証              権限に
                   関する修正
    権限




バリデーションに    認証に
 関する修正     関する修正
mixin
Validate::User
Userクラス           モジュール



                 バリデーションに
                  関する修正

Authentication
 モジュール           Roleモジュール



    認証に              権限に
   関する修正            関する修正
オープン・クローズド原則



http://www.flickr.com/photos/stevensnodgrass/4460594204/
http://www.flickr.com/photos/seanfx/5092676658/
ダックタイピング
ブロック
Rubyらしい設計



http://www.ruby-assn.org/ruby-logo.html.ja
文化




                                                  スキル


http://www.flickr.com/photos/usgo55/2885049548/
http://www.flickr.com/photos/hawee/2194569264/
議論しよう

More Related Content

PPTX
モテBTS ~ backlog ~
PDF
自己紹介LT「俺の迷走っぷり」
PDF
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
PPTX
もう2度と止まらせない
PDF
React introduntion
PDF
Datamining 4th adaboost
PDF
はじパタ11章 後半
PDF
PRML Chapter 14
モテBTS ~ backlog ~
自己紹介LT「俺の迷走っぷり」
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
もう2度と止まらせない
React introduntion
Datamining 4th adaboost
はじパタ11章 後半
PRML Chapter 14

Similar to 大江戸Ruby会議 (20)

PDF
20110820 metaprogramming
PDF
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
PDF
地域Ruby会議に参加してきた話とか
PPT
Start!! Ruby
PDF
"Ordinary" System Development
PDF
20091030 Uncle Bob Said You Should Be A Professional With Clean Code
PDF
Rubyな日々
PDF
20120706-readablecode
PPTX
Ruby on Rails を用いたWEBアプリケーションの開発
PDF
名古屋Ruby会議02 LT:Ruby中級への道
PPT
Ruby City Matsue
PDF
ニコニコ超エンジニアミーティング Rubyの歩き方
PDF
20080521-Ruby-on-Rails-Security
PPTX
そんな装備で大丈夫か?
PDF
20100626-We-Think-We-Act
PPT
リアルビジネスRuby
PDF
Ruby で高速なプログラムを書く
PDF
Basic of Basics of Agile Development Returns
PDF
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
PDF
メイカーRuby講習会2013
20110820 metaprogramming
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
地域Ruby会議に参加してきた話とか
Start!! Ruby
"Ordinary" System Development
20091030 Uncle Bob Said You Should Be A Professional With Clean Code
Rubyな日々
20120706-readablecode
Ruby on Rails を用いたWEBアプリケーションの開発
名古屋Ruby会議02 LT:Ruby中級への道
Ruby City Matsue
ニコニコ超エンジニアミーティング Rubyの歩き方
20080521-Ruby-on-Rails-Security
そんな装備で大丈夫か?
20100626-We-Think-We-Act
リアルビジネスRuby
Ruby で高速なプログラムを書く
Basic of Basics of Agile Development Returns
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
メイカーRuby講習会2013
Ad

More from Yuki Akamatsu (6)

PDF
Goos 001
PDF
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
KEY
オブラブ夏2010
PDF
オブラブ忘年会2009 LT資料
PDF
Vim DE OOP
PDF
Goos 001
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
オブラブ夏2010
オブラブ忘年会2009 LT資料
Vim DE OOP
Ad

大江戸Ruby会議