̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IT ニュース&コラム 2013/11/11 通巻645号 技術版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 変数定義を上に集めるな - リーダブル・コード(14) C言語は、変数宣言を関数の上の方に集めなければ、コンパイル・エラーに なります。 おそらく、Pascal から受け継いだ仕様なのですが、用語集を 先に書くことのメリットを享受しようとしたと思われます。 用語集を先に書く目的は、意味を知らされていない用語が使われることを 防ぐためです。 意味を聞いてない用語が現れたら、聞いてないよ〜(怒)、 という気持ちは分からなくもないのですが、だからといって先に、文書の 本文を読む前に用語の意味を読み続けることは苦痛です。 現在では、 インターネット・ブラウザーの普及によりハイパーテキストが当たり前となり、 分からない用語は、ハイパーリンクをクリックするか検索することが ほとんどです。 C言語(C95まで)ではコンパイル・エラーになりますが、C99以降や他の言語 のほとんどはエラーになりません。 変数宣言が関数の先頭に配置すると、変数が使われる場所で、その変数の 型を知りたくなったときに、スクロールさせる必要があります。 スクロール していると何を調べたかったのか忘れる可能性があります。 変数宣言を関数のどこでも宣言できるようになると、変数が使われる場所と 変数の型が書かれている場所を近くでき、変数のスコープを縮めることが できます。 近くにあれば、ハイパーリンクをクリックするかのように、 簡単に型を知ることができます。 残念ながら、コンパイル・エラーになるコンパイラーは、Visual Studio 2012 をはじめまだ多く存在しています。 そんなコンパイラーでも、変数のスコープを縮めることができます。 if や for などの中カッコ { } で囲んだブロックの先頭であれば、変数宣言が できるからです。 しかも、if や for などがなく、いきなり { から始めて ブロックを作ることもできます。 void Func() // 編集前 {   int a;   int b;   a = 2;   b = 3; } void Func() // 編集後 {   int a;   a = 2;   {     int b;     b = 3;   } } { } によってインデントが深くなってしまう欠点がありますが、変数が使われる 位置のすぐ上を見れば変数の型をがすぐに分かるようになりました。 最近の開発環境では、変数にマウスカーソルを合わせるだけで、定義を ポップアップ表示することができますし、定義にジャンプすることもできます。 ジャンプから戻ることもできます。 しかし、開発環境がない場所でソースを 読むときでもすぐに分かるようになりますし、変数が多くなったときに 初心者が変数定義を読み込んでしまうことがなくなります。 参考: リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック オライリージャパン ISBN-13: 978-4873115658 9.2章 変数のスコープを縮める - 定義の位置を下げる 注目ニュース 一覧 ◇ 元の値段がおかしい? 楽天日本一セールに批判殺到。 http://news.biglobe.ne.jp/trend/1105/gad_131105_2782929728.html … 楽天に価格決定権があるみたい。 ◇ Google の SPDY ベンチマークに関する一考察。 http://d.hatena.ne.jp/jovi0608/20120523/1337742400 http://d.hatena.ne.jp/vwxyz/20120628/1340873192 … SPDY は http よりはいいけど、遅いサイトの原因は http ではない。 ◇ グッドデザイン大賞に Googleマップのはずが政府が拒否、該当なしに。 http://www.itmedia.co.jp/news/articles/1311/07/news111.html … maps.google.co.kr では独島と表示。kr を jp や com に変えると表示も変わる ◇ Windows 8.1の企業向けの機能を見る。 http://cloud.watch.impress.co.jp/docs/column/2012lab/20131107_622412.html … Windows 8.1 RTではWorkplace JoinによりADに登録できる ◇ Windows 8.1の新機能、テキスト読み上げを利用するには? http://www.atmarkit.co.jp/ait/articles/1311/07/news088.html … 実は、Windows Vista から利用できた機能だが、ストアアプリでも使用可能に。 ◇ MSの研究開発を画で見る。 http://japan.zdnet.com/cio/sp_09ohkawara/35039357/ … Google のサービスと重なるものが多そう。 ◇ なぜiPhone 5sとiPad Airは3DMark物理テストの結果が悪いのか。 http://pc.watch.impress.co.jp/docs/news/20131105_622195.html … Bullet物理ライブラリの性能が悪い A7 プロセッサー。 ◇ アップル製品から消えつつあるディスクドライブ。最終段階間近の完全廃止。 http://japan.cnet.com/news/commentary/35039221/ … ダウンロード販売へ完全移行へ。 ◇ 米Apple、機能劣化した新iWorkの改善を約束。批判を受け一部機能を復活へ。 http://internet.watch.impress.co.jp/docs/news/20131107_622506.html … 昔からオフィス系が苦手なアップル。 ◇ トヨタ、東京モーターショーで燃料電池車、次世代タクシーなど出展。 http://car.watch.impress.co.jp/docs/news/20131105_622099.html … 充填時間が3分。 電気自動車の弱点を克服。 問題は燃料の値段か。 ◇ Facebook、いいね!ボタンのデザイン変更を発表。サムアップは消滅へ。 http://www.itmedia.co.jp/news/articles/1311/07/news042.html … 代わりに Facebook のアイコンが表示される。 ソフトウェアデザイン館 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