増補改訂版Java言語で学ぶデザインパターン入門 | ||
単なるデザインパターンのカタログ(参考になった人 5/6 人)
本書は、Erich Helm, Richard Johnson, Ralph Vlissides, John Gamma の 4 人 (通称 GoF) によって書かれた 『Design Patterns: Elements of Reusable Object-Oriented Software』 (以下 GoF 本) を元に、GoF 本に書かれている種々のデザインパターンを分かりやすく解説している、というもの。 だそうなのですが、この本を読んだ感想は 「書いてあることは理解できるし分かりやすいと思うけど勉強にはならないな」 というものでした。 その時は GoF 本を読んでいなかったのでそもそもの GoF 本があまりためにならない本なのか本書がいまいちなのか判断できませんでしたが、最近 GoF 本を読んで本書がイマイチであるということが分かりました。本書は、一言で言ってしまえば単なるデザインパターンのカタログです。 GoF 本で紹介されている種々のデザインパターンを紹介している、というだけです。 本書では、 ・どういう状況でそのパターンを使用すればよいのか ・そのパターンを使用する際にどのような点を考える必要があるのか ・そのパターンの実装としてどのようなものが考えられるのか といった点がほとんど考えられていません。 特に、実装上考えるべき点について全くといっていいほど触れていない点は、実用的でないと感じました。 (GoF 本では、実装上考えるべき点などについて議論されています。)もちろん、難しい点をそぎ落としているため内容は簡単になっています。 その点では初心者向きだと思います。 とはいえ、内容的には本書だけでは不十分でありいずれ GoF 本を読む必要があると思いますので、最初から GoF 本を読むことをオススメします。 GoF 本も GoF 本でやや難解な点があったり例があまり適していないような箇所があったりと微妙な点はあるのですが、本書にあって GoF 本に無いもの、というものは無いと思いますし。 理解しやすい本 ≠ 良い本(参考になった人 31/33 人)
この本の評価は、これだけ読んで理解した人と たくさん経験を積んでデザインパターンの本質を 理解している人とで正反対になると思います。一言で言うと、平易に書かれているが、 なかなかパターンの良さを正しく伝えられていない、 大切なものが失われている、ということです。 この本だけ読むと、それに気づけないため、 必ず別の本も読んでステップアップすべきです。特に厳しいなあと思うのはAbstract Factoryや Bridgeあたりです。 Bridgeを読んで、バージョン、プラットフォーム、 ライブラリを変えてもクライアントは固有の実装を 意識せずに理想的な層を今までと同じように使えます、 と理解できた人がいるでしょうか? 設計時に、ここはプラットホーム依存だから Bridgeを使って薄い層を設けようと考えられるように なった人がいるでしょうか?オブジョエクト指向の基本原則や (開放・閉鎖の原則やインターフェイス逆転の原則) 可変性解析(べったり書く部分を切り離す)について学び、 それがパターンでどう活かされているかについて 学ぶと良いと思います。 ↑ここらへん、不幸にも世界的には当然ではあるものの 日本にはあまり輸入されていない考え方です。少し不満を強調しすぎてしまいましたが、 Head Firstデザインパターンと並び、最初に読むには とっつきやすくて良いと思います。 ただ、この本を読んで終わりにするのではなく 難しくても良書を何度も読むことをおすすめします。 プログラマー必見でしょう(参考になった人 22/31 人)
サンプルソースはJavaで書かれていますが、ある程度プログラムをしている人ならJavaはわからなくても理解できると思います。(僕はPerl,PHP系プログラマーですがすごくわかりやすかったです。) オブジェクト指向がわかっている人であればすぐ理解できます。 とにかくわかりやすい。 なぜこのデザインパターンを利用するか?どのようなときにこういった方法でソースを記述するかという理由も説明してくれています。 GoF本で挫折した人はこっちからもう一度チャレンジしてみるのもいいのではないかと思います。 どのプログラム言語を使うにしても最終的にはオブジェクト指向という考え方にたどり着くので勉強する価値はあると思います。 自分の考え方がこの本のおかげですごく考え方がひろがりました。 |
||
自然で女の子受けのいい服を集めました | ||
勝負服、持ってますか?[PR]
今女の子と飲んでるんだけど来ない?週末合コンどう? アナタは突然の誘いにどんな服を着ていきますか?
こういうときにはは女の子目線で選んだコーディネートが一番。 今なら 10,500円 以上で送料無料。 |
||
ゲームプログラマになる前に覚えておきたい技術 | ||
ゲームプログラマを目指す者必読の書(参考になった人 8/8 人)
この本で解説されているゲームの作り方は ゲームプログラマを目指す者を対象としているだけあってとても本格的です。 ページ数は多いですが、ゲームを作りたいという人には是非読んでもらいたい良書です。全体的な流れは、テキストでの原始的なゲームから始まり、 2Dゲームを経て、最終的には3Dゲームを作るという感じです。 描画、アニメーション、状態遷移、座標計算、当たり判定といった基本的な事だけでなく、 操作性を向上させる工夫の例や、ファイルロードの高速化や圧縮、果ては現実的な開発の流れまで語られています。盛りだくさんな分ページ数は多いので、 分かる範囲で自分のペースで進めていくのが続けるコツであると思います。 (当たり判定使わないから今はいいやとか、2Dゲームを作りたいから3Dは今はいいやとか) 最初から全部分かろうとも応用しようともしない方がいいでしょう。それでも十分ゲームは作れます。使用言語はC++です。実際、ブラウザゲームや携帯ゲームを除いて ゲームと言えば今や基本的にC++で作られているので、当然と言えるでしょう。 この本の中でもC++についてある程度の解説はありますが、 C++や似た言語をあまり知らない場合は詳しいC++の入門書が別途必要になるかと思います。プログラム初心者はCの方が楽だというイメージを持つかもしれませんが、 Cは言語仕様が単純な分何から何まで自分で書かないといけなくて かえって面倒になるという罠が待っているので、全くもっておすすめ出来ません。 (本の中でも書かれていますが、デストラクタは偉大です)本の中では独自のライブラリを使用しています。 無保証なものの、付属のあらゆるプログラムは商用・改変可という太っ腹なので、 サンプルコードをベースに改造してゲームを作って売る事も可能です。(ただし、絵素材は駄目) 「同人ゲーム作りたいんだけど、別のライブラリの使い方を覚えないといけないのか……」 という事はないので安心して下さい。(もちろん、別のライブラリを使ってもいいですが) 初級プログラマが一人でゲームをつくれるようになるための本。(参考になった人 56/63 人)
和書では(おそらく)唯一の体系的なゲームプログラミング入門教科書です。 著者ご本人も書いている通り「(ページ数が)厚くて(内容が)薄い」本ですので、著者の語り口も相まって非常に読みやすく仕上がっています。 ページ数は相当なものですが、下手に薄い本を買うよりはずっと早く読みこなせるでしょう。ただ入門教科書という性質上、非常に「広く浅く」な内容になっています。 入門以降のゲームをつくるのなら本書の最後に羅列された「参考文献」にあたる必要があります。本書の内容は大雑把に分けて、「ゲームプログラムのつくりかた」「プログラマとしての指針・思想」「C++文法補足」となっています。 メインは当然「つくりかた」ですが、「指針・思想」の部分も非常に参考になります。 「なぜ筆者はこの設計・実装方法を選んだのか」という点が「思考の流れ」として細かに書かれている点は、本書の大きな特徴でしょう。 また、「紙幅の都合でサンプルコードが切り詰められることが少ない」という点も技術本としては特徴的です。 一方、「C++」の部分に期待することはできません。まずはC++という言語を一通り抑えてから本書を読むべきだと感じました。 本書の「C++」部分はあくまで最低限の内容であり、C++初心者がまともに理解するのはおそらく不可能でしょう。 副読本として例えば「独習C++」「ロベールのC++入門」のような辞書的なものが手許にあればなお読みやすいと思います。 なお、ゲームプログラム本によくあるDirectXやOpenGLの知識は一切必要ありません。星5つの内訳は、 ・現役ゲームプログラマが書いた、「日本語」の体系的入門教科書:☆☆☆ ・筆者の「思考の流れ」が細かに見える:☆ ・(内容を考えれば)値段が非常に「安い」*:☆*この本の定価は4500円です 教える側にも参考になります(参考になった人 14/18 人)
たまたま待ち合わせまで時間があったので、時間つぶしに本屋に寄ってたまたま目に付いたのがこの本でした。 何の気なしにパラパラと目を通してみてすぐに、平滑な説明かつ初心者にとって重要な事が書かれている本だと分かりました。 それは序文の『話の進め方』にも現れています。例えば数学について必要な知識だと認めている物の、敢えて最初に説明する事は避けています。 最初に説明する本(特に海外の書籍に多い)が多いのですが、「人は必要性を感じた時に、初めて勉強しようと思うから」と言う理由からです。 例題も悪い例を先に例示してから、悪い理由を説明して改良について説明したり、それぞれのアルゴリズムの長所短所と使い分けを説明するなど、とても分かりやすくなっています。 また、「正しいやり方」と「やり方は色々有るが自分は(こう言う理由で)こうする」をキチンと切り分けて説明している姿勢にも好感が持てました。 この本は多くの初心者に教えた経験のある人が書いたものだろうと思って帯を見ると『セガの新人教育カリキュラムから生まれた解説書』と書いてあり、納得しました。本書の説明内容自体は当然ゲーム作成に特化していますが、プログラミング時の注意点やアルゴリズムに関してはゲーム以外でも活用できます。 また、後輩や部下に教える立場の人も、この本の教え方は参考になると思います。 細かい説明の中には「ん?」と首を傾げる部分もありますが、持っていて損のない一冊だと思います。 ただし、C++がある程度分かる人が対象なので、C++が全く分からないという人は別途C++の勉強は必要です。 |
||
Code Reading―オープンソースから学ぶソフトウェア開発技法 | ||
コードリーディングのイロハ&必要な知識・技術の全装備(参考になった人 10/10 人)
・本文が締めるページ数は、523ページ中450弱。 コードの掲載が多いため、実際はさっくり読める(15-20時間読了)。 ・文章はですます調。翻訳は細かな部分を除けば問題ない。 ・演習問題の解答は掲載されていない。・オープンソースの実用コードを例に挙げる点、さらにそのコードを付録CDから 参照可能である点が非常に良い。オープンソースが身近になった。 ・コードリーディング以外に関して、「共用体の応用」「Makefileの書き方」など、 初級者を抜け出したいコーダにとって痒い処に手が届く内容は、悪くない。 また、オープンソースがコード例として優れており、理解が深まる。 ・ひとつの言語・OSに偏らない解説(それぞれの環境に言及する)で、広く楽しめる。・コードリーディングに関して、特別な方法論を提唱する類ではない。 ・前半、易しすぎる内容が目に付く。Cライク未経験者に対してか、 制御文に関する章に関して、それぞれのステートメントの解説から入る。コードに慣れ親しみ、且つコードの理解に必要な周辺知識(言語仕様・データ構造など)や 暗黙知(イディオム・名前付けなど)を学ぶことで、コードリーディングを啓蒙する書。 コードを読むことに慣れていないような、学生・新社会人・初学者にお勧め。 着眼点は良いと思う(参考になった人 17/19 人)
「全ての創造は模倣から始まる」と言う観点から見て、他人(それも達人と呼ばれるプログラマ)のコードを読むという点にポイントを置いた着眼点は良いと思う。特に監修者の一人があのRubyのまつもとゆきひろ氏だったので期待感があった。だが、内容的には何らかの段階を追ってとか、分野別に説明をするとかではなかったので、焦点が絞れていない印象を受けた。しかし私は昔、TanenbaumのMINIXの本を輪講した事があり、あの本も本文の説明に対応した巻末のソースがウリだった。ソフト開発の現場にいると、否応なしに他人が書いたソースを読まねばならない事がある(勿論、勉強のためではなく)。 そうした環境の中で、自分一人の流儀ではなく、段々と多様なスタイルを身に着けて行くのだが、そうした面を纏めて記述したのが本書とも言える。業界に入り立ての人向きの本かもしれない。それにしても、副題にあるオープン・ソースの威力は素晴らしいと改めて感じた。一昔前なら、(著名な)他人様のソースを見る機会など望むべくもなかったのだが、良質なソースがオープンな環境で入手できる現在の状況は恵まれているとつくづく感じる。 全てのプログラマに読んで欲しい最高の教科書(参考になった人 51/65 人)
「人が書いたソース・コードを読む」ということは、プログラマにとって最も重要な訓練だということは常々言われてきました(他の人か書いた文章を読まずに、良い小説が書けるでしょうか?)。しかし、プログラムを書くためのの教科書がこれだけ多く発刊されていながらも、他の人の書いたコードを読むための教科書は今まで書かれてきませんでした。この "Code Reading" は、その「人が書いたコードを読むための本」です。 オープン・ソース・ソフトウェアを題材としているため、(OSS で最も人気のある) C言語、C++、Java が解説の中心になっています。 しかし、各言語に特化したいくつかの章を除けば高級言語からアセンブラまでの全ての言語、全ての規模のプロジェクトに適用可能な内容です。一方、C 言語に特化した章では C 言語のイディオムや注意点が幅広く紹介されているため、中級レベルを目指す C プログラマが入門書の次に読むテキストとしても適切でしょう。 |
||
SUN教科書 Java アソシエイツ | ||
現オラクル 1Z0-850 対策に万全(参考になった人 1/1 人)
Javaプログラマのための登竜門資格、オラクル 1Z0-850(旧サンマイクロシステムズ SJC-A 310-019)は、コーディングに関する問題は全体の3割程度で、オブジェクト指向の理解から、用語の明確な定義、そしてウェブサービスの中で使われているJavaテクノロジーの概要まで、Javaに関する幅広い領域の基礎知識を問う。コーディングに偏重しがちな初心者の目を、大きな枠組みに向けさせるという点で、よいテストだと思う。コーディングに関しては、ゼロからそれを学ぶという想定ではなく、既得の知識を整理するような方向で書かれているので、まったくの初心者には本書だけでは無理だと思う。 他である程度の修得をしてから本試験準備にはいるべきだろう。試験では、一見シンプルだが、ひねりやひっかけのあるコードが多い。出題意図が読みとれれば、それが大きなヒントになる。コーディング以外の設問については、試験対策的には本書のみで十分。付録の「試験直前チェックシート」は、本書の内容がコンパクトにまとめられ、試験対策としてはもちろん、その後の知識のキャッチアップにも役立つ。なお、オラクルのサン買収に伴い、試験名が変更されたが、現時点では試験内容に大きな変更はないと考えてよさそうだ(本書で問題なく対応できたので)。 初心者には、かなり良い参考書(参考になった人 16/18 人)
JAVA初心者にはとても良い参考書です。何が良いかというと「初心者でも非常にわかりやすく、イメージしやすく、書かれていること」です。文章も図表もとてもわかりやすかったです。私はSJC−P取得を目的として何冊も参考書を購入しましたが、どうも書いていることが理解しづらかったり、イメージができなく何度もJAVAをマスターするのを断念してきました。そのため、2005年秋に1つランクを落としてSJC−Aからスタートということでこの本を手にしました。この本を読み進めていくうちに、JAVAプログラムの基本だけでなく、JAVAを取り巻く環境などの基本的な事項をしっかりと理解することができました。 この本のおかげで、SJC−A、SJC−Pを取得することができました。たぶん、今後、基本的なことを忘れてしまった時はきっとこの本を見ると思います。私にとってはいわば「JAVAのバイブル」的な書籍なのかもしれません。 初心者に優しい教材です(参考になった人 3/3 人)
javaって何?プログラミングって何?という初心者レベルから入った私ですが、本日SJC-Aを受け合格 しました。勉強期間は約1ヶ月。本教科書でjavaの基礎(広く浅い)を学び、黒本で応用力を高めまし た。他レビューにもあるように、本教科書だけで合格ラインにはいけますが、70〜80%のスコアだ と思います。本教科書を持ち込んでも90%以上のスコアは出せません(載ってない問題がでます)。 逆にアソシエイツだからと甘くみていると簡単に足元をすくわれるような問題がでてきます。 合格率を高めたい方は黒本も合わせて徹底的にされる事をおすすめします。 ただし、私の時の問題には 紫・黒本の両方にも載っていない問題がでました。総評:主は教科書であり、試験対策も兼ねていると言う点で★5つ。 黒本はもう使いませんが、本教科書は今後も必須アイテムです。 |
||
