アーカイブ 2024
121 件の記事
集合について
集合論の基礎についてまとめた記事です。特定の条件を満たす要素の集まりである集合とは何かという定義から、部分集合や和集合・積集合といった基本的な概念、そしてデータ構造やRDBの理論、論理表現への応用まで、ソフトウェアエンジニアの問題解決力を養う観点で解説します。
健康のために行っている習慣について
自分が健康のために続けている習慣について書き留めた記事です。健康を長期的な複利投資と捉え、運動・睡眠・ストレス管理などを習慣化することで得られる、疲労回復や集中力の向上、体調の安定といったリターンを、実体験をもとに半分ポエムのように綴ります。
大規模データ管理 ―エンタープライズアーキテクチャのベストプラクティス
『大規模データ管理 ―エンタープライズアーキテクチャのベストプラクティス』の書評。データ管理を中央集権的に行う限界を指摘し、変化に追従できるスケーラブルなアーキテクチャへ移行する考え方を示す一冊。データウェアハウスのサイロ化を避ける発想など、データ管理をアーキテクチャの観点から捉え直せる。
マイクロサービスアーキテクチャ 第2版
『マイクロサービスアーキテクチャ 第2版』の書評。マイクロサービスに取り組む・検討するなら読んでおきたい一冊。分散システムに求められるアーキテクチャ特性(非機能要件)にもよく触れており、マイクロサービス一辺倒でなくとも学びが多い。概念整理は第1章がよくまとまっている。
GoReleaserを使ってDocker Imageをbuild&pushする
GoReleaserとGitHub Actionsを使い、複数プラットフォーム向けのDockerイメージのbuild&pushを自動化する方法を解説します。
モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド
『モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド』の書評。モノリスからマイクロサービスへの移行アプローチに特化した一冊。最もページを割く章では、移行の最大の砦となるデータベースの分割を扱い、段階的に進化させる実践的な指針を与えてくれる。
Bitemporal Data Modelについて
バイテンポラルデータモデルを解説。トランザクション時間と有効時間の2軸管理、履歴追跡、監査要件対応、PostgreSQL実装のEXCLUDE制約での一貫性保証を紹介します。
セキュアで信頼性のあるシステム構築 ―Google SREが考える安全なシステムの設計、実装、保守
『セキュアで信頼性のあるシステム構築』の書評。セキュリティと信頼性を、単に実装するものではなくデプロイや運用から生まれる「創発特性」として捉える一冊。プロジェクトの初期段階から両者を設計に織り込むことの大切さを、Google SREの知見をもとに説く。
間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価
『間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価』の書評。2010年刊行と古いが、今にも通じるアーキテクチャの話が砕けた表現で書かれた一冊。技術書というよりエッセイに近く、技術的な要素を拾いたいなら第6章以降が読みどころになる。
権限管理の設計|アクセス制御の考え方を整理する
権限管理の設計手法を解説。ACL・RBAC・ABACの違いや、機能スコープ・データスコープ、制御対象と運用上の制約をふまえた設計のトレードオフを整理します。
単体テストのベストプラクティス:開発者のための実践ガイド
『単体テストのベストプラクティス 開発者のための実践ガイド』の書評。質の高いテスト設計に必要な考え方やアプローチをまとめた一冊。良いテストが備えるべきリグレッションへの保護やリファクタリング耐性、保守性を軸に、費用対効果をふまえてテストを設計する視点を、豊富な実例とともに示す。
ソフトウェア設計のトレードオフと誤り ―プログラミングの際により良い選択をするには
『ソフトウェア設計のトレードオフと誤り ―プログラミングの際により良い選択をするには』の書評。設計判断のトレードオフを対照的に考えることの大切さと、具体的な設計のトレードオフ事例を学べる一冊。選ばなかった理由まで含めて考える視点が、より良い選択につながることを教えてくれる。
Rubyを学ぶ
PHPやGoを触ってきた自分が、Rubyを学ぶ際に取り組んだことをまとめた記事です。まずは公式ドキュメントから入り、定番の書籍やオブジェクト指向の設計パターン、実際に手を動かす実践を通じて、Rubyの基礎を身につけていく道のりを紹介します。
Rubyのブロック構文について
理解するRubyブロック構文。do..end形式、{}形式、yield、block_given?、&blockパラメータ、クロージャの特性を習得。
RubyのModuleについて
RubyのModule(モジュール)について解説する記事です。クラスや他のモジュールに共通のメソッドや定数を提供する仕組みとして、名前空間の分割やMixinによる多重継承的な機能の共有、クラスメソッド・インスタンスメソッドの定義方法などを、具体例を交えて紹介します。
RubyのProcとlamdaについて
RubyのProcとlambdaの違いについてまとめた記事です。ブロックをオブジェクト化した手続きオブジェクトであるProcを軸に、引数の厳格さの違いや、returnとnext・breakといったジャンプ文の挙動の差、そして手続きをオブジェクト化してコードを再利用するパターンを解説します。
Rubyの特異クラス・特異メソッドとは|仕組みを解説
実装するRuby特異クラス・メソッド。class << objectパターン、オブジェクト特有のメソッド定義、singleton_methodsの活用法。
Rubyのシンボルについて
Rubyのシンボルについて書いた記事です。任意の文字列と一対一で対応し、内部的には整数として管理されるシンボルについて、文字列との効率性の比較やイミュータブル(不変)である性質、ハッシュのキーとしての利用、enumのような状態管理パターンなど、実践的な活用方法を紹介します。
マスタリングTCP/IP―入門編―(第6版)
『マスタリングTCP/IP 入門編(第6版)』の書評。たとえがわかりやすく、TCP/IPの基本からネットワークの理解を進められる定番の入門書。ネットワークに苦手意識がある人でも読みやすく、教科書として頼りになる一冊。
健康になる技術 大全
『健康になる技術 大全』の書評。エビデンスを強く意識した、健康についての網羅的な一冊。食事を中心に、健康に良い・悪いの二分ではなくリスクの高い・低いで捉える考え方を示す。習慣が健康を左右するという視点から、意思決定や行動のコントロールにも踏み込む。