大規模開発への対応
連載の第3回/第4回/第5回で、FileMaker Proによるプログラミングの基礎を機能ごとに紹介してきました。実際のソリューションでは、これら基本的な部分の組み合わせと積み重ねが、無数のアイデアや発想へとつながっていきます。そういったアイデアの数々は、また機会と場所を改めてお話したいと思いますが、今回はこれまでと少し立ち位置を変え、「大規模開発」について触れることにします。
大規模開発の分類
「ソリューション」は、シンプルな「機能」を組み合わせた「システム」の集合体です。その集合体が大きくなれば「大規模開発」になっていくわけですが、まずはその形態を大きく3つに分けてみます。
- 「利用者数が多い」という意味での大規模
- 「データ量が多い」という意味での大規模
- 「連携範囲が広い」という意味での大規模(他システムとの連携も含む)
いわゆる「大規模システム」には、これらの要素をすべて内包していることが多いとは思いますが、これらの視点からFileMakerの開発における留意点についてを話します。
利用者数が多いシステム
FileMakerにおけるデータ操作の簡易さと、それによる危険性
利用者が増加するということは、多くのデータに多くの人が触れるようになるということです。そこで重要になってくるのが「データの安全性」です。安全性の対象には、データの漏えい以外に、改ざんや消去による紛失なども含まれます。
FileMakerを一つのツールとしてとらえたとき、その操作性の良さから、データの集約、整理、内容の正規化、書き出しなどの作業が容易です。転じて便利な反面、構築するシステムの制御がおろそかになると、ふとした操作で先述のようなトラブルが発生しまう危険性をはらんでいます。システムの規模や性質にもより、これらの制御をどこまで行うかを見極めることも重要です。
制御の手法
FileMakerで、さまざまなアクセス規制を行う基本は「アカウントとアクセス権」による管理です。システム起動時に認証するアカウントに対して、テーブル/レイアウト(画面)/フィールド(項目)の表示/編集を制限することが可能です。
また、FileMaker Pro Advancedを利用すると、画面上部に表示されるメニュー構成(ファイル、編集、表示など)をカスタマイズし、それぞれの画面上で不要なメニューを非表示にできます。不用意な操作や不正な操作を防ぐのに有効です(「カスタムメニュー」の作成には、FileMaker Pro Advancedが必要です)。
さらに、「誰が、いつ、どのデータに対して、何をしたか」を管理できればよいですが、FileMakerの標準機能には、いわゆるトランザクション管理がありません(それぞれのレコードに最終更新者や最終更新日時を記録することは可能です)。
これを実装するには、別途その仕組みを組み込む必要があります。場合によって手法は変わりますが、一例を挙げると次のようなものがあります。
- データ編集の際、対象となるレコードを編集するのではなく、複製したレコードに対し行い、元レコードには「無効」フラグを立てる。
- データ削除に関しても、データを実際に削除するわけではなく、「無効」フラグを立て「削除扱い」のデータとする。
このようにすることで、「誰が、いつ、どのデータに対して、何をしたか」が明確になり、紛失したデータをある特定時点まで復旧することも可能になります。
直感的なUIデザイン
もう一点。これは少し視点が異なりますが、利用者の多いシステムで念頭に置くべきことがあります。それは、「感覚的に操作できるユーザーインターフェイスデザイン」です。
利用者が多いと大変なのが、システムの操作方法の落とし込みや、それに対する問い合わせの対応です。これらを事前に踏まえて、ボタンの配置や、必要最小限の情報の配置を考えていくことが重要です。
幸い、FileMakerはそういったレイアウトデザインや配置に関して、開発者に高いスキルを求めてきません。ドラッグ&ドロップによる直感的な操作で行えるため、配置作業に手間がかからず、クリエイティブな思考に注力できます。「センス」の多少はあるかもしれませんが、コツとしては分かりやすい画面構成を心掛けるとよいでしょう。