2024-05-08

漫画を追いかけるにはプログラミング勉強しないといけないみたいな考えになる。

bookliveとかで、登録されている作品を全て一括表示するとそれはそれは何十万件と出るわけだ。

一個一個ざっと見でもサムネ確認して大雑把に内容を確認する、そのなかから気になったものをジャケ読みするという方針をとるにしても、しらみ潰しにそれを行うにはネットワークデータベース挙動に関する知識必要だと知る。

まず検索結果はセッション単位で固定ではない。

これはブラウザ履歴キーワードが反映された検索結果のURLがあってそこからダイレクトアクセスしても検索結果が表示されることからも明らかだ。

これは裏を返せば、たとえば8時丁度に検索結果1ページ目を表示してから何秒か経って一通り見てから2ページ目を表示した場合と、同じ8時丁度に最初から2ページ目を表示するのとではそのページの検索結果としての構成微妙でも異なる可能性があることを示している。

1ページに100件漫画を表示する仕様採用していて検索結果が2000ページだとしよう。ソートは仮に人気順だとする。まあこれはしらみ潰しするうえでは絶対選んじゃいけないソート法なんだけど。

1ページ目を表示したその瞬間に、5ページ目に表示されるようになっている漫画があったとしても、5ページ目を表示したころには1ページ目とか4ページ目に表示されるようになってるかもしれない。普通に順番に次々ページを進めていって5ページ目に到達したときにはこのことに気づかないかもしれない。以降やっとの思いで2000ページ分確認完了しても、ついにその漫画確認する事なくしらみ潰しできた気になってしまい得る。

二周すればいいと思うかもしれないが原理上何周しようが同じように1ページ目に表示されなくてスルーしてたら2ページ目を表示したときには1ページ目に表示順位が変わっていたりして、結局「入れ違い」になり得る。

今のような具体的な話を聞いていると「別タブに1ページ目を表示しておいてじゃあページを進めるたびに1ページ目の表示を更新する定点観測をすればいいじゃん」と浅い考えを持つ人がいるかもしれないが、こうした順位の変動は2000ページの範囲のあらゆるページとページの間で起こりうることなので、そうした考えは全く通用しないことは、少しでもアルゴリズム的な思考を駆使できれば理解できる事だと思う。

最低でも新着順じゃなければならない。新着順にした上で1ページ目を定点観測。ページ進めているときに1ページ目の表示が変動したら、プルプッシュ?式の考え方なら直前に見たページにあったいくつかのデータが今のページに追いやられていることに注意すればいい。しかしこれで果たして完璧なのか?プログラマーセンスがまだまだ足りなすぎて盲点はないか(実際いずれは自動化検討しているのでもろプログラミング技術の学びが必要)?Code CompleteとかClean Architectureとか読まなきゃだめちゃう?みたいなことを考えてしまう。

でもいざ漫画の造詣が深い人で「こういうことを難しく考えて」プログラミング身につけたしプログラミングが役に立った漫画オタクのきょうようだなんて言ってる人聞かないし、自分が考えていることの力点ずれてるだけでもっと気楽に生きるべきって気がしてしまう。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん