記事一覧
技術記事・日々の学びをまとめています。
PHPカンファレンス北海道2019に参加してきた
PHPカンファレンス北海道2019で聞いた、PHPの基礎、CI/CD、マイクロサービス、テスト、CPUアーキテクチャなどのセッションを紹介します。
最新記事
FuelPHP1.8.0→1.8.2、PHP5.6→PHP7.3へのバージョンアップした
FuelPHP 1.8.0から1.8.2、PHP 5.6から7.3へアプリケーションをバージョンアップした際の作業内容と対応ポイントをまとめます。
DockerのOperation not permittedというエラーに対応する
Docker Composeを使ってGoのテストを実行した際に遭遇した「Operation not permitted」というエラーへの対応メモです。エラーが発生する原因と、privilegedオプションやケーパビリティの付与などによって解決するための方法を紹介します。
Golangでトライ木(Trie)を実装する|前方一致検索
トライ木(プレフィックス木)というデータ構造のアルゴリズムと、そのGoでの実装についてまとめた記事です。O(m)で検索・挿入ができる特徴や、HTTPルーティングなどへの応用、Radix Treeとの使い分けについて、挿入・検索の実装例を交えて解説します。
Dockerizeを使ってDocker Composeのコンテナの起動順を制御する
Dockerizeを使ってDocker Composeのコンテナ起動順を制御する方法。depends_onだけでは不十分な理由、tcp://host:portの待機の仕組み、実践的なdocker-compose例を解説します。
Mackerelで監視対象から外れたホストを再度復帰させる方法
Mackerelの監視対象から誤ってホストを退役させてしまったり、意図せず監視対象から外してしまったりしたときに、そのホストを復帰させる方法をまとめたメモです。mackerel-agentを再起動しても自動では復帰しないため、hostIdを更新して対応する実務的な手順をガイドします。
Goでクリーンアーキテクチャを実装する実践ガイド
Go でクリーンアーキテクチャを実践する方法を解説。レイヤー分離・依存ルール・ディレクトリ構成・実際のトレードオフを具体的なコードで学べます。
MySQLでテストデータを生成するSQL
MySQLだけでテストデータを生成するSQLの書き方についてまとめたメモです。テストデータをスクリプトで生成する方法は柔軟性が高い一方、数万件のレコードでパフォーマンステストをしたいときなどは、SQLだけでも十分な場合があります。その具体的な書き方を紹介します。
PHPカンファレンス福岡2019に参加・登壇してきました
PHPカンファレンス福岡2019に参加・登壇。PHPでのURLルーティング作成の発表や、クリーンアーキテクチャ、コード削除のベストプラクティスを紹介します。
Webフロントエンド ハイパフォーマンス チューニング
『Webフロントエンド ハイパフォーマンス チューニング』の書評。単なるチューニング手法の紹介にとどまらず、ブラウザのレンダリングの仕組みや計測方法までふまえて解説する一冊。フロントエンドの性能改善を、原理から理解して取り組みたいときに読んでおきたい。
エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする
『エンジニアの知的生産術』の書評。効率的に学び、整理し、アウトプットするための方法論を、エンジニアという職種に引きつけて語る一冊。学びのやり方そのものを見直し、改善するためのヒントが得られる。
execコマンドによるリダイレクト
シェルのexecコマンドを引数なしで使うことで実現できる、ファイルディスクリプタの動的なリダイレクトについて解説します。標準入出力の切り替えやログ出力の制御、端末操作の仕組みを、具体的な使い方の例を交えて紹介します。
master直プッシュの際にプロンプトで確認するようにする
gitでmasterブランチへ誤って直接pushしてしまうのを未然に防ぐため、pushの前にプロンプトで確認を挿むセーフティネットの作り方を解説します。GitHub側の設定で禁止する方法もありますが、運用上の都合でそれが難しいケースを想定し、Gitのhooksを使って実現します。
dockerでイメージとコンテナを削除してもボリュームが消えていなかったときのメモ
Dockerボリューム削除問題を解説。イメージ・コンテナ削除でもボリューム残存する理由、docker volume rm、docker-compose down -v オプション活用を紹介します。
PHPで学ぶデザインパターン - Stateパターン
「PHPで学ぶデザインパターン Advent Calendar 2018」の記事の1つで、Stateパターンを取り上げます。状態ごとの処理をそれぞれ別のクラスにカプセル化することで、状態に応じた振る舞いの切り替えを条件分岐に頼らず実現するこのパターンの仕組みと、PHPでの実装方法を解説します。
ゴリラで学ぶソフトウェアの法則10選
パーキンソンの法則、ブルックスの法則、コンウェイの法則など、プロジェクト管理やソフトウェア開発の現場で役立つ法則10選を、ゴリラのイラストとともに楽しく学べる記事です。以前書いたソフトウェア開発の法則の記事をベースに、代表的なものを整理して紹介します。
Realizeを使ってgoでホットリロードを実現するメモ
GoでソースコードのホットリロードをRealizeというツールで実現するためのメモです。go getでの導入から、.realize.yamlによる設定、監視サーバーの起動までの手順を紹介し、コードの変更を検知して自動でビルド・再起動させることで開発効率を高める方法を解説します。
PHPerKaigi2019に参加・登壇してきました
PHPerKaigi 2019に初めて参加し、登壇もしてきた際の記録です。「PHPでURLルーティングをつくる」というテーマで発表したURLルーティング設計の内容や、カンファレンスに参加・登壇して得られた所感、周辺の学びを紹介します。
みんなのコンピュータサイエンス
『みんなのコンピュータサイエンス』の書評。コンピューターサイエンスの全体像を、要点を押さえてコンパクトに掴める一冊。個々のトピックを深掘りするより、CSという分野の見取り図をつかみたいときにちょうど良い。
GoogleChromeでBurp Suiteを使う手順
脆弱性診断などのために、Burp SuiteをGoogle Chromeで使えるようにするための設定について解説する記事です。ProxySwitchSharpのようなプロキシ切り替え拡張の利用や、Burpの通信を復号するためのCA証明書のセットアップといった、一連の手順を紹介します。