ホーム

キャッシュ戦略の基本的なパターンについて

システムアーキテクチャ

Webアプリケーションや分散システムでパフォーマンスを高めるために不可欠なのが「キャッシュ」の基本的な活用パターンについて書く。 キャッシュアサイド(Cache Aside) リードスルー(Read Through) ライトスルー(Write Through) ライトバック(Write Back) ライトアラウンド(Write Around) キャッシュアサイド(Cache Aside) 概要...

キャッシュ システムパフォーマンス

ACIDとBASEについて

システムアーキテクチャ

トランザクションモデルであるACIDとBASEについて述べる。 ##ACIDとは ACIDは、主にリレーショナルデータベース(RDB)で用いられるトランザクションの4つの性質を表す。 特性 意味 概要 Atomicity(原子性) トランザクションはすべて成功するか、すべて失敗する All or Nothing - 中途半端な状態は残らない Consistency(一貫性) データ...

ACID BASE

Webアプリケーションの処理モデルについて

システムアーキテクチャ

この記事では、Webアプリケーションの代表的な処理モデルについて書く。 イベントループ スレッド プロセス 各処理モデルの概要 イベントループモデル(非同期・シングルスレッド) 特徴:1つのスレッドで、イベント(非同期IOなど)を順に処理 代表例:Node.js、Deno、JavaScript(ブラウザ) [ イベントキュー ] → [ イベントループ ] → [ 実行 ] メリット ...

イベントループ スレッド プロセス

CAP定理とPACELC定理について

システムアーキテクチャ

分散システムにおける重要な理論であるCAP定理とPACELC定理について書く。 CAP定理とは CAP定理とは、分散システムにおいて以下の3つの特性のうち、同時に2つまでしか実現できないという理論である: Consistency(一貫性):全ノードが同じデータを返す Availability(可用性):常に応答が返る Partition Tolerance(分断耐性):ネットワークが分断しても動...

CAP PACELC 分散システム

Rego入門

アプリケーション

目次 第1章: Regoとは何か 第2章: 基本構文とデータ構造 第3章: ルールの種類と書き方 第4章: 制御構造と演算子 第5章: 内包表記とデータ操作 第6章: 組み込み関数 第7章: テストとデバッグ 第1章: Regoとは何か 1.1 Regoの思想・特徴 Regoは宣言型のポリシー記述言語である。「どのように処理するか」ではなく、「何を満たすべきか」を記述する。 命令型 vs 宣言...

Open Policy Agent Rego

選択と集中を促す振り返りフレームワーク「bmf」

ソフトウェア工学

振り返りと言えば KPT(Keep / Problem / Try)が定番であるが、自分なりのオリジナリティ溢れるフレームワークを考えたくなったのでそのアイデアを記す。 bmfフレームワーク bmf = Build / Miss / Focus の頭文字で構成される振り返りのフレームワークである。KPT に似た 3 枠構成を保ちながらも、「成果の可視化」「失敗の顕在化」「次の集中対象の明確化」とい...

振り返り KPT

システムアーキテクチャ構築の実践手法

システムアーキテクチャ

システムアーキテクチャ構築の実践手法を読んだ。 実務でアーキテクチャ設計に取り組む技術者のための実践ガイド。 前著システムアーキテクチャ構築の原理~ITアーキテクトが持つべき3つの思考が「なぜ」に焦点を当てていたのに対し、本書は「どのように」を解説している。 要求定義から論理設計、物理設計までを一貫して扱い、ビューによる文書化、再利用可能なアセットの活用、判断記録の残し方など、現場で役立つ具体的な...

アーキテクティング アーキテクチャ戦略 アーキテクチャ アーキテクト 設計 システム設計

x/termで作るTUIアプリケーション開発

アプリケーション

はじめに 最近、Goのx/termパッケージを使ってターミナルベースのタイピングゲームを作ってみた。この記事では、x/termパッケージの特徴や、TUIアプリケーション開発で気づいたことを共有していく。 x/termを使った実践的なTUIアプリケーションとして、ggcというgitのクライアントツールを開発しているので、よければStarを押してほしい。 x/termパッケージとは x/termは、G...

TUI CLI ゲーム

Markdownで履歴書・職務経歴書を管理するテンプレートを作成した

アプリケーション

はじめに 以前、Githubでレジュメを管理するようにしたという記事を書いた。 レジュメ管理のリポジトリをテンプレートとして用意して、誰でも利用できるようにしてみた。 bmf-san/resume-manager 昨今AIの力でレジュメ管理も大幅に楽になったので、レジュメを管理・定期的に更新していない人にぜひおすすめしたい。 主な特徴 1. Markdownでの一元管理 すべての資料をMarkdo...

レジュメ 転職

アーキテクチャ・アーキテクト・アーキテクティングについて

システムアーキテクチャ

概要 システムアーキテクチャ構築の実践手法 (IT Architects’Archive ソフトウェア開発の実践)の第2章を参考に、アーキテクチャ、アーキテクト、アーキテクティングの定義とそれらの持つ要素を整理する。 アーキテクチャとは「構造」である IEEE 1471-2000において、アーキテクチャは以下のように定義されている。 コンポーネント、それら相互のまたは環境との関係、およびその設計...

システム設計 設計 アーキテクチャ アーキテクト アーキテクティング