つーか、タイムスパイラルの枠色違い復刻カードってスタンダードで使えるんだー。
ウェブでデッキレシピ捜してて「なんで(どう考えても復刻してはいけないカードであるはずのところの)Call of the Heardがあるんだろう……」とか真剣に悩んだんですが。さくっと使えるんですねー。
なんというかこう……史上最悪の環境じゃないかという気がしてきた(笑)。
そんなわけで、いくつ作っても必ず Suq'Ata Lancer×4 が入ってしまいそうな気がする今日このごろ。
懐かしい作りかたができるっちゃできるんだけど、こんな環境はもっとやばいデッキが存在するに違いないんである。なんかもっと多色で、やばいロジックで動くやつ。まずそういうのを知らないとまともなデッキを作れない気がします。
他人の日記とか読んでたら、ふとまたはじめてもいいかもなと思ってみたりして、自分用フル代理カードデッキメーカーCGIを作ったりした。別に公開するわけじゃないけど(ぉ
某サイトから落とした日本語スポイラーリストをDB用データに変換したり、そこらのレシピをそのままもってくると印刷用代理カードのHTMLを吐いたりする。合計1人日くらい。
そんなわけで、いまうちには現行スタンダードの全カードデータ(日本語)がSQLiteになっていたり検索システムがあったりするのだけど、そこまで作ったところでデッキを考える気力はなくなったので放置。
嫌いだとかいいながら、オブジェクト指向で書かせてもらえないストレスを感じるようになった今日このごろ。
めちゃくちゃなスパゲティで汎用性ゼロのコードができあがることのほうが多い、というのを実体験しはじめてるのもたしかなんだけど……。
でも使いたくなるときもたしかにある。ものは考えようだと思ったんである。
まず「オブジェクト指向」という言葉が悪い。この世界によくある、意味を混乱させるために作られたキャッチフレーズの一つだと思う。WEB2.0とかと同じ。
とにかく、もしいまから勉強する人がいるなら、ぜひいってあげたいことがある。
「自動車オブジェクトというのを考えてみましょう」といわれたら、その話は忘れてください。
混乱するだけだし、わたしも混乱した。その人も混乱してる可能性が高いです。
しかし、オブジェクトの思想にはもちろん意味がある。以下は、業務経験1年未満のわたしの理解なので、間違ってたりかえってわかりにくかったりしたらごめんなさいだけど……。
オブジェクトというのは、要するに名前空間のことだ。それ以上でも以下でもない。
つまり、他の名前空間と重複する名前を使うことができる、という、それだけのことだ。まったくのところ、車のハンドルなんかとは少しの関係もないのである。
new とかすると、その名前空間がもう一つ作られる。それだけ。
もういちどいいたい。それだけなのだ。
つまりこれは、get() という名前の関数をいくつでも作ることができるということである。たしかにこれは大きな利点である。
結論。
オブジェクト指向は get() 関数のためにあるのだ。
だけどたとえば、変数名と関数名の途中に「 -> 」とか「 . 」(ドット)とかを許す言語があれば、あとはちょっとしたコーディング規約を用意するだけで同じことを実現できる。いや、よくあるある言語でも、代わりに「 _ 」(下線)や連想配列を使うことにしてしまいさえすればいい。それに近い言語もあるわけだし。
要するに、たいした話じゃあない。オブジェクト指向を使ってすばらしいコードを書く人は、使わなくたってやる人だろう、というあたりまえの結論が出てくるだけ。
どうしても理解できないんだが、なぜ住所の入力フォームに全角チェックを入れるかなあ……。
某プロバイダの住所変更をしたくて、いろいろ調べてたんです。っていうか、調べなきゃたどりつけないのがそもそもどうかと思う。
そして1時間以上もかかってようやくたどりついたフォームが、これまた絶対に一度ですべてのチェックを通過することは不可能ってくらい謎の多いフォーム。一度入力したつもりだったのに受けつけられてないし。表示は恐ろしく重いし(おおむね、気をきかせてXMLで大量のデータを保存してるか、インデックスの使いかたをまちがえてるかどっちかだと思う)。
そして「住所の全角チェック」である。
そんなに半角が嫌いなら、入力を受けつけてから変換してDB登録すればいいだけのことなのである。できるだけいろいろ受けつけてみせるのが、WEBサイト開発する人の器量というものじゃないのか。
……と思うんだけど、実際にそういう仕事に就いてみると、現場でなにがあってなんでそうなっちゃったのかもわかるんだよなあ。こういうのほんとになんとかならないのかなあ。