Rのつく財団入り口

ITエンジニア関連の様々な話題を書いているはずのブログです。

【感想】レガシーコード改善ガイド 【前編】

レガシーコードに立ち向かうための改善ガイド

 こちらもIT関係でよくおすすめ書籍に必ず顔を出す名著のひとつ。大型本で472ページとがっつり分厚く、2009年とちょっと古めですが今でも役立つ本です。
 レガシーコードというと何年も保守されて継ぎ接ぎだらけになったコード、中が謎で誰も触らずに放置されてきたコード、設計書と整合がとれておらず仕様がよく分からないコード、メンテしにくいコード、COBOLなど古い言語で書かれたコード、JavaStrutsなど古いフレームワークで書かれたコードなど状況に応じて様々な(殆ど全ての場合マイナスな)意味を持ちますが、本書ではテストで保護されていない扱いにくいコードをレガシーコードと定義し、ソースのリファクタリングやテスト方法、調査や対処の手法など、レガシーコードに立ち向かうための様々な事柄を記しています。著者はマイケル・C・フェザーズ氏。

続きを読む

【感想】オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方

Rubyで学ぶオブジェクト指向

 モダンな設計・実装に欠かせない重要要素で企業の新人研修にも出てくるし、その反面知らない人にはピンとこなくてけっこう難しかったり、クラス・メソッド構成のレベルでいうと唯一の正解がなかったり別に多少沿ってなくてもシステムは動いたりでなかなか厄介な、オブジェクト指向の考え方。
Object OrientedでOO、プログラミング技術についてはObject Oriented ProgrammingでOOPと呼んだりもします。
 オブジェクト指向の有名本というとサンプルコードは大抵は静的型付け言語、Javaだったりするのですが、RubyでOOが学べる良書です。

 作者のSandyさんは大学でコードを書いたりアプリケーションを作ったりしているそうですが、序盤から文章も親しみやすく、訳もそんなに不自然ではないので割とそんなり読めます。網羅本というよりは読み物系です。

  • 設計は芸術で、コード構成の芸術だと述べているあたり美しい。
  • サンプルコードは当然Rubyですが、自転車を作ったり売ったりしようという話で出てくるクラスは最初はBicycleとかGearとかWheelとかそういうのです。大して難しくないので言語としてRubyを知らない人でも読んでいけると思います。
    (後半は、クラスの数が増えてシーケンスが複雑になったりしてきます)
  • インターフェースの意識の話が。JavaC#だと親のインターフェースのメソッドをインプリメントしてないとその時点でエラーが出るので感覚的にも何となく分かるのですが、RubyだとそれがないのでOOをこれから学ぶ人は苦しんだりするのかなーと思います。
  • オブジェクトよりオブジェクト間のメッセージが重要なという説明はなるほどと思いました。
  • 欠かせない継承やコンポジションの話。継承を深くするな、継承よりはコンポジションの方が良いという話もなるほどと思いました。
  • 依存関係の方向は、自身より変更されないものに依存されなさい、も深い。
  • 子クラスでinitializeをオーバーライドしてsuperしながら再実装ではなく、親に空のpost_initializeを置いてそっちをオーバーライドするという話は、こういう手もあったか!とけっこう驚き。
  • Ruby特有の機能としてはmix-inの話。
  • テストの話も色々。こういうクラス実装時にテストクラスも一緒に作ってテストしやすくしたりスタブを工夫したりする考え方・文化・仕組みが言語やフレームワークに最初からあるのは良いなあと思います。

 詳しくは本編を読もうという感じですが、紙の本はそれほど分厚くなく、挫折せずに読めます。オブジェクト指向について得るところは大きいので若手の人にもオススメです。勉強会の題材なんかにも向いてそうですね。

続きを読む

【感想】Ruby on Rails 5アプリケーションプログラミング

最新のRails5をまるっと網羅した最新リファレンス本

 Ruby界隈で名高いRailsの解説本。Rails4版が2014年刊行、Rails5版の本書が2017/4月刊行でおそらく事実上最新の本、電子書籍版もあります。
 環境構築からMVC各層のコマンド、応用まで、主要機能が一式まるごと載っていてリファレンス本として使えます。VIEW部分の描画に使うビューヘルパー各種メソッドやActiveRecordの各種メソッドなどなど、オプションまでかなり丁寧に解説してある印象です。

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

 同時期に出たRails5の本ですと2016年12月の『Ruby on Rails 5 超入門』もあります。こちらはよりプログラム未経験の人にもフォーカスしてカラーページや画面キャプチャを多くして分かりやすそうですが、コード例などが一部Ruby/Railsのお作法に従っていなかったり不適切だという話をよくネットで見るので、開発経験者レベルの人には本書の方がお勧めのような。

Ruby on Rails 5 超入門

Ruby on Rails 5 超入門

2016年11月の『はじめての「Ruby on Rails」5』もありますがより初心者向けのようなので、経験者が選ぶなら本書か超入門でしょう。

 Rails5が上記3冊、Rails4に戻ると、『パーフェクト Ruby on Rails』や『実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング』など、おすすめ本によく名が上がる本がいろいろ出てきます。

 僕は幾つかの本やネットの情報に触発されてちょっと触りつつ、Rubyを普段使う機会はまだないので概要や動静の把握のため、他言語のフレームワークとの比較の為に読んだのですが、他言語開発者からみるとこの本でもう十分な内容でした。

続きを読む