情報システムは今、「所有する」から「利用する」への転換を迎えている。ASP、SaaS、クラウドなどといった、ネットワークの先にシステムもデータも置いてしまおう、という発想によるものである。
ただ、全てをネットワークの先に置くのではなく、セキュリティや使いやすさを考慮すると、ある程度はクライアント側にシステムがあった方がいいのではないか、と個人的に思う。
では、VBAで作るモノはどうか。私自身は基幹システムも構築したことがあるが、基本はちょっと作ってしまえるようなものであろう。過去に作ったモノのコピーや、書籍・インターネットのコードのコピーを駆使し、ちゃっちゃと作ってしまう。
ただ、そうなると「コピー元から引き継いだ、使わないコード」「よく分からないが何となく動くコード」をどんどん取り込むこととなる。また、過去に作成したモノや書籍・インターネットのコードが必ずしも堅牢なコードではなく、バグが残っていることもよくある。こうなってくると一般ユーザーにはメンテナンスはほぼ不能であろう。
そうしないために、BASP21のように、多くの人が利用し、バグもほぼ収束している(こういうのを「枯れている」と表現することがよくある)であろうモジュールを利用する方が安全かつ確実である。そう、システムの目的を充足するためには何でもかんでも「作る」のではなく、共通部品のように利用できる部分は「利用する」ことを選択肢として考慮した方がいいだろう。
単純なコードであっても、解読不能でメンテもできず、どこにバグが潜んでいるか分からないコードではなく「ここから先はブラックボックス」と割り切る。そうすることのメリットは大きい。
○ソースがコンパクトになり、可読性と保守性が高まる。
詳細のごちゃごちゃしたところは外部に切り出すので、大まかな処理の流れも読みやすくなる。
○構築までの時間が短縮できる。
テスト箇所が少なくて済むこともあり、リリースまでの時間が短縮できる。ビジネスには欠かせない要素だろう。
○バグの切り分けが行いやすくなる。
何かあったときに、呼び出し方の問題か、部品の問題かが分かりやすい。ただし、部品は基本的には広く利用されておりバグが収束しているものがいいが、そうでなくても問い合わせ可能であったり、バグの履歴を公開していたりしているものがいいだろう。
・・何か他の観点(重要)を思いついて追記しようとしたのだが、飛んでしまった・・。思い出したら書く。
ただ、全てをネットワークの先に置くのではなく、セキュリティや使いやすさを考慮すると、ある程度はクライアント側にシステムがあった方がいいのではないか、と個人的に思う。
では、VBAで作るモノはどうか。私自身は基幹システムも構築したことがあるが、基本はちょっと作ってしまえるようなものであろう。過去に作ったモノのコピーや、書籍・インターネットのコードのコピーを駆使し、ちゃっちゃと作ってしまう。
ただ、そうなると「コピー元から引き継いだ、使わないコード」「よく分からないが何となく動くコード」をどんどん取り込むこととなる。また、過去に作成したモノや書籍・インターネットのコードが必ずしも堅牢なコードではなく、バグが残っていることもよくある。こうなってくると一般ユーザーにはメンテナンスはほぼ不能であろう。
そうしないために、BASP21のように、多くの人が利用し、バグもほぼ収束している(こういうのを「枯れている」と表現することがよくある)であろうモジュールを利用する方が安全かつ確実である。そう、システムの目的を充足するためには何でもかんでも「作る」のではなく、共通部品のように利用できる部分は「利用する」ことを選択肢として考慮した方がいいだろう。
単純なコードであっても、解読不能でメンテもできず、どこにバグが潜んでいるか分からないコードではなく「ここから先はブラックボックス」と割り切る。そうすることのメリットは大きい。
○ソースがコンパクトになり、可読性と保守性が高まる。
詳細のごちゃごちゃしたところは外部に切り出すので、大まかな処理の流れも読みやすくなる。
○構築までの時間が短縮できる。
テスト箇所が少なくて済むこともあり、リリースまでの時間が短縮できる。ビジネスには欠かせない要素だろう。
○バグの切り分けが行いやすくなる。
何かあったときに、呼び出し方の問題か、部品の問題かが分かりやすい。ただし、部品は基本的には広く利用されておりバグが収束しているものがいいが、そうでなくても問い合わせ可能であったり、バグの履歴を公開していたりしているものがいいだろう。
・・何か他の観点(重要)を思いついて追記しようとしたのだが、飛んでしまった・・。思い出したら書く。