「正式会員で生年月日のある会員を除きたい」 っていう条件をCBで書きたいって言われて、 おいしいランチから帰ってきた途端の突然の質問で、 一瞬「おやっ!?」って思ったけど、 ホワイトボードでモデルを書いてみたら明らか。 実際描いたのはもちょい絵的だけど、まあこんな感じ: o 正式会員、生年月日あり // これを除外 o 正式会員、生年月日なし o 他の会員、生年月日あり o 他の会員、生年月日なし それって要は、 「正式会員以外か、生年月日のない会員」 ってことじゃん。 プログラマーならプログラムちっくに描く方がピンと くるかもね。これでもいい。これもモデルの一つ。 !(正式会員 && 生年月日 != null) => !正式会員 || 生年月日 == null 何も絵っぽいものがモデルとは限らない。 頭の中の思考を表現できればなんだっていい。 表現することで、思考に土台ができて考えがまとまる。 まあ、このくらいは定理的に解決できるものだけど、 定理に頼ると覚えたことしか解決できないもの。 シンプルな論理からのモデリングに慣れていかないと、 いざ複雑な論理に対峙したときに前に進めないもの。 思考力を鍛えたり、ツールで支援することで、 そのポテンシャルは無限大に 人は道具を使うことで、限られた自分の能力を拡張できる。 オフィスでの気軽な思考ツールは、例えばホワイトボード。 コードとにらめっこして、うなっても答えが出ないと思ったら、 おもむろに、ふとペンを握って何か描いてみよう。 フリーハンドに勝る「手軽な表現ツール」はない => ホワイトボードを買ってこよう | jfluteの日記 # # DBFluteハンズオンでは、これを意識した課題も用意しています。 # ツールでの思考力アップの大切さをぜひ実感してもらいたいと。 #