2008/09/17

[C++]C++のバイブルとISBN。


最近JavaからC++に移ったのだが、

Javaに比べて美しく書けないし、
CからC++に移った人のソースコードが読みにくい
(JavaからC++に移った人のソースは読みやすい)

これはJava書きとC書きの間に大きな隔たりがあるのじゃないだろうか?と考える。

昔関わったプロジェクトでC書きが納品したプログラムの修正をしたことがあったが、
読みづらく根を上げたことがあった。
(プロジェクトでは「古文書」と呼ばれていた)

あの時は、C書きの人のソースが汚いだけかと思っていたが、
もしかしたらC書きの間ではメジャーな書き方なのかもしれない。



やはりC++のバイブル的なものを一読しなかればいけないだろうと思い、
少し調べてみると、
Scott Meyersの「Effective C++」がバイブルだという話だ。
(Gofのデザパタ本も読んだほうがいいんだろうが、まずはコーディングバイブル)

さー買うぜ!って思い立ち本屋に直行。

見つけたEffective C++ なんだか More Effective C++ と書いてある、
気にせず購入しようとしたら、お金が足りない!

その時は購入をあきらめ、家に帰ってからAmazonで注文しようとすると、
どうもさっき本屋で見たものとは表紙が違う。



よくよくAmazonのコメント欄を見ていくと、
どうやらScotto MeyersのEffective C++は有名本でもあるらしく、
数人の訳者が訳本を出しているようだ。

中にはひどい訳本もあるらしく、私が買おうとしていたMore Effective C++は
かなり評判が悪い。

そういったコメントの中で吉川邦夫氏という名前が見つかる、
彼が訳者の本は評判が良いようだ。

検索し見比べてみると、Amazonの本に対する評価も彼の本だけ満点がついている。

よし、吉川邦夫氏訳本を買うぞーとAmazonで注文しようとするも在庫切れ、
う~ん、流石吉川邦夫(笑)




近所の書店で注文するために、
AmazonからISBNコードを抽出。

そういえば、ISBNコードって書籍出版物に対するIDコードなんだろうけど、

ISBN-10とISBN-13があるんだね。
どう違うのだろう?両方ともメモって書店に渡さないと分からないのだろうか?

気になって調べてみると
ISBN-10は旧コード体系
ISBN-13は新コード体系

ということだそうだ
どうやら旧コードの10桁ISBNでは足りなくなったので、
13桁にしたようだ。
よって13桁のほうを書店に持っていけば問題ない。


以下本当にどうでもよい記述。

-------------------------------------------------

ちなみに吉川邦夫氏のEffective C++ ISBNは

ISBN-10 : 4756118089
ISBN-13 : 978-4756118080

ISBN-10のコード体系は

A BBBB CCCC D

A = 言語コード(日本語だと4)
B = 出版者記号
C = 書名記号
D = チェックデジット

※ただしBとCは合計で8になる範囲内で桁数が変動する

ISBN-13は

NNN - A BBBB CCCC D

Nは978,979のどちらか

A~Dの意味は同じ

ただしISBN-10とISBN-13でチェックデジットの計算式が違う。

ISBN-10は「モジュラス11 ウェイト10-2」
ISBN-13は「モジュラス10 ウェイト3・1(モジュラス10 ウェイト3)」

前者の計算式だとEffective C++のチェックデジットは

4*10 + 7*9 + 5*8 + 6*7 + 1*6 + 1*5 + 8*4 + 0*3 + 8*2 = 244
11 - ( 244 mod 11 ) = 9

A. 9

後者だと

9*1 + 7*3 + 8*1 + 4*3 + 7*1 + 5*3 + 6*1 + 1*3 + 1*1 + 8*3 + 0*1 + 8*3 = 130
10 - (130 mod 10 ) = 10

算出結果の下一桁が0ならばチェックデジットは 0 とするので、

A. 0

0 件のコメント:

コメントを投稿