2019-12-01から1ヶ月間の記事一覧
概要 クレジットカード・シリアルナンバーなど、長くなるほど入力ミスはしやすくなります。 そんな時に毎回DBに問い合わせて正しい値かをチェックするのではなくアルゴリズムによって正しいものかどうかチェックする仕組みがcheck digit(チェックディジット…
背景 実行中のファイルに対してcpで上書きする場合だとText file busyで置き換えられず、mvだと何も聞かれず置き換えられる理由を深掘ってみました。 データ構造 mvやcpの動きを確認する前に必要な前提知識を説明します。 プロセスとinodeとの関係 プロセス…
背景 $ コマンド > outfile 2>&1 と $ コマンド 2>&1 > outfile は結果が異なります。 前者は標準出力、標準エラーともにoutfileに出力されるのに対し、後者は標準出力はoutfileに、標準エラーはターミナルに出力されます。 この違いを理解するためにUnixの…
背景 以前Docker multi stage buildなどビルド環境と実行環境が異なる(クロスコンパイル)時に、単純にGOOSやGOARCHをセットするだけではなく $ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \ go build -a -installsuffix cgo -o main main.go のように CGO_ENA…
背景 今やWebだけでなく、iOS、Android、TV、カーナビといった多数のクライアントでAPIを利用する時代です。 各クライアントでBFFを置く設計もありますが、開発コストや運用コストを考えて同一のAPIサーバを用意し利用することも多いと思われます。 加えてサ…