違う...そうじゃないんだよ...

ttp://www.phpbook.jp/cakephp/install/index1.html

この方を例に上げてしまうのは忍びないけど、そうじゃないんだよ、と。
何がそうじゃないんだよなのか、というと...

Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for '9.0/no DST' instead in C:\pg\Apache\Apache2.2\htdocs\cake\lib\Cake\Cache\CacheEngine.php on line 45

って Warning が出た時に、どうして↓のようなことが言えるんだ...

php.iniを編集できない場合には、Warningに表示されているように「(CakePHPをインストールしたディレクトリ)\lib\Cake\Cache\CacheEngine.php」を開き45行目に「date_default_timezone_set('Asia/Tokyo');」を追加して下さい。

違うよ...そうじゃないんだよ......

フレームワークっておいそれと手を下しちゃダメでしょ。
「初心者に分かり易く解説してるんだ」とでも言っちゃうわけ?
初心者をなんだと思ってるの?

そんなだから、残業してまで糞コード垂れ流して、酷い疲労感と達成感から変なモノが見え始めた挙句に自己満足しながら「やっぱオブジェクト指向で作ったコードは美しい!」とか動かないコードに対して評論しちゃう自称プログラマ、自称エンジニア、自称 SE が増えるんだよ!

と、つらつらと感情を隠さずに書けばこんな感じ。
ここで問題だな、と思うのは、初心者をターゲットにした時の「ベター」の扱い方。

結構初心者に分かり易く、という体で書かれた書籍は山ほどある。
猫でもわかる、なんてよくお世話になりました、ありがとうございます。

でも、そういった初心者向け書籍では「ちょっと待って!」って思うことがチラホラある。(あるよね?あるでしょ?

例えば上記で挙げた例。

Warning が出たからと言って、lib ディレクトリ内にあるファイルをいきなり修正してる。
つまり、フレームワーク自身を修正しちゃってる。

違うでしょ。そうじゃないよね?
経験者じゃないのはわかってるんだけど、それをさも「こうするんです」とか初心者に向けて言わないでほしい。

フレームワークが文句を言ってくるのは、大抵
「あなたがフレームワークを理解できてないよ」
っていう場合。
知っている人からすれば、上記もその一例なわけだ。
もっとベターな書き方がいくらでもある。(ていうか、この場合公式では core.php で修正することが書かれている)

それなのに、そのフレームワークに「文句言うならこうしてやる!」とでも言うかのように
修正を加えるのがさも当たり前!といった教え方はいかがなものだろう?

いくら初心者だからと言っても、習慣は大切だ。
それは特に意味も分からず書いているうちは尚更習慣に従うべきだ。(そうすることで、数々の不意打ちを食らわなくて済むようになるからだ)

上記だってそう。
もしフレームワーク側にエンバグした時のことを考えてみよう。
影響はすべてに及ぶ。
直したところを忘れたとしよう。
影響は長く続く。
しかも初心者は大抵エンバグしたことに気付かない。
何故ならそれ以上に、他の事で精いっぱいだからだ。(インストール、ドキュメント、自分がやってみたいこと、言語、etc...)

初心者だからと言って、説明をなおざりにして良いわけがない。

彼らのような人種は諸先輩方に当たるわけだけど、初心者に向けた情報であったとしても、出来る限りベターな記述を心がけてほしいな、と思った次第。


久々に長い!