ソースの共通化
〜同じことを2度書かない〜
Cプリプロセッサでソースを共通化したい部分にはどう言うものがあるでしょうか。またソースの共通化を行うにはどうすればいいでしょうか。
なぜカット&ペーストではいけないか
テキストエディタでHTMLを書いているとカット&ペーストの繰り返しであることに気づきます。ここまでならあまり不便に感じないのですが、カット&ペーストで何十ページも書いた後、そのカット&ペーストした部分に変更の必要性が生じたらどうでしょうか。ある程度はツールを使ったとしても所詮手作業で作ったソースは手作業で変更するしかありません。結構しんどいですね。
プログラマにとってはカット&ペーストはデグレを発生させるいやなものです。プログラムであれば普通にマクロ化したり、モジュール化したりと、再利用できる部品にするわけですから、そのままHTMLにも流用すればいいわけです。共通部分をマクロで宣言しておいてまとめて置換したり、共通のソースファイルを取り込めばいいわけです。
共通化したいもの
ではHTMLでは何が共通化したいでしょうか。つまり後から変更する可能性のあるものは何でしょうか、例をあげてみましょう。
テキスト色、背景色(BODY属性)
- 背景画像とか色を変えたいときなど全部のページを変更して回るのは大変です。スタイルシートが使えない環境もまだまだ多いですから、マクロ宣言すると一箇所で集中管理できて便利です。
メールアドレス
- 各ページのヘッダには通常METAタグで自分のメールアドレスを入れますよね。でもある日突然変更される可能性があります。今回私もコンテスト用には会社のアドレス入れといて後で自宅のに入れ替える予定です。
JavaScript
- たとえばアクセス解析用のJavaScriptなどは各ページに共通して置いたりします。もちろん js ファイルとして外部においてもいいですが、古いブラウザには外部ファイルを使えないものもありますし、マクロと組み合わせれば便利なシーンもたくさんあります。
ヘッダ/フッタ
- ある程度連続したページではページのヘッダ/フッタは共通になりがちです。またHTMLとしてみてもヘッダ部分とヘッダ部分は共通することが多く1つのファイルにまとめたくなります。実際殆ど同じであり、その部分を取り込み用ファイルとして、違う部分はソース先頭でマクロを宣言しておき切り替えればかなり楽になるし、ソースもすっきりします。