2019年4月22日月曜日

状態指向プログラミング


今のシステムは相当に複雑である。しかしその中身は、DBやミドルの仕様に引っ張られているとか、可用性や負荷対策とか、セキュリティとか、本来やりたいこととは違うところでの苦労だ。現在、巨大なシステムが全てSIerに任されている原因の一端はここにあり、システムのモジュール化の仕方がアーキテクチャ寄りになり過ぎているのが原因だと思う。

システムは、もっと「状態指向」に書くべきである。つまり、あるべき状態をまず記述し、そこからはみ出た時にはどう直すか、そのためにはどんな動きをするか、更にはそのスピードや故障対応等のいわゆる非機能要件、最後にインプリメンテーション。こういう階層で書くべきなのだ。また、この階層は、できるだけ分離して書くべきだ。

この背後には、高度な負荷分散・可用性維持・セキュリティ・状態監視システムを含んだ並列実行環境が必要だが、逆に言えばこれはシステムによって異なることはなく、SIはその規模のみに依存し、知識は共通である。並列実行環境のSIer・メンテナーは上位システムには感知しないし、もし不具合が起きてもシステムに依存せず代替機種を用意して移植できる。

この環境に一番近いのが、AWS Lambdaなどのようなサーバーレスコンピューティングだ。しかしまだ足りないところがあって、Lambdaは関数ベースであり状態指向ではないこと、非機能要件の記述ができないところなどがある。ここら辺は計算機言語学に属するのだろうが、そういう体系をAWSが作れるのかは注目するところだ。

0 件のコメント:

コメントを投稿

注目の投稿:

ダイナミック租税とその指標

今の法律では、税率は一定の計算式で表されるが、そのパラメータは固定である。需要と供給のバランスによって商品の価格を変えるダイナミックプライシングというのがあるが、あれを租税にも適用してはどうかと考えてみた。 納税者の声をベースにして様々な租税や補助金を自動調節して、どこか一箇所...

人気の投稿: