モチベーション 全体 サンプルアプリケーション コアレイヤ サービスレイヤ 口座間送金ユースケース 処理の流れ コアレイヤ サービスレイヤ コアレイヤ対象範囲 DDD スタイル 手続き型スタイル 実装アイデア レイヤでパッケージを分ける コアレイヤの範囲 ポ…
phperkaigi.jp PHPerKaigi 2018 に参加してきました。 「PHP の現場」公開収録 主催の長谷川さんからお誘いを頂き、 @goodoo さんをゲストにお招きして、「PHP の現場」の公開収録をやってきました。 「初の公開収録」と言いたいところなのですが、1 回目が…
PhpStorm から Docker for Mac の Docker コンテナ内で PhpUnit のテスト実行や Remote Debug を行うための設定です。 下記バージョンにて構築を行いました。 PhpStorm 2017.2.4 Docker for Mac 17.09.0-ce-mac35 PHP 7.1( php:7.1-apache ベース ) Xdebug…
TDD の原典である テスト駆動開発 が、t_wada さんによって再翻訳されるということで興味を持っていたところ、見本誌を送って頂きました。ありがとうございました。早速、拝読させて頂きました。 以前の翻訳版である「テスト駆動開発入門」が出版された頃、X…
PHP カンファレンス 2017 にて「型を意識した PHP アプリケーション」を発表してきました。 発表 github.com 型宣言が付いていないコードに、スカラー型の型宣言、ドメインに特化した型の型宣言と型(クラス)の実装を行うライブコーディングをメインにしま…
PHP カンファレンス関西 2017 の基調講演にてお話してきました。 発表資料 今回は、開発現場から見た PHP の特徴をあらためて見直すということで、私が日頃感じている特徴をお話しました。最後には現場で奮闘している PHP エンジニアへのメッセージを入れま…
PHPの現場 にて、DI 談義を行うので、頭を整理しておくためのメモです。 DI についてきちんと知りたいのであれば、参照に挙げたリンク先に有用な記事があるので、そちらを参考にして下さい。 PHP を念頭に置いてますが、Java など他言語でも大枠は同じだと思…
著者の杉田さんに献本して頂いたので拝読しました。 PHP エンジニアのための WordPress 本 タイトルにあるとおり、普段フレームワークなどを使って Web システムを開発している PHP エンジニアのための WordPress 本です。 ユーザとして WordPress を利用す…
学生の頃からラジオを聞いて育ってきたので、技術系のPodcastが好きで色々と聞いています。 日本語で PHP 界隈の話題について話すPodcastが無かったので、はじめてみることにしました。 「PHPの現場」というPodcastです。 PHP がメイントピックにはなります…
PHP の openssl_encrypt() にて、ブロック暗号による暗号化を行うと PKCS#7 パディングが行われます。この動きを確認してみます。 http://php.net/manual/ja/function.openssl-encrypt.php PKCS#7 パディング ブロック暗号では、決められたブロック長を単位…
例外をどのような状況に投げるかもしくは投げないか、というのはわりと意見が分かれるところです。もちろん、プログラミング言語によっても異なりますが、同じプログラミング言語ユーザ同士でも様々です。 基本の考え方 ベースとしては、Effective Java の項…
子ども(13 才以上)用に iPhone を購入したので、セットアップしたメモです。 iPhone IIJmio を利用するために、Apple Store で SIM フリーの iPhone SE を購入しました。 www.apple.com SIM 私が、IIJmio を利用していて、何ら不都合が無いので、同じく II…
勉強会の企画を考えるとき、あの人からあの話聞きたいなというのがあって、普通なら登壇を依頼すればいいんだけど、準備も大変だろうから、あの話の blog エントリや過去のスライドを前に出して、インタビュー形式で「ここ教えて下さい」みたいな感じでやる…
この投稿は、PHP Advent Calendar 2016 - Qiita の 7 日目です。 DDD のようなドメインを意識した開発手法でなくても、ドメインコンテキストで必要な操作のみを実装したクラスを作ってみましょう話です。 Amazon Dash Button Amazon Dash Button は、ボタン…
2016/10/19 に大阪で開催された Laravel Osaka 2016 にて、「DDD パターンを活用した Laravel アプリケーション開発」を発表しました。 会場の MOTEX さん。巨大スクリーンが 2 面あり、話しやすい環境でした。 発表資料 Laravel の具体的なテクニックに比べ…
2016/11/03 に開催された PHP カンファレンス 2016 にて、「正規表現再入門」を発表してきました。 資料 speakerdeck.com togetter.com 内容は、正規表現のマッチングの動き、量指定子のマッチングパターン、バックトラックやパフォーマンスへの影響について…
正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメ…
DDD 関連の書籍といえば、Eric Evans の DDD 本( エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) )や、Vaughn Vernon の IDDD 本( 実践ドメイン駆動設計 (Object Oriented SELECTION) )が有名です。 DDDで登場…
HTTP リクエストに任意の値をセットすることで、Web アプリケーションからの HTTP 通信を傍受したり、中間者攻撃(Man-in-the-Middle)を可能にする脆弱性が見つかっています。 専用サイト httpoxyという名前が付けられ、専用サイトが立ち上がっています。詳…
2016/07/09、10 に大阪大学 豊中キャンパスで開催された WordCamp Kansai 2016 にて、WordPress サイトのチューニングについて発表しました。 https://twitter.com/digitalcube/status/751693759121731584 発表資料 今回は、PHP(WordPress)エンジニアでな…
ソフトウェア開発者の間で、話題の書籍「SOFT SKILLS」を読みました。ひと通り読んで感じたことなど書いてみます。 同じ内容の文章を読んでも、それを誰が書いたかによって受ける印象は変わります。 まさに、それを実感した本でした。 ソフトウェア開発者が…
ひと昔前(といっても数年前ですが)の勉強会では、Ustream を使ってセッションをライブ配信するということが一般的でした。私は、関西在住のため、特に東京で開催されているイベントをライブで視聴できるのはとても便利でありがたいものでした。 私自身がラ…
PHP(pdo_pgsql)から PostgreSQL に SELECT 文でデータを取得する際に、カーソルを使った場合と使わなかった場合で、どのようにリソース消費(主にメモリと実行時間)の違いがあるのかを計測してみました。 検証内容 PostgreSQL テーブルに、1,000,000 件の…
PHP カンファレンス福岡 2016 で、「制約でコードに秩序を」という発表を行ってきました。 発表資料 サンプルコードは、下記です。 github.com セッションでは、資料は最低限のものにして、PhpStorm によるライブコーディングをしながら解説するというスタイ…
勉強会や技術系のイベントで色々な発表を聞いていると、せっかく勇気を出して壇上に立ったのに、ちょっとしたことでもったいなあと感じることがあります。これは特に、発表に慣れてない人に多く感じます。 本エントリでは、大いなる自戒を込めて、発表慣れて…
CircleCI で、とあるプロジェクトの CI 環境を作りました。このプロジェクトは、PHP 7 で開発しているのですが、まだ CircleCI 公式では PHP 7 がサポートされていません。 そこで、Docker を使って、PHP 7 + PhantomJS 環境を構築しました。 構成 PHPUnit …
2016/02/26 に出版される「サーバ/インフラエンジニア養成読本 DevOps編」というムック本にて、Ansible 2 について書きました。 本書は、昨今では普及してきた DevOps や Infrastructure as Code といったキーワードに関心がある方向けの本です。はじめに概…
Vagrant 1.8 で、ansible_local という新しいプロビジョナが追加されました。 これは、Ansible をゲスト(VM)側にインストールして、ローカルコネクションで VM 内で実行するものです。これは、まさに待ち望んでいた機能ので紹介します。 Vagrant + Ansible…
正月の書き初めとして、PHP 7 でコードを書いてみました。 年始から始まるプロジェクトで PHP 7 に取り組む予定なので、素振りも兼ねています。実際に書いて感じたことを挙げてみます。 書いたコード 今回書いたのは、Markdown からコードブロックを抜き出し…
2015年も残り僅かとなりました。年の瀬に今年の活動をまとめてみます。 技術サポートと開発 本業の 1×1 では、技術サポートと開発を両輪として活動していました。 私が行っている技術サポートは、昨今よく話題に上がる「技術顧問」のようなものですが、主…