1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ソフトウェアアーキテクチャの基礎本を読んだ感想

Posted at

目的 : 勉強のアウトプット

アーキテクチャとは?

外部的な要求や要件に応じて、最適な IT システムを構成するための設 計思想と構成されたシステムの構造のこと

よーするに基本的な設計や構造のこと

アーキテクチャを理解することに必要なこと
システムの構造
アーキテクチャの特性
アーキテクチャ決定
設計指標
上の4つを理解する必要がある

ここではシステムの構造を説明します。

システムの構造とは
アーキテクチャスタイルの種類のこと!!
代表的なアーキテクチャスタイルは

・マイクロサービス
・レイヤード
・マイクロカーネル
マイクロサービスとは簡単に
ソフトウェア開発アーキテクチャの手法の一つでアプリケーションを
それぞれ小さくサービス独立させて、独自の役割と責任を持ってAPIを通じて
サービスをやり取りする開発手法

メリット
・小さく独立させることによって障害が起こったときに、問題があるところだけ切り外せばよく、保守、開発がしやすい
・それぞれ独立させてAPIでサービスをやり取りするため、技術による制約が受けにくい。だから色んな言語で開発ができる

デメリット
設計が難しくまた、費用がかかってしまう。

マイクロサービスで開発したアプリ


・LINE 、Amazon,メルカリ

レイヤードとは簡単に
よく使われる一般的な設計パターンでシステムを複数のレイヤー(層)に分割して
各レイヤーが特定の機能と責任範囲を持ち、それぞれ独立して変更と拡張が可能で
上位レイヤーは下位レイヤーに依存しているが、逆に下位レイヤーは上位レイヤーに
依存関係はまったくないのが特徴のアーキテクチャ

それぞれのレイヤー層の種類
プレゼン層
UIなどの表示の部分 HTML,CSS ビュー 、ルーティング

アプリケーション層
ビジネスロジックの処理でCRUDやELTなど サービス、リポジトリの呼び出し

ドメイン層
ビジネスルールや仕様の関心ごとを取り扱う層 モデル

データアクセス層
永久化テクノロジーの処理でDB操作をする層   マイグレーションファイル

メリット
・保守性と拡張性が向上する
・コンポーネントや機能の再利用がしやすい
・テストやチーム開発がしやすい

デメリット
・レイヤー間の情報の受け渡しにやデータ変換が必要な為、オーバーヘッドが生じる場合がある
・適切なレイヤー分割が難しい
・過度な抽象化が増える

ちなみにオーバーヘッドとは
処理や操作を実行するために必要なコストやリソースが必要な範囲を超えて
発生する、追加的な負荷や処理のこと

マイクロカーネルとは 簡単に
マイクロカーネルとはカーネル(コンピューターシステムの中核となるソフトウェア)
が最低限の機能しか持たず、他の機能は個別のソフトウェアとして存在する。
例えばファイル管理やデバイス制御などはカーネルの外部で独立したソフトウェアとして実装される。

メリット
・柔軟性と拡張性: カーネルの最小限の機能により、新しい機能やサービスを容易に追加できる

・セキュリティと信頼性: ユーザーレベルのサーバーによる分散処理により、システムのセキュリティと信頼性が向上する

・モジュール性と保守性: カーネルとサーバーの分離により、システムの特定の機能を変更や修正する際に他の部分に影響を与えずに行える

デメリット
・性能の低下: カーネルとサーバーの間のメッセージングやプロセス間通信によりオーバーヘッドが発生し、性能が低下する場合がある

・複雑さ: カーネルとサーバーの分散処理により、システムの複雑さが増します。設計とデバッグが困難になる場合がある

カーネルアーキテクチャはスマートフォンやロボットや自動掃除機などの
システムに採用されていることが多いそうです

以上でアーキテクチャのシステムの構造を終わります!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?