記事

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において、アーキテクチャは以下のように定義されている。 コンポーネント、それら相互のまたは環境との関係、およびその設計...

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

システムアーキテクチャ構築の原理~ITアーキテクトが持つべき3つの思考

システムアーキテクチャ

システムアーキテクチャ構築の原理~ITアーキテクトが持つべき3つの思考を読んだ。 アーキテクチャ設計に関わるのであれば必読しておきたい本。 アーキテクチャを設計していく上では、単に技術的な解決策だけを考えれば良いわけではない。 この本は、アーキテクチャの設計に関わる一連のプロセスを体系立てで語っている。 アーキテクチャの定義、アーキテクチャの捉え方・構造的な説明の仕方、ステークホルダーとの向き合い...

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

Load Averageとは何か?

インフラストラクチャ

システムの負荷を確認する際に、top や uptime コマンドで表示される「Load Average」という指標を目にすることは多い。 Load Average はプロセスの実行待ち状態を表す値であり、システムの混雑度合いを示す重要な指標である。 Load Averageの正体 Load Average とは、一定期間内に「実行可能状態または実行中のプロセスが何個あったか」の平均値である。Lin...

システムパフォーマンス Load Average

凝集度と結合度

システムアーキテクチャ

概要 ソフトウェア設計において品質を測る基本的な指標として、**凝集度(Cohesion)と結合度(Coupling)**がある。これらは、モジュール化、保守性、再利用性などを考慮する際に重要な概念である。 凝集度(Cohesion)とは 凝集度とは、モジュール内の構成要素(関数や変数など)がどれほど密接に関連しているかを表す指標である。 高凝集(High Cohesion) モジュール内の要素...

設計 システム設計