Laravelで多機能なアプリケーションをモジュラモノリスとして開発・メンテナンスしていこうとする時、Modelの依存は悩ましい点になっていると思います。AモジュールにあるModelがUserを、UserがBモジュールにある別のModelを参照してしまうと、結局疎結合にできず、メンテナンス時に依存を排除できません。
LaravelであってもORMとしてEloquentではなくDoctrineを使うことで、モジュール同士が依存しない、疎結合なモジュールによるモジュラモノリスが実現可能です。
実践的なモジュラモノリスLaravelのサンプルコードとともに、LaravelからDoctrineを使う実装についてご紹介します。
テストを書くとき、テストデータ(テストフィクスチャ)をどのように用意していますか?プロダクションコードを改修するとき、テストフィクスチャにも多数の改修作業が発生してつらくなっていませんか?
私は10年近くテストのある開発をしてきた経験から、テストフィクスチャもオープン(拡張に対して開いている)で、クローズド(修正に対して閉じている)にするのが良いのではないかと思うようになりました。
このトークではまず様々なテストフィクスチャの作り方を概観した後、オープン・クローズドなテストフィクスチャを実現するために現時点でベストだと私が思う方法をお伝えします。
このトークでは、10年近く運用されているサービスにおけるPHPフレームワーク(FuelPHP 1.8.2からFuelPHP 1.9-dev)とPHPのバージョンアップ(PHP 7.3からPHP 8.1)の戦略について語ります。
FuelPHPは2023年7月現在、PHPの最新メジャーバージョンに対応したバージョンを公式にリリースしていません。
開発が完全に止まってしまったわけではありませんが、LaravelやSymfonyなど他のフレームワークと比べるとモダンという印象は持てないかもしれません。
FuelPHPを使っている方はもちろん、それ以外のPHPフレームワークを使っている方も対象に、PHPフレームワークとPHPのバージョンアップの知見を共有します。
様々なトレードオフやハードルを乗り越えるために、どのように計画し、アプローチしたかをお話します。
ソフトウェア設計やアーキテクティングって、とっても難しそうですね
─がしかし、普段のコードを書く時にも我々は「設計について」から逃れられない訳です!
「設計が良い悪い」以前にある筈の「どんなものが気持ちいいのか、求められるのか」を説明できていますか?
知識としての「○○原則」や「○○パターン」で片付けない審美眼を持ちましょう
このトークでは、なるべくやわらかく「そもそも設計って何で必要なんだろう」をシェアします
Webアプリケーションは生き物です。
作って終わりではなく、日々運用を行っていかなければいけません。
しかし、日々成長するWebアプリケーションは突然パフォーマンスが問題になり、サービス障害を生み出します。
そこで今日はシンプルなLAMP環境で動くようなWerbアプリケーションのパフォーマンス・チューニングの勘所についてご紹介します。
基本的な考え方から実際の明日から役立つテクニックまで全部ご紹介します!
PHP 8.1から始まった、mbstringの大規模改修。
それをまとめたところ、大規模改修をしているAlex DowadさんからFYA(For Your Action)をもらうようになり、レビューをしていました。
すなわち、mbstringの変化をリアルタイムで見るようになってしまったのです。
2022年12月から始まったこのゆるい関係は、ときに入ってきたプルリクエストをサポートしたりとたくさんの出来事がありました。てきめん自身もプルリクエストを送りマージされたため、GitHub上でContributorフラグをもらえました。
また、php-src上で誰に何を投げれば良いのか段々とわかってくるようにもなりました。
本トークでは、PHP 8.3のmbstringの変更点・貢献内容はもちろんのこと、php-srcへのコントリビュートに挑戦したい方への足がかりになれば幸いです。
みなさんは何かしらの VM (Virtual Machine)を作ったことがあるでしょうか。私自身は過去に PHP で JVM (Java Virtual Machine) を作ったことがあります。
現職は Ruby on Rails がメインの企業です。Rails どころか Ruby 初心者である私が Ruby の気持ちを理解するにはひと工夫必要だと考えました。
そこで,過去に PHP で JVM を作ったことがある経験を活かし,RubyVM を自作して Ruby の気持ちを理解し学習速度を加速させようという考えに至りました。
本トークでは PHP でどのように VM というものを作るのか,そして RubyVM はどのように作っていくのかを,初心者でも「ちょっとわかったかも」と思えてもらうことをゴールとして解説します。