アーカイブ 2019
45 件の記事
2019年の振り返りと来年の抱負
2019年の1年を振り返り、来年の抱負を綴った記事。公私ともに良い機会や経験に恵まれた一年をポエムとして総括し、リードエンジニア的な役回りの経験などを振り返りつつ、翻年への抱負をまとめる。
URLルーティング自作入門 エピソード2
「URLルーティング自作入門」シリーズのエピソード2です。エピソード1に続き、URLルーティングをトライ木を使って実装していきます。パスのマッチング処理や、HTTPメソッドに対応した動的なルーティングの構造について、図解を交えながら実装を進めていきます。
URLルーティング自作入門 エピソード1
「URLルーティング自作入門」シリーズのエピソード1です。趣味でURLルーティングを自作してきた経験から、自作の敷居や応用範囲について触れつつ、ルーティングに使う木構造のアルゴリズムや、各種Webフレームワークの参考実装を探索していくモチベーションを紹介します。
2019年の全PHPカンファレンスをコンプリートした
2019年の日本のPHPカンファレンス(仙台・Laravel JP・PHPerKaigi・福岡・北海道・沖縄)を全制覇した記録を紹介します。
Design It
『Design It』の書評。ソフトウェアアーキテクトが果たすべき役割や責任を学べる一冊。アーキテクトをビジネス・技術・ユーザーの3要素の中心に立つ存在として捉え、エンジニアリング視点からの問題定義など具体的な責務を整理する。
アルゴリズムとデータ構造 - キュー
アルゴリズムとデータ構造を学ぶシリーズの記事。FIFOのキューというデータ構造を取り上げ、enqueue・dequeueの操作やスタックとの計算量の比較を、Goでの実装例とともに解説する。
アルゴリズムとデータ構造 - スタック
アルゴリズムとデータ構造を学ぶシリーズの記事。LIFOのスタックというデータ構造を取り上げ、push・pop・peekの操作と計算量を、Goのスライスを使った実装例とともに解説する。
GolangのHTTPサーバーのコードリーディング (Go6 Advent Calendar 2019)
Qiita Go6 Advent Calendar 2019向けにGolangのHTTPサーバー内部実装をコードリーディング。net/httpパッケージのListenAndServe、ServeMux、Handlerインターフェースの動作を詳細に解析。
アルゴリズムとデータ構造 - 配列
アルゴリズムとデータ構造を学ぶシリーズの記事。データ構造としての配列を取り上げ、O(1)のランダムアクセスやO(n)の挿入・削除、静的・動的なメモリ確保の違いを、Goでの実装例とともに解説する。
アルゴリズムとデータ構造 - リスト
単方向連結リストの仕組みを解説。O(n)のアクセスとO(1)の挿入・削除、ポインタによるノードの走査、Goでの線形連結リスト実装を紹介します。
PHPカンファレンス沖縄2019に参加してきた
PHPカンファレンス沖縄2019で聞いた、PHPのメタプログラミング、OOP、クリーンアーキテクチャ、DDD、Webセキュリティ、ミューテーションテストなどのセッションを紹介します。
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ルーティング作成の発表や、クリーンアーキテクチャ、コード削除のベストプラクティスを紹介します。