一括置換をすり抜けたURLは、エラーも出さずに待っていました
📌 記事の取り扱いについて(公開当時の内容を含みます — タップで詳細)
本記事は公開当時の体験・気づきをまとめたものです。現在のツール数・プラン数・対象年齢・記事数・仕様とは異なる場合があります。最新の内容は各ツールページをご確認ください。ツールや外部サービスの仕様・料金は変更されることがあるため、利用前には各公式情報も併せてご確認ください。記載に誤りを見つけられた場合はお問い合わせフォームよりご連絡いただけると助かります。
「全部書き換えました」と言えるはずでした
ツールごとに分けていたURLを、ひとつのドメインの下にまとめる工事をしました。当然、サイトの中に書かれているURLも全部書き換えることになります。
書き換えの対象は、とても手で追える量ではありません。機械にまとめて置き換えてもらいました。仕上がりを確認すると、リンクはどれも新しいURLになっています。これで全部だと、そのときの私は思っていました。
思っていたのですが、そうではありませんでした。
置換が拾えないURLが、何種類もありました
あとから見つかったのは、どれも「リンクの形をしていない場所」に潜んだURLや、その断片でした。
ひとつは、スマホのホーム画面にアプリとして登録するための設定ファイルの中に書かれたURL。どこを起点に開くか、どこまでを自分の範囲とみなすか、といった指定です。ここはリンクではなく設定値なので、リンクを探す置換からは見えません。
もうひとつは、あらかじめ手元にためておくファイルの一覧。ページを速く出すために先回りして取っておくファイルの名前が並んでいるだけの場所です。これもリンクではありません。
さらに厄介だったのが、文字をつなげてURLを組み立てている部分でした。URLが丸ごと1本の文字列として書かれていれば置換できるのですが、途中に、その時々で変わる文字を挟んで組み立てていると、置換したい文字列がそもそも存在しません。ここが直っていなかったせいで、データを取りに行く先が見つからなくなっていた箇所がありました。
ほかにも、ブラウザのアドレス欄の表示を書き換える処理や、**ページを配る直前に少し加工する処理の中の「探す文字の指定」**が、同じ理由で取り残されていました。
共通点は「その場ではエラーが出ない」ことでした
並べてみて、共通点がはっきりしました。どれも、置き去りにされた瞬間には何も起きないのです。
ページを開けば普通に表示されます。リンクを押せばちゃんと飛びます。見た目にはどこもおかしくありません。壊れているのに、壊れていることを誰も教えてくれない状態です。
ではいつ表に出るかというと、たとえばアプリとして登録した人が、その状態で開いたときです。あるいは、ページの中の特定の機能を使ったときです。つまりあとから、特定の条件のときだけ壊れます。しかもその頃には工事のことなど忘れているので、原因にたどり着くまでに時間がかかります。
私が今回いちばん肝を冷やしたのは、これらが全部「見つけようとしたから見つかった」ものだった、という点でした。放っておいたら、たぶん数週間後に「なんだかおかしい」という形で気づいたはずです。
「エラーが出ないもの」を名指しで探しにいきました
対処は単純で、置換の仕組みを賢くするのではなく、置換では拾えない場所を先に列挙することにしました。設定ファイル、ためておくファイルの一覧、文字を組み立てている部分、表示を書き換える処理、探す文字の指定。この5種類は、置換とは別に一つずつ目で見ます。
そして、残りのサイトを移すときも、同じ5種類を必ず確認する手順として固定しました。1つ目のサイトで見つかったものは、残りのサイトにも同じようにあることが多かったからです。
学び・機械が「終わりました」と言っても、終わっていません
今回の学びは、機械の作業が成功した、という報告と、目的が達成された、というのは別のことだという当たり前のことでした。
置換そのものは、指定した範囲を処理して正常に終わっています。機械は仕事をしています。ただ、機械が探していたのは「リンクの形をしたURL」であって、「URL」ではありませんでした。指示したのは私です。
大きな工事のあとは、成功の報告を見て安心せず、エラーが出ない種類の壊れ方がどこに潜むかを先に書き出しておく。地味ですが、これが一番効きました。
← 他の制作記を見る | トップ | お問い合わせ