Great Codingとはなにか

ひさしぶりの更新。
無事に大学院進学が決まりました!!

院試から解放されて最近こんな本を読んでます↓

Write Great Code〈Vol.1〉ハードウェアを知り、ソフトウェアを書く

Write Great Code〈Vol.1〉ハードウェアを知り、ソフトウェアを書く

まだ途中ですが結構面白くて読みやすいので紹介。
みんなコード書くときてどんなことに気をつけるんだろうか。
僕の場合、数値計算で気をつけることは
・呼び出し関数は減らす
・ポインタを使う
・オーバーフロー
バイトでは
・自分で作ったクラスの意味と処理
・既存のコードとの調和性(何となく雰囲気で)

ぐらいです。
この本ではグレートコードを以下のように定義しています。


グレートコードとは、一連の適切なソフトウェア特性に基づいて記述されたソフトウェアのこと。
特に、グレートコードは、アルゴリズムソースコードの形で実装する際に、
プログラマーを決定を下すために使ういくつかの規則に従う。

個々のプログラムが同じ規則に従う必要はなく、特定の規則に従っていればそれはグレートコードと言えるらしい。
内容はこの定義を踏まえて低レーヤーを意識したプログラムを書くことでコードを高速に小さくすることが記述されている。
この本はハードに重きをおいて解説されているけどプログラムの種類によってグレートコードを考えてみるのも面白いと思う。
数値計算ではCPU、メモリなどのマシン性能を考慮したコードがグレートコードと言えるかもしれないし、サーバーサイドプログラムでは移植性や拡張性を考慮したコードがグレートコードと言えるかもしれない。
書こうとしているプログラムは何をしようとしているのか、そしてそのプログラムを良くするためには何を考えてコーディングするべきなのか。そんなことをまとめることでプログラミングに対する見方も変わってくると思う。

本の内容は数値計算の人にお勧めです。