ある日、「最新技術を使いたいが、ベストプラクティス(定番の手法)がなくて困る」的なことを耳にした。当時は何も思わなかったのだが、最新技術とベストプラクティスは両立しえないことに気づいた。
最新技術とはなにか? ベストプラクティスとはなにか? という定義論的なつまらない議論をすれば、いかようにでも言えるのだけども、素直に解釈するならば最新技術の領域にベストプラクティスは存在しない*1。皆様で試行錯誤をして、局所最適解を見つける課程にあるからこそ、最新技術なのではないだろうか。
たしかに、試行錯誤を行う一員に自分が加わり、最適な設計を模索するのはリスクが高い。それゆえ、頭をあまり使わずに「いい感じの設計」を享受することができるのは、ある程度枯れた技術のみということになる*2。これは最新の領域への関わりが本質的に投資行動であることを導く。投資には必ずリスクがあり、技術(手段)の選択もリスクを伴う投資である。判断には誰かが責任を取らなければならず、あてが外れたら負債が最大化する前に処理をしなければならない。
私の少ない経験から得られている教訓は、システムの根本原理を抱えるロジックはPure * Objectにすることである*3*4。本質的な部品に依存が少なければ、フレームワーク・ライブラリが変わっても言語が変わらない限りは負債処理がやりやすい。Pureなオブジェクトにこだわるのがベストプラクティスなのではないか? という疑問も出てくるが、この手法は<ベストプラクティス>ほど頭を使わないで済むものではないので、世に求められているそれではないだろう。