にしし らぼらとりー

にしし(西村文宏)製スクリプトの公開開発実験場(ラボラトリー)です。各種スクリプトの最新版やβ版の動作確認ができます。バグ報告や、機能面でのご要望などもお気軽にお知らせ下さい。

※当ウェブサイトは、にしし製フリーCGIなどの動作確認サンプルを公開したり、製作進行に関する呟きを掲載している実験場のようなものです。 各種CGIスクリプトの配布パッケージを入手したい場合や、にしし(西村文宏)の個人サイトをお探しの場合は、 本家サイト「にしし ふぁくとりー」へお越し下さい。(╹◡╹)ノ

RSS Feed

開発放言 No.2364

新規投稿 / 管理用

てがろぐCGIを1個設置しておくだけで複数個のマイクロブログを作れる仕様になっていると、便利だとは確かに思う。
例えば tegalog.cgi?file=hogehoge.xml のようなパラメータを加えることで、デフォルトのデータではなく hogehoge.xml のデータを読んで表示するような。
最初から複数のデータファイルを扱える仕様で設計を考えていれば、実現はそんなに難しくはなかったとは思うのだが、最初の開発の段階ではそうは考えなかったので、そう簡単にはいかない状態になっている。

便利だとは思うので(実現できたら個人的にも便利に活用するシーンが多々あると思うので)、時々は「何かうまい方法はないかな?」と考えはするのだが。

ハードルは主に2点。

まず、パラメータを絶対にずっと維持しないといけない点。
file=hogehoge.xml というパラメータでアクセスされた後は、あらゆるリンクに &file=hogehoge.xml を漏れなく加える必要がある。どこか1カ所でも抜けてしまうと、そのリンクを踏んだときにデフォルトデータへのアクセスに戻ってしまう。現状のてがろぐ内には(ページ移動でも管理画面内でも)多数の移動経路があるので、本当に漏れなくパラメータを維持させられるか確認するのが面倒という話。(^_^;) これは、「一時適用スキンの維持」と同じ仕組みが使えるので、そこまで大きな問題ではないかもしれないが。ただ、スキンの場合なら「いつの間にかデフォルトスキンに戻っていた」といってもそんなに問題にならないだろうけども、データファイルの場合はそうとも言い切れない。例えば、本当は hogehoge.xml から10件削除するつもりだったのに、デフォルトの tegalog.xml から10件削除されてしまった、とかちょっとダメージが大きそうだし。なので、実装してみてもその厳重な動作テストが要るよな……というハードル。

もう1つは、キャッシュも設定もすべて同じファイル tegalog.ini に記録されている点。
複数のデータを扱う仕様を考慮していなかったので、てがろぐの動作設定も、カウント値とかのキャッシュデータも、何もかもを全部一緒くたにして1つのINIファイルに保存する仕様になっている。なので、複数のデータファイルを扱えるようにするには、既存のINIファイルから「動作設定」部分と「キャッシュ」部分とに分離してファイルを分けないといけない(気がする)。とはいえ、動作設定もデータファイルごとに分ければ良いのではないか(むしろその方が便利かもしれない)という考えもあるかもしれない。しかし、動作設定には「動作に関する設定」だけでなくて「ユーザ一覧情報」も含まれているので、そこを分離すると困る(ユーザ情報は同じデータをずっと保持しないとログイン状態が維持できないので)。
まあ、それなら「ユーザ情報」と「動作設定・キャッシュ」の2つに分割すれば良いのではないか、という話はあるが。

ただ、複数のINIファイルが存在する可能性を一切考慮せずに作り始めたシステムなので、CGIが実行された時点でとりあえずINIを問答無用で読み込むような処理になっている。なので、そこを変えるなら、かなり最初の段階の動作から変更することになるので、連鎖的に変更しないといけなくなる分量が多くなりそうだ。従来なら最初に1回問答無用で1つのINIファイルを読んでおけば良かっただけのところを、INIファイルAだけを問答無用で読み、パラメータに応じてどのINIファイルBを読むのかを判断して読まないといけないわけだし(※これにはさっきの「本当に読むべきファイルの方を間違えずに読み続けられるのか」という問題もある)。そうすると、ただでさえスパゲッティ気味なソースが、救いようのないほどこんがらがるのではないか、という懸念もある。なので、そのような改変を加えるなら、まずは大規模にリファクタリングをして、ソースを綺麗に整頓してからでないと危険だろう。……というハードル。

あと、細かい話だが、
設定ファイルを2つ分割すると、デフォルト状態(=マイクロブログを1個しか用意しない状態)でも2つの設定ファイルが要ることになるので、構成ファイルの数が1個増える。
できるだけシンプルに見えるようにしたいという思惑もあるので、構成ファイル数を増やしたくないという思いもある。
CGIなのでパーミッションの設定をしてもらわないといけないので、ファイルは少なければ少ないほど望ましい。もちろん、1個増えただけでそんなに手間が増えるわけではないのだが。「1個だけで済むのか」は詳しく考えてみるまで分からない。とにかく、あらゆるデータは全部INIファイルに放り込んでいる仕様なので、もしかしたら3つに分割しないとやっていけないかも知れないし。

……というように、わりと考えないといけないことがかなーり結構たくさんあるので、(実現したら便利になるだろうとは思うのだが)なかなか手が出せない。

で、そこまでするのと比較すると、もう「てがろぐを2つ設置してくれ」となるわけである。(笑)

もしかすると、「設置を1個で済むようにする」よりも、「自動でバージョンアップできるようにする」方が、役に立つのではないか。設置を1個で済ませたいのは、バージョンアップの手間を省きたい、という理由も大きそうだし。

by nishishi. てがろぐ <2251文字> 編集

Powered by てがろぐ Ver 4.0.1.

DASHBOARD

■開発放言について

にしし製CGIの開発進行に関する放言です。思いついたことを適当に放り込む空間なので、どんな呟きも確定的な開発予定というわけでは全くありません。しかしながら、機能面でのご要望や開発予定機能への支持表明はお気軽にどうぞ。ただし、ここには直接は投稿頂けませんので、公式動作テスト用てがろぐ等をご利用下さい。

編集

■全文検索:

■日付検索:

■カレンダー:

2023年3月
1234
567891011
12131415161718
19202122232425
262728293031

■ハッシュタグ:

▼現在の表示条件での投稿総数:

1件

▼最後に投稿または編集した日時:

2023年05月27日(土) 00:56:28