ナイスガイから教わった C でコードを書くときのほにゃらら 01

二年前に出会ったナイスガイから C でコードを書くときに大事なことをいくつか教わった。
教わったことは、何かしら自分でまとめて誰かに伝えていかねばと思っているのでぼちぼちまとめていく。

移植性を高くする

以前の私は環境限定のコードを書くことが多かった。Windows アプリケーション・ライブラリを書くことがほとんどで、
しかも多種多様な Windows API を叩くことがほとんどだったということもあり、あまり移植性に配慮していなかった。時間もかかるし。


ナイスガイから教わったのは、こういったシステム固有処理をとにかく外に追い出すということだった。実際にナイスガイが書いたコードを見せてもらうと、ソケットをはじめ、メモリハンドリングなど CRT の一部も外に出していた。


一年と少し前、そういった Windows クライアントアプリケーションをモバイルデバイスに対応させようという話が出た。そこで、ナイスガイから教わったことを実際に自分でも試してみた。


結果として、AndroidWindows Mobile 6、WindowsMac OS X で動作するアプリケーションを作ることができた。それぞれのシステム固有処理と、アプリケーションのエントリポイントを少しいじるだけで普通に動く。しかも、ベースができた後に移植するときは他の人と分業してすすめることができたのだ。


また、移植性を高くしたことで十分な抽象化がなされ、インターフェースが整い、単体テストが奥までよく通せるコードになった。メモリハンドリングなども外に出しているので、単体テストではそれ向けにスタブを用意して C1 を達成することができた。

まとめ

  1. 移植性を高くすることで次の効果が得られる
    1. モジュールの抽象化が高まる
    2. モジュールのインターフェースが整う
      1. 並行開発・分業しやすくなる
    3. 単体テストしやすいコードになる
      1. コードの品質が高まる


具体性に欠ける内容ですが、またぼちぼち書いていきます。