実装方法よりも機能概念を

実装方法よりも機能概念を...

もうちょい砕けると、「どのクラスを使ってどのメソッドを呼ぶか」よりも...

その機能が「どのような問題領域にどのようなアプローチをしてるのか」を学んで欲しい

これが自分が DBFlute を学ぶ若い人に伝えたいことというか、別に DBFlute に限った話ではないでしょう。


機能があるということは、程度の大小はあれど解決したい問題領域があるからそこに存在しているわけです。

そして、それに対してのアプローチの仕方は必ずしも単一ではないのですが、どれかを選んで機能にしている。こういった背景があって機能が実装されているわけです。

逆に、機能を知ることは問題領域を知ることとも言えます。確かに概念だけ勉強してもなかなか頭に入りませんし、また、そもそもそこに気付きにくいものです。DBFluteの機能を学ぶことでDBアクセスのエッセンスを学べればと。

まだ道半ばではありますが、DBFluteのドキュメントでは、そもそもの概念を理解してもらうために、機能以前の説明や概念図を提供しています。これからもっと増やします。

ReplaceSchemaとは?
現場フィット - 業務的one-to-one
現場フィット - 排他制御(楽観的並行性制御)
現場フィット - ページング検索

そして、機能概念を学んでしまえば、あまり実装方法を無理に覚える必要はありません。覚えたら覚えたでもちろんいいけど、いくらしっかり暗記していてもその概念を理解していなければ、いざその問題領域を目の前にしたときに、その機能で解決することを思い付くことができません。逆に、概念さえ理解していれば、問題自体を理解することができるから、それを解決する機能を思い付くことができる。実装方法はドキュメントを見ればいいだけ。


実装方法にしたって、単なる手順を覚えるってことよりも、実装概念を理解することの方が重要です。

手順なんてすぐに忘れます。それよりも実装概念、つまり、その機能を利用するのにどういう仕組みが提供されているのか、深すぎず浅すぎずバランス良く理解していれば、手順を丸暗記してないにしても、いざ実装するときにある程度は想像がつくものです。

外だしSQLの使い方 - 実装概念


ということで、3回シリーズにわたってお送りしてきましたが...
(って、まだ色々書くかもしれませんが)

// 知識を得るためのプロセスを | jfluteの日記
http://d.hatena.ne.jp/jflute/20110528

// 答えよりも答えを導くプロセスを | jfluteの日記
http://d.hatena.ne.jp/jflute/20110530

ディベロッパーを目指す人のために伝えたいこと、要は応用の利かせられるようにしましょうということです。10 覚えて 10 しかできないんじゃなくて、10 覚えたら 12, 14 と広げられるように。

それが結果的に、気の利いたディベロッパにつながる。

がんばってくださいね。