記事

Indexとはなにか

データベース

インデックスとは テーブルに格納されているレコードを高速に取り出すための仕組み 以下のようなO(n)問題を抱えたクエリがあるとする。 SELECT * FROM users WHERE first_name = ‘Tom’ このクエリのパフォーマンスを上げるためには、以下のようにIndexを貼る。 ALTER TABLE users ADD INDEX (first_name) メリット・デメリッ...

DB インデックス MySQL

O(オーダー)記法とアルゴリズムの計算量の求め方

アルゴリズムとデータ構造

概要アルゴリズムの演算性能をざっくりと計算するO記法と計算量の求め方についての前提知識をまとめる。 計算量(オーダー)とは アルゴリズムの演算性能をデータ量の増加に対し、実行時間がどれくらい増加するかの割合で表した指標。 時間計算量 処理時間 空間計算量 メモリ使用量 Big O/Big θ/Big Ωそれぞれ計算時間を記述するものだが、学術的な意味の違いについてまとめる。 Big...

O記法

Golangの勉強で参考にした本とリンク

アプリケーション

概要golangの勉強をする時に参考にした本とリンクのまとめ。 本 プログラミング言語Go 教典 スターティングGo言語 読みやすい。わかりやすい。プログラミングの素養が高い人には平易すぎる内容かもしれない。 Go言語によるWebアプリケーション開発 Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る リンク golang.jp A Tour of Go astaxi...

Golang

HTTPとSSL/TLS

ネットワーク

HTTPSとは HTTP(Hyper Transfer Protocol) over TLS(Transport Layer Security) TCPハンドシェイクの後にTLSハンドシェイクを行う 完了後、暗号通信のままHTTPリクエストとレスポンスを交換 TLSの機能TLSというプロトコルが提供する機能 機密性 ネットワーク経路上でデータの中身が見れない 完全性 通信データの改ざん...

HTTP HTTPS SSL TLS

ステートレスとステートフル

ネットワーク

前提 セッション HTTPは状態を持たないプロトコル リクエストが同一のクライアントからの通信かどうか判断しない 接続確立から切断までの一連の通信 ステートフル サーバーがクライアントのセッション状態を保持している システムが状態やデータを保持している プロトコルの例 FTP, TCP, BGP, OSPF, EIGRP, SMTP, SSH ステートレス サーバーがクライアントの...

ステートフル ステートレス セッション

テストケースの種類と洗い出し

アプリケーション

概要テストケースの基本的な種類と洗い出し方についてのざっくりまとめ。 テストの目的 バグを発見する 品質保証 品質改善(リファクタリング) テストの種類 ユニットテスト メソッドの仕様を確認するテスト ドメイン層のpublicメソッドが対象とする インテグレーションテスト ユースケース(一連の処理)に基づいたテスト ビジネス的に重要なケースを優先的に対象とする テストケースの洗い出...

テスト

Golangの開発環境を構築

アプリケーション

概要Goの環境を構築します。 Goの環境構築Goをインストールするインストール手段は省略します。私はanyenvというツールでインストールしています。 GOPATHを指定する.bashrcまたは.bash_profileにGOPATHを指定します。 export GOPATH=$HOME/localdev/project/go_dev // 好きなように設定してください PATH=$PATH:$G...

Golang

Dockerとは

インフラストラクチャ

Dockerとは Docker社が開発している、コンテナ型の仮想環境を作成、配布、実行するためのプラットフォーム Linuxのコンテナ技術を使用 コンテナは、ホストマシンのカーネルを利用し、プロセスやユーザーなどを隔離する 軽量・高速 ミドルウェアや各種環境設定をコード化して管理できる(=Infrastructure as Code) ローカル・本番環境問わず 誰でも同じ環境が作れ...

Docker 仮想環境

モダンなJSの話──Proxy

アプリケーション

※この記事はInnovator Japan Engineers’ Blogで掲載されている記事を転載したものです。 ProxyとはProxyはECMAScript 2015から追加されたオブジェクトで、オブジェクトが持つ機能をラップすることにより、オブジェクトの機能をカスタマイズすることができます。 Proxyの関連用語Proxyを知る上で必要な用語です。 handler・・・トラップを入れるため...

ES5 ES6 JavaScript