Entry

プログラミングメモ - better C のコーディング規約と C++ のコーディング規約

2009年07月06日

少し前に,コーディング規約についてアレコレ書いたんですけれど(参照:qune: コーディング規約つれづれ),C++ FAQ LITE にその手の話があったのでメモ。

ちょっと長いですけど,該当箇所を引用しておきます。

[27.3] Should our organization determine coding standards from our C experience?

No!

No matter how vast your C experience, no matter how advanced your C expertise, being a good C programmer does not make you a good C++ programmer. Converting from C to C++ is more than just learning the syntax and semantics of the ++ part of C++. Organizations who want the promise of OO, but who fail to put the "OO" into "OO programming", are fooling themselves; the balance sheet will show their folly.

C++ coding standards should be tempered by C++ experts. Asking comp.lang.c++ is a start. Seek out experts who can help guide you away from pitfalls. Get training. Buy libraries and see if "good" libraries pass your coding standards. Do not set standards by yourself unless you have considerable experience in C++. Having no standard is better than having a bad standard, since improper "official" positions "harden" bad brain traces. There is a thriving market for both C++ training and libraries from which to pull expertise.

[27] Coding standards, C++ FAQ Lite

一応,超訳を当てておく。

[27.3] C言語の経験に基づいてコーディング標準を策定すべきでしょうか?

だめ!

あなたにどれほど C の経験があったとしても,また,どれほど C に習熟していたとしても,良い C プログラマであることと,良い C++ プログラマであることは別物です。C から C++ に移行するということは,C++ の ++ の部分である文法や構文規則を学ぶことだけではないのです。OO〔Object Orientation; オブジェクト指向〕を採用したくせに,OO を OO プログラミングに置き換えられていない組織は,自分自身を欺いています(貸借対照表がそのばかさ加減を示すはずです)。

C++ のコーディング標準は,C++ のエキスパートによって検討されるべきです。まずは,comp.lang.c++ に聞いてみましょう。そして,落とし穴から遠ざけてくれるガイドとなるエキスパートを探しましょう。トレーニングを受けましょう。さらに,ライブラリを購入して,「良い」ライブラリがあなたのコーディング標準に適合しているか調べてみましょう。十分な C++ の経験もないのに,自分だけでコーディング標準を作らないことです。悪いコーディング標準を持ってるくらいなら,コーディング標準なんかない方がマシ。というのも,不適切な「公式標準」があると,変なクセ(brain traces)が付くからです。巷には,専門家の知恵がある C++ のトレーニングもライブラリも揃っています〔かなり意訳〕。

こう言い切ってくれる人がいるってのが,もっとも重要なことなんじゃないかと思ったりもする。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN