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

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

もうちょい砕けると、
「どのクラスを使ってどのメソッドを呼ぶか」よりも
その機能が、
「どのような問題領域にどのようなアプローチをしてるのか」
を学んで欲しい

これが自分が 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 と広げられるように。

それが結果的に、気の利いたディベロッパにつながる。
がんばってくださいね。