こんばんは。きんくまです。
いろいろとお仕事をやっていたのですが、最近はCMSソフトのWebRelease(以下WR)というやつをやっています。
このWRなんですが、正直な感想をいうと、制作者側には厳しく、運営者側には優しくのような感じです。
CMSといえばMovableTypeやWordPressが思い浮かびます。このブログは当初MTで作ろうと思っていたんですが、少し触ってみて拡張タグが入れ子に入り込んでてわかりづらそうだったので、WPにしました。
それでこの代表的な2つのCMSソフトをもう少し使い込んでいれば比較ができるのですが、私がなんせWPでこのブログを作っただけのスキルなんで、WRについて正確な比較ができるかどうかわかりませんが書きます。
WRの仕組み
テンプレートを作成する
↓
テンプレートから実際のページを作成する
↓
WRからFTPして本番アップ
これらの作業を全てログインしてサーバー上で行います。専用のソフトは一切なく、すべてブラウザにて行います。
テンプレートは、テキストファイルであればどんなものでも吐き出せます。xmlでもcsvでもhtmlでも。ただし、それは何かひな形があるわけではなく、自分で全て1からプログラムします。htmlなら通常のhtmlに動的な部分を埋め込んで作成します。csvなら自分で「,」をはさんで作成します。それで、テンプレートは何枚でも作れるので、どんなページだろうと何種類も作れます。
プログラムは既存のphpやperlなどは一切関係なく、WRで定義したプログラム用の拡張タグを使います。
例えばこんな感じ。
<wr-for list="要素名" variable="item"> <p>こんな感じで展開します%item.day%</p> </wr-for>
ここで「要素」というものが出てきました。要素というのは、テンプレートを作る際に登録します。要素はいろいろな種類があるのですが、主に実際のhtmlページを作成する際のユーザーフォームを定義すると考えてよいと思います。
例えば「1行テキスト」「複数テキスト」「ポップアップボタン(プルダウンメニュー)」などがあります。
こんな感じにユーザーに入力させたいものをテンプレート側で要素として登録して、それをテンプレートで「展開」するというのが制作者側の作業となります。展開というのはWRの用語で上記のプログラム部分のことを指します。
ここで不満点を書かせてもらうと、以下のようになります。
●デバッグ環境がブラウザの入力欄のみなので、細かいデバッグがしづらい
●エラーが出た場合、ログやエラー箇所が一切示されず、まっ白い画面が表示されるだけで、どこが悪いのか一切わからない
●for文、if文、変数の宣言が拡張タグ(wr-for, wr-if, wr-variable)で行われるので、非常にプログラムが読みづらい
なので、まとめると「プログラムをするのに非常に厄介」です。1つずつ説明すると
●デバッグ環境がブラウザの入力欄のみなので、細かいデバッグがしづらい
ブラウザの入力欄で入力して、「保存」ボタンをおしてデータを保存します。そのとき、ブラウザがページを読み込み直すので、今まで入力していたカーソル部分がリセットされてしまい、そのカーソルがどこにあったのかを探るところからはじめないといけません。htmlページはある程度の長さになるので厳しいです。さらに、コードの色分けなどないので、どこがhtml部分でどこがプログラム部分かも一瞬ではわかりづらいです。
なので、実際に作成する場合は、似たようなテンプレートを一枚作って、プログラム部分だけ完成させて、それからもとのテンプレートに移植するという作業をしています。
●エラーが出た場合、ログやエラー箇所が一切示されず、まっ白い画面が表示されるだけで、どこが悪いのか一切わからない
プログラムは、テンプレートを作成して、そこから作った実際のページをリロードして作っていきます。
プログラムをミスした場合、実際のページが突然真っ白になり、コードのチェックや、どこでエラーが起きているのかが全くわからないままNotFoundのように表示されます。これはこれで、いさぎいいんですが、生産性が非常に悪いです。Firebugが出る前のJavaScriptのデバッグに近いかもしれません。でもJSだってなんらかのログは出たような気がする。それにJSは保存→リロード確認がすぐできるし。
●for文、if文、変数の宣言が拡張タグ(wr-for, wr-if, wr-variable)で行われるので、非常にプログラムが読みづらい
そもそもエディタがブラウザのテキスト入力欄なので、タブなんてものはききません。なので、もしタブをしたいのであれば、テキストエディタなりでプログラムしてから、テキスト入力欄にコピペということになります。ですが、その作業をすると非常に時間がかかってしまいます。そのため、タブは実質使えません。
その状態で、拡張タグを使ってプログラムするので、またまたソースが非常に読みづらいです。
<wr-for list="要素名" variable="item"> <ul> <wr-if condition="要素2=="hoge""> <ii class="a">要素2.中身</li> </wr-if> <wr-if condition="要素2=="fuga""> <ii class="b">要素2.中身3</li> </wr-if> </ul> </wr-for>
という感じでとにかく制作者側には、全く優しくないです。ただし、拡張タグは5つだけで、あとは30個ぐらいの関数がついてくるので、文法自体はそんなに覚えることはない気はします。MTやWPなどのようにタグ辞典みたいのは必要なく、オンラインヘルプだけで理解できます。
運営者側は、カスタマイズされたユーザーフォームに入力していくだけで、すぐにページが更新できるので、そこは楽だと思います。MTにはカスタムできるユーザーフォームがあるみたいなんですが、WRと比べてどうなんでしょうね?いいのか悪いのか、知りたいなあ。
それで、テンプレートをもとにユーザーフォームを入力してページを作成した後に、FTPをして本番アップの段取りになります。
ですが、このFTPが貧弱です。コンテンツを全てアップするか、事前に登録しておいたファイルをアップするかのどちらかしか選べないので、通常のFTPソフトのようにディレクトリのこのファイルをアップする!みたいなことが、その場ではできません。。
コンピュータに全く詳しくない人からすると、ボタンが1つだけといくつかのオプションしかないので、わかりやすいといえばわかりやすいとも思えますが、、。
ちなみに、1ライセンス50万~300万だそうです。
ネットを見たところ、想定しているユーザー・PVはかなり大規模になると効果がはっきりでてくるっぽいような感じみたいです。
希望としては、値段のことはさておき、
●Ajaxに対応するなどしてサーバーのアクセス回数を減らしてもっとスムーズに開発したい(ボタンひとつおすたびに待たされるのは嫌)
●拡張タグのプログラムではなく、既存の言語を真似した記述方法にしてほしい(とにかくソースが読みづらい)
●開発環境をブラウザに限定するなら、色分け、文字サイズ変更、タブへの対応、などは充実させてほしい
開発環境を充実させることは、開発のコストが下がるわけで、クライアントも制作者側もうれしいと思うんだけどなあ。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ