タグ

リファクタリングに関するhohoho_ho2005のブックマーク (7)

  • Rails アプリケーションにおけるリファクタリングの実践 - peroli Developer's Blog

    2016 - 05 - 06 Rails アプリケーションにおけるリファクタリングの実践 Ruby on Rails こんにちは、MERY のサーバサイド開発をしている末並 @a_suenami です。 TDD、 アジャイルDB 界隈等によく出没しますが、最近では糖質警察としてのほうが広く知られている気がする今日この頃です。糖質制限に興味ある方はぜひウィスキーを片手にケトン体の話でもしながら飲みましょう。 さて、現在、MERY は Ruby on Rails で開発されていますが、最初にリリースされたのはもう 3 年近く前であり、その頃とはサービスを取り巻く状況が大きく変わってきています。これまで多くのユーザの「かわいい」を支え、よい体験を提供し続けてきた現在の MERY とそのコードベースを否定することは決してできませんが、日々変わるユーザの「かわいい」ニーズと我々のビジネス状況の変

    Rails アプリケーションにおけるリファクタリングの実践 - peroli Developer's Blog
  • 技術的負債を管理する

    1992年にWard Cunningham氏が、技術系ではないステークホルダにこの問題を伝えるために、初めて「技術的負債」というメタファを使いました。品質の低いコードと自動テストによるカバレッジがないことは、財務的負債と比較されます。このようなコードは、開発者だけでなく、すべてのステークホルダが負う財政的な重荷になり、将来的に利息が課される負債になります。元額は、コードベースを将来簡単に変更できるようにリファクタリングするコストです。利息は、チームがよいコードではなく、汚いコードに取り組まなければならない場合に、将来支払う余分なコストです。 財務的負債とは違い、技術的負債は返済しなくてもよい負債です。時には、返済するのが無駄なこともあります。ある部分のコードを読んだり、変更したりすることはめったにないか、決して起こらないかもしれません。そのため、技術的負債も、どのくらい起きそうかを考慮す

    技術的負債を管理する
  • リファクタリングは何故必要か - assertInstanceOf('Engineer', $a_suenami)

    言葉遣いはやや辛辣ですが、内容自体は非常に共感できるので応援も兼ねて一言言っておくことにします。 気軽に「リファクタリングした」って言うな。 「リファクタリング」という言葉はプログラマ以外は絶対に知らないであろう非常にニッチな言葉であるにも関わらず、時折誤用されることがあります。バズワードと呼ぶにはあまりに使う人たちが限定的ですが、来の意味を超えて広く使われてしまっているという意味では似たようなものかもしれません。 来の「リファクタリング」という言葉は非常にシンプルで 外部への振る舞いを変更しない 内部の構造を(通常はよりよい構造へ)変更する の2つを満たす行為のことです。 そして、通常は一点目の条件である外部への振る舞いが変わってないことを確かめる方法が自動化されたテストなのですが、この言葉が時折誤用されていると僕が感じる理由は、テストがない状態やテストで保護できているレベルを超えた

    リファクタリングは何故必要か - assertInstanceOf('Engineer', $a_suenami)
  • 「Primitive Obsession(基本データ型への執着)」を克服するリファクタリング - モジログ

    ウィキペディア - コードの臭い http://ja.wikipedia.org/wiki/%E3%82%B3.. <コードの臭い(英: Code smell)とは、コンピュータプログラミングにおいてプログラムのソースコードに深刻な問題が存在することを示す何らかの兆候のことを言う>。 プログラミングにおける「コードの臭い」とは、かんたんに言うと、「ダメな設計のパターン」である。 このウィキペディアの解説ページでは、「重複したコード」「長すぎるメソッド」「巨大なクラス」など、9個の「コードの臭い」が紹介されている。 ここに出ていないもので、よく知られた「コードの臭い」として、「Primitive Obsession(基データ型への執着)」というものがある。 c2.com - Primitive Obsession http://c2.com/cgi/wiki?PrimitiveObsess

  • デザインパターンよりも、まずリファクタリングを学んだほうがいい - モジログ

    ウィキペディア - デザインパターン (ソフトウェア) http://ja.wikipedia.org/wiki/%E3%83%87 <ソフトウェア開発におけるデザインパターン(型紙(かたがみ)または設計パターン、英: design pattern)とは、過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積し、名前をつけ、再利用しやすいように特定の規約に従ってカタログ化したものである>。 ウィキペディア - リファクタリング http://ja.wikipedia.org/wiki/%E3%83%AA.. <リファクタリング (refactoring) とはコンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理すること。いくつかのリファクタリング手法の総称としても使われる。十分に確立された技術とはいえず、「リファクタリング」の語にも厳

  • リファクタリング - Strategic Choice

    書籍「リファクタリング―プログラムの体質改善テクニック(=以下 オリジナル)」の6〜12章で紹介されている「リファクタリング」を写経します。同時に新しい言語を身に着けたいので、書籍「リファクタリング:Rubyエディション(以下 Ruby)」をメインにまとめていきます。Ruby アイコンオリジナル アイコン一覧Composing Methods.リファクタリングComposing Methods.メソッドの構成方法メソッドの構成Extract Methodメソッドの抽出メソッドの抽出Inline Methodメソッドのインライン化メソッドのインライン化Inline Temp一時変数のインライン化一時変数のインライン化Replace Temp with Query一時変数から問い合わせメソッドへ問い合わせによる一時変数の置き換えReplace Temp with Chain一時変数から

  • コードの臭い・脱臭チャート - Strategic Choice

    書籍「リファクタリング―プログラムの体質改善テクニック」「リファクタリング:Rubyエディション」の3章で紹介されている「Bad Smells in Code」を写経します。また、それぞれの「臭い」に適用するリファクタリングを、チャート形式で併せて記載します。コードの臭いコードの不吉な匂い一覧Bad Smells in CodeDuplicated Codeコードの重複重複したコードLong Method長いメソッド長すぎるメソッドLarge Class大きなクラス巨大なクラスLong Parameter List長い引数リスト多すぎる引数Divergent Change変更系統の分岐変更の発散Shotgun Surgeryショットガン創の手術変更の分散Feature Envyメソッドの浮気属性、操作の横恋慕Data Clumps群れたがるデータデータの群れPrimitive Obsess

  • 1