ハワイ州オアフ島北部の世界屈指のレフトバレルなサーフポイント。
「バンザイパイプライン」が正式名称、メインシーズンの冬季は世界中から有名なサーファーが集結する。
名前空間を整備する まず、モノシリックアプリケーションの分解では、その足掛かりとして目指すべきアーキテクチャはサービスベースアーキテクチャである。 コンポーネントドメインを作成することは、サービスベースアーキテクチャへの移行を手助けする。 コンポーネントドメインとは、名前空間の名前のことで物理的に表示される。 そして、コンポーネントを表すドメインは次の4つから構成されるべきだ。 アプリケーション.ドメイン.サブドメイン.コンポーネント.クラス 名前空間のサンプル例 例えば、次の様な条件があるとする アプリケーション:ss ドメイン:customer サブドメイン:billing コンポーネント…
モノシリックなアプリケーションを分散アーキテクチャに移行する際には次の3つの質問に答えられる様にしておく必要がある。 既存のアプリケーションは分解可能なのか? 必要なのはコードの書き直しなのか?それともリファクタリングなのか? 移行にかかる費用はどれくらいなのか? 例えば、CIOから次の様に質問が飛んで来るかもしれない 複雑なモノシリックアプリケーションをマイクロサービスにする移行作業にて、プロジェクトの初日CIOに次のことを尋ねられた。 「このプロジェクトの移行作業はゴルフボールサイズなのか?バスケットボールサイズなのか?旅客機サイズなのか?」 このときに、私はその質問に答えられなかったが、…
このサイトの目的:ソースコードのサイズと管理方法 モノシリックなアプリケーションを移行する際には、コンポーネントを特定し、サイズを図ることが最初の手順となる コンポーネントのサイズとは、コンポーネントが保有する機能の数のことである。 例えば、チケットの販売システムで購入ボタンに紐ずくイベントハンドラがSQLの発行を行うのは明らかにコンポーネントが担う役割の上を行っている。 その場合はイベントハンドラとDAOを別のコンポーネントとして分離しウェイトを減らさなければならない。 ここでのコンポーネントとは、Pythonであればディレクトリ構成による名前空間、C#でのnamespace呼び出しによる名…
この記事の説明 機能の追加、変更、削除だけでなく、バッチファイルやフレームワークなどのアップグレードの適応も容易である性質を意味する。では保守性の低いシステムとはどのようなシステムだろうか この記事の説明 そもそも保守性とは 保守性の低いシステム一覧(私見あり) 詳細 保守性の高いシステム一覧 詳細 保守レベル0:大規模なモノシリックなシステムは保守性が低い 保守レベル50:サービスベースなシステムは保守性が比較的高い 保守レベル100:マイクロサービスなシステムは保守性が高い まとめ:モジュール化が進めばメンテナンス性、保守性が向上する そもそも保守性とは そもそも保守性とは 機能の追加、変…
ソフトウェアアーキテクチャとは何か? アーキテクトが解決するべき非要件定義とは アーキテクチャ用語集 アーキテクチャスタイル一覧 ソフトウェアアーキテクチャとは何か? ソフトウェアアーキテクチャとはどんな仕事か?については以下の記事から確認。 minegishirei.hatenablog.com ここでは詳細は省くが、簡単に説明すると以下の通り。 アーキテクトの仕事は、そもそもアーキテクチャが頻繁に変わるものなので定義することが難しいが、 それでもあえて仕事を定義するとすれば以下の5つであり。 システムの構造 システムがサポートしなければならないアーキテクチャ特性 アーキテクチャ決定 そして…
この記事の内容:ソフトウェアアーキテクチャの概要と選択 参考:fundamentals of software architecture pdf アーキテクチャを学ぶ意味 アーキテクチャとは アーキテクチャスタイルを覚える意味 見習うべきではないスタイル:巨大な泥団子 補足:なぜアーキテクチャを決めるのか? 基本的なアーキテクトスタイル一覧 アーキテクチャを選択する アーキテクチャの選択:モノシリックアーキテクチャと分散アーキテクチャ モノシリックアーキテクチャと分散アーキテクチャのメリットデメリット アーキテクチャ一覧 小規模かつ低予算:レイヤードアーキテクチャ とにかくシステムの拡張性を高…
ソフトウェアアーキテクトにはキャリアパスがない 1.ソフトウェアアーキテクチャ事態の定義が業界で定まっていないから 2.アーキテクトの役割が拡大し続けているから 3.ソフトウェア開発エコシステムが急速に進化しているためにアーキテクチャが変化し続けているから 4.ソフトウェアアーキテクチャのについての資料の大半が、単なる歴史的経緯となってしまっている ソフトウェアアーキテクチャの仕事を定義してみる 1.ソフトウェアアーキテクトの仕事:システムの構造の決定 2.ソフトウェアアーキテクトの仕事:アーキテクチャ特性 3.ソフトウェアアーキテクトの仕事:アーキテクチャ決定 4.ソフトウェアアーキテクトの…