プログラミングとアフォーダンス(←NGワード...)
クラスがメソッドの実行に必要なインスタンスを手に入れる方法色々 - 都元ダイスケ IT-PRESS
プログラマに対して、APIをどのように使わせたいか、自然にそれをアフォード(←NGワード)するようなインタフェース設計って難しいし、いまいち共通の理論が無い気がします。APIだけじゃなくてプログラミング言語や設計全般に言える話題かもしれない。
経験的には、同じライフサイクルを持つものを近くに配置するとか(上記例ならsqlとhandlerをなるべく近くに配置する)、とにかくプログラマへの心理的効果をねらって工夫することが多いと思います。美しい(プログラム|API|設計)だと感じるのも、そういう心理的な効果が大きい気がします。
このようなソフトウェア記述と人間系の相互作用、プログラマ生態心理学みたいな観点の研究ってないかなー。という観点でググってみたけど、あんまり有効な資料は無かった!!
ソフトウェアの設計の美しさは好みの問題かもしれないんだけど、やっぱり必然性というか理由がほしい
美しさというと、それを扱う人間に関わってくるし、やはりプログラミング心理学の創設が待たれる!(ワインバーグのあの本とはちよっとちがうの)