C++初心者脱出のための1冊。
自分が宣言したクラスで、代入演算子、コピーコンストラクタを定義しない、もしくは必要ない、と思うときはprivateにしておこう。理由が分からなければ、この本を読んでください。
上の本の続編みたいなの。書いてある事が難しいのもありますが、 僕が思うに和訳がひどい性で、とても読みにくくなっている気がします。 内容は、すばらしい。
++演算子を++i、i++と書いた場合の違いを知ってますか?知りたければ、 この本をどうぞ。
STLを効果的に使いこなす50の鉄則
vectorとstringはCのライブラリと互換性がある事を知っていますか?
vectorがCのライブラリと互換性があると言うことは意味するところは?
連想コンテナにfindアルゴリズムを使うと予期しない値が返る可能性があることを知っていますか?
分からないことがあったら、Effective STL!
パフォーマンスプログラミングテクニック
戻り値の最適化と言うのを知っていますか。
メモリプールを使うとどのくらいパフォーマンスの違いが出るか知っていますか。
インライン化は何をしますか。どんなメリットがありますか。どんな関数をインラインかすべきですか。
list、vector、mapの得意な操作、不得意な操作を知っていますか。
マルチスレッドにするとパフォーマンスが低下する可能性があるのを知っていますか。
分からないことがあったらこの本を読みましょう。
47のクイズ形式によるプログラム問題と解法
「Effective C++」、「More Effective C++」を読んだ後にどうぞ。
例外安全なコンテナには何が必要ですか。
以下のコードはどの関数が呼ばれるでしょう。また、何故そうなっているのでしょう。
namespace A
{
struct X;
struct Y;
void f(int);
void g(X);
}
namespace B
{
void f(int i)
{
void (i); // どのf() ?
}
void g(A::X x)
{
g(x); // どのg() ?
}
void h(A::Y y)
{
h(y); // どのh()?
}
}
答えは、この本の中に。
同じような内容が繰り返し出てきて読んでいて疲れます。本当にあれだけのページ数が必要なのか、というのは微妙です。
それでも、大規模プロジェクトを作るまたは、大規模プロジェクトに携わる機会のある人は読んでみると良いと思います。
private static メンバ変数は本当にそこに宣言する必要がありますか?
関連のあるクラスはどうファイルに分割はどうしますか?どのようなディレクトリに配置しますか?
includeは何処に書くのが正しい?
これらの答えを知りたい時はこの本を。
ジェネリック・プログラミングおよびデザイン・パターンを
利用するための究極のテンプレート活用術
More Effective C++ の次はこれ!
一歩上を目指すなら読むべし。
テンプレートの意外で、とても便利な使い方指南本。
これを読めばBoostの目指すところが見える。
STLについて書かれた本。内容が結構マニアックで、 いきなりこの本でSTLを学び始めようとした、僕は挫折しました。 STLの勉強というよりは、リファランス的な使い方が良い本だと思います。
「C++ Primer」の著者がC++の入門者のために書いた本らしいのですが・・・、とても入門書とは思えません。内容はヘビーだし、簡単なリファレンスのような扱い。至る所に参考文献への参照がかかれていたり。
効率的なプログラミングのための新しい定跡
C++以外で精通しているプログラミング言語がある。オブジェクト指向プログラミング言語の経験がある。とにかく短期間でC++プログラムを書く必要がある。以上の人は、C++の入門書としてこの本の13章までは使えるのではないかと思います。
14~15章は入門書なのに、参照カウンタ付きのメモリ管理クラスの設計の話になって、それは・・・、という気がします。
Viaual C++の入門書。今は、これのVC6版が出ているはずです。
入門書として最高の1冊ではないかと思います。
さらに、入門書にとどまらない、幅広い内容が良いです。
長く、愛用できる1冊。
Visual C++で、ちょっと変わったテクニックを使いたい時に、読むと、 かなりの確率で問題が解決出来る1冊。
四角形でないウインドウを出すには?
他のアプリケーションの終了待ちをするには?
などなど、内容は盛りだくさん。
MFCに深く精通したいと願うなら、手始めにこの1冊を読んでみるのも 良いかと思います。それなりに満足のいく答えが得られると思います。
他、ダイアログバーを使いたいと思ったときもここにヒントがあります。
PHP3の基本機能を一通り説明してあります。サンプルが豊富 なので、サンプルの多い参考書が好きな人にはお勧めです。
一度関数一覧を全部眺めてみると良いと思います。標準関数があるの にそれを知らないで、自分で実相するのは馬鹿らしですから。ただ、 個人的にはアルファベット順ではなく、機能別に関数が並んでいて 欲しい気はしますが。
PHP4を使った問題解決例が載っています。入門書ではないので 言語の基礎的な説明はありません。
PHPを使った問題の解決方法が載っています。目次を見て知りたい 項目があれば買うという形が良いかと思います。
伝説の雑誌DDJの連載から出来た本。
オブジェクト思考とは何か。それによって、プログラマの得られる メリットは、デメリットは。
オブジェクト指向に乗っ取った、開発方法とはどんなものか。
そんな、疑問に分かりやすく答えた1冊。これを1冊読めば、あなたも オブジェクト指向の基礎を理解できるはず!
DDJが懐かしい。復活しないかな、DDJ。
デザインパターンとは何か、と言うことについて書かれているのですが ・・・、いかんせん読みにくい。
内容も少し古い気がします。
デザインパターンカタログですね。
Composite, Decorator, Proxy, Command, Iterator, Observer, Strategy,Visitor(他にもあります)などの各パターンについて、 どんな時に使うのか、どんなメリットがあるのか、どんなデメリット があるのか、が書いてあります。また、各パターの説明にクラス図、 C++のサンプルソース、Javaのソース(CD-ROMにのみ付いている)が あります。僕個人としては、サンプルがないとどう実相して良いのか 分からないのでその良い勉強になります。クラス図の表記法は少し 古いですが。
長々と書きましたが、とにかくお勧めの1冊。これを見れば、 プログラムを作る時の大雑把な方針を立てられます。また、人のソース、 ライブラリ(MFC, JFCなど)を使う時に、どんな目的で作られ、 どのように利用して欲しいのかが分かると思います。
Makefileの書き方が書いてあります。
VCなどの統合開発環境しか使ったこと人も勉強してみましょう。 makeが分かるとプログラムの出来上がる過程を理解する手助けになる と思います。
後半はバージョン管理ツールのRCSの説明です。RCSは、CVSが利用 しているコマンドなのでRCSのリファレンスとして持っておくのも良いかな と思います。
Cシェルのマニュアルです。
設定ファイルの書き方から、シェルスクリプトの書き方まで載って ます。
シェルは奥が深いですね、まだ全機能を使いこなしてはいません。
バージョン管理ツールCVSのマニュアルです。
インストール、基本的な使い方、サーバーとしての設定まで必要な 項目全てを満たしていると思います。windowsユーザの事も考慮した解説 も豊富なのでwindowsユーザの人にもお勧めです。
UNIXがなぜあそこまで不親切なのか。コマンドのエラーを表示しないのか。 その理由を語ってくれます。
なるほど、納得できる理由です。しかし、やはり初心者を拒んでいるし、 パソコンオタクのおもちゃという感じがします。それ故、使えば使うほど 手に馴染む訳ですが。
CPUで命令が実行される仕組み、メモリの意味、ソースファイルから実行形式 ができるまでの流れ、OSとアプリケーションの関係、2進数について、データの 圧縮について書かれています。
内容はヘビーなのですが、とても分かりやすく書かれています。 CPUでプログラムが実行される方法やメモリ管理について知っていると プログラムを作るときの考え方が違ってくると思います。本格的にプログラム を作りたい人は一度読むことをお勧めします。
ただUNIXについての記述は納得できないな・・・。
以下、「はじめに」から引用。
それぞれの、陥りやすい間違いが見開き2ページで説明されています。 それがなぜ起きるのかという理由や原因から始まり次のような項目が 続いています。
要するに、こんな事するとこんな惨憺たる結果になる。その場合の対応策と、 そうならないための予防策が書いてあるのです。この本は、だから オブジェクト指向は使えないというのではなく、こんな事に気を付けながら オブジェクト指向開発をしましょうというほんでした。
読み物としても、かなり面白いです。
C++の歴史、オブジェクト指向、STL、Javaの話題にふれながら、 επιστημη(えぴすてーめー)さんが、僕は普段こんな風にプログラム 作ってるよ、という本です。
プログラム作るのが好きなんですね、というほが伝わってきてそれはそれで 面白い。
職業プログラマのトップを目指すための心構えが書かれています。
なんだか、難しそうな印象を受けるかもしれませんが、書いてある内容 は優しいです。実践していくのは、大変なんですが。仕事でプログラムを 作る機会がある人は、この本を読むことをお勧めします
Javaのプログラムも作れるようになった、MFCも使える、DBへのアクセス もできる、クライアント・サーバープログラムも作った。ひょっとして結構 プログラム作れるんじゃないの?と慢心していた僕をこれでもか!と言う くらい叩きのめしてくれた本。いや、いろいろ勉強になりました。
ソフトウエア開発プロジェクトをこんな風に管理すると上手くいく、こんなのは駄目、という話。仕事でプログラムを作る人は呼んでみると良いと思います。趣味で作る人には関係ない話かもしれません。
バイト先の上の人には「是非」呼んで欲しいです。特にブルックスの法則だけでも知って欲しい。
「遅れているソフトウェアプロジェクトへの要員追加はさらに遅らせるだけ」
サブタイトルにありますが、プロジェクトに関わる人のやる気がプロジェクトを左右するという話。
どんな環境がプログラマに取って働きやすいのか悩んでいる人は読んでみると良いでしょう。
ただ訳者あとがきにある、「受身のプログラマが多い日本の産業構造では仕事の楽しさを享受するにはほど遠い」と言うのは事実だろう。この本で言っている「楽しさ」は難しいプログラムを作り上げていく喜びの事を言っているのです。
まずは、難しいプログラムを作り上げる事に喜びを感じる人材を集めてからだね。
ビル君が「一度専制君主をやってみたかったんだ」なんて言いながら某小国を買い取り、その国をソフトウエア生産国にしようとするなんて小ネタで始まる、理想のソフトウエア開発とは何かを考える本。
管理はは何をする人?
残業を増やすと残業時間分は生産量が増える?
プロジェクトへの人数のかけ方は?
それらの問題への答えの1つを提供してくれる本です。管理者と呼ばれる立場の人には是非読んでおいてもらいたいものです。
プロジェクトを運営するときに、やってはいけない事、やるべき事が分かりやすく書いてある本。デッドラインに書いてあるポイントをピックアップして説明を書いてあると言った感じかな。
まず最初に言わせていただきたい。日本語がおかしい。英語の単語の並びそのまま、日本語になっている気がする。英語特有の指示語満載の部分も「それ」「あれ」となっていて日本語が難解。
ソフトウエアを開発する組織を3つの主要パターンと2つのさらに発展したパターンに分類。
とある組織がどのパターンであるかの見分け方。上位の組織への移行が必要になった場合(大規模なプロジェクトが多くなったとか、顧客が増えたとか)の上位のパターンへの移行方法などが書いてあります。
たのむ、誰か和訳し直してくれ。内容はよいのに、日本語を理解するのにとても時間がかかる。
C++の最高権威書(だと思います)。困った時は、これを開いてみよう。
単に、言語の仕様が延々と書かれている本かと思っていたけど、 各章のはじめに名言みたいなのがあるし、 サンプルも豊富、練習問題まであったりとサービス満点です。 入門書とは言えませんが、上を目指すのなら持っていて損はない本だと思います。