アプリケーション
223 件の記事
Goでmysqldumpツールをつくる
SSHとTOML設定ファイルを使い、リモートサーバーのデータベースを自動バックアップするGo製mysqldumpツールをつくる方法を解説します。
PHPで学ぶデザインパターン - Adapterパターン
「PHPで学ぶデザインパターン Advent Calendar 2018」の記事の1つで、Adapterパターンを取り上げます。互換性のないインターフェース同士を適合させ、既存のクラスに手を加えることなく再利用できるようにするこのパターンの仕組みと、PHPでの実装方法を解説します。
PHPで学ぶデザインパターン - Bridgeパターン
「PHPで学ぶデザインパターン Advent Calendar 2018」の記事の1つで、Bridgeパターンを取り上げます。機能の拡張と実装の拡張という2つの階層を分離し、それぞれを独立して拡張できるようにするこのパターンの考え方と、PHPでの実装方法を解説します。
PHPで学ぶデザインパターン - Mediatorパターン
「PHPで学ぶデザインパターン Advent Calendar 2018」の記事の1つで、Mediatorパターンを取り上げます。複雑になりがちなオブジェクト同士のやり取りを仲介役(Mediator)に集約し、オブジェクト間の関係の見通しを良くするこのパターンの仕組みと、PHPでの実装方法を解説します。
PHPで学ぶデザインパターン - Strategy
「PHPで学ぶデザインパターン Advent Calendar 2018」の記事の1つで、Strategyパターンを取り上げます。アルゴリズムをそれぞれクラスとして切り出して動的に切り替えられるようにし、条件分岐を減らして開放閉鎖の原則(OCP)に沿った設計を実現する方法を、PHPでの実装例とともに解説します。
PHPのインターフェースとタイプヒンティング
「PHP Advent Calendar 2018」の記事の1つで、PHPのインターフェースとタイプヒンティングについて解説します。インターフェースはメソッドの実装を保証する「契約」のような役割を持ちます。機能と実装を分離し、コードの再利用性と柔軟性を高める方法を、具体例を交えて紹介します。
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とやり取りする仕組みを手を動かして理解できる。
Goのインターフェースを解説:柔軟でテスタブルなコードの書き方
Goのインターフェースについて実践的にまとめた記事です。特定のメソッドの型を列挙する仕組みや暗黙的な実装、インターフェースの合成、依存性の注入への活用、そしてよくある設計上の落とし穴までを、具体例を交えて解説します。
Goのポインタを解説:使うべき場面とよくある落とし穴
Goのポインタについて解説する記事です。値型とポインタ型の使い分けや、ポインタがメモリとパフォーマンスに与える影響、nilポインタやポインタレシーバの扱いなど、実務でつまずきやすいよくある落とし穴を具体例とともに学べる内容にまとめています。
Golangでの変数定義・宣言のパターンまとめ
Goにおける変数の定義・宣言のパターンを、var宣言や短縮形式(:=)といった書き方ごとに整理した記事です。型推論や複数変数の同時宣言、識別子の1文字目の大小による可視性制御のルールまで、実際のコード例を交えて網羅的に解説します。
Golangの関数についてー関数値/コールバック関数/無名関数
Goの関数について、関数値として扱う場合の関数、関数を引数として渡すコールバック関数、無名関数とクロージャの3つを中心にまとめます。それぞれの定義や仕組みを、具体的なコード例を交えて実践的に解説する記事です。
Golangのポインタの基本
Goのポインタの基本についてまとめた記事です。変数とメモリの関係をイメージできる程度の前提知識から出発し、ポインタとは何か、アドレス演算子やデリファレンス、呼び出し元の変数の値を変更する仕組みまでを、具体例を交えてわかりやすく解説します。
GraphQLとは
API向けのクエリ言語であるGraphQLについて解説する記事です。Facebookが開発したGraphQLの、クライアントが必要なデータだけを柔軟に取得できる点や、単一のエンドポイントで完結する点、型システムを備えている点といった利点を、RESTとの違いにも触れながら紹介します。
Atom×TidalCycles×SuperColliderでライブコーディングをはじめる
AtomエディタとTidalCycles、Haskell、SuperColliderの音響合成エンジンを使って、ライブコーディングで音楽をつくる方法を解説します。
SPAを構築したときにハマったこと
SPAで History API を使う際のnginx設定、try_filesでindex.htmlへルーティングしながらjsファイルのパス管理を実装する方法
DIとサービスロケーター
DI(依存性注入)の実装パターンを解説。DIとサービスロケーターをコンストラクタインジェクションの例で比較し、疎結合なコードの書き方を紹介します。
ソフトウェア開発の法則
ポステルの法則、パーキンソンの法則、パレートの法則など、より良いアーキテクチャや設計判断に役立つソフトウェア開発の法則を紹介する記事です。「送信するものには厳密に、受信するものには寛容に」というポステルの法則をはじめ、それぞれの法則の由来や考え方を整理します。