リソースを分散することが冗長化や簡潔化には必要なのだけど、ウェブサイトのような個人レベルのプロジェクトではそれほどプライオリティが高いわけではない。狭く簡単な意味での移植性(フォルダコピーや簡単なコマンドで他の環境に移動できるか)などに焦点を当てた方が良いかなと前から考えている。このウェブサイトではWebフォントを自前でホスティングするようにしたり、静的なHTMLをポータブルに構築できるような仕組みにしたりなどしてある程度完了した。
様々なウェブサービスへの依存を余儀なくされるリソース・レベルでの分散化では、それらウェブサービスの継続性には常に注意を払わなければならない。リソースの管理を外部に委託することで冗長化と管理コストの低減を得られるわけだが、継続して安定して安全に動作する状態であることの確認は必要になる。この確認の手間を考えると、他の人が勝手に確認してくれたり安定志向が強かったりという理由で、どうしても大手のウェブサービスに偏ることになる。小さなウェブサービスが消えやすいことも、それに拍車をかけるだろう。
具体的にはGoogleであったりGitHubであったりだ。両者ともに継続性という点では信頼できる。その一方でドラスティックな変更が加わることもあり、安定して参照・実行可能かというとその点では疑問は残る。また常に大手志向の視点だと新しいものの採用に二の足を踏みやすくもなる。
しかし、ウェブサービスはリソースの冗長化や簡潔化だけをもたらすものではないので、それらをまったく利用しないということも考えられない。それらを利用しつつも、ウェブサイトや利用しているウェブサービスの間で依存しあわない(連携しないではなく)というのがバランスが良い。それぞれの中で一応完結する形で構築し、必要な時にはハイパーリンク(自動的に処理されないリンク)で参照する、構築したままを何かしらのツールで処理しハイパーリンクで逆参照させるという形になるだろう。どこかが死んでもハイパーリンクが途切れるだけであまり影響はない。
多様な環境の中で完結するようにできるツールとしてGitやNPM、Bower、そしてGruntやgulpなどがあると捉え、その上でそれらを利用してウェブサイト(ウェブアプリ)を作ると移植性の高いプロジェクトになるだろう。これらは単に利便性だけのためにあるわけではなく、プロジェクトをより安定した形でスナップショットとして保存できるものだ。
外部リソースはAnalyticsとAdSenseだけになった。この両者の削除は難しそうなので諦める方向で考えている。これらのみを許可する形で、これくらいの小さな規模のウェブサイトへのContent-Security-Policy
の導入を試してみたい。