カテゴリ
全体プログラミング scheme verilog 未分類 以前の記事
2016年 04月2016年 03月 2016年 02月 2016年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 08月 2015年 07月 2015年 06月 2015年 03月 お気に入りブログ
PHPで競技プログラミングメモ帳
最新のトラックバック
ライフログ
検索
タグ
racket
その他のジャンル
ブログパーツ
最新の記事
外部リンク
ファン
記事ランキング
ブログジャンル
画像一覧
|
ソースコードは、コード効率と可読性が高い方がいいに決まってる。当然です。
なぜかといって、プログラミングの工数は一般的に高いので、たいていの人は自分の書いたコードを使いまわすからです。例えば、この前書いたウェブサイト用のコードをゲームアプリのコードにコピペしてたりする。 あと、プログラムを書く人というのは、捨てコードを書くつもりで書くことが少ない。捨てコードを書く人はむしろよくわかっている人です。 そして、職場やインターネットの仲間たちに賞賛されたいですよね(笑)。 でもコード効率と可読性はトレードオフの関係にあったりする。 プログラミングが大した好きでもないのにコードを書いている人はたくさんいます。そのような人たちはよく、コードがクラスや関数で構造化されると可読性が悪くなると主張します。実際そうなのでしょうか? 私はその意見については一理あると思います。構造化されていないコードというのは、乱雑なように見えて、実行時間や各変数の挙動については構造化されているコードよりも分かりやすかったりします。 下手に構造化されているコードと構造化されていないコードとでは、下手に構造化されているコードのほうが問題が大きいと思います。 普段からコードを書いている人たちはつい見逃してしまうのですけど、クラスだけでなく、関数やサブルーチンでさえも習得するのは難しかったりします。 例えばCの関数の場合は、関数の内部で他の関数の変数を参照できません。当たり前ですが、プログラムを普段書かない人にとっては、非常に厳しい制約に思えます。Cの関数やアセンブラのサブルーチン、クラス、クロージャ等々はそれぞれの言語におけるルールですが、そのルールでうまくやるための定石ないし慣例といったものも当然あります。 普段プログラムを書かない人は、関数の文法が頭に入っていないから混乱するのではなく、その言語でプレーするためのプレースタイルを学んでいないため混乱するのだと思います。しかも、そういった定石はたいていの教科書に書いてないですし、習得するのにそれなりに時間もかかります。 かといって、構造化されていないコードを書くべきなのでしょうか?ある意味でそれは正解となります。コード効率を高めるためには、構造化の方法を注意深く検討する必要があります。つまり、コード効率、実行効率、可読性を天秤にかけて最適化問題を解く必要があるのですが、そのためには初めに構造化されていないコードを書く必要があるのです。 どれを関数にするのか、どれをクラスにするのかを決定するのは、その道のプロでもそれほど簡単な問題ではないはずです。なので、自分は上級者だと見栄を張らずに構造化されていないコードを初めに書くのが正しいように思います。 特にゲームプログラミングではよくあることなのですが、同じような言い回しを何回も繰り返していたりします。そういうのは、その人のコーディングスキルがないのではなく、コードを最適化する前にコードを直さなければならないからなのでしょう。
by tempurature
| 2015-12-23 11:09
| プログラミング
| ||||||||||||||||||||||
ファン申請 |
||