アーカイブ 2018

62 件の記事

PrometheusとGrafanaでリソース監視環境を整える
インフラストラクチャ 2018-09-15

PrometheusとGrafanaでリソース監視環境を整える

PrometheusとGrafana、node_exporterを使ってリソース監視環境を構築し、インフラのダッシュボードを整える方法を解説します。

#Prometheus#Grafana
Golangのポインタの基本
アプリケーション 2018-09-03

Golangのポインタの基本

Goのポインタの基本についてまとめた記事です。変数とメモリの関係をイメージできる程度の前提知識から出発し、ポインタとは何か、アドレス演算子やデリファレンス、呼び出し元の変数の値を変更する仕組みまでを、具体例を交えてわかりやすく解説します。

#Golang#ポインタ#値渡し#参照
進化的アーキテクチャ 絶え間ない変化を支える
アーキテクチャ 2018-08-23

進化的アーキテクチャ 絶え間ない変化を支える

『進化的アーキテクチャ 絶え間ない変化を支える』の書評。変化に継続的に適応できる進化可能なアーキテクチャをつくるアプローチを学べる一冊。適応度関数によって望ましい特性を守る考え方が中心で、実際にうまく機能する関数を用意するハードルの高さも実感させられる。

#書評
Docker for Macのマウントが遅い問題の対応
インフラストラクチャ 2018-08-19

Docker for Macのマウントが遅い問題の対応

Docker for Macでボリュームマウントが遅く、npmなどの動作が実用的でないほど重くなる問題への対応メモです。macOSのファイルシステムまわりに起因する原因を整理し、マウントオプションの調整などで改善するための方法を紹介します。

#Docker#Tips
CircleCI2.0でPHPUnitのコードカバレッジを出力する
テスト 2018-08-13

CircleCI2.0でPHPUnitのコードカバレッジを出力する

CircleCI 2.0でphpdbgとDockerを使い、PHPUnitのコードカバレッジをHTMLレポートとして出力する方法を解説します。

#Docker#CircleCI#CircleCI2.0#phpunit
複数のテーブルに多対1で紐づく時のテーブル設計のアプローチについて
データベース 2018-08-06

複数のテーブルに多対1で紐づく時のテーブル設計のアプローチについて

複数のテーブルに対して多対1でテーブルが関係付くときの、テーブル設計のパターンについてまとめた記事です。issuesやpullrequestsといった例を題材に、SQLアンチパターンとされるポリモーフィック関連と、それを避ける設計とを、実装面から比較しながら整理します。

#ポリモーフィック#sql
Clean Architecture 達人に学ぶソフトウェアの構造と設計
アーキテクチャ 2018-08-01

Clean Architecture 達人に学ぶソフトウェアの構造と設計

『Clean Architecture 達人に学ぶソフトウェアの構造と設計』の書評。Clean Architectureの明確な定義を与えるのではなく、Cleanと言える設計の特徴や規則を語る一冊。その目的を構築・保守に必要な人材の最小化と捉え、ポリモーフィズムによる依存関係逆転や独立デプロイ・開発可能性を説く。

#Clean Architecture#書評
ER図のリレーションシップの種類について
データベース 2018-07-31

ER図のリレーションシップの種類について

ER図リレーションシップの種類を解説。依存・非依存・多対多関係でテーブル間の親子関係を正確に把握し、効率的なDBスキーマ設計を実現する方法を紹介します。

#ER
Linuxのパーミッションの読み方と指定方法|chmodと数値表記
OS 2018-07-18

Linuxのパーミッションの読み方と指定方法|chmodと数値表記

Linuxのパーミッションについてまとめた記事です。パーミッション表記の読み方として、先頭のファイル種別を表す文字や、オーナー・グループ・その他ごとに3文字単位で並ぶrwx(読み取り・書き込み・実行)権限の見方、数値による指定、chmodコマンドでの設定方法までを実践的に解説します。

#Linux#認可
MySQL JOIN vs UNION:違いと使い分けを実例で解説
データベース 2018-07-18

MySQL JOIN vs UNION:違いと使い分けを実例で解説

MySQL の JOIN と UNION の違いを実例で解説。INNER JOIN・LEFT JOIN・UNION ALL などの使い分けとパフォーマンスへの影響を学べます。

#MySQL#join#union
JavaScriptで始めるアルゴリズム
アルゴリズムとデータ構造 2018-07-13

JavaScriptで始めるアルゴリズム

JavaScriptを使って基本的なアルゴリズムを学ぶ記事です。リストや配列を先頭から順に比較していく線形探索(リニアサーチ)や二分探索といった探索アルゴリズムと、選択ソートやバブルソートといった整列アルゴリズムを、実際に実装しながら仕組みを理解していきます。

#アルゴリズム
絵で見てわかるシステムパフォーマンスの仕組み
パフォーマンス 2018-07-12

絵で見てわかるシステムパフォーマンスの仕組み

『絵で見てわかるシステムパフォーマンスの仕組み』の書評。システムパフォーマンスの基本的な考え方を、図を交えてわかりやすく解説する一冊。ボトルネックの捉え方など、性能を意識した設計やチューニングの土台をつかむのに役立つ。

#書評#システムパフォーマンス#ISUCON
Unixコマンドメモ
OS 2018-07-07

Unixコマンドメモ

普段使いのUnixコマンドについてまとめた活用集です。JSONを加工するjqや、出力を画面とファイルへ同時に流すtee、指定した時刻にジョブをスケジュール実行するatなど、実用的なコマンドの使い方を、具体的な例とともに紹介します。

#unixコマンド#jq#tee
プロセス vs スレッド:開発者が知るべき本質的な違い
OS 2018-06-25

プロセス vs スレッド:開発者が知るべき本質的な違い

プロセスとスレッドの違いについてまとめた記事です。プログラムの実行単位であるプロセスと、その中で動くスレッドについて、専用のメモリ空間を持つかどうか、コンテキストスイッチのコスト、並行処理モデルへの影響といった観点から、開発者が知っておくべき基礎知識をカバーします。

#OS#スレッド#プロセス#データ構造
GraphQLとは
アプリケーション 2018-06-14

GraphQLとは

API向けのクエリ言語であるGraphQLについて解説する記事です。Facebookが開発したGraphQLの、クライアントが必要なデータだけを柔軟に取得できる点や、単一のエンドポイントで完結する点、型システムを備えている点といった利点を、RESTとの違いにも触れながら紹介します。

#API#HTTP#REST#GraphQL
Atom×TidalCycles×SuperColliderでライブコーディングをはじめる
アプリケーション 2018-06-11

Atom×TidalCycles×SuperColliderでライブコーディングをはじめる

AtomエディタとTidalCycles、Haskell、SuperColliderの音響合成エンジンを使って、ライブコーディングで音楽をつくる方法を解説します。

#Atom#Git#Haskell#homebrew#tidalcycles
さくらVPSでDocker環境を構築する
インフラストラクチャ 2018-06-09

さくらVPSでDocker環境を構築する

さくらVPS上にDocker環境構築を解説。yumリポジトリセットアップ、CE版インストール、バージョン指定で本番環境を安定構築する実装手順を紹介します。

#Docker#さくらのVPS
SPAを構築したときにハマったこと
アプリケーション 2018-06-06

SPAを構築したときにハマったこと

SPAで History API を使う際のnginx設定、try_filesでindex.htmlへルーティングしながらjsファイルのパス管理を実装する方法

#Nginx#SPA
DIとサービスロケーター
アプリケーション 2018-06-05

DIとサービスロケーター

DI(依存性注入)の実装パターンを解説。DIとサービスロケーターをコンストラクタインジェクションの例で比較し、疎結合なコードの書き方を紹介します。

#DI#サービスロケーター#デザインパターン
シンボリックリンク vs ハードリンク:Linuxでの本質的な違い
OS 2018-05-24

シンボリックリンク vs ハードリンク:Linuxでの本質的な違い

シンボリックリンクとハードリンクの違いについて、Linuxの仕組みの観点からまとめた記事です。前提となるinodeの考え方から、それぞれのリンクが参照カウントやファイルの削除時にどう振る舞うか、そして用途の使い分けまでを、具体例を交えて学べる内容にしています。

#シンボリックリンク#ハードリンク