はじめに

2024/2/11(日)に開催されたPHPカンファレンス関西2024に参加してきました!

https://2024.kphpug.jp/

\ カルテットからは伊神さんが登壇しました :star:

また、他4名のメンバーが参加しました。 会社の福利厚生で「勉強会・カンファレンス参加費補助」 があるので、それをしっかり利用して参加しました :bullettrain_front:

その時に印象に残ったセッションについて、自分なりに深掘りしたことをまとめます :memo:

令和最新版 PHP メモリ管理術 by めもり〜☆ さん

私自身メモリなんて気にせずmemory_limit=-1で丸投げしてたのでとても反省しました :bow:

PHPは起動だけで2Mメモリを使用(確保)しているとのことでした。その詳細はZEND_MM_CHUNK_SIZEより。

// https://github.com/php/php-src/blob/51050427f40ffe63ee37b032a47f133c0ea573be/Zend/zend_alloc_sizes.h#L22

#define ZEND_MM_CHUNK_SIZE ((size_t) (2 * 1024 * 1024))    /* 2 MB  */

関数呼び出しは極力控えて、プリミティブ型でなるべく処理するほうがメモリ効率が良い。

<?php

$m1 = memory_get_usage();
$tmp1 = str_repeat('a', 10);
echo (memory_get_usage() - $m1) . "\n";  //48

$m2 = memory_get_usage();
$tmp2 = 'aaaaaaaaaa';
echo (memory_get_usage() - $m2) . "\n";  //0

var_dump($tmp2 === $tmp1); //true

擬人化で完全に理解するクリーンアーキテクチャ by しまぶ さん

クリーンアーキテクチャーの上位ってどっちだったけ?ってなるのでこの立体図ですごくしっくりきました!

  • クリーンアーキテクチャには4つのレイヤーがあるが、役割の詳細は言及されていない、ただの例。
    • 擬人化するものではないし、できるものではなかった。
  • ソースコードの依存性は常に内側(上位レベルの方針)にむける。
    • ソースコードの依存は内側(上位)だけに向かっていかなければならない。
  • 方針(上位)は頑張って決めて、詳細(下位)の決定を遅らせる →DIPの原則を使う
    • 詳細、抽象、方針の関係性が大事。
  • 依存の向きを整える →SOLIDの原則を突き詰める
  • エンティティ(上位)===ビジネスを作っている。

なんで依存の向きにこだわるのか?の話の自分なりのまとめの絵

さいごに

抽選で当たるプレゼント企画もしっかりゲットしました。(ちょうぜつ本3冊目ゲットしました)

また、自分の中の目標で「アンカンファレンスしてみる」というのがあり、それも達成できて大満足でした!!!

(Symfony Console簡単で便利だよ、Laravelのartisanコマンドでも使われてるよって話を自作Symfony Consoleをライブで見せながら紹介しました。)

スタッフ・登壇者のみなさん楽しくて有意義な時間をありがとうございました :bow: