年末年始に「継続的デリバリーのソフトウェア工学」を読みました。新年を迎えて、気分を一新して開発を始めるのに良い本でした。 ソフトウェア開発に役立つプラクティスを示した本 学びのエキスパート 複雑さ管理のエキスパート 実践的なツール データに基づ…
PHP 開発環境の Docker イメージとして公開している shin1x1/php-dev イメージの arm64 対応を行いました。従来の amd64 も必要なので、マルチアーキテクチャビルドでイメージを生成するようにしています。 shin1x1/php-dev については下記を参照で。 blog.s…
2021/10/02, 03 にオンラインで開催された PHP カンファレンス 2021 にて「ドメインをモデリングして PHP コードに落とし込む」を発表しました。 発表資料 Sample code: https://github.com/shin1x1/domain-modeling-with-php Togetter: https://togetter.co…
PHP にはアプリケーションを実行せずに静的にコード品質をチェックする静的解析ツールがいくつかあります。有名なところでは、PHPStan や Psalm、Phan、PHPMD などがあります。本エントリでは、まだこうした静的解析ツールを導入していないプロジェクト向け…
色々な原則や方法論はあれど、つまるところいかに変更容易性を確保するかと言う話に帰結するのでは。極論すれは、正しく動いていて変更する必要が無ければどのような作りになっていても構わない。一方、Web アプリケーションを稼働し続ける上で全く変更しな…
2018 年に出版された「PHP フレームワーク Laravel Web アプリケーション開発」の Laravel 8 対応版 を共著で執筆しました。 前回は Laravel 5.5(LTS) がターゲットだったのですが、あれから 3 年近く経過して Laravel 8 が最新バージョンとなったので、こち…
年始から本業やら原稿書きやらとタスクがあり、さらに休日もコロナ禍で家にこもっていたので完全な休日というのがあまり無かった*1。そろそろ落ち着いて来たので、GW は 10 連休にして、やらなければいけないタスクはできるだけ作るらずに過ごすようにした。…
Software Design 2021年5月号に PHP 8 の記事を寄稿しました。 Software Design (ソフトウェアデザイン) 2021年5月号 [雑誌]発売日: 2021/04/16メディア: Kindle版 PHP 8 でコーディングはどこまで変わる? 担当したのは、PHP 8 特集の第 1 章「PHP 8 でコー…
2021 年になりました。 以前は毎年 1 年の振り返りやら新年の抱負などを blog に書いていたのですが、最近はご無沙汰だったので近況報告という形で書いてみます。 仕事 仕事では、現在もクライアントワークとして Web アプリケーション開発に携わっており、…
2020/12/12 にオンラインで開催された PHP カンファレンス 2020 にて「PHP 8 で作る JSON パーサ」を発表しました。 発表資料 sample code: https://github.com/shin1x1/php8-toy-json-parser 発表で紹介したコードは、phpcon2020 タグになります。 https://…
PHP カンファレンス 2020 の登壇のために PHP 8 で JSON パーサを書いてみました。 https://github.com/shin1x1/php8-toy-json-parser いくつか PHP 8 の新機能を使ったのでその雑感です。 Constructor Property Promotion Named arguments Union Types Matc…
PHP 8 の新機能の一つ、Attribute の形式が紆余曲折ありながら最終的に #[] となりました。実用上は #[] 形式だけ覚えておけば良いのですが、シンタックスの変遷は興味深いものだったので残しておこうと思います。 Attribute Attribute 仕様の変遷 8.0.0alph…
@makoga さんから「Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち」を送って頂きました。ありがとうございました。 VOYAGE GROUP にある 5 つの事業会社についてそれぞれの事業を支えるシステムの開発、運用、改善といった内容を在籍するエン…
2020 年末にリリース予定 の PHP 8 の オフィシャル Docker イメージ(library/php)が Docker Hub に公開されました。 https://hub.docker.com/_/php?tab=tags&page=1&name=8.0-rc- イメージタグに 8.0-rcや 8.0-rc-fpm、8.0-rc-apacheなど 8.0-rc や rc-の…
containerd のサイトに Go で containerd を操作するチュートリアルがあったのでやってみました。 containerd.io チュートリアル このチュートリアルでは、Docker Hub にある redis イメージを取得し、コンテナ(タスク)として実行するまでを実装します。 c…
docker-compose で複数サービスを起動する際に時間を要するのが、Docker イメージのダウンロードと展開です。この時間を削減するために、ベースイメージを共通化する方法を試してみました。 本エントリでは、開発環境や CI 環境に docker-compose を利用する…
Web アプリケーション開発/CI用途を想定して、必要な拡張を有効にした PHP 7.1 - 7.4 の Docker イメージを DockerHub に公開しました。 hub.docker.com 動機 開発/CI で Docker イメージをよく利用しています。オフィシャルの PHP イメージ(library/php)…
「誰のためのデザイン?」の旧版と改訂・増補版を読みました。 以前に旧版を読んだのですが、その記憶もあやふやなくらい前だったので、あらためて読み直し、その面白さゆえに改訂・増補版も購入してこれも読み終えました。 Web システム開発を生業としている…
2019/12/01 に東京で行われた PHP Conference Japan 2019 - #phpcon にて、「Kubernetes で構築する PHP 開発環境」を発表してきました。 発表資料 サンプルコード: https://github.com/shin1x1/laravel-k8s-dev-sample Togetter: https://togetter.com/li/1…
2019/11/30 に東京で行われた 大改修!PHPレガシーコードビフォーアフター にて、「独立したコアレイヤパターンの適用 - fortee 編 -」を発表してきました。 発表資料 サンプルコード: https://github.com/shin1x1/independent-core-layer-pattern-fortee-de…
オブジェクト指向言語でドメインモデルを実装することが当然のように行われていますが、Go で開発したり、Haskell で遊んだりしている中で、他のパラダイムの言語で実装するのはどうなんだろうかという想いがありました。 そんな時に出会ったのが、Domain Mo…
Laravel を使った開発でも、ドメインロジックと RDBMS などの永続化層へのアクセスを分離するためにリポジトリパターンを採用するケースが増えてきました。 ただ、Laravel には Eloquent という Active Record タイプの ORM があるので、これとリポジトリを…
rerun というコマンドランナーを Go で書きました。rerun を使って、コマンドを実行すると、コマンドが終了した際に再実行してくれます。systemd や supervisord の簡易版と言えばイメージしやすいかもしれません。 github.com 動作イメージ 動機 rerun イン…
yae という YAML の alias を anchor の内容に展開した YAML を出力するコマンドを Go で書きました。 github.com YAML anchor/alias yae インストール 利用方法 元の YAML との比較 YAML anchor/alias YAML では、anchor と alias を利用することで、共通の…
Laravel JP Conference にて「フレームワークとの付き合い方」を発表しました。 発表資料 Toggeter: https://togetter.com/li/1319786 フレームワークの付き合い方について、自分なりの考えをお話しました。アップしたスライドには、発表用スライドではカッ…
仙台初開催の PHP カンファレンス仙台 2019 にて「明日から使えるアーキテクチャ 独立したコアレイヤパターン」を発表しました。 発表資料 サンプルコード: https://github.com/shin1x1/phpconsen2019 Toggeter: https://togetter.com/li/1313010 独立したコ…
日頃は、サーバサイドの開発が主なのですが、その UI として フロントエンドの開発も行うことがあります。最近話題の Vue.js を試してみたのでその感想などを。 前提 これまで利用した構成 Vue.js 構成 雑感 ちょっと試す、がすぐにできる vue-cli が楽 vue …
PHPフレームワーク Laravel Webアプリケーション開発 を共著で執筆しました。 @ex_takezawa @kurikazu @shin1x1 @omoon の四人で書いた #Laravel 本がもうすぐ出ます!5.5 LTS 対応で、機能解説だけでなく、利用例を示した実践的な内容になっています。絶賛…
SQS から AWS Lambda をトリガーできるようになりましたね! ワーカーを AWS Lambda で動かせるので、これは嬉しいリリースです。 aws.amazon.com en9sqs こういった機能を試すには、SQS にメッセージをエンキューする必要があるわけで、 パフォーマンスを見…
モチベーション 全体 サンプルアプリケーション コアレイヤ サービスレイヤ 口座間送金ユースケース 処理の流れ コアレイヤ サービスレイヤ コアレイヤ対象範囲 DDD スタイル 手続き型スタイル 実装アイデア レイヤでパッケージを分ける コアレイヤの範囲 ポ…