大学の授業を受けて感じるのは,その学問の大きさではないでしょうか.こいつを制覇するのは無理そうって.高校の時は範囲が文科省によって限られているので,なんとかなりそうですが,大学は無理.あるいは一人の教授から教えてもらった内容がどこまで通用するのかしらと不安になります.大学で扱われるような,あやふやな知識をどうやって 「学ぶ」 か,途方に暮れてしまうかもしれません.
コンピュータを動かすために必要となるソフトウェア開発の中で,最新の手法にCoCという考え方があります.これは Conventions over Configurations(設定よりも規約) の略です.どういうことかというと,
Conventions over Configurations(設定よりも規約):複雑なWEBソフトを開発するときに,古い手法の 「設定優先」 では,いろいろと好き勝手に設定できる自由度を優先していました.そうすると何処に何が置いてあるのかは開発プロジェクトごとにまったく違っていて,プログラマや管理者は設定ファイルを見ていちいち確認する必要がありました.新しい手法の 「規約優先」 では,デフォルト設定を標準にしてしまったのです.この規約優先はファイルの名前や関数の名前にまでおよんでいて,細かい関数は自動で作られて,開発効率が格段にあがることが実証されています.
もう少し身近な例で説明すると食品売り場 はほとんど同じ構成になっているのをご存知? 細かい順序は変わるけど野菜・果物->魚->肉->加工食品->飲み物->冷凍食品->乾きもの->調味料...買い物客が規約に従ってどこにあるかをある程度予測できるから探せるわけで,店が全く勝手に設定したら買い物客は何処へ行ったらいいかわからなくなり,買い物がしづらく感じ,そのうち客足は遠のきます.食品売り場の発想をCoCはファイルの置き場所に当てはめたわけ.
「規約優先」というのは,学習を始めるときにとても有効です.これは能や,武道,茶道の教えにある
- 守: 型や技など,師の教えを忠実に守る
- 破: 自分の考えによって,型を破る
- 離: 独自のものを作り,型から離れる
にも通じています.皆さんはすぐに独自のものを作りたがる,あるいはそれが推奨されているように感じてしまいます.でも,これは天才のすること.普通の人には,どのような芸の修得にもしっかりとした技能の基礎を身につける守の段階があって,これができて初めてより上位の技能となる破や離ができると考えられています.学問も同じです.
- source ~/git_hub/semi_lattice/docs/coc.org