最近世間では、Objective-C2.0本や新しいCocoa本が出るなど賑わっているようですが、実は僕の手元にはCocoa関連の本がほとんどありません。あるとすれば初代Objective-C本だけです。
でも、プログラミング関係の本なら沢山あります。今回は、僕の本棚の中からそのいくつかを紹介したいと思います。
Level1: アルゴリズムとデータ構造
プログラミングの教科書にでも出てきそうな内容の本で、配列などのデータ構造の作り方や、ソートを含むデータ処理の仕方などが書かれています。
最近はフレームワークなんかでArrayやDictionaryなどのクラスや、ソートメソッドも実装済みだったりするので、これらのコードを直接書く機会は減りましたが、基本は押さえておきたいところです。あと、MVCパターンでModelを作り込むときに、この辺の知識が活用できそうです。
ちなみに、「アルゴリズムとデータ構造」というタイトルの本は他にも何冊かあります。それだけ基礎的な内容の本ということです。
Level2: リファクタリング
プログラムの構造を綺麗の整理整頓するための方法が書かれています。
しっかり設計してからプログラムを書き始められればいいのですが、「やってみなければ分からない」要素が強いこの分野では、それもなかなか難しく、大雑把な構想を元に経験と勘でプログラムを書いていくと、いつの間にか複雑怪奇なものが出来上がってしまう。というのは誰しも経験があると思いますが、この本を読むとその複雑怪奇なプログラムを整理整頓された状態に作り変えることができるようになります。
内容を一読して理解すれば、最初から整理されたプログラムを書けるようになります。
また、既存のプログラムに後から機能を追加しようと思ったけど、機能追加が不可能なプログラム構造になっていた。という状況にもこの本は役に立ちます。
Level3: デザインパターン
有名な23パターンのプログラミングデザインについて書かれています。
プログラム構造を考えていて、ある種の問題に直面したときに、この本を読むとヒントが得られるかもしれません。プログラミングデザインに関するFAQ集のような感じの本です。
ここに書かれている「Chain of Responsibility」や「Observer」などのいくつかのパターンはCocoaでも使用されています。
Level4: ソフトウェアアーキテクチャ
アプリケーションの全体構造について、いくつかのパターンが書かれています。
Cocoaでも採用されているMVCパターンについて解説されています。その他にも、PACパターンやレイヤーパターンなども書かれています。
ある程度の規模のアプリケーションを作ろうとしたとき、この本を読めばアプリケーションの大雑把な全体構造を組み立てることができるようになります。Cocoaでディスクトップアプリを作る場合は、単純にMVCパターンを採用すればいいでしょう。さらに大規模なものになる場合は、Modelの内部に別のパターンを採用するという方法も取れます。
なお、この本のMVCパターンの解説を読んでいると、Cocoaで採用されているMVCとは違うと感じるかもしれません。それもそのはずで、Cocoaで採用されているのはいわばMVCの亜種で、正式なMVCパターンではありません。この辺のことはADCのドキュメントにも書いてあります。
書籍名の横に書いてあるLevelは、本の内容の難易度みたいなものです。初心者がソフトウェアアーキテクチャとか読んでも「馬の耳に念仏」状態になります。
Objective-CやCocoaについて十分理解しているはずなのに、いざアプリケーションを作るろうとすると何故か行き詰まってしまう人は、一度一般的なプログラム技術について目を向けるといいかもしれません。
ちなみに、Cocoa本をほとんど持っていない僕がどうやってCocoaを使えるようになったかと言うと、実はこの本を読んだからです。見てのとおりサーバーの本なのですが、Cocoaのチュートリアルが十数ページ載っているんです。出版が1999年6月だから、日本でCocoaを解説した最初の本ですかね。おそらく。