今回のコードの汚さには正直ちょっと自信あるよ。
下手すりゃIOCCCで優勝も狙えるかもしれないよ。
ということで、私がこれまで見てきた中で最も汚いソースコードを紹介します。
それは、とあるWebサイトのTwitterハッシュタグ埋め込みのコード。
よくあるやつですね。
普通であればタイムライン埋め込み使って一瞬で終わるやつです。
ただ、そこはけっこうお堅めのクライアントで、普通に埋め込むだけではできない要件が追加でありました。
すなわち、ハッシュタグを乗っ取る荒らし投稿などを絶対に表示させたくない、というものです。
具体的にはクライアントからNGワードのリストをもらって、それらの単語が含まれる投稿は表示しないようにします。
だいぶ昔の話なので実際はvarとか使ってたと思うんだけど、ざっくり書くとこんなかんじ。
const ngWords = [/* 省略 */];
let tweetList = $.get('TwitterAPI');
tweetList.forEach(tweet=>{
if(tweet.contains(ngWords)){
return;
}
$('#timeline').append(tweet);
});
まあ、そこまではそれなりによくある案件だと思うのですよ。
さて問題はここからだ。
該当の処理が、HTMLのscriptタグ内に埋め込みで書かれていた。
はい、別ファイルにするわけでもなく難読化すらもされずに、NGワードの一覧がHTML内に堂々とテキストのまま突っ込んであったのですよ。
お堅いサイトだってのに、ソースを表示したら上の方に、決してまともなサイトに書かれていてはいけない単語の羅列がですね、「ち××」とか「ま××」とか「う××」とか並んでいるわけですよ。
そりゃもう「弊社なにやってんの…」と天も仰ぐってものですよ。
私がこのことを知ったのは、とっくに納品されてサービスインが終わった後でのことでした。
そもそも私の関係している案件ではなく、たまたま別件のついでに発見しただけなので、事前に気付きようがありませんしね。
だが担当!お前は!何をやってたんだ!!
なおクライアントも気付いてなかったので、とりあえず見なかったことにしました。
今やそのサイトも消滅し、証拠も全て消えたので、まあ時効ということで。