121件並べておいて「見当たらない」と言われた
“載せることと、見つかることは別。末尾に足すのは、載せていないのとほぼ同じだった。”
新しく作ったアプリを制作実績に追加しました。数日後、こう言われました。「買いノートが見当たらない」。
載っていました。121件のうち120番目に。
その場で一緒に画面をスクロールして探したんですけど、途中で私の指が止まりました。自分で足したものを、自分で見つけられない。
この感じ、知っているなと思いました。修理のカウンターで、お客さんの端末から目当ての写真を一緒に探すときとまったく同じなんですよね。あるのは分かっている。でも出てこない。あの、指だけが動いて頭が止まる時間。
「あるのに出てこない」が人をどれだけ消耗させるかは、店で毎日見ているので分かっているつもりでした。その私が、自分のサイトで人に同じ思いをさせていた。
▼ この記事を、ショート漫画にしました(タップで再生・音が出ます)

121件並べておいて「見当たらない」と言われたを4コマ漫画にしたもの
1末尾に足していた
作品データは配列で持っていて、新しいものは末尾に追記していました。一覧はその順に並ぶので、新作ほど下に沈む。

新しい作品ほど一覧の下に沈んでいた、配列末尾への追記
しかも並べ替えの手段がありませんでした。カテゴリで絞ることはできても、新しい順にはできない。カテゴリを知らないと辿り着けない一覧を、私は121件ぶん作っていたわけです。
検索窓はありました。でも、名前を知らないものは検索できません。
探している人は、正確な名前ではなく「あの買い物のやつ」くらいの記憶で来ます。店に「あの、青いやつが調子悪くて」と言って入ってこられる年配のお客さんと同じなんですよね。店頭なら私が聞き返せる。
ウェブサイトは聞き返してくれません。その状態で辿り着ける入口が、うちには無かった。
2掲載日は git 履歴から取った
新着順にするには、各作品の掲載日が要ります。作品データには日付を持たせていませんでした。

slugが最初に現れたコミットから掲載日を取り出すところ
121件に手で日付を書くのは現実的でないので、その作品のslugが最初にコミットされた日を掲載日とみなすことにしました。git はそれを知っています。
git log の -S で追えば、その文字列が最初に現れたコミットが分かります。
掲載日をどこから持ってくるか
| 案 | 結果 |
|---|---|
| 121件に手で日付を書く | 書き間違いが混ざるし、次から書き忘れる |
| 更新日時(コミットの最終更新)を使う | 文言を直しただけで「新着」に戻ってしまう |
| slugが最初に入ったコミットの日付 | ◎採用。121件すべて機械的に特定できた |
1件も取りこぼしなく日付が付きました。次に作品を足したときも、スクリプトを流すだけで更新されます。
中身は、slugごとにgitログを引いて掲載日を書き出すだけです。効いたのは処理より、日付をデータの外に置いたこと。手で管理する情報が1つ減りました。
手で書く案は5分で捨てました。次に足したとき私は絶対に書き忘れる。そこだけは自信があります(笑
修理の受付票と同じで、人が毎回書き写す欄はいつか必ず空欄になる。空欄の受付票なら、これまで何枚も見てきています。
3NEWバッジの期間で1回失敗した
新着に印を付けようとして、最初は「30日以内」にしました。

30日にしたら33件が同時にNEWになってしまった一覧
31件が同時にNEWになりました。 7月の20日から22日にかけて、店舗事例を31件まとめて追加していたからです。全部が新着なら、それは新着ではありません。
画面を開いた瞬間、正直ちょっと笑いました。赤い札がずらっと並んでいて、閉店セールの店内みたいになっていた。
14日に縮めて、いま点いているのは2件です。ここは運用してみないと決められない類の数字でした。
基準日も直しました。実行時の「今日」で数えると、日をまたいだ瞬間にサーバー側とブラウザ側で結果がズレる。基準はデータ内の最新掲載日に。
これに気づいたのは夜中でした。直しては眺め、直しては眺めしているうちに日付が変わって、さっきまで正しかった表示が急に崩れた。手が止まって、ああ日をまたいだのか、と。
14日が正解かはまだ分かりません。また31件みたいになったら縮めます。
そもそもNEWは、来た人に「最近も動いている」と伝えるための印です。全部に付いていたら、その意味が消える。何日が正しいかではなく、何件光るかで決めるものでした。
4ついでに見つかった食い違い
同じ画面で、サイドバーが「121 projects」、一覧が「109件」と表示していました。

サイドバーと一覧で件数が食い違っていた画面
管理画面で非表示にした12件が、サイドバーと下部メニューには出続けていた。全ページから非表示のはずの作品にリンクが張られている状態です。
原因は判定が二箇所にあったこと。一覧は管理画面のデータ、ナビは古い配列。
表示可否をビルド時のデータに焼き込む形にして、一覧・ナビ・サイトマップが同じ基準を見るようにしました。いまはどこを見ても109件です。
この手の食い違いは、片方だけ直すと必ず戻ってきます。決める場所が1つになるまでは、直したことにしないほうがいい。
結局この日は、並べ替えという機能を足した時間より、二箇所を一箇所にまとめる地味な時間のほうが長かったです。誰にも気づかれない作業ですけど、ここを飛ばすと三ヶ月後の自分が同じ画面で首をかしげます。
5動いてはいたけれど、使えてはいなかった
「見当たらない」と言われるまで、私はこれを問題だと思っていませんでした。データには入っているし、URLを叩けば出る。動いている、と判断していた。

探して見つからなければ無いのと同じだと気づく場面
でも、探して見つからなかった人にとっては、無いのと同じです。電源は入っているのに画面が映らない端末を「起動はしています」と説明するようなもので、使う人にとっては壊れているのと変わりません。カウンターでそれを言われたら、私は納得しないと思います。
正直に言うと、この基準で自分のサイトを見直すのはまだ少し怖いです。反応の無かった作品を、私は勝手に「当たらなかった」と処理してきました。でも、当たらなかったのか、そもそも見つけてもらえていなかっただけなのか、区別はできていません。並べ替えを1つ付けたくらいでは、たぶんそこは解決していない。
とりあえず今は、新着順・おすすめ順・名前順で並べ替えられます。
制作実績を開いて、探していたものが3スクロール以内に出てこなかったら、それは私の設計ミスです。よかったらどこで迷ったか教えてください。「あの買い物のやつ」くらいの言い方で構いません。聞き返すのはこちらの仕事なので。
選択肢を足したぶん、選ぶ手間も増えているはずです。増えた並べ替えをスマホの片手でどう触らせるかは、まだ手つかず。ここは続きがあります。
言われなければ、私はいまも気づいていません。次にそう言ってくれる人が、いるといいんですけど。
この記事を書いた人
NextCode(沖縄県宜野湾市)は、iOSアプリ・ホームページ/LP・NFCデジタル名刺・AI業務自動化を作っている開発スタジオです。 ここで書いているのは、実際に作って公開したものと、その過程で詰まったことだけです。
お電話でも大丈夫です → 098-959-6119