ブログ

  • 【書評】Java言語で学ぶリファクタリング入門

    Java言語で学ぶリファクタリング入門 [結城浩 著]の書評です。

    結論から言うと、マーチン・ファウラーの『リファクタリング』を補完し理解を深めるための秀逸な一冊。

    ■ 良い点
    ・ サンプルコードが質と量において適切
    ・ サンプルコードの省略がなく全部が掲載されている
    ・ 適用前と適用後のコードが掲載されている
    ・ 構成がしっかりしていて無駄がない
    ・ 説明が丁寧で文章が読みやすい
    ・ 図表が理解を深める
    ・ 付録にリファクタリングの一覧あり

    ■ 悪い点
    ・ 特に無い。あえて言えば出版年が少し古い。

    ■ 総評
    マーチン・ファウラーの『リファクタリング』を読んだら、次に是非とも読みたい一冊です。リファクタリングの理解が深まります。

    形式的には、小さなリファクタリングから、大きなものへと一つずつ章が続き、全部で15章で構成されます。つまり、15のリファクタリングを学習するのですが、それに併せて他のリファクタリングにも触れるので、結局、30から40個くらいを学習することになると思います。

    各章においては、リファクタリングを適用する前の悪いコード(臭いのあるコード)を紹介し、問題点を指摘し、リファクタリングを実行し、実行後のコードを省略なく掲載しているので、とても理解が進みます。結城氏ならではの要点を押さえた解説もありがたいです。各章の最後には、練習問題もあり、こちらも取り組むと実力がつきます。

    内容的には、適度に深いものになっており、易しすぎず難しすぎず丁度良いあんばいになっていると思います。なお、前提として、デザインパターンやユニットテスト等の知識が必要とされます。一応、JUnitの解説が付録にあります。また、付録には、リファクタリングの一覧があるので、随時、目を通すとプログラミングの際のヒントになりそうです。

    本書を読了すれば、プログラミングの実力UPが実感できると思います。

    Java言語で学ぶリファクタリング入門

  • 【書評】アジャイルサムライ−達人開発者への道−

    アジャイルサムライ−達人開発者への道− の書評です。

    結論から言うと、はじめてアジャイル開発に取り組むプロジェクト・マネージャー(PM)が読むべき一冊です。開発管理に役立ちます。

    ■ 良い点
    ・ アジャイル開発の運用・管理の要点がわかる
    ・ 文体が親しみやすく読みやすい
    ・ 全15章で構成がよい
    ・ 著者の失敗談から学べる
    ・ 図表やイラストがわかりやすい
    ・ プログラミング以外の実生活にも応用できる

    ■ 悪い点
    ・ 本の左余白が若干少なめ
    ・ 一人開発者には応用しづらい

    ■ 総評
    プログラマー向けではなく、プロジェクト・マネージャー(PM)が初めてアジャイル開発に取り組む際に読むべき書籍です。

    アジャイル開発手法により、いかにチームを組織化し、また、プロジェクトを管理し、そして成功に導くかにポイントが置かれています。

    チームを自己組織化する手法などに詳しい反面、一人開発者にとっても、プロジェクトの管理手法などが役立ちます。もっとも、コードのサンプルは少なく、コーディング力の向上にはあまり繋がりません。ユニットテストやリファクタリング、テスト駆動開発、CIについてもほとんど触りだけの説明です。あくまでも、プロジェクトの管理に重点が置かれています。

    「アジャイルソフトウエア開発宣言」および「アジャイルソフトウエア開発の12の原則」などアジャイル開発の要(かなめ)を敷衍した一冊です。

    アジャイルサムライ−達人開発者への道−

  • 【書評】CODE COMPLETE 第2版 下

    CODE COMPLETE 第2版 下 の書評です。

    結論から言うと、上巻と同じく、コーディングおよびプログラミング全般のトピックを網羅的かつ詳細に扱う古典的な一冊です。

    ■ 良い点
    ・ プログラミングに関するテーマを網羅している
    ・ 章および節ごとの「まとめ」や「チェックリスト」が役立つ
    ・ 論点について深く詳細に掘り下げている

    ■ 悪い点
    ・ 量が多く冗長に過ぎる
    ・ 紹介されているデータが古い
    ・ コスト・パフォーマンスが悪い

    ■ 総評
    上巻に続く一冊です。繰り返し書きますが、2005年3月出版の第2版です。原著の初版は1993年の出版であり、実質的に約22年前の書籍です。いい意味でも悪い意味でも古典となった一冊といえます。

    下巻では、主に、テストやリファクタリング、そしてコーディングスタイルなどが扱われています。もっとも内容的には、プログラミングの指針や哲学を示唆するものが多く、直接的にコーディング力の向上には繋がりにくい印象を受けます。

    量が多いため、最初に全体をざっと読み、次に少し詳しく読み、そして興味がある章や節を詳しく読むなどの方法を取らないと読書が苦痛になります。流し読みする能力も必要です。議論が深い一方で、結論だけを知っていれば良いテーマもあるので、自分なりに要約しながら読むのも一つの方法です。

    本書はテーマを網羅している一方で、各テーマに関する参考文献の要約的な内容にとどまっている箇所も多いため、はじめからそれぞれのテーマの専門書を読んだ方が良いかもしれません。若干、「全て有るは何も無い」という格言が当てはまる感が否めません。各テーマの最新本を読む方がコスパがいいと思います。

    もっとも本書は、プログラミングに関する古典的な一冊であり、一度は目を通しておいた方が自分のプログラミング力に対する自信に繋がるでしょう。「パフォーマンス・チューニング」の章などは、なかなか参考になりました。参考文献も多く、今後の読書の指針になります。もっとも最近では、Amazonで関連書籍の詳細を知ることができるので、この点でも時代の流れを感じさせられます。

    CODE COMPLETE 第2版 下

  • 【書評】CODE COMPLETE 第2版 上

    CODE COMPLETE 第2版 上 の書評です。

    結論から言うと、コーディングおよびプログラミング全般のトピックを網羅的かつ詳細に扱う古典的な一冊です。

    ■ 良い点
    ・ トピックが広範で網羅的
    ・ 設計およびコーディングの指針とヒントが充実
    ・ 章や節ごとの「まとめ」と「チェックリスト」が役立つ
    ・ 参考文献の紹介が詳しい

    ■ 悪い点
    ・ 本が厚くページ数が多いため学習コストがかかる
    ・ 解説が詳細な反面、冗長である
    ・ 翻訳は良いが読解力を要する
    ・ 用語の意味や定義が曖昧な箇所がある

    ■ 総評
    2005年3月出版の第2版です。原著の初版は1993年の出版であり、実質的に約22年前の書籍です。いい意味でも悪い意味でも古典となった一冊といえます。

    「CODE COMPLETE」の名の通り、コーディングおよびプログラミング全般についての指針とヒントに溢れています。もっとも、出版当時は、斬新であったであろう主張も、現在では当たり前となっているものも多く、悪く言えば、冗長に解説がなされている印象を受けます。

    上巻だけで実質550ページ、下巻と合わせると1000ページを超える書籍のため、読む側において、内容を取捨選択する能力及びポイントを押さえる能力が必要です。もっとも、章や節ごとに「まとめ」や「チェックリスト」があるのでこれらを押さえるだけでも勉強になります。小学生がする様に、最初の1ページから最後のページまで一文字ももらさず全部を読もうとするとかなりの負担となるでしょう。コンパクトさで言えば、「リーダブルコード」の方が楽に読めるので良いかもしれません。

    プロ中のプロを目指すプログラマーには必読の書籍かもしれませんが、一般のプログラマーであるなら、時間のあるときに読み物としてざっと目を通すくらいでよいかもしれません。

    CODE COMPLETE 第2版 上

  • 【書評】PHPとMySQLのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに!

    PHPとMySQLのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに! [横山 達大 著]の書評です。

    結論から言うと、PHPとMySQLの連携に重点を置き、CRUDシステムを学習しながら「売り上げ管理システム」を実践的に作成していく入門書です。

    ■ 良い点
    ・ PHPとMySQLの連携を重点的に解説
    ・ CRUDを丁寧に解説
    ・ PDOを使用
    ・ サンプルコードの省略が少な目
    ・ 最後の作成アプリにもコードが全文有り
    ・ クラスの解説あり
    ・ 環境構築の解説も比較的厚い

    ■ 悪い点
    ・ セキュリティは範囲外
    ・ HTMLタグの属性がシングルクォート

    ■ 総評
    PHP及びMySQLを使って「売り上げ管理システム」WEBアプリを作成していく入門書です。対象は、プログラミング初心者となっており、だいぶ易しい演習書です。文法書ではなく、演習書です。できれば前提知識として、一通りのPHP文法の基礎知識があることが望ましいです。

    基礎的なことから順を追ってポイントを押さえながら解説が進んでいきます。カエルの挿絵を使い、先生役と生徒役の会話形式で話が進みます。

    形式面では、「サンプルコード」、「エディタ上のコード」、「ブラウザ画面」のそれぞれが逐一、大きめに表示されるのでとても読みやすく感じます。
    内容面では、HTMLとPHPコードの分離を意識して、またクラスを使用し重複コードを回避するなど、学ぶべき点も多いです。CRUDの解説にも厚いので、SQL初心者にも易しいと思います。

    まったくの初学者には、クラス等はきついかもしれないので、一通りPHP文法を学習した後に読んだ方が良いかもしれません。

    最後の章では、「売り上げ管理システム」を実際に作成していきます。ここでは、コードの省略がなく全文掲載されているのがとても良いと思います。ただ、クラスを使いオブジェクト指向的な内容になるので、少しハードルが高くなるかもしれません。OOPに取りかかりたい人にはお勧めです。

    なお、本書は2014年12月出版で比較的新しく、環境は、PHP5.5、MySQL5.6、XAMPP1.8.3となっており、phpMyAdminやエディタとしてNotepad++を使用しています。

    ちなみに、P199あたりで、GoodsIDをpタグにする箇所では、hiddenタグとして残すべきだと思ったのですが、自分の勘違いかもしれません。
    [後記]書籍の補足情報に当該記述がありました。

    PHPとMySQLのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに!