勉強日記

チラ裏

2019-01-01から1ヶ月間の記事一覧

本番環境にデプロイ可能なLaravelのDockerイメージを作った話

コンテナ構成 動機 イメージビルド環境 ハマった所~解決の経緯 マルチステージビルド コンテナ構成 nginx php-fpm mysql 認証絡みで面倒くさくなって5.7 動機 laradockはサクっと始められて便利 だが、ホストとのボリューム共有があり、そのままでは本番環…

Nuxt.js ビギナーズガイド ch.2 Nuxt.jsによるシンプルなアプリケーション開発

nuxt-beginners-guide.elevenback.jp 開発するアプリケーションについて 開発するアプリケーションの概要 事前準備 Node.jsとYarnによる必須環境の導入 推奨ツール「direnv」の導入 Vue CLIによるアプリケーションひな形の作成 はじめてのページ作成と「Hell…

OSSDB標準教科書1章 SQLによるデータベースの操作 基礎編

OSSDB標準教科書 oss-db.jp 1章 DB利用の基本パターン psqlツールの利用 環境構築はこれだけでよかった psqlでデータベースに接続する DB一覧表示 DBつくる DBに接続する ヘルプ メタコマンド psqlを終了する 表の確認 表とテーブル、リレーション SQLの実行…

Docker/Kubernetes 実践コンテナ開発入門 Ch.2 Dockerコンテナのデプロイ

gihyo.jp コンテナでアプリケーションを実行する DockerイメージとDockerコンテナの基本 簡単なアプリケーションとDockerイメージをつくる DSL: Domain Specific Language Dockerイメージをビルドする コラム ENTRYPOINTでコマンドの実行の仕方を工夫する Do…

Docker/Kubernetes 実践コンテナ開発入門 Ch.1 Dockerの基礎

gihyo.jp Dockerとは Dockerの歴史 Dockerの基礎概念 仮想化技術の分類 Dockerのコンテナ型仮想化技術の推移 アプリケーションにフォーカスしたDocker Dockerの考えに触れる より実践的なDockerの実行 コラム - Mobyプロジェクト コラム - LinuxKit Dockerを…

Nuxt.js ビギナーズガイド ch.1 Nuxt.jsの概要

nuxt-beginners-guide.elevenback.jp 「モダンフロントエンド」のイマ いわゆる「モダンフロントエンド」について 安定したフロントエンドJavaScriptに求められるもの Nuxt.jsとこれからのWebアプリケーション開発 Nuxt.jsとは Next.jsをリスペクトして生ま…

JavaScriptでApplicative Style

book.impress.co.jp この本でApplicativeが全く出てこなかったので 参考: Functors, Applicatives, And Monads In Pictures // a -> a const identity = x => x; // a -> b -> a const const_ = c => _ => c; // 関数合成 const compose = function (/* func…

JavaScript関数型プログラミング Ch.8 非同期イベント/データのための関数型手法

book.impress.co.jp まえがき 非同期コードの課題 関数間の時間的な依存関係 コールバックピラミッドに陥る 継続渡しスタイルを使う 【補】継続渡しスタイル コールバック地獄のリファクタ Promiseによる第一級非同期処理 【補】ECMAScriptのPromiseは厳密に…

JavaScript関数型プログラミング Ch.7 関数型コードの最適化

book.impress.co.jp まえがき 関数実行の中身を調べる 再帰コードの問題点 遅延評価を使用して実行を遅らせる alternation関数コンビネータ(OR)により不要な計算を避ける ショートカットフュージョンを利用する "必要に応じて呼び出す"戦略を実現する メモ化…

JavaScript関数型プログラミング Ch.6 関数型コードのテスト

book.impress.co.jp Part3 関数型のスキルを磨く まえがき ユニットテストへの関数型プログラミングの影響 命令型プログラムのテストにおける課題 単純なタスクを特定して分解することの困難さ 共有リソースへの依存は不一致な結果をもたらす あらかじめ定義…

JavaScript関数型プログラミング Ch.5 複雑性を抑えるデザインパターン

book.impress.co.jp まえがき 例外の問題 適切な使いどころ nullチェックの問題 より優れたソリューション:ファンクター 安全ではない値のラッピング ファンクターの詳細 処理の流れ 実は今まで使ってました Functor則 ファンクターの限界 モナドを使った関…

JavaScript関数型プログラミング Ch.4 モジュール化によるコードの再利用

book.impress.co.jp まえがき メソッドチェーンと関数パイプライン メソッドをまとめてチェーンにする 関数をパイプライン状に配置する 互換性のある関数のための要件 型互換の関数 関数とアリティ:タプルの場合 カリー化された関数評価 関数インタフェース…

PoEAA Part 1 Chapter 1 Layering

まえがき The Evolution of Layers in Enterprise Applications The Three Principal Layers Choosing Where To Run Your Layers 英語 まえがき レイヤ分けは普遍的 マシンのアーキテクチャ プログラミング言語 on OS on CPU命令セット on 論理ゲート ネット…

PoEAA Introduction

Architecture Enterprise Applications Kinds of Enterprise Application Thinking About Performance Patterns The Structure of the Patterns Limitations of These Patterns 英語 Architecture 多くの人が「Architecture」という言葉を定義する 共通点 シ…

PoEAA Preface

まえがきofまえがき Who This Book Is For 英語 まえがきofまえがき エンタープライズアプリケーションは本質的に複雑 例: バックエンド賃貸システム 賃貸同意書がさまざま異なる 契約を勝ち取るためにあれこれ変えるから この本は、複雑性を御するための設…

OSSDB標準教科書11章 環境構築

OSSDB標準教科書 oss-db.jp 環境 11章 導入 インストール データ永続化用ボリューム作る postgresコンテナ起動・入る 初期設定(1度だけやるやつ) サーバ起動 11.5 動作の確認 11.7 データベースの作成 11.7.5 データがちゃんとホスト側に永続化されているこ…

LaravelでIP制限/IPをモックして自動テスト

環境 ミドルウェアでIP制限 IPをモックしてテスト(本題) 環境 laravel 5.5 on laradock ミドルウェアでIP制限 ミドルウェアつくる php artisan make:middleware IpRestriction app/Http/Middleware/IpRestriction.php をよしなに書く

DDD Part2 Ch.4 ISOLATING THE DOMAIN

www.informit.com Isolating the Domain LAYERED STRUCTURE Partitioning Online Banking Functionality into Layers Relating Layers Architectural Frameworks The Domain Layer Is Where The Model Lives THE SMART UI "ANTI-PATTERN" Other Kinds of Iso…

Emacs company-modeでLaravelのPHPコードの補完・定義ジャンプ

環境 動機 ac-php 依存 導入 ac-php, company-php PHP本体 なんで今更 入れる init.elいじる 下準備 つかう 補完 定義ジャンプ 限界 環境 windows 10 GNU Emacs 25.2.1 (i686-w64-mingw32) company-mode導入済 動機 Laravel 5.5 LTE 上で開発 PHPのフレーム…

PHPフレームワーク Laravel Webアプリケーション開発 第11章 輪読会資料

www.socym.co.jp この本の輪読会 冗談みたいに長いんですけど テスト駆動開発(TDD: Test-Driven Development)とは コツはできるだけ小さく 本章のねらい サンプルアプリケーション仕様 データベース仕様 APIエンドポイント APIエンドポイントの作成 アプリケ…

DDD Part2 まえがき

The Building Blocks of a Model-Driven Design 実装を簡潔かつ明瞭に、モデルと足並みそろったものに保つ 個々の要素を注意して設計することが必要 モデルと実装とが互いに強化しあうようになる モデリングの基盤 本書のよりどころ 責務駆動設計 Wirfs-Broc…

DDD Part1 Ch.3 Binding Model And Implementation

www.informit.com Binding Model and Implementation モデルがあったが実装の役に立たなかったケース モデル不在のケース 奇妙にも、できたプロダクトはそっくりだった MODEL-DRIVEN DESIGN Modeling Paradigms and Tool Support From Procedural to Model-D…

DDD Part1 Ch.2 Communication and the Use of Language

www.informit.com Ubiquitous Language Working Out a Cargo Rounter Modeling Out Loud One Team, One Language Documents and Diagrams Written Design Documents Documents Should Complement Code And Speech Documents Should Work For a Living And St…

Laravel DB自動テスト おぼえがき

テスト時にDBを差し替える設定 テスト用DB作る~MySQLの場合 テスト書く 仕様 つまづいたところ テスト時にDBを差し替える設定 <proj_root>/phpunit.xmlに下記を追記 <env name="SESSION_DRIVER" value="array"/> <env name="QUEUE_DRIVER" value="sync"/> + <env name="DB_DATABASE" value="app_test"/> テスト用DB作る~MySQLの場合 rootでmysqlに入る CREATE DATABASE app_test; USE app_test; アプ…</env></env></env></proj_root>

libusbmuxdのビルドが通らなくて困った話

環境 TL;DR 困ったこと とりあえずの回避方法 顛末 つまづき いろいろ調べたこと 環境 iPhone7 iOS11 Safari MacBook PRO Mojave Xcode10 TL;DR 困ったこと libusbmuxdのビルドが通らない <cstddef>ヘッダまわりでエラー とりあえずの回避方法 /usr/local/inclues/Str</cstddef>…

Git on shell on Emacsで、コミットメッセージを同じEmacs上で編集する

TL;DR 直面した問題 解決方法 Emacsをサーバーモードで起動する設定 Gitのエディタの設定 結果 TL;DR GIT_EDITOR=emacsclient M-: (server-start) RET 直面した問題 shellの上でEmacsを使う者と、Emacsの上でshellを使う者がいる 僕は後者です。 全ての作業…

JavaScript関数型プログラミング Ch.3 データ構造の数を減らし、操作の数を増やす

アプリケーションの制御フローを理解する メソッドチェーン 関数チェーン コードを把握する 宣言型および遅延関数チェーン SQLライクなデータ:関数としてのデータ 再帰的に考えることを学ぶ アプリケーションの制御フローを理解する 宣言的プログラミング。…

JavaScript関数型プログラミング Ch.2 関数型言語としてのJavaScript

book.impress.co.jp なぜJavaScriptなのか 関数型プログラミングvsオブジェクト指向プログラミング 状態管理 オブジェクトを値として使う 深いフリーズ レンズ 関数 クロージャとスコープ まとめ なぜJavaScriptなのか 最も広範に使われている言語 Webの言語…

JavaScript関数型プログラミング Ch.1 関数型で思考する

book.impress.co.jp Becoming functional まえがき 関数型プログラミングとは何か 関数型プログラミングは宣言型である 処理がどのように実装されているか、データがどのように流れるかを明示している例 宣言的である例 純粋関数と副作用問題 純粋関数 (外か…

DDD Part1 Ch.1 Putting the Domain Model to Work

www.informit.com PCB: Print-Circuit Boardのツールを作った話 筆者はプリント回路板(PCB)に関するソフトウェアを作ることになった 筆者はPCBについて何も知らない 納期までに電気技師になれるわけもない 最初は、PCB設計者に「ソフトウェアが何をすべきか…