記事

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) モジュール内の要素...

設計 システム設計

OPAを利用したアクセス制御のパターン

アーキテクチャ

概要 Open Policy Agent(OPA)は、ポリシーによるアクセス制御を疎結合な形で実現できる強力な仕組みである。Regoという宣言的言語でルールを記述し、アプリケーション側からはシンプルな形式でポリシー評価を利用できる。 本記事では、OPAを利用したアクセス制御の代表的なパターンを整理し、それぞれの特徴や適した用途、実装負荷などを比較する。 以下に、あなたが挙げた4つのアクセス制御アプ...

Open Policy Agent 権限管理

Go製Git操作ツール「ggc」の紹介

アプリケーション

Go製Git操作ツール「ggc」の紹介 ggcとは何か ggcは、Go言語で実装されたGit操作支援ツールである。「覚えやすく、使いやすく、作業効率の向上を図る」ことを目的としており、日常的なGit操作をより快適にすることを意図している。 既存のGitクライアントツールには、機能が豊富すぎて学習コストが高いもの、あるいはシンプルすぎて実用に耐えないものが存在する。ggcはこのギャップを埋めるべく、...

Golang Git CLI TUI

RubyとRailsのIO・CPU特性について

アプリケーション

概要 Rubyの並行モデルやGVLの役割、Pumaサーバのスレッド・プロセス設計、IO/CPUバウンドの捉え方、計測手法によるボトルネック把握、Rails/Pumaデフォルト設定変更背景などを整理し、適切なチューニング方針を提示する。 Rubyの並行モデルとGlobal VM Lock(GVL) GVLの存在意義 Ruby(MRI/CRuby)にはGlobal VM Lock(GVL)があり、同一...

Ruby Ruby on Rails

Goの並行・並列処理モデルとgoroutineスケジューリング

アプリケーション

概要 Go言語は、軽量なgoroutineとランタイム機構により並行処理(concurrency)を強力にサポートし、Go 1.5以降はデフォルトでGOMAXPROCSが利用可能CPUコア数に設定されるため、適切に設定することでマルチコアを活かした並列実行(parallelism)も可能とする。本記事では、goroutineのスケジューリングやCPUバウンド処理でのマルチコア活用の仕組み、OSプロ...

Golang