記事一覧
技術記事・日々の学びをまとめています。
anyenvでインストールしたrbenvでbundlerをinstallしたときにパスでハマった
anyenvでインストールしたrbenvでbundlerを入れた際の/usr/local/binパス問題を、rbenv exec gem installで解決する方法を解説します。
最新記事
正規表現の基本
正規表現の基本を整理した記事。拡張正規表現(ERE)で扱える記法のうちよく使うものを対象に、文字クラスやアンカー、量指定子、グループ化といったパターンマッチングの構文を、具体例とともにまとめる。
PHPで学ぶデザインパターン - Factory・Factory Method・Abstract Factory
PHPで学ぶデザインパターン - Factory・Factory Method・Abstract Factoryについて、設計原則とトレードオフ、実践的な適用方法を詳しく解説します。
Goならわかるシステムプログラミング
『Goならわかるシステムプログラミング』の書評。Goを通じて、低レイヤーに近いシステムプログラミングを学べる一冊。標準パッケージの内部的な仕様にも触れながら、OSとやり取りする仕組みを手を動かして理解できる。
メモリ管理に関する用語まとめ
書籍『試して理解 Linuxの仕組み』のメモリ管理の章を読む中で、理解の乏しかった用語をいくつかピックアップしてまとめた記事です。OOM Killerや仮想記憶、ページテーブル、ページフォルト、コピーオンライト、スワップといった、Linuxのメモリ管理にまつわる用語を解説します。
2進数、10進数、16進数の変換について
2進数・10進数・16進数といった基数の変換方法を整理した記事。重みや基数という概念から始め、それぞれの進数を相互に変換する計算の手順や、8進数を交えた数値表現の本質を、初級者向けにわかりやすく解説する。
Goのインターフェースを解説:柔軟でテスタブルなコードの書き方
Goのインターフェースについて実践的にまとめた記事です。特定のメソッドの型を列挙する仕組みや暗黙的な実装、インターフェースの合成、依存性の注入への活用、そしてよくある設計上の落とし穴までを、具体例を交えて解説します。
Goのポインタを解説:使うべき場面とよくある落とし穴
Goのポインタについて解説する記事です。値型とポインタ型の使い分けや、ポインタがメモリとパフォーマンスに与える影響、nilポインタやポインタレシーバの扱いなど、実務でつまずきやすいよくある落とし穴を具体例とともに学べる内容にまとめています。
Golangでの変数定義・宣言のパターンまとめ
Goにおける変数の定義・宣言のパターンを、var宣言や短縮形式(:=)といった書き方ごとに整理した記事です。型推論や複数変数の同時宣言、識別子の1文字目の大小による可視性制御のルールまで、実際のコード例を交えて網羅的に解説します。
DockerでElasticsearchとKibanaの環境構築
DockerでElasticsearch・Kibana環境構築を解説。分散型検索エンジン、RESTful API、全文検索・分析機能をdocker-composeで迅速に構築するガイドです。
Google Analyticsのカスタムレポートをつくってみた
Google Analyticsのカスタムレポートを作り、サイトに合った指標を計測してデータに基づきマーケティング戦略を磨く方法を解説します。
Golangの関数についてー関数値/コールバック関数/無名関数
Goの関数について、関数値として扱う場合の関数、関数を引数として渡すコールバック関数、無名関数とクロージャの3つを中心にまとめます。それぞれの定義や仕組みを、具体的なコード例を交えて実践的に解説する記事です。
Jestで始めるJavaScriptのテスト
JestでJavaScriptのテストを始める方法を解説。ESモジュール設定、babelのセットアップ、実践的なテストファイルの書き方を紹介します。
ssh接続セットアップメモ
SSH接続のセットアップ方法についてのメモです。ssh-keygenによる公開鍵認証の設定を軸に、鍵ペアの作成からauthorized_keysの権限管理、sshd_configによるセキュリティの調整までを、リモートサーバーへ安全に接続できるようにする手順として段階的に解説します。
PrometheusとGrafanaでリソース監視環境を整える
PrometheusとGrafana、node_exporterを使ってリソース監視環境を構築し、インフラのダッシュボードを整える方法を解説します。
Golangのポインタの基本
Goのポインタの基本についてまとめた記事です。変数とメモリの関係をイメージできる程度の前提知識から出発し、ポインタとは何か、アドレス演算子やデリファレンス、呼び出し元の変数の値を変更する仕組みまでを、具体例を交えてわかりやすく解説します。
進化的アーキテクチャ 絶え間ない変化を支える
『進化的アーキテクチャ 絶え間ない変化を支える』の書評。変化に継続的に適応できる進化可能なアーキテクチャをつくるアプローチを学べる一冊。適応度関数によって望ましい特性を守る考え方が中心で、実際にうまく機能する関数を用意するハードルの高さも実感させられる。
Docker for Macのマウントが遅い問題の対応
Docker for Macでボリュームマウントが遅く、npmなどの動作が実用的でないほど重くなる問題への対応メモです。macOSのファイルシステムまわりに起因する原因を整理し、マウントオプションの調整などで改善するための方法を紹介します。
CircleCI2.0でPHPUnitのコードカバレッジを出力する
CircleCI 2.0でphpdbgとDockerを使い、PHPUnitのコードカバレッジをHTMLレポートとして出力する方法を解説します。
複数のテーブルに多対1で紐づく時のテーブル設計のアプローチについて
複数のテーブルに対して多対1でテーブルが関係付くときの、テーブル設計のパターンについてまとめた記事です。issuesやpullrequestsといった例を題材に、SQLアンチパターンとされるポリモーフィック関連と、それを避ける設計とを、実装面から比較しながら整理します。