2016年12月21日水曜日

機能の分類について考える ~Blogger テンプレートを作るよ! (35)~

こんにちはー!

前回、テンプレートの構造と機能をなるべく分けて考えるということに決まりましたので、少し javascript の使い方を変更しておこうと思います。

(前回:『使いやすさを考え、思ったこと ~Blogger テンプレートを作るよ! (34)~』)


javascript の置き方を考える

madoug オブジェクトの登場

ひとまず、 <head> 要素内に記述している自作の関数などを madoug という名前のオブジェクトに入れることにしました。

これは主に Blogger 側で定義された javascript と私が作成した javascript を区別するためです。

機能をレベルで分類する


そして、処理を以下のレベルに分けて分類することにしました。
  • レベル1・・・内部で使用する機能
  • レベル2・・・最低限の機能
  • レベル3・・・サポート機能
  • レベル4・・・オプション機能

レベル1 内部で使用する機能

レベル1はレベル2以降の処理を小分けにした関数などです。

レベル2 最低限の機能

レベル2は標準テンプレートに含める機能です。考えた機能のうち、カスタマイズを得意とする人にも邪魔にならない程度の機能だけを厳選してレベル1とします。

レベル3 サポート機能

レベル3はフルサポートテンプレートに含める機能です。自力でカスタマイズしない人向けに javascript の力で最適化する機能はこれに分類されます。

レベル4 オプション機能

レベル4は使用する状況が限られた特殊な機能です。通常のテンプレートに含めることはありませんが、特殊な用途のテンプレートでは標準搭載する可能性があります。

いったん振り返ってみる

読み返してみると……なんだか仰々しくなってきましたね!

言葉だけ聞くとまるで大規模な開発でもするのかと思ってしまいますが、それほどすごいシステムを作ろうとは考えていません。

具体的に、機能を分類する例をあげてみましょう。

具体的な分類例

例1 ガジェットの機能追加

たとえば、フィードガジェットに一覧ページへのリンクを追加する機能なんかは、カスタマイズが得意な人ならフィードガジェットとリンクリストガジェット、css の追加をすれば HTML の編集をしなくても実現可能です。

javascript で動的に再現するより自力で静的にカスタマイズしたほうがパフォーマンスの面で優れていますので、この機能は「最低限」には該当しません。ということで「レベル3 サポート機能」に分類します。

例2 代替手段のない基本的な機能

今は実装していませんが、インデックスページのページ番号ジャンプなんかは普通にできても良さそうなのに Blogger には無い機能です。代替手段がありませんし、あった方がいい機能だと思うので「レベル2 最低限の機能」に分類します。

ただし、それにアニメーションを追加するなどの変更も加えるなら、アニメーションの機能だけを「レベル3 サポート機能」か「レベル4 オプション機能」に分類します。

例3 特殊なテンプレートの機能

たとえば猫をテーマにしたテンプレートで、背景画像で猫が歩いていたりなどの特殊な機能を実装したとしたら、犬などのほかのテーマで猫が出てきては困るので「レベル4 オプション機能」に分類します。

ソースコードは公開するつもりですので、ほかのテンプレートで猫を歩かせたければ自力でソースコードを組み込んでもらうことになります。

おわりに

以上!今回はこういうことを考えたよ、というだけで終わりましたね。次回はこれに沿って今まで書いた javascript を調整していこうと思います。

0 件のコメント :

コメントを投稿