そういえばクラスのメソッドの中だけで使える関数を作りたいと思うことはあるな。機能だけでいえば private なメソッドでいいんだけど、問題の場面から視線が動いてしまうことが嫌だし、その場所でしか使わない処理なのでクラス内のどこからでも呼べる private よりさらに制限をきつくしたい。無名関数でいいという説もあるけど、それなりに長い処理になってしまうとやはり可読性が落ちてしまう。そもそものクラス設計が適切であればそういう苦労もあまりしないんだうけど。
そういえばクラスのメソッドの中だけで使える関数を作りたいと思うことはあるな。機能だけでいえば private なメソッドでいいんだけど、問題の場面から視線が動いてしまうことが嫌だし、その場所でしか使わない処理なのでクラス内のどこからでも呼べる private よりさらに制限をきつくしたい。無名関数でいいという説もあるけど、それなりに長い処理になってしまうとやはり可読性が落ちてしまう。そもそものクラス設計が適切であればそういう苦労もあまりしないんだうけど。
まあ継承に関しては「親クラスへの機能追加が頻繁に発生しないこと」が重要だと考えている。そのためには充分に枯れた概念(例えばWebのMVCフレームワーク)の実装だったり、
ごく限られた責務のみ実装していることが必要になると思うのだけど、後者を実現するためにはmixinとしての多重継承がないと実用的ではなさそう。
共通部分を親クラスにまとめようという発想は悪手。共通部分は必要に応じて増えていくものだし、共通だと思ったら実は例外があったりして複雑になる。具体例を挙げると、親クラスにメソッドを1つ追加するときには、全ての子クラスが同名のメソッドを持ってないことを確認する必要がある。
特定のプロダクト向けのライブラリ群、あるいはフレームワーク的なものを作って、どう育てていくかというに興味がある。というか、あった。改めて考えてみれば、そういうのが必要になったのは今まで関わってきたプロダクトが少々特殊で、データの持ち方が普通のRDBではないためActiveDirectory系統の技術が活用できないとか、簡単ログインや携帯の画面のためにコントローラの共通部分を厚くする必要があるとか、ビューの機能を厚くする必要があるとか、まあそういう事情があったわけだ。
そういう環境を離れてみると、枯れてる技術の組み合わせで多くのことが実現できるんだよね。そういう事情があってフレームワークを作っていくことにあまり興味がなくなってしまった。
一方で、パッケージソフトウェア的な方向に興味が出てきた。共通ライブラリを作って複数の場所で使うというのと実質的にはあまり変わらない気もするけど、1つのソフトウェアを作って複数の場所で設定だけ切り替えて使えればいいんじゃないかな、みたいな。そこまで一般化したソフトウェアの設計は困難だろうとは思うんだけど、まあやってみたい話ではある。
表に出てくるところが似ているとしても、その基となるところが異なることはあるし、それが異なるということに気付かないと判断を誤るよなー。人間でいえば動機とか。自分のことであっても気付かないことあるしね。ブログであれば書きたいことがあるから書いているのか、ブログの仕組みを運用したいから文章を作っているのか、とかとか。
そういえば、2chは同じ話題であちこちにスレッドがあり、話題ごとにスレッドが分かれているのではなく、人の集団ごとになっている。これはよくなく、話題ごとにしなければならない。という観点で新月を設計したわけだけど、考えてみるとニコニコ動画はこれに近い仕組みになっていて、ある動画に対するコメントは基本的には1箇所に集まるようになっている。今はこれが自分の好みではなくなっているのだから皮肉ではある。
例えば「うー! にゃー!」のAAといえば「(」・ω・)」うー (/・ω・)/にゃー」なんだけど、それは何かの必然性に基づくものというよりは、偶然に選ばれたものだから、全然別の人の集団では別のAAが採用されてもよいんだけど、同じ動画をみている限りは「別の人の集団」が生まれないわけで、そのあたりがどうにも納得できない。
とはいっても、やはり2chのように板があって、ある話題について板ごとにスレッドがあって、別の人の集団があって会話しているというのも納得がいかないわけで、どうにも難しい。
人の集団があるというのは人間の性質上避けられないことのように思えるから、どうやって人の集まる目印を作るかということになりそう。これは「○○の好きな人の集まり」というのでは正しくなくて、人が集まったとき、なんとなくAさんを中心としたグループ、Bさんを中心としたグループ、となるように「○○の好きな人の集まりA」「○○の好きな人の集まりB」となり、なんとなく融合分離するのである必要がある。そうなると目印は「○○の好きな人の集まり」ではなくて「ABC12345」みたいな記号になりそうだし、記号では目印の役割は果たせそうにない。
まあいろいろ考えると、ツリー型掲示板がいちばん合っているような気はする。どうにかして「自分はこの枝を追う」「この枝は無視する」というのを実現できれば、だけど。
僕はプログラミングはじめてから比較的早い段階で2ch専用ブラウザ作ったことがあって、それで「データは1つだけど見せ方はユーザーごとにある」みたいな世界のとらえかたが標準的になってる。それ以前にw3mやMewとか使ってたことも影響してる気はする。ニコニコ動画はそういう発想とは最も遠いところにあるようなイメージがあるんだよなあ。
kawango38: zeroの動画プレイヤー問題。究極的な解決はAPI完全に解放して、好きなプレイヤーをつくって選べるようにすべきだな。