うな(。・ε・。)

Android, iOS, AppEngine まわりのめもめも

Effective 意識低くコードを書く

あまり多くのことをしたくない、あまり多くのことを覚えたくない、でもちゃんと動くソフトウェアが欲しい。

そんな人がなにを意識してコードを書くべきか、ということを挙げてみました。

変えないのが一番

  • 人は一度に多くの物事を変化させられません / 変化に適応できません。
  • なるべく「変えない」ことを意識してエコシステムを選んだり、システムを設計します。
  • シグネチャはできるなら変えないようにするのが一番です。

抽象化せずに処理をそのまま書く

  • ライブラリを書くのでないかぎり抽象化は要りません。
  • やりたいことを素直にそのまま落とし込んで書くのが一番です。

流れが追えるように書く

  • 流れが追えなければコードがなにをやっているかが掴めません。意図せず飛び地で処理が行われないようにします。
  • 共通処理などが暗黙的に実行されるのもあまりよくないと思っています。各場所で共通処理メソッドを呼んだ方が明示的です。
  • rails の callbacks などの飛び道具は流れをわかりにくくする最たるものです。
  • AOP は幻想です。

理解が難しいものを使わない / 一度にひとつのことしか考えない

  • ひとの脳みそは限りがあるので、なるべく難しいことをしない / 難しいものを使わないようにしましょう。
  • 一度に二つ以上のことを考えるとかならず破綻します。一つ一つ解決していきましょう。

けっきょく人の問題なので、なんでもテクノロジ/規約の問題で解決しようとしない

  • 規約や宣言的プログラミング、共通処理、開発フローで縛るのもいいですが、結局は人の問題です。
  • 開発論的手法で解決出来ることは限られています。結局は人の問題です。
  • 規約や開発フロー、記法といったものはようするに開発者間のテーブルマナーのようなもので、実益はさほどありません。しかしながら、お互いに気持ちよく進めるためにそれらが必要な場面もあります。
  • 開発論的なことや、新しいフレームワークの話、新しいパラダイムの話を聞くと夢が広がりますが幻想です。銀の弾丸はありません。結局コードを書くのは人であって、人の問題です。
  • 人の問題から逃げない。