アーカイブ:2021年 9月
-
よくある「削除フラグ」の問題点 ちなみに、「削除フラグ」だけなく「退会フラグ」、「課金状態」など類似の状況が度々業務システムでは発生しますので読み替えていただければと思います。 「削除されたデータ」と「削除されてないデータ」が同じテーブ…
-
09.26
【データベース】インデックスが効かないケース
検索結果が多い 検索結果がテーブル全体の20%未満(実務では10%未満を目標にすると良いです。)、正直選択率が10%を超えていた場合はインデックススキャンよりもフルスキャンの方が望ましいでしょう。 全体の件数が少ない 数万〜数十マン行…
-
JOINが増えるとパフォーマンスが低下します。 INNER JOINの場合は論理和になるので、A、B、C、Dと4つのテーブルがあった場合は、AとB、AとC、AとD、BとC、BとD、CとDというように重なりを調べていくので指数関数的に増…
-
過去の事実が損なわれる例 例1:料率の変更 消費税率を5%→8%に変更する対応をするために設定マスタの値を変更したとします。 消費税変更前に、購入があった本を返品する処理が動きました。その際に、8%で返品の計算が行われるため売り上…
-
歴史的背景 構造化プログラミング(C言語)の時代の例外処理 サブルーチン内でエラーが発生した場合はエラーコードを返却する形で実装するのが常套手段でした。 1の時はデッドロック、2の時は通信障害、3の時はシステムエラー この方法の…
-
もし適用するならの話になります。(あまり適用されている案件は見たことないですが。) ビューモデル エンティティを表示のために変換したものです。SPAの中心にはこれが属します。 ユースケース ビューモデルを…
-
09.23
【DDD】「ドメインイベント」について
ドメインイベントとは? 対象とするシステムで何かの出来事が起きたときに扱う仕組み。システム間の連携を柔軟にします。 業務的な出来事をドメインイベントとして発生させ、それらを同期的、非同期的に処理することでシステムとしての整合性を維持…
-
API Composition ある一つのサービスが中心となってデータを収集、結合を行う方式です。 デメリット オーバーヘッドが高くなる。 可用性が下がる可能性がある。 CQRS(コマンドクエリ責務分離) データ…
-
09.23
【DDD】「コンテキストマップ」について
コンテキストマップとは? 「境界づけられたコンテキスト」間の関係を俯瞰する地図。他のチーム(連携システム)との関係性を可視化する図。 アーキテクチャというよりはシステム間のコミュニケーションを表す図になります。組織間の問題を見つけ出…
-
NoSQL(Not only SQL)とは? 大量にある多様な非構造化データを高速に処理するための言語です。 「Not only SQL」の略で、SQL以外でもデータを扱えることを強調しています。 近年の動向 データ量が増加して…