列指向データベースのメリットとデメリット

列指向データベースとは何か? まず、従来のRDMS(MySQL、Postgress、Oracleなど)は行指向データベースと呼ばれています。 これは行ごとの処理が基本(Insert, Update, Delete)が基本となり、列ごとの集計(MIN、MAX、AVG)は関数として処理された結果とし…

ドキュメントDBの メリット/デメリット 使い方

ドキュメントDBとは何か? ドキュメントDBのメリットは? ドキュメントDBのデメリットは? mongo dbを触ってみる データのinsert select文(findメソッド) update文 ドキュメントDBとは何か? JSONやXMLであらわされるドキュメントをベースにしたデータベースの…

データベース 種類一覧

データベース種類一覧 データベースには以下の種別がある リレーショナルデータベース MySQL PostgreSQL Oracle Microsoft SQL キーバリューデータベース Redis Amazon DynamoDB Riak KV ドキュメンデータベースト MongoDB Couchbase AWS DocumentDB 列思考…

分散システムへの移行方法【リファクタリング入門6】

このページの目的 コンポーネントのドメインが名前空間によって明確に分けられてる場合、そのコンポーネントの分離をサービスレベルにまで分離し、サービスベースアーキテクチャを構成する。 サービスベースアーキテクチャとは? サービスベースアーキテクチ…

リファクタリングを行う方法【リファクタリング入門1】

この記事の説明 システムにおけるスケーラビリティと弾力性の違いを説明するサイトです。また、スケーラビリティ/弾力性を高めるためにはどのようなシステム構成にするべきなのか、どのようなシステムがスケーラビリティが高いと言えるのかについても触れて…

保守性の低いシステムとは【リファクタリング解説2】

この記事の説明 機能の追加、変更、削除だけでなく、バッチファイルやフレームワークなどのアップグレードの適応も容易である性質を意味する。では保守性の低いシステムとはどのようなシステムだろうか この記事の説明 そもそも保守性とは 保守性の低いシス…

アーキテクチャスタイル一覧

この記事の内容:ソフトウェアアーキテクチャの概要と選択 参考:fundamentals of software architecture pdf アーキテクチャを学ぶ意味 アーキテクチャとは アーキテクチャスタイルを覚える意味 見習うべきではないスタイル:巨大な泥団子 補足:なぜアーキ…

適応度関数とは何か?

アーキテクトがアーキテクチャ特性を明らかにして改善するべき優先順位をつけた後、 開発者にその優先順位を守ってもらうためにはどうすれば良いか。 特に、「アーキテクチャのモジュール性」は緊急ではないが重要であると誰もがわかっているはずだ。 しかし…

循環的複雑度と計測方法

アーキテクトはシステムを分析し続けなければならない アーキテクトはプロジェクトのあらゆる局面で、さまざまな観点からシステムの要件を分析し続けなければならい。 パフォーマンス、弾力性、スケーラビリティなどの運用特性から、モジュール性やデプロイ…

非機能要件の洗い出し方手順

この記事の内容 この記事ではユーザーから要件を抜き出すための方法について説明します。 どんな用件があるかは以下の記事から確認しておきましょう。 https://minegishirei.hatenablog.com/entry/2023/02/07/114407 非機能要件一覧をユーザーに出してもらう…

非機能要件一覧

この記事の説明 非機能要件に関する用語と一覧です。 システムが担保するべき能力の全てを記述しました。 非機能要件とは 非機能要件一覧 アーキテクチャ運用特性一覧 可用性 継続性 パフォーマンス 回復性 信頼性/安全性 堅牢性 スケーラビリティ アーキテ…

アーキテクチャ関連用語集

この記事の説明 アーキテクト同士の会話で出現するキーワードとその意味を集めました。 例)結合(動的、静的)、アーキテクチャ量子、通信方式など アーキテクチャ用語集 コンポーネント サービス 結合 静的結合 動的結合 結合を取り巻くトレードオフ 結合…

【ソフトウェアアーキテクト入門】どのように勉強すればいいか?

ソフトウェアアーキテクトはなぜ本を書いたり、講演をするのか? それは単なる目立ちたがり屋という訳ではなく、 単純に新しいアイデアを見つけてそれを広く知ってほしいからである。 例えば、ソフトウェア開発者であれば現在の問題に対してグーグル検索に頼…

SQL 用語集 【SQL入門】

Oracle Bronze SQLで出てくる基礎的な用語を集めました。 SQL用語集 リレーショナルデータベース データベース 行(ROW) 列(COLUMN) フィールド NULL値 主キー 外部キー 射影 選択 結合 SQL文の分類 DML(Data Manipulation Language: データ操作言語) DMLの…

SQLで使用可能な関数一覧【SQL入門】

oracleで使用可能な関数一覧 UPPER関数 LOWER関数 INTCAP関数 CONCAT関数 SUBSTR関数 LENGTH関数 INSTR関数 LPAD,RPAD関数 TRIM関数 REPLSCE関数 ROUND関数 TRUNC関数 MOD関数 現在時刻を返す関数 日付の四則演算 日付-日付 日付 + 日付 MONTHS_BETWEEN関数 …

SQLの文法まとめ

SELECT文 SELECTによる射影 全ての列のとりだし SELECTによる選択 表構造の表示 SELECTでの算術使用 列別名の使用 文字列の結合 代替引用符(q)演算子 重複行の削除 複数列の重複行の削除 WHERE句 文字列や日付の比較 比較演算子 WHERE句での列別名は使用がで…

名前空間の設計方法【リファクタリング入門5】

名前空間を整備する まず、モノシリックアプリケーションの分解では、その足掛かりとして目指すべきアーキテクチャはサービスベースアーキテクチャである。 コンポーネントドメインを作成することは、サービスベースアーキテクチャへの移行を手助けする。 コ…

依存関係を明らかにする【リファクタリング入門4】

モノシリックなアプリケーションを分散アーキテクチャに移行する際には次の3つの質問に答えられる様にしておく必要がある。 既存のアプリケーションは分解可能なのか? 必要なのはコードの書き直しなのか?それともリファクタリングなのか? 移行にかかる費…

コンポーネントのフラット化とは何か?【リファクタリング入門3】

コンポーネントの継承のデメリット 例えば、次の二つの名前空間があるとする survey(クラス含む:アンケートの通知やアンケートの作成を行う) survey.templates(クラス含む:アンケートのテンプレートを含む) この二つは、明らかに親子関係が存在する。 …

ソースコードの共通部品を抜き出す【リファクタリング入門2】

ソースコードの再利用性を高める 前回までの内容 minegishirei.hatenablog.com 前回までの内容で、コンポーネントの機能を増減させて適切なサイズにウェイト調節しました。 今回は、共通のサービスを特定・統合することで、ソースコードの再利用性を高める。…

大規模なリファクタリングを行う2通りの方法【リファクタリング入門】

この記事の内容 アーキテクチャスタイルに幾つかのケースがあるのと同じように、 リファクタリングの手法にも明確な6段階の手順が存在します。 今回の記事の目的はリファクタリングを行う2通りの方法について説明します。 大規模なリファクタリングを行う前…

なぜリファクタリングするべきなのか?

この記事について アーキテクチャのモジュール化・リファクタリングのメリット そもそもシステムは常に変化するものである リファクタリングが必要となる具体例 1.システムのパフォーマンスを改善するためにリファクタリングを行う 2.アジャイルなビジネスに…

マイクロサービスアーキテクチャとは

なぜマイクロサービスアーキテクチャなのか? 再利用か分離か 再利用のメリットとデメリット 分離のメリット 強制的に分離する手段 マイクロサービスアーキテクチャの概要 マイクロサービスアーキテクチャの構成要素 マイクロサービスアーキテクチャのサイド…

スペースベースアーキテクチャ

スペースベースアーキテクチャが解決する課題 スペースベースアーキテクチャの概要 スペースベースアーキテクチャの構成要素 スペースベースアーキテクチャの処理ユニット アプリケーションコード インメモリデータグリッドとレプリケーションエンジン サン…

イベント駆動アーキテクチャ ブローカータイプ /メディエータータイプ

イベント駆動アーキテクチャ - ブローカータイプ - イベント駆動アーキテクチャのブローカータイプの実装方法 ブローカータイプの構造 ブローカータイプのメリット ブローカータイプの開発事例例 イベント駆動アーキテクチャ メディエイターパターンとは イ…

サービスベースアーキテクチャとは

サービスベースアーキテクチャとは サービスベースアーキテクチャは、マイクロサービスアーキテクチャの要素もある、分散型のアーキテクチャだ。 しかし、マイクロサービスやイベント駆動のタイプに見受けられる複雑さやコストがなく、多くのビジネスアプリ…

レイヤードアーキテクチャとは?

レイヤードアーキテクチャは、n層アーキテクチャとも呼ばれており、最も一般的なアーキテクチャのうちの一つだ。このアーキテクチャはシンプルさや親やすさ、コストの低さからほとんどのアプリケーションのスタンダードの形となっている。 minegishirei.hate…

パイプラインアーキテクチャとは

パイプラインアーキテクチャとは 概要 パイプ フィルター パイプラインアーキテクチャの威力 具体例1:関数型 具体例2:Apache kafka パイプラインアーキテクチャのメリット デメリット 備考 パイプラインアーキテクチャとは ソフトウェアの歴史の中で繰り返し…

OSQLEDITの使い方

OSQLEDITとは? OSQLEDITの開き方 ユーザーアカウントを記録する SQLの実行のやり方 (OSQLEDITでの) 別の実行方法 新しいエディタを開く 別のエディタで開いているファイルを開く データベースを探す SQLを作成する。 INSERT DELETEの作成 さらに効率的なDELE…

Kubernetes 入門

Docker入門 関連記事 Kubernetesのクラスタの全体像 Kubernetesのクラスタの構成要素 Kubernetesのコントロールプレーンについて コントロールプレーンの障害対応 コントロールプレーンの障害対応 ノードのコンポーネント ワーカーノードの障害体制 Docker入…