たなかこういちの開発ノート

システム開発に携わる筆者が、あれこれアウトプットするブログ

エンタープライズ・システム・アーキテクチャー

J. Coplien氏による「Lean Architecture / DCI Evening」に参加してきました

J. Coplien氏、および奥様のGertrud Bjørnvig氏による、こちらの講演に参加してきました。PHPメンターズの久保氏、杉本氏他の皆様は、以前よりCoplien氏と交流(※ぃぇ、こ←れだけじゃないですが。。)があって、機会あって今回の開催に至ったとのことです。 …

スターバックス社エンジニアリング・ディレクター Jamie Allen氏の講演備忘録、およびつらつら思うこと(および現金払いだと"One More Coffee"が150円になる話)

過日、株式会社セプテーニ・オリジナルさま主催の「新宿 Geek Lounge#2 Scala Meetup」に参加いたしました。 元Typesafe/Lightbend社Akkaエンジニア、現スターバックス社でディレクターをされているJamie Allen氏が、日本向けRewards Program(ある種のポイ…

参照系と更新系の非対称性について、追補

以前の記事を補足、あるいは主張を一部修正するものです。 〜・〜 サブジェクト指向とは? ある要求仕様のセットがあったとき、そこに仕様変更のライフサイクルに違いのあるサブセットが認められるならば、それらは、同一のデータ資源(=オブジェクト)に関…

参照系と更新系の非対称性について

要約 (1) 参照系の要件はもっぱらデータ資源利用側から発せられ、更新系の要件はもっぱらデータ資源提供側から発せられる。 (2) よって、もし「フロントエンド・アプリ」と「バックエンド・サービス」とに階層分けするならば、参照系は「フロントエンド・ア…

「リアクティブなんとか」はエンタープライズに何をもたらすか?

そもそも「Reactive」とは何か? まずは参考資料をリストします。 InfoQより、「注目を集めるリアクティブプログラミング」: http://www.infoq.com/jp/news/2013/09/reactive-programming-emerging ※オーバービューとして マルレク、2013年1月21日、開催テ…

キャシュ層を挟む

以前の記事で、フロントエンド-バックエンドのI/Fをどうするか話しましたが、ここにRead Cache層を差し込んでみます。 キャッシュは、最近の大規模サービスではほぼ必須の技術要素といえます。実装としては、memcachedやRedisといったインメモリーKVSがよく…

業務プロセス、業務ロジックの理解と、フロントエンド−バックエンド間I/Fの詳細

下記は一般的なn層アーキテクチャーの図です。各層をここでは「Presentation」、「Business Logic」、「Data Access」と表現しています。 ただしいくつか特徴があります。一点目は、参照系と更新系のBusiness Logicを分別して表現していること。二点目は、「…

Java Day Tokyo 2015に参加してきました

Java Day Tokyo 2015に参加してきました。今年はJava誕生20周年だそうです。下の写真は懇親会で登場したDuke's Birthday Cakeです。 私の職業人人生=業界歴も今年(2015年)で21年目、Javaとほぼ同期だったのです。最初のJavaの仕事は1999年に「Servletは使…

CAP定理とBASEトランザクション(丸山先生の講義より)、そしてMicroservice、最後に「酸と塩基」

もはや3、4年前ですが丸山先生よりCAP定理やBASEトランザクションの講義をうかがう機会がありました。今回改めてまとめてみました。 <参考資料> 丸山不二夫、「Cloudの技術的特徴について」:http://qcontokyo.com/tokyo-2009/pdf/GeneralSession-Day2-Mar…

フロントエンド・アプリはシナリオとナビゲーションを、バックエンド・サービスはドメインとプロセスを

フロントエンド・アプリ−バックエンド・サービスというアーキテクチャーを採用するとして、具体的に両者の役割分担をどのように線引きすればよいでしょうか。 一つの結論として下記のように考えることができるでしょう。 システムの利用シナリオをよく支援し…

スマホ向けシステムと企業内SOAは同じアーキテクチャーに収斂する、という話

スマートフォンやタブレット(※以降、単に「スマホ」)の普及に伴って、ひとつのシステムもしくはアプリケーションを、フロントエンドとバックエンドとに切り分けて捉えるアーキテクチャーが一般的になってきました。スマホでは、モバイル端末側にどこまでの…

エンプラ案件において開発物の半分はJavaScriptである、という話

私は「エンタープライズシステムの受託開発」を主な生業にしていますが、最近は、対コンシューマー、対カスタマー用では無く、社内向けの業務管理システムであっても、「リッチクライアントであること」が要件になることが多くなっています。即ち、JavaScrip…