Subscribed unsubscribe Subscribe Subscribe

アンチパターンに必要な2つの要素を学んだ。

父はまとまった本を読むタイプではなかったけど、歴史の本とかを乱読する人だったので、買ったやつをお勧めされたり、勝手に借りたりして読んだ。

その中にノストラダムスの大予言てきなやつが一冊あった気がする。あ、ちがうところで借りたのかも。

そこには救世主思想のような話があり、未来に神様が人のかたちで降りてくるという伝説があるのだけど、そのまえにそれを騙った「アンテXXX」なる人が現れて、人々を騙して、世界を破滅に導く、とあったように、おぼろげに覚えている。

今にして思うと「一見正しそうだけど、うまく行かない話」に怒りを覚えるのは人間の共通した感情なのだろう。人は騙されるのが大嫌いだ。誰かが騙したわけじゃなくて、勝手に勘違いしたとしても、何かを責めないと心が収まらないことすらある。
パターンランゲージはうまく行く方法を記述するものだけど、途中からアンチパターンというものも提案されるようになった。本来はうまく行かない方法なんて価値がないから書かない、というのが基本スタンスなので、「うまくいかない」だけの記述をなんでやるんだろう、と思っていた(あんまし興味がなかった)。

二つの要素

アンチパターンというのは、「一見うまく行くように見えるけど実際はうまくいかない方法」だそうだ。そして「なぜ一見うまくいくように見えるのか?」「代替として使うべき、うまく行く方法(パターン)はなにか?」までを書くのだそうだ。

"A well formulated AntiPattern also tells you why the bad solution looks attractive(e.g. it actually works in some narrow context), why it turns out to be bad, and what positive patterns are applicable in its stead."
http://c2.com/cgi/wiki?AntiPattern

うまく行かない方法だけを書いても、アンチパターンとしての価値が出てこない。
その横に「あー、ちょっと変えてこっち使えばいいのに! (志村後ろ後ろ)」といえるパターンがあることがアンチパターンの成立要件だと勝手に理解した。