レギュラートーク(25分)

howに気をつけなさい、あなたの設計を作るから

77web 菱田裕美

PHPerの世界でもwhatやwhyが大事だ、howはなんでもいい、と言われるようになりました。
たしかにwhyやwhatはとても大事で、howは所詮howです。
しかし、howを軽視しすぎるのはおすすめできません。
「思考に気をつけなさい。それはいつか言葉になるから。言葉に気をつけなさい。それはいつか行動になるから。(後略)」というマザーテレサの名言にもある通り、howは知らず知らずのうちにあなたの設計方針に影響を与えてしまうのです。
howがどのように設計方針に影響を与えるかの実例をいくつか紹介した後、その対策についてお話しします。

3
レギュラートーク(25分)

Laravel+DoctrineORMでフレームワークとの距離を保ちつつドメインモデル貧血症に立ち向かう

77web 菱田裕美

クリーンアーキテクチャの同心円で、一番外側にあるデータベース。ドメインのコードはデータベースに依存させないように書きましょうと言われがちです。しかし、果たしてデータベースは本当に常にドメインの外側に置くべきなのでしょうか?
リンケージではLaravelとDoctrineORMを組み合わせてドメインのコードとフレームワークの距離を保ちつつ開発していますが、ドメインとデータベースとの距離については議論がありました。
Doctrineという技術選定、ドメインのコードからORMへの依存を許す決断をした根拠についてお話します。

4
レギュラートーク(25分)

「抽象化」の力でコード改善だ!!〜コードを使わず解説するリファクタリング、あるいはリフレーミングの技法〜

o0h_ きんじょうひでき

トークの対象者


「このコード何となく良くない気がする、リファクタしよ〜」「書き換えてみたけど、しっくりこないな‥」
そんな経験はないですか?

「コピペコードになってるなぁ。もっと良いやり方がありそう…」「でも既存コードに手を入れる踏ん切りが付かない!」
そんな人はいませんか?

トークの趣旨

  • リファクタリングには時折「概念の整理」が欠かせません
  • 概念の抽出や切り分けには「抽象/具体化」を用います
  • そうして「物の見方を変えていく」体験を提供します

トークのアプローチ

コードの代わりに、日本語で記述された要求・手続きの文章に「変更」を加えていきます

  • 「開放閉鎖原則を満たす」を目的に変更していきます
  • 具体的なコードを用いない事で、一歩引いて考える脳みそを鍛えます
  • コーディングテクニックに依存しない、リファクタリング力の向上を目指します
2
レギュラートーク(25分)

PHPによる非構造化プログラミング入門

o0h_ きんじょうひでき

良い設計技法やイケてるコーディング──
新しい事を学ぶ際には「なぜ生まれたのか」を知ると武器になります
そのために、「それが生まれる前の様子」を知ると助けになります

現代的な「良い」コードの探求のため、昔っぽい世界を覗いてみませんか?
「クラスもねぇ制御フローもねぇglobalやgoto頼りの世界」を覗いていきませんか???

手続き型?いいえ!もっと遡りましょう
「構造化プログラミング的な要素を排除しつつ、今日のPHP(8.4)で開発」に挑みます

話すこと

  • 構造化プログラミングの簡単なおさらい(定義・歴史)
  • コードサンプルと解説: 簡易CMS

「非構造化」のルール(一部)

  • クラスや例外やwhile(true)以外のループや名前空間は使わない
  • ユーザー定義関数: 引数は使わない・値を返さない/グローバル変数でやり取りする
  • gotoや標準関数は使う
4
レギュラートーク(25分)

PHPUnitのアサーション、PHPフレームワークアサーション、そしてわたしのアサーション

asumikam asumikam

PHPUnitには多くの便利なアサーションが用意されていますが、わたしたちが普段使っているフレームワークにも独自のアサーションが実装されていることをご存知でしょうか?
普段便利に使わせてもらっているアサーションの中身がどうなっているか、みたことはありますか?
「まだ、みたことない・・・!」という方、このセッションでテストの裏側にある仕組みにDeep Diveし、テストライフをさらに快適にしていきましょう!

話すコト
・PHPUnitがどのようにアサーションの結果をOK/NGと判断しているのかを知る
・各フレームワークにあるいろいろなアサーションを知る
・自分でカスタムアサーションを作成するという選択肢を知る

5
レギュラートーク(25分)

PHPStan導入術、活用術

malsuke096 まるすけ

PHPのバージョンが上がるにつれて型周りの機能が充実してきました。
これに伴い、実行時、型によるエラーを発生させないためにコードを書く時に注意したり、静的解析による検査を導入するという事が必要となってきました。
PHPStanはそのような実行時にエラーとなる可能性のある部分を指摘してくれる静的解析ツールであり、ご存知の方も多いと感じます。
しかし、「導入がしたいけど出来ていない」という話や「導入したけどあまり活用出来ていない」という話を時々聞きます。

そこで、本トークでは以下のような点について自身の経験を踏まえてお話します。

  • PHPStanの基礎
  • 導入時や導入後の課題とその解決方法
  • baselineの活用と落とし穴について
  • セキュリティに関する活用

PHPStanを全く知らないという人から導入を検討している方、更に知識を深めたいという方まで楽しめるトークを目指します。

3
レギュラートーク(25分)

より軽量なコンテナイメージを目指して 〜 Distroless PHP のご紹介

zeriyoshi 工藤 剛

あなたは DockerHub で公開されている PHP のイメージサイズに満足していますか?

コンテナイメージのサイズが小さいことには様々なメリットがあります。 DockerHub ではイメージサイズを最小化するために Alpine Linux ベースのイメージも公開されていますが、 Debian ベースのイメージと比べパフォーマンスや互換性の面でデメリットを抱えています。

パフォーマンスや互換性は妥協したくないけど軽いイメージが欲しい...!

そんな夢を叶える Distroless PHP プロジェクトについて紹介させていただきます

13
採択
2024/12/22 11:25〜
トラック3 - 4F コンベンションホール 梅
レギュラートーク(25分)

入門 文字列

tadsan うさみけんた

文字列(string)はPHPのみならず多くのプログラミング言語で提供されている基本的な機能のひとつであり、誰でもあたりまえに使っているものです。しかしその実態は多様で、一筋ではいかない概念であります。

本トークでは文字列という概念の概観を掴み、一筋ではいかないということを納得して向き合えるようになることを目指します。

  • PHPの文字列の性質
  • 文字コードとは何か
  • UnicodeとUTF-8
  • プログラミング言語は文字をどう扱うか
  • レガシー文字コードに立ち向かう

ただし、以下の内容については詳しく取り扱いません。

  • mbstringモジュール内部構造の最新動向
9
レギュラートーク(25分)

爆速な開発環境を構築する 〜 Development Container のすゝめ

zeriyoshi 工藤 剛

Microsoft によって提唱されているコンテナ技術を開発環境の構築に利用する規格 Development Container
Visual Studio Code で最初にサポートされ、 GitHub Codespace や Visual Studio, さらには JetBrains の IntelliJ IDEA でもサポートが開始されています。

実は PhpStorm でもベータながらサポートされており、すでに実開発で利用可能な水準に達してきています。

今回はそんな Development Container と PhpStorm を用いて、 Laravel アプリケーションの開発環境を爆速で構築する方法を紹介します。

4
採択
2024/12/22 14:20〜
トラック2 - 2F 小展示
レギュラートーク(25分)

怖くない!ゼロから始めるPHPソースコードコンパイル入門

zeriyoshi 工藤 剛

みなさんが普段から利用している PHP はどこから入手したものでしょうか。パッケージマネージャや DockerHub のイメージからという人が多いのではないかと思います。
でもちょっとまってください。 PHP はオープンソースプロジェクトであり、コードは誰でも入手することができます。つまり自分でビルドできるのです!

🔓 オープンソースの魔法、解き放とう
🛠️ 自分だけの PHP 、手作りの喜び

今回は以下の内容についてお話します。

  • PHP をソースコードからビルドするメリットについて
  • PHP のソースコードを取得方法
  • ビルド環境の構築方法
  • 代表的なビルドオプション
  • ビルド〜動作確認まで
6
採択
2024/12/22 12:45〜
トラック6 - 3F 特別会議室
レギュラートーク(25分)

ChatGPT とつくる PHP で OS 実装

m3m0r7 めもり〜☆

PHP で JVM (a.k.a. Java Virtual Machine) を実装したり,RubyVM を実装したりと様々な試みがなされてきました。
PHP といえばウェブ開発に特化したプログラミング言語だと思われがちかもしれませんが,今では他のプログラミング言語と遜色ないほど様々なことができます。
もちろんそれは,PHP で OS を実装することも例外ではありません。OS の実装は途方もない時間がかかるしハードルが高いと感じるかもしれません。でも大丈夫。私たちには ChatGPT がついているじゃない。
本トークでは,ChatGPT とともに PHP で OS を実装する方法を解説します。

6
レギュラートーク(25分)

ChatGPT とつくる PHP で Intel x86 アーキテクチャ向けの CPU エミュレータ実装

m3m0r7 めもり〜☆

PHP で JVM (a.k.a. Java Virtual Machine) を実装したり,RubyVM を実装したりと様々な試みがなされてきました。
PHP といえばウェブ開発に特化したプログラミング言語だと思われがちかもしれませんが,今では他のプログラミング言語と遜色ないほど様々なことができます。
もちろんそれは,PHP で CPU を実装することも例外ではありません。CPU にも様々な種類があり,Intel や AMD が代表どころですが,CPU 自体が違えば
実装方法も大きくことなります。
手軽に CPU を自前で実装するのは事前知識がいくつか必要であり,多くの文献を参考にしなければ一つの形にするには時間を要することでしょう。
本トークでは,ChatGPT とともに Intel x86 アーキテクチャをベースに手軽に PHP で CPU エミュレータを実装する方法を解説します。

4