Post

New!

2019-08-18 18:05:25

Dive to clean architecture with golang

概要GolangでClean Architectureの実装に挑戦したみたので整理しておく。 内容は概ねスライドの内容を踏襲している。 理解しきれていないところがあったり、自分の解釈、考えを記述しているので、正しくない部分もあるかもしれない。 スライドLTをする機会があったのでスライドを貼っておく。 Dive to clean architecture with golang ソースソースはこれ。 bmf-san/go-clean-architecture-web-application-boilerplate MVCのパターンでの実装もtagを切って残してある。 1.0.0 - MVC 背景...

プログラミング

clean architecture golang DIP

2019-07-28 02:48:46

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識 第1章 コンピュータシステムの概要 第2章 ユーザモードで実現する機能 第3章 プロセス管理 第4章 プロセススケジューラ 第5章 メモリ管理 第6章 記憶階層 第7章 ファイルシステム 第8章 ストレージデバイス 第1章 コンピュータシステムの概要p.2 コンピューターシステムが動作するときのハードウェア上の基本動作 入力デバイスまたはネットワークアダプタを介してコンピューターに何らかの処理を依頼 メモリ上に存在するを命令を呼び出し、CPU上で実行、結果をメモリ上のデータを保持領域に書き込む 目盛上のデータ...

Linux

2019-07-16 10:33:40

MySQLでテストデータを生成するSQL

概要MySQLだけでテストデータを生成するSQLについてメモしておく。テストデータをスクリプトで生成する方法は柔軟性が高く、上等手段な気がするが、数万件のレコードを用いてパフォーマンステストをしたい時などはSQLだけでも十分かもしれない。 SQLクエリはこんな感じ。 DROP TABLE IF EXISTS `tests`; CREATE TABLE `tests` ( `id` int(11) NOT NULL AUTO_INCREMENT, `value` int(5) NOT NULL DEFAULT 0, PRIMARY KEY (id) ); INSERT INTO...

データベース

mysql sql cross join

2019-07-06 01:32:38

PHPカンファレンス福岡2019に参加・登壇してきました

PHPカンファレンス福岡2019に参加・登壇してきましたPHPカンファレンス福岡に初めて参加してきました。 今までCFPに落ち続けていたのですが、今年度は無事採択されることができたのでスピーカーとして参加しました。 東京以外のカンファレンスに参加するのはPHPカンファレンス仙台に続いて2回目でした。 登壇資料はこちら。PHPでURLルーティングを自作する PHPerKaigiでトークをしたネタでしたが、多少の進捗とフィードバックを踏まえた形で改めてトークをしました。(今年度のPHPカンファレンスCFPはルーティングの話だけです。自分としては今年度付き合い続けるテーマになっているのでちょっとずつ...

ポエム

php phpカンファレンス

2019-05-08 17:05:41

execコマンドによるリダイレクト

概要execコマンドは現在のプロセスを実行するコマンドで置き換えるコマンドだが、引数無しで使うとリダイレクトの動的変更ができる。 ちょうどmaster直プッシュの際にプロンプトで確認するようにするで #!/bin/sh exec < /dev/tty read ANSWER というコードが出てきてよくわからなかったので調べてみたのがきっかけ。 使い方#!/bin/sh echo "Output to stdout" // 標準入力 exec > redirect.txt // ファイルディスクリプタを変更 echo "Output to file" // ファイルに出力される...

プログラミング

bash shellscript exec

2019-05-08 17:04:11

master直プッシュの際にプロンプトで確認するようにする

概要gitでmasterブランチへの直pushを未然に防ぐためのセーフーティネットの作り方。github上でmasterブランチへのpushを禁止すれば良いのだが、DevOpsの都合上でgithubの設定では問題があったのでhooksを使う方向で設定した。 導入グローバルに設定したいので~/.git_template/hooks配下にpre-pushファイルを作成する。.git_templateディレクトリが存在しない場合は作成する。 なお、グローバルに設定しても既存のリポジトリには反映されないので、既存リポジトリに反映したい場合は既存リポジトリの./git/hooks配下にpre-pushを...

プログラミング

git shellscript

2019-04-28 14:59:08

dockerでイメージとコンテナを削除してもボリュームが消えていなかったときのメモ

概要dockerでコンテナとイメージを削除してもvolumeが削除されていなくてちょいちょい忘れてハマるのでメモっておく。 普段は、docker-composeを使っている。 docker-compose builddocker-compose up -d して、 docker rm **docker rmi ** という感じにお片付けしているのだが、どうやらマウントしているvolumeを削除するオプションがあったらしい。 対応ボリュームが残っているか確認。docker volume ls docker volume rm ** 余談docker-composeでdocker-compose....

インフラ

Docker docker-compose

2019-04-21 00:05:50

PHPで学ぶデザインパターン - Stateパターン

概要PHPで学ぶデザインパターン Advent Calendar 2018で間に合わなかった記事。 Stateパターンとは状態をクラスで用意することで振る舞いを切り替えることができるようなパターン。 実装スイッチのオンオフの状態を切り替えるような例を想定した。シングルトンを使ったほうが良い気がする。 <?php class OnState { public function getState() { return 'ON'; } public function getNextState() { return ne...

プログラミング

GoF php デザインパターン State

2019-04-20 14:24:47

ゴリラで学ぶソフトウェアの法則10選

概要以前書いたソフトウェア開発の法則 の雑メモをベースにLTをしたのでスライド内容を補足する形でまとめる。 スライドは↓ゴリラで学ぶソフトウェアの法則10選 ゴリラで学ぶには無理があったのでスクリプトを書き残しておく。 ソフトウェア開発の法則ソフトウェアの文脈で語られる法則に縛らず、他分野での法則でもソフトウェアに当てはまるであろうものを”ソフトウェア開発の法則”としている。 経験則に基づくものが多いが、経営工学だったり心理学だったり、はたまたどこかの論文だったり引用元は様々である。 パーキンソンの法則(第1原則)「仕事の量は、完成のために与えられた時間を全て満たすまで増大する」 有名ど...

プログラミング

ソフトウェア開発

2019-04-11 15:09:57

Realizeを使ってgoでホットリロードを実現するメモ

概要github - oxequa/realizeを使ってみたメモ。 準備go get github.com/oxequa/realize 使い方./demo/ ├── .realize.yaml └── main.go .realize.yaml settings: legacy: force: false interval: 0s schema: - name: demo path: . commands: run: status: true watcher: extensions: - go paths:...

プログラミング

go realize