June 2012
Beginner to intermediate
260 pages
2h 35m
Japanese
これから本物のプロダクトコードで使われているデータ構造「分/時間カウンタ」を見ていこう。問題を解決して、パフォーマンスを改善して、機能を追加する。このようなエンジニアの自然な思考プロセスをたどることにしよう。でも、いちばん大切なのは、本書の原則を使ってコードを読みやすくすることだ。途中で間違った道に進んでしまうかもしれない。君は無事に付いて来れるだろうか。
ウェブサーバの直近1分間と直近1時間の転送バイト数を把握したい。以下はこれらがどのように保持されているかを示したものだ。
素直な問題だ。でも、これを効率的に解決するのは簡単ではなさそうだ。まずは、クラスのインタフェースを定義するところから始めよう。
以下は、C++で書いたクラスのインタフェースの最初のバージョンだ。
class MinuteHourCounter {
public:
// カウントを追加する
void Count(int num_bytes);
// 直近1分間のカウントを返す
int MinuteCount();
// 直近1時間のカウントを返す
int HourCount();
};
このクラスを実装する前に、名前とコメントを見ていこう。変更したい箇所があるかもしれない。 ...