̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IT ニュース&コラム 2013/11/25 通巻647号 技術版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 字下げスタイルは普段から従うな - リーダブル・コード(15) C言語やJava言語は、中括弧 { } を使ってブロックを記述します。 中括弧だけ でなく、ブロックの範囲を字下げ(インデント)して記述します。 ただ、 中括弧をどの位置に記述するかによって、コーディング・スタイルの宗教論争が 起きています。 主に中括弧の位置の違いなのですが、なぜか字下げスタイルと 呼ばれています。 中括弧の開始を、文末に記述するスタイルを「K&R スタイル」といいます。 void FuncA() {   if ( ... ) {   } } 中括弧の開始を、文のない行に記述するスタイルを「BSD スタイル」といいます。 void FuncA() {   if ( ... )   {   } } 関数の開始も、文末に記述するスタイルを「Java スタイル」といいます。 void FuncA() {   if ( ... ) {   } } 以上のスタイルが、別のスタイル名で呼ばれることもありますし、 ホワイトスミス・スタイルや GNU スタイルという独特なスタイルもあります。 また、if 文などに続く文が1つだけのときは、中括弧を省略でできますが、 省略しないで必ず中括弧を書くスタイルもあります。 if ( a == 1 )   { b = 2; } ちなみに、Python プログラミング言語では、宗教論争を生む中括弧は書かずに、 インデントだけでブロックを表現します。 よく考えられているのですが、 Python の構文に拒否反応を示す人もいます。 私は慣れましたけど。 if a == 1 :   b = 2   c = 3 多くの場合、K&R スタイルと BSD スタイルの争いになるのですが、多くの場合、 K&R スタイルの方が1つの画面の多くのコードが見渡せるため熟練者に好まれ、 BSD スタイルの方が中括弧の対応が自然になり初心者にも読める、という主張に なります。 K&R スタイルに近い Java スタイルになっている JavaScript が多く ネットで見られるのに、初心者にも読めるという主張は説得力がなくなってきて いますが、会社が正式に公開するものは実益より見た目を重視するため BSD スタイルが多いです。 つまり、K&R スタイルで効率よく開発したいのに、 BSD スタイルで公開しなければならないということがよくあるのです。 開発者は、この問題に対処するために、おとなしく BSD スタイルで開発するように したところで、開発効率が落ちてしまっては長期的な競争に負けます。 そこで、 コーディング・スタイルを変換するツール(例:Artistic Style)を使うことを お勧めします。 リリース物を作成するときに変換ツールを通しますが、変換ツール を通す前のソースをマスターにしておく必要があります。 ただ、変換ツールにかけてしまったソースは、変換ツールにかける前のソースと 文法上同じですが、変換ツールのバグの可能性(限りなく低いが)を考えると 品質に問題があると指摘されてしまう(素人は可能性の低さを納得できない)ため、 変換した後のソースを使ってテストを行うとよいでしょう。 慣れの問題という人がいるため、私も1年間 BSD スタイルにしたことがあるの ですが、メインの文よりその文のエラー判定のコードがどうしても間延びしてしまい、 主従関係が逆転して読みにくいことには慣れなかったため、K&R スタイルに 戻りました。 if 文などに続く文が1つだけのときでも、中括弧は必ず書くように なりましたが。 参考: リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック オライリージャパン ISBN-13: 978-4873115658 4.8章 個人的な好みと一貫性 注目ニュース 一覧 ◇ Nullsoft、定番メディアプレイヤー Winamp の公開終了を宣言。 http://www.forest.impress.co.jp/docs/news/20131121_624583.html … フリーソフトでも開発を終了してしまう可能性があると安心して使えない。 ◇ Google、ソフトウェア開発キット Dart SDK 1.0 を公開。 http://www.forest.impress.co.jp/docs/news/20131115_623674.html … 1社が提供しているうちは、安心して使えない。 ◇ 米Microsoft、3Dモデル作成アプリ、3D Builder をWindowsストアで無料公開。 http://internet.watch.impress.co.jp/docs/news/20131118_624006.html … 製造業に革命を起こす 3D プリンターだけに、マイクロソフトは本気だ。 ◇ 魔法のような体験を創り出すモーションセンサーの可能性。 http://monoist.atmarkit.co.jp/mn/articles/1311/21/news014.html … Kinect だけじゃない。 ◇ Google、Safari を介したWeb履歴追跡問題で37州と1700万ドルで和解。 http://itpro.nikkeibp.co.jp/article/NEWS/20131119/518852/?ST=security&P=2 … プライバシー設定を迂回してプライバシーを侵害することから盗む意図が見える。 ◇ 離着陸時もタブレット利用OKに。米旅客機、各国も追随迫られる可能性。 http://www.itmedia.co.jp/news/articles/1311/18/news039.html … 安全第一でも、このような柔軟性がなければ使われなくなる。 ソフトウェアデザイン館 Sage Plaisir 21 ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm