PHP スクリプトがどこでメモリを消費しているのか?
どの参照が意図せず残りメモリがリークしているのか?
何が循環参照を生んでいるのか?
言語としてはもう 30 歳近くになろうとしていますが、 PHP スクリプト内でのメモリの使われ方を知るための選択肢は、意外なほど少ないです。
例えば php-memprof は、PHP 処理系のスクリプト内でのメモリ確保・解放の処理をフックしてリークを見つけ出す素晴らしい拡張です。しかし当然その機構から大きなオーバーヘッドを伴い、本番環境で動作を観察し問題を見つけ出すのには不向きです。
このトークでは PHP 処理系のメモリ管理機構やメモリ使用量計測の事情を解説しつつ、力技の大道芸により PHP で PHP のメモリプロファイラーを実装する取り組みを紹介します。FFI や C 言語レイヤの処理系知識を気軽に使うゲテモノ寄りの話が聞きたい人向けです。
本当の初心者向けのセッションです。
このセッションはPHPを始めたいと思っている方、はじめてすぐつまづいてしまった方にゼロからわかりやすくPHPについてお伝えします。
・PHPとはどんな言語か
・PHPをはじめる環境
・PHPの書き方
・簡単なプログラムを作ろう
2023年はAIがとても話題の一年になりました。
わからないことはAIに聞いて楽に進めましょう。
プログラミングを行う上でのAIの使い方などにも触れてゆきます。
PHPカンファレンスに参加される方の中には、まだプログラミング未経験で、
これからPHPを勉強しようと考えているという方も多くいらっしゃると思います。
そんな方々へ向けて、アプリケーション開発に必須の知識である
データベースやSQLというものを、世界一分かりやすく解説します。
このトークのゴールは
です。
私自身が「初心者の頃にこういう説明をしてほしかった…」と思うような
順序と言葉遣い、例示を用いて、本当に世界一丁寧に(当社調べ)解説します!
初心者の方の「データベースってなんだか難しそう」という印象を吹き飛ばせたらと思います。
※分かりやすさを優先して厳密さを多少犠牲にする場面があります。上級者の方はご注意ください。
※このトークはPHPに直接関連しない汎用的なトークとなっています。
2022年11月のChatGPT登場以降、AIに関する話題は増える一方です。
PHPからは若干、距離があるとも思える生成AIがどのように作られているかを大まかに理解できることを目標とした発表です。
Webアプリケーションなどを開発するPHPエンジニアを対象として、AIと機械学習の概要をデモを交えて紹介します。
トーク内でお見せするソースコードはこちらです。手元で見ながら動かしたい方は事前にcloneすると理解しやすいと思います。
https://github.com/yandod/php-ml-example
本セッションでは拡張性に重きを置いたシステムについてお話しします。
マイクロサービス・モジュラモノリスとアーキテクチャスタイルは多様化していますが、重要なのはスタイルではありません。
本セッションではスケーラビリティを重視します。
スケーラビリティはリソース・コード・組織など様々な観点があり、それらのスケーラビリティの向上はいずれもビジネスにポジティブなインパクトを与えます。
本セッションではそれらを担保するために必要な要素が何かを深堀りし、それらを実現する具体的な技術スタックやアーキテクチャを模索します。
その中でPHPを主軸としたとき、活用しやすい箇所・しづらい箇所についても言及します。
得られる知識:
スケーラビリティの多面的な観点の理解
スケーラビリティを担保する重要な要素とその実現方法
スケーラブルなシステムを実現するための実践的な知識と洞察
モノリス全盛期〜マイクロサービスブームを経て、近年、両者のいいところ取りができるアーキテクチャとしてモジュラモノリスが話題になることも増えてきました。PHPでも流行のLaravelフレームワークでのやり方やハマりポイントの記事がありますが、基本的に密結合を指向しているLaravelをベースにかなり無理をして実現している事例を見かけます。
私が数年にわたってSymfony+Doctrine ORMをベースにモジュラモノリスでアプリケーションを開発してきた経験から、Laravelベースで開発するよりも数段楽にモジュラモノリスを実現できることを証明したいと思います。
話者は好んでOSSのBrefを利用したサーバーレスのシステムを構築しています
その中で不自由なくLaravelを利用しているのですが、
AWS Lambdaに大きなフレームワークを組み込む事は1つのアンチパターンだと認識しています
しかし自分の体験を元に考えると、本当にアンチパターンなのかを疑問に感じており、
その疑問を解消するために、必要な機能のみ切り出したフレームワークを自作することにしました
フレームワーク実装について学びながら
本当にAWS Lambdaに大きなフレームワークを利用するのが
アンチパターンなのかLaravelと比較しながら検証します
アンチパターンを正面から踏み込むことで、新しい議論の場を作れればと思います