新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)を引き続き読んでます。 新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)作者: Martin Fowler,児玉公信,友野晶夫,平澤章,梅澤真史出…
新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)を読んでます。 新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)作者: Martin Fowler,児玉公信,友野晶夫,平澤章,梅澤真史出版社/メー…
日帰りで箱根に行ってきました。 電車の中で日帰り温泉でググりながら目的地を決めて、ロマンスカーの特急券をネットで買い、行き当たりばったりの日帰り旅行へ。 箱根、歩いてるだけで癒された。 温泉は「天成園」に行ってきました。 11時ぐらいに到着して…
tigを最近使い始めました。Gitの操作が便利になるツールです。 インストール brew install tig GitHub - jonas/tig: Text-mode interface for git 使い方 公式のマニュアルはこちら。 Manual · Tig - Text-mode interface for Git tigとターミナルでうつと、…
DateTimeImmutableのformat()を頻繁に使っていたら、コードレビューで「速度が気になる」と指摘を受けたので計測してみました。 先に結果 やっぱりDateTimeImmutableの関数の使用回数を減らしたほうが速い 計測 DateTimeImmutableのformat()で年月日を毎回取…
PHPerにもgulp便利だって聞いた。 gulp gulp.js タスクを自動化してくれるツール。「がるぷ」と呼びます。 gulpでできること ファイルをコピーしたりリネームしたり、画像圧縮したり、ファイル操作を自動化できる ファイルの変更を検知して何かできる Gettin…
暇だったのでvimrcを分割してキレイにしました。 やったこと setコマンドの記述をvimrcから切り離す TOMLでプラグインを管理する setコマンドの記述をvimrcから切り離す setコマンドの設定を別ファイルに記述し、vimrcでその設定ファイルを読み込みするよう…
DateTimeImmutableクラス PHP5.5以上から使える DateTimeは参照渡しなので自身のオブジェクトが変わっていくが、DateTimeImmutableは新しいオブジェクトを返す モダンなやり方だって聞いた 使い方 現在の日時を取得する format('Y/m/d H:i:s'); // 2017/04/3…
REST APIのテストがめんどくさい、自動化したい、と調べていたら、FrisbyというREST APIのテストフレームワークのことを知ったので試してみた。 シナリオが書けるREST APIのテストツールを探した 意外になくて驚いた。 Frisbyを選んだ理由は、使っている人が…
こぎん刺しでコースターを作ってみました。歪んでいるのはご愛嬌。 こぎん刺しとは、青森の津軽地方に伝わる刺し子の技法のひとつ。らしい。 実はよく知らないまま、こぎん刺しのコースターを作るキットを買って作りました。 たまーに何かを作りたいという欲…
アノテーションとはメソッドのコメント部分に書く@で始まるタグのこと。 /** * @アノテーション名 引数 */ こう使う。 PHPUnitでテストコードを書くことが多いのですが、最近アノテーションの存在を知り、これは便利だなと思ったという話。 いいなと思ったア…
php7が入っているmacでphp5.6の環境を必要になったので、phpenvでphpのバージョンを切り替えられるようにしました。 phpenv GitHub - CHH/phpenv: Thin Wrapper around rbenv for PHP version managment 「phpenv」でググると他にもphpenvと名がつくリポジト…
自分の開発のやり方の見直しをしていく中で、ほぼ素だったvimの設定も見直しました。プラグインもいろいろ入れてみて、開発がとてもやりやすくなりました。 プラグイン denite 定番。プラグインを管理するプラグインマネージャーです。 blog.darudaru-life.c…
今まで1つのディレクトリの中にいろんなGitのリポジトリをcloneしていたのですが、リポジトリの名称が被って単純に1つのディレクトリで管理できなくなったため、Gitのリポジトリ管理の構成を見直すことにしました。 見直した結果使うことにしたツール ghqとp…
ビジュアルモードをどう使ったら便利なのかがいまいちわからなくて、色々調べた内容をまとめます。 vimのビジュアルモード 3つあります。 コマンド モード 説明 v ビジュアルモード 文字単位で選択する V ビジュアルラインモード 行単位で選択する Ctrl+v ビ…
「asciinema」という手軽にターミナル操作を動画にできるWebサービスもあるようなのですが、そのサービスが終了すると動画が見られなくなってしまうので、自分でgif画像を生成する方法を試してみました。 こんな風にgifアニメーションでターミナル操作を見る…
Gmailでフィルタリングしている対象のメールのsubjectを取得したくて、フィルタのXMLをパースするプログラムを作ったけれども、空でしかデータが取得できず四苦八苦しました。 取得したいデータはXMLの名前空間を使って定義されていたのですが、PHPで名前空…
初めまして、kanoeです。職業エンジニアです。 知識をアウトプットする癖をつけたい、wordpress触ってみたい、というところからwordpressでブログを1年書き続けていたのですが、はてなブログに引っ越してきました。 wordpressからはてなに引っ越した理由 メ…
今までvimのプラグインをちまちまと個別でダウンロードしては使っていたのですが、プラグインを管理できるプラグインマネージャがあることを知り、使ってみました。 dein.vimとは vimのプラグインマネージャ。前はNeoBundleが主流だったようですが、もう開発…
会社のmacにvimのプラグインであるNERDTreeをインストールしようとしたら手こずったので、その時の備忘録を。 NERDTreeとは下記のようにディレクトリ構造をツリー表示、かつファイルの操作もできるvimのプラグインです。 インストール手順 dein.vimを使って…
先日、「xor」というPHPの演算子を初めて知りました。改めてPHPのドキュメントの演算子の項目を眺めていたら、意外に知らない演算子や使い方を知ることができたので、演算子についてまとめてみます。調べてみると意外に面白い演算子。 代入演算子 +$a $a を…
わたしはKinKiKidsのファンです。大好きで、毎日情報収集に励んでいます。主にtwitterで情報を集めていることが多いのですが、山のようにツイートが流れてきて、見落とす情報が出てきたり、他にフォローしているアカウントのツイートが流れていってしまった…
仕事場でgit flowでブランチを運用していたのですが、別チームに異動になったタイミングでチーム独自のブランチの運用ルールに変わりました。gitのコマンドを普通に使っていたのですが、git flowのコマンドに比べると手順も多いし、気をつけていないとブラン…
メンテにする対応ってどのファイルを改修すればいいんだっけ?ということを知りたくて、過去のコミットメッセージを検索したいなーと調べていたらgitのコマンドがありました。 $ git log --grep 検索文字列 これでコミットメッセージを検索できます。便利だ…
テストしたいコードにechoやprintなどの出力処理がある場合、PHPUnitでどうやってテストコード書いたらいいんだろう?って調べたのでまとめておく。 テストしたいコード
デザインパターンを学ぶために各デザインパターンのコードをPHPで書きつつ、勉強もかねてテストコードも書いているのですが。そのテストコードをCI環境で走らせてみようと思い、Travic CIを使おうとしたら、composerのautoloadがきかずにfatalエラーが出てか…
GoFデザインパターンをPHPでプログラムを書いてみながら勉強していきます。「増補改訂版 Java言語で学ぶデザインパターン入門」を参考にさせて頂いています。プログラムはGithubにあげていきます。 Builderパターンとは builderとは、日本語で建築者、建造者…
あんまり自分が活用できていないPHPの型宣言について、今更ですがまとめてみました。ずっと「タイプヒンティング」っていう言葉を使っていたけれど、PHPの公式ドキュメントを読んでいたら型宣言って呼ぶように変わっていたっぽいので、型宣言の言葉の方を使…
GoFデザインパターンをPHPでプログラムを書いてみながら勉強していきます。「増補改訂版 Java言語で学ぶデザインパターン入門」を参考にさせて頂いています。プログラムはGithubにあげていきます。 Template Methodパターンとは テンプレートの機能を持つパ…
MacにcomposerでPHPUnitをインストールした時の手順です。composerのglobalコマンドを使用してインストールしました。 環境 MacOS Sierra 10.12.2 composerでPHPUnitをインストールする どのPHPUnitのバージョンを指定すべきかは公式サイトで確認しておきま…