2019年4月22日月曜日

状態指向プログラミング


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

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

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

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

0 件のコメント:

コメントを投稿

注目の投稿:

頭の良さと成功の確率

  高須クリニックの高須幹弥氏がYoutubeで大量の動画をアップしているのだが、その動画の中に「頭の良い人の特徴」というものがあった。曰く、頭の良い人は論理的思考能力が高く、長期思考で、忍耐力が強いのだそうだ。また、「足るを知る」傾向が強く、どん欲に幸せや快楽を求めないのだとい...

人気の投稿: