darudaru

だるだるしてるエンジニア

長すぎるメソッド

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)を引き続き読んでます。 新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)作者: Martin Fowler,児玉公信,友野晶夫,平澤章,梅澤真史出…

コードの不吉な臭い

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)を読んでます。 新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)作者: Martin Fowler,児玉公信,友野晶夫,平澤章,梅澤真史出版社/メー…

日帰りで箱根へ

日帰りで箱根に行ってきました。 電車の中で日帰り温泉でググりながら目的地を決めて、ロマンスカーの特急券をネットで買い、行き当たりばったりの日帰り旅行へ。 箱根、歩いてるだけで癒された。 温泉は「天成園」に行ってきました。 11時ぐらいに到着して…

ログから操作できるtigがいい

Git

tigを最近使い始めました。Gitの操作が便利になるツールです。 インストール brew install tig GitHub - jonas/tig: Text-mode interface for git 使い方 公式のマニュアルはこちら。 Manual · Tig - Text-mode interface for Git tigとターミナルでうつと、…

DateTimeImmutableを使ったらどれくらい遅くなるのか

PHP

DateTimeImmutableのformat()を頻繁に使っていたら、コードレビューで「速度が気になる」と指摘を受けたので計測してみました。 先に結果 やっぱりDateTimeImmutableの関数の使用回数を減らしたほうが速い 計測 DateTimeImmutableのformat()で年月日を毎回取…

gulpを学ぶ

PHPerにもgulp便利だって聞いた。 gulp gulp.js タスクを自動化してくれるツール。「がるぷ」と呼びます。 gulpでできること ファイルをコピーしたりリネームしたり、画像圧縮したり、ファイル操作を自動化できる ファイルの変更を検知して何かできる Gettin…

vimrcを分ける

vim

暇だったのでvimrcを分割してキレイにしました。 やったこと setコマンドの記述をvimrcから切り離す TOMLでプラグインを管理する setコマンドの記述をvimrcから切り離す setコマンドの設定を別ファイルに記述し、vimrcでその設定ファイルを読み込みするよう…

DateTimeImmutableで日時を扱う

PHP

DateTimeImmutableクラス PHP5.5以上から使える DateTimeは参照渡しなので自身のオブジェクトが変わっていくが、DateTimeImmutableは新しいオブジェクトを返す モダンなやり方だって聞いた 使い方 現在の日時を取得する format('Y/m/d H:i:s'); // 2017/04/3…

FrisbyでREST APIのテスト自動化を試みる

REST APIのテストがめんどくさい、自動化したい、と調べていたら、FrisbyというREST APIのテストフレームワークのことを知ったので試してみた。 シナリオが書けるREST APIのテストツールを探した 意外になくて驚いた。 Frisbyを選んだ理由は、使っている人が…

初めてのこぎん刺し

こぎん刺しでコースターを作ってみました。歪んでいるのはご愛嬌。 こぎん刺しとは、青森の津軽地方に伝わる刺し子の技法のひとつ。らしい。 実はよく知らないまま、こぎん刺しのコースターを作るキットを買って作りました。 たまーに何かを作りたいという欲…

PHPUnitの知らなかったアノテーション

アノテーションとはメソッドのコメント部分に書く@で始まるタグのこと。 /** * @アノテーション名 引数 */ こう使う。 PHPUnitでテストコードを書くことが多いのですが、最近アノテーションの存在を知り、これは便利だなと思ったという話。 いいなと思ったア…

macでphpのバージョンを切り替える

PHP

php7が入っているmacでphp5.6の環境を必要になったので、phpenvでphpのバージョンを切り替えられるようにしました。 phpenv GitHub - CHH/phpenv: Thin Wrapper around rbenv for PHP version managment 「phpenv」でググると他にもphpenvと名がつくリポジト…

vimで開発をするために

vim

自分の開発のやり方の見直しをしていく中で、ほぼ素だったvimの設定も見直しました。プラグインもいろいろ入れてみて、開発がとてもやりやすくなりました。 プラグイン denite 定番。プラグインを管理するプラグインマネージャーです。 blog.darudaru-life.c…

ghqとpecoでGitのリポジトリ管理をシンプルに

Git

今まで1つのディレクトリの中にいろんなGitのリポジトリをcloneしていたのですが、リポジトリの名称が被って単純に1つのディレクトリで管理できなくなったため、Gitのリポジトリ管理の構成を見直すことにしました。 見直した結果使うことにしたツール ghqとp…

vimのビジュアルモードで開発をちょっと楽にする

vim

ビジュアルモードをどう使ったら便利なのかがいまいちわからなくて、色々調べた内容をまとめます。 vimのビジュアルモード 3つあります。 コマンド モード 説明 v ビジュアルモード 文字単位で選択する V ビジュアルラインモード 行単位で選択する Ctrl+v ビ…

ターミナル操作を録画してGifアニメーションにする

「asciinema」という手軽にターミナル操作を動画にできるWebサービスもあるようなのですが、そのサービスが終了すると動画が見られなくなってしまうので、自分でgif画像を生成する方法を試してみました。 こんな風にgifアニメーションでターミナル操作を見る…

名前空間があるXMLをPHPでパースする

PHP

Gmailでフィルタリングしている対象のメールのsubjectを取得したくて、フィルタのXMLをパースするプログラムを作ったけれども、空でしかデータが取得できず四苦八苦しました。 取得したいデータはXMLの名前空間を使って定義されていたのですが、PHPで名前空…

wordpressからはてなに引っ越してきました

初めまして、kanoeです。職業エンジニアです。 知識をアウトプットする癖をつけたい、wordpress触ってみたい、というところからwordpressでブログを1年書き続けていたのですが、はてなブログに引っ越してきました。 wordpressからはてなに引っ越した理由 メ…

dein.vimを使ってみたらやっぱり便利だった

vim

今までvimのプラグインをちまちまと個別でダウンロードしては使っていたのですが、プラグインを管理できるプラグインマネージャがあることを知り、使ってみました。 dein.vimとは vimのプラグインマネージャ。前はNeoBundleが主流だったようですが、もう開発…

エラーに苦しみながらvimのプラグイン NERDTreeをインストールした

vim

会社のmacにvimのプラグインであるNERDTreeをインストールしようとしたら手こずったので、その時の備忘録を。 NERDTreeとは下記のようにディレクトリ構造をツリー表示、かつファイルの操作もできるvimのプラグインです。 インストール手順 dein.vimを使って…

PHPの演算子を改めて調べてみたら新しい発見があった

PHP

先日、「xor」というPHPの演算子を初めて知りました。改めてPHPのドキュメントの演算子の項目を眺めていたら、意外に知らない演算子や使い方を知ることができたので、演算子についてまとめてみます。調べてみると意外に面白い演算子。 代入演算子 +$a $a を…

IFTTTを使ってslackに特定なアカウントのツイートを連携させる

わたしはKinKiKidsのファンです。大好きで、毎日情報収集に励んでいます。主にtwitterで情報を集めていることが多いのですが、山のようにツイートが流れてきて、見落とす情報が出てきたり、他にフォローしているアカウントのツイートが流れていってしまった…

Gitのオレオレサブコマンドを作ってみた

Git

仕事場でgit flowでブランチを運用していたのですが、別チームに異動になったタイミングでチーム独自のブランチの運用ルールに変わりました。gitのコマンドを普通に使っていたのですが、git flowのコマンドに比べると手順も多いし、気をつけていないとブラン…

git logで特定の文字列を含むコミットメッセージを検索する

Git

メンテにする対応ってどのファイルを改修すればいいんだっけ?ということを知りたくて、過去のコミットメッセージを検索したいなーと調べていたらgitのコマンドがありました。 $ git log --grep 検索文字列 これでコミットメッセージを検索できます。便利だ…

PHPUnitでechoやprintなどの出力処理をテストする

テストしたいコードにechoやprintなどの出力処理がある場合、PHPUnitでどうやってテストコード書いたらいいんだろう?って調べたのでまとめておく。 テストしたいコード

Travis CIでcomposerのautoloadが効かずに悩んだ話

PHP

デザインパターンを学ぶために各デザインパターンのコードをPHPで書きつつ、勉強もかねてテストコードも書いているのですが。そのテストコードをCI環境で走らせてみようと思い、Travic CIを使おうとしたら、composerのautoloadがきかずにfatalエラーが出てか…

PHPでデザインパターン「Builderパターン」

PHP

GoFデザインパターンをPHPでプログラムを書いてみながら勉強していきます。「増補改訂版 Java言語で学ぶデザインパターン入門」を参考にさせて頂いています。プログラムはGithubにあげていきます。 Builderパターンとは builderとは、日本語で建築者、建造者…

PHP5の型宣言(タイプヒンティング)

PHP

あんまり自分が活用できていないPHPの型宣言について、今更ですがまとめてみました。ずっと「タイプヒンティング」っていう言葉を使っていたけれど、PHPの公式ドキュメントを読んでいたら型宣言って呼ぶように変わっていたっぽいので、型宣言の言葉の方を使…

PHPでデザインパターン「Template Methodパターン」

PHP

GoFデザインパターンをPHPでプログラムを書いてみながら勉強していきます。「増補改訂版 Java言語で学ぶデザインパターン入門」を参考にさせて頂いています。プログラムはGithubにあげていきます。 Template Methodパターンとは テンプレートの機能を持つパ…

MacにcomposerでPHPUnitをインストールする

MacにcomposerでPHPUnitをインストールした時の手順です。composerのglobalコマンドを使用してインストールしました。 環境 MacOS Sierra 10.12.2 composerでPHPUnitをインストールする どのPHPUnitのバージョンを指定すべきかは公式サイトで確認しておきま…