pearson
alwayslearning

その他の言語

   著:ウィリアム・C・ウェイク(William C. Wake)
      ケヴィン・ラザフォード(Kevin Rutherford
  訳:小林健一、吉野雅人、太田大地、坂本一憲、小島努
  発行:2010年11月
  ページ数:288
  版型:B5変形
  税込価格:3,360円
  ISBN10: 4864010099
  ISBN13: 9784864010092

好評発売中!



Rubyプログラマのための実用的な「リファクタリング・ワークブック」

本書は、Rubyコードのどこを改善すべきか、問題となるコードの「臭い」を嗅ぎ分け、それぞれに最適な「リファクタリング」手法をどのように適用するかを学びます。豊富な演習問題を通じて解決策をマスターしていくので、開発や保守の現場にいるプログラマには、うってつけの一冊になるでしょう。


■「まえがき」より

何についての書かれた本か

リファクタリングは,既存コードの設計を改善する技術であり,マーチン・ファウラーによる『リファクタリング』において紹介されました。ファウラーの本には,数十もの詳細な機械的手順が載っており,それぞれは,プログラムの設計の(通常は小さな)側面を変更するのに必要な手順を記述しています。この手順は,何かを壊したり動作を変更したりせずに行えるものです。しかしながら,リファクタリングの技術を習得するということは,安全かつ段階的にコード設計を変更できるだけではなく,どこのコードを改善すればよいのか一目で見分けられるようになるということでもあります。アジャイルのコミュニティでは,ソフトウェア設計におけるアンチパターン,すなわちリファクタリングが必要な場所を説明するための用語として,コードの臭いを取り入れています。

本書の目的は,読者が,既存のRuby コードの中の臭いを発見することと,臭いに対して最も効果的なリファクタリング手法を適用する経験を与えることです。それはおそらく,どのようにすれば良いコードを設計できるか考えることに繋がり,優れたコードを書く喜びの経験に繋がるでしょう。

補足的ですが,本書は,あなたがRuby コードの臭いをレビューする上で参考にできるチェックリストを提供しており,リファレンスとしても使えます。コードの臭いの記述は標準的な形式に従います。それぞれの臭いについて以下のように記述します。

  • 何を探すか:発見を手伝う手がかり
  • 何故これが問題なのか:臭いのするコードによって起こる,好ましくない影響
  • どんなとき放置するか:修正の優先順位を下げる可能性のあるトレードオフ
  • 何故このようになったか:どのように臭いが発生するかの原因
  • 何をすべきか:臭いを取り除くためのリファクタリング
  • 次に何を探すか:臭いを取り除いたことで更に明らかになること

この記述により,あなたが課題を終了した後も,臭いのページはリファレンスとして便利に使えるでしょう。

本書の構成

本書は3 つの部からなっています。

第I 部「リファクタリングの技術」では,リファクタリング技法の概略を説明します。まず,第1章「リファクタリングの一例」では,いくつかのよく見られる臭いを含んだ簡単なスクリプトを取り上げ,それをよりよい設計へとリファクタリングします。第2 章「リファクタリング・サイクル」では,レガシーコードに対してテスト駆動開発を通じてリファクタリングをどのように進めるか,そのプロセスをざっと確認します。一方,第3 章「リファクタリング—ステップバイステップ」では,リファクタリングで使用するツールや,1 つ1 つのリファクタリングの手順を詳細に見ていきます。最後に,第4 章「リファクタリング・プラクティス」で,実務に適用可能な演習と,これ以降の章を読み進めるためのヒントを紹介します。

第II 部「コードの臭い」,ここが本書の肝になります。ここではRuby コードの臭いに焦点を当てます。それぞれの章はいくつかの主要な臭いの説明から構成されています。各章末には演習を用意しています。あるものはコードを分析する演習であったり,他には状況を評価するものやコードを修正するものがあります。すべてが簡単という訳ではありません。難しいものには「難問」とマークしてあります。こういった演習では複数の解決策が考えられる場合があります。付録A「演習解答」には,ほとんどの演習に対しての答え(もしくは答えを見つけるためのヒント)を記述しました。演習を行なうためのソースコードは,www.refactoringinruby.info からダウンロードすることができます。

第III 部「リファクタリングの実践」では,さまざまな問題領域でのリファクタリングの訓練を積むための助けになる「大きめ」のプログラムを用意しました。

パートIV「付録」では,演習の解答例と,現在利用可能なRuby のリファクタリングツールを簡単に紹介しています

 (※訳者追加として「付録C リファクタリング名、コードの臭い名・和英対訳表」を追加しました。)

[原書サイト] www.refactoringinruby.info



【目次】

第Ⅰ部 リファクタリングの技術
 第1章 リファクタリングの一例
 第2章 リファクタリング・サイクル
 第3章 リファクタリング―ステップバイステップ
 第4章 リファクタリング・プラクティス
第Ⅱ部 コードの臭い
 第5章 測定可能な臭い
 第6章 名前付け
 第7章 不必要な複雑さ
 第8章 重複
 第9章 条件ロジック
 第10章 データ
 第11章 継承
 第12章 責務
 第13章 変化への適応
 第14章 ライブラリ
第Ⅲ部 リファクタリングの実践
 第15章 簡単なゲームの開発
 第16章 作業時間記録ツール
 第17章 計算機
第Ⅳ部 付録
 付録A 演習解答
 付録B Ruby リファクタリングツール
 付録C リファクタリング名、コードの臭い名・和英対訳表
参考文献
索 引



【著者紹介】

William C. Wake(ウィリアム・C・ウェイク)
Industrial Logic 社のシニアコンサルタント。2007年から2009年初頭にかけて,Gene Codes Forensics 社にて,バイオインフォマティクスのソフトウェアの開発をマネジメントした。2001年から2006年までは,アジャイルソフトウェア専門の独立コンサルタント。Refactoring Workbook の著者であり、また,Design Patterns in Java の共著者でもある。
[Webサイト] www.xp123.com

Kevin Rutherford(ケヴィン・ラザフォード)
独立したアジャイルおよびTDD のコーチ。英国を活動拠点としています。彼は25 年以上もソフトウェア開発の世界で仕事をしてきました。そして1997 年から,組織を高度なサービス提供者にするためのコーチングを行っています。彼は英国のAgileNorth グループを組織し,アジャイルカンファレンスに積極的に関わっています。彼の仕事の実践は制約理論の適用とコード品質にフォーカスしています。彼はRuby のためのReek ツールの作者です。


【訳者紹介】

小林健一(こばやしけんいち)
■株式会社豆蔵
大学院でシステム工学を専攻後,証券システムの再開発プロジェクトに参加。現在はソフトウェア開発技術者へのオブジェクト指向分析設計,UML,Java の研修を担当。主な興味は形式手法,関数型言語など。FormalMethods Forum という勉強会を定期的に開催し,形式手法の勉強を行っている(http://groups.google.co.jp/group/fm-forum)。プライベートではクラシックギターを演奏する。
訳書に『組込みシステムのためのソフトウェアエンジニアリング基礎編』『Ruby によるデザインパターン』(ピアソン)。
工学博士,情報処理学会会員。

吉野雅人(よしのまさと)
■芋焼酎をこよなく愛する文科系エンジニア。
現職では6コードを書くことがなくなってしまったので,プログラミングはRuby を息抜きとしていじるだけに。でも,本当に行き詰まったときは妻の明るさが何よりの精神安定剤。
著書に『入門GoogleWeb Toolkit』,訳書に『Ruby によるデザインパターン』(ピアソン)。

太田大地(おおただいち)
■早稲田大学
RPGツクール経由でRuby(RGSS) を知り,それがきっかけでプログラミングを始める。その後C#に移行し,最近はCRuby(MRI) よりもIronRuby を使うほうが多くなってきている。今は.NET 上で動作するスクリプト言語を作成中。趣味はプログラミングとスキー。

坂本一憲(さかもとかずのり)
■早稲田大学大学院
鷲崎研究室所属の博士後期課程1 年生。ソフトウェアテスティングが専門。美しいソースコードを追い求め,C#を初めとした様々なプログラミング言語に興味を持つ。プログラミングコンテストへ積極的に参加しており,2009/2010 年度のACM 主催国際大学対抗プログラミングコンテスト(ICPC) 併設Java Challenge の実行委員長,また,早稲田楽天プログラミングコンテストの実行委員長を務める。
情報処理学会会員。

小島 努(こじまつとむ)
■株式会社豆蔵
.NET 黎明期よりASP.NET,C#を使ったプロジェクトに多数参加。アプリケーションアーキテクチャ関連の仕事に多く携わる。他にはオブジェクト指向設計等の講座の講師なども行う。主な興味は.NET技術全般。最近はWindows Phone 7とMVVMに取り組んでいる。
趣味はプログラミングと庭いじり。いつかパイプオルガンを自作したいと思っている。


  • レビュー (0)
  • トラックバック (0)
トラックバックURL :
http://www.pej-hed.jp/tb.cgi/3173

前の書籍:経済成長 第2版