記事一覧

技術記事・日々の学びをまとめています。

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の考え方から、それぞれのリンクが参照カウントやファイルの削除時にどう振る舞うか、そして用途の使い分けまでを、具体例を交えて学べる内容にしています。

#シンボリックリンク#ハードリンク
tmuxコトハジメ
ツール 2018-05-22

tmuxコトハジメ

端末多重化ソフトウェア(ターミナルマルチプレクサ)であるtmuxの基本について解説する、入門者向けの記事です。tmuxの起動から、セッション・ウィンドウ・ペインの操作、コピーモードといった基本的な機能まで、よく使うキーバインドを交えて紹介します。

#tmux
開発環境を見直してvimライクにした
ツール 2018-05-22

開発環境を見直してvimライクにした

開発の効率化を図るためにVimを取り入れ、開発環境を諸々刷新した取り組みをまとめた記事です。メインエディタでVimのキーバインドを使えるようにするなど、Vim的な操作感を取り入れることで開発効率を高めた工夫について紹介します。

#tmux#vim#Atom#iTerm
UNIXという考え方
アーキテクチャ 2018-05-18

UNIXという考え方

『UNIXという考え方』の書評。UNIXの背後にある思想と哲学を、わずか150ページに凝縮した一冊。「スモール・イズ・ビューティフル」など、コーディングや設計に普遍的に活かせる考え方が詰まっており、設計に立ち向かうときに折に触れて振り返りたくなる。

#UNIX#書評
N+1問題とは?Go/Railsでの検出と解決方法
データベース 2018-05-12

N+1問題とは?Go/Railsでの検出と解決方法

N+1 問題とは何か、なぜ発生するのか、Go や Rails での検出方法と Eager Loading・JOIN を使った解決策を解説します。

#N+1
OSメモ
OS 2018-05-11

OSメモ

理解するOS仕組み。スワップメモリ、ページキャッシュ、slabキャッシュ、dentry/inode構造、ハードリンク、シンボリックリンク知識

#OS
ソフトウェア開発の法則
アプリケーション 2018-05-07

ソフトウェア開発の法則

ポステルの法則、パーキンソンの法則、パレートの法則など、より良いアーキテクチャや設計判断に役立つソフトウェア開発の法則を紹介する記事です。「送信するものには厳密に、受信するものには寛容に」というポステルの法則をはじめ、それぞれの法則の由来や考え方を整理します。

#ソフトウェア開発