採択
2023/10/08 12:40〜
トラック4 - 4F コンベンションホール 鶯
レギュラートーク(25分)

良いテストとは何か:持続可能で保守性の高いテストを書く

picopico_dev 当田 昇

あなたは"良い"テストが書けていますか?

普段テストを書いている人でも、良いテストを意識して書くことは意外と難しいです。

高品質なアプリケーションを開発するためにテストは必要不可欠ですが、
品質の悪いテストが増加すると、かえって開発の足かせになりかねません。

本トークでは、15年以上の歴史を持ち、数万のテストを有するPHPアプリケーションの開発に参加して得た経験や反面教師をもとに、
持続可能で保守性の高いテストを書く方法について解説します。

話すこと

  • 良いテストの指標
  • テストを書くメリットを最大化する
  • テストの保守コストを最小化する
  • テスト容易性の高いコードを書く

こんな人向け

  • テストを書いたことがある人
  • より良いテストの書き方に関心がある人
29
LT(5分)

PHPer アルケミストになる

c_a_p_engineer こぴぺたん

PHPerな僕がアルケミストになってElixirを触っている話。

PHPがメイン言語な僕がElixirを触っていてPHPと似ているところやElixirの良いところや癖など紹介。
Elixirからの良い文明をPHPに持ってきたい。

【対象者】

  • Elixirに興味がある人
  • Elxir を既にやっていてPHPに興味ある人
LT(5分)

PHPプログラミングの新人研修が面倒だったので自動化した話

c_a_p_engineer こぴぺたん

受け持っているプロジェクトの進行と新人教育の両立は、多くのエンジニアが直面する課題です。
この課題を解決するために、PHPの研修をDockerとDevContainerを使用して自動化する方法を思いつき実践してみました。

どのようにしてPHPの研修を自動化し、新人が自己学習を進められる環境を整えたのかを共有します。
具体的には、問題を作成し、自動テストで答え合わせを行うことで、新人が自己ペースで学習を進められる環境を提供しました。

この方法により、新人の教育を効率的に行うことができました。

2
LT(5分)

PSRが覚えられないので、SymfonyでPSRのIntefaceを実装してる部分を具体的に見てみる

kin29ma_n 志賀 彩乃

みなさん、PSRを全部覚えてますか?
私は覚えてません。
なので、SymfonyでIntefaceを実装している具体的な部分を読んでみます。
その一部をご紹介します。

LT(5分)

事業を前に進めながら技術的な改善を進める取り組みの変遷

yanamura_ yanamura

普段からPHPやフレームワークのバージョンアップ対応、技術的負債の解消、新しい技術の導入など技術的な改善活動が日常的にできていますか?
技術的改善を進めたいけど事業を優先して時間がとれずなかなか進められないといったことがあるのではないでしょうか。

コネヒトでもこの問題に直面し、長年に渡り様々な試みをしてきました。
これらの試みでうまくいったことうまくいかなかったこと両方についてお話します。

みなさんの組織運営のヒントになると幸いです。

7
採択
2023/10/08 13:45〜
トラック6 - 3F 特別会議室
レギュラートーク(25分)

令和時代の PHP Extension の作り方 〜 FFI を添えて〜

zeriyoshi 工藤 剛

PHP には古くから PHP Extension という機構が備わっており、ネイティブで高速な言語拡張を提供することが可能です。
普段からよく利用されているであろう APCu や PhpRedis なども PHP Extension という形で提供されています。
実は、 PHP Extension 取り巻く環境が以前と比べて変わりつつあるのはご存知でしょうか?
今回はそんな PHP Extension の今について発表させていただきます。

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

PHP (本体) デバッグ入門

zeriyoshi 工藤 剛

PHP を使っていて予期せぬクラッシュなどに遭遇したことはありませんか?
バグ報告するにもバックトレースやコアダンプをどうやって取れば良いか悩むことも多いかと思います。
今回は PHP 本体のデバッグ手法について説明し、最低限のバグ報告ができるようになるまでを説明させていただきます。

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

大規模プロジェクトにおける静的解析との付き合い方

zeriyoshi 工藤 剛

PHPStan や Psalm 等の静的解析が急速に普及する中、既存の大規模プロジェクトに対し持続可能な形で導入するためには考慮しなければならないことが数多く存在します。
PHPStan を導入した実例を元に、大規模なコードベースに対しどのようなアプローチで静的解析を導入していったかについて説明させていただきます。

2
LT(5分)

気が利くDTO!データオブジェクトライブラリ「Laravel-data」導入してみた

古池新太郎 | 株式会社スタイル・エッジ

みなさんDTO(Data Transfer Object)使ってますか?
実際使用すると、Getter/Setterや型変換など、コード量が肥大化してしまうケースもあるのではないでしょうか。
それらの課題を解消すべく、入出力や加工をシンプルにできるデータオブジェクトライブラリ「Laravel-data」を導入してみました。

本セッションでは、Laravel-dataの機能を活用した「気が利くDTO」の作り方をご紹介します。

話すこと

  • Laravel-dataとは
  • 機能と事例
    • FormRequestやEloquent Modelなど、あらゆる形式から分解せずにDTO生成
    • 型宣言・アトリビュートのみでキャスト・バリデーションを自動適用
    • APIやView用など要求に応じた出力制御
    • プロパティ名変換・キャストなど加工ロジックの独自拡張が容易
1
LT(5分)

エンジニア経験2~3年のメンバー中心でDDD・TDDに挑戦してみた

古池新太郎 | 株式会社スタイル・エッジ

弊社では数年間運用してきた業務システムをフルリプレイスしました。
既存のシステムでは、業務ロジックが分散されていたり、業務知識の属人化などによって、開発スピードが出せなくなってきていました。

この状況では、機能拡充のボトルネックになることが明らかだったため、今回のリプレイスでは、ドメイン駆動設計(DDD)やテスト駆動開発(TDD)、依存関係や責務を明確にしたレイヤードアーキテクチャなどを取り入れた、よりモダンな開発に挑戦しました。

本セッションでは、モダン開発への挑戦にあたり、具体的に実践したことや直面した課題、工夫したことなどを話したいと思います。

本セッションで話すこと

  • 実際に行ったドメインモデリングの流れと気をつけたこと
  • DDDやTDD、レイヤードアーキテクチャをチーム開発で実現する上での取り組み
  • 直面した課題とそれを解消した仕組み
2
レギュラートーク(25分)

気が利くDTO!データオブジェクトライブラリ「Laravel-data」導入してみた

古池新太郎 | 株式会社スタイル・エッジ

みなさんDTO(Data Transfer Object)使ってますか?
実際使用すると、Getter/Setterや型変換など、コード量が肥大化してしまうケースもあるのではないでしょうか。
それらの課題を解消すべく、入出力や加工をシンプルにできるデータオブジェクトライブラリ「Laravel-data」を導入してみました。

本セッションでは、Laravel-dataの機能を活用した「気が利くDTO」の作り方をご紹介します。

話すこと

  • Laravel-dataとは
  • 機能と事例
    • FormRequestやEloquent Modelなど、あらゆる形式から分解せずにDTO生成
    • 型宣言・アトリビュートのみでキャスト・バリデーションを自動適用
    • APIやView用など要求に応じた出力制御
    • プロパティ名変換・キャストなど加工ロジックの独自拡張が容易
2
レギュラートーク(25分)

Laravelアップデートを行った経験をシェアする

kido

Laravelのアップデートを、Laravel Shiftを使いながら行ってきました。

実際にどのようなことを行ってきたかをお話しできればと思います。

アップデートをいずれ行う予定の方や、Laravel Shiftの導入を検討している方に
経験したことをシェアすることで、何かしらの参考になればと思います。

LT(5分)

偶然C言語と目が合ったのでPHPer目線で向き合ってみた(zip版)

st_tm_k satak

ーーー 深淵をのぞく時、深淵もまたこちらをのぞいているのだ。 (フリードリヒ・ニーチェ『善悪の彼岸』より)

ということは、私たちはPHPを触る時、無意識的にC言語をPHPという壁越しにのぞいているとも考えられるのでは?🤔
(たぶんC言語も私たちをPHP越しにのぞいている気がする)

というわけでC言語完全初見の自分から見たC言語の印象・PHPとの比較、
向き合った結果わかったこと・わからなかったこと等をお話してみようと思います。

【対象者】

  • C言語触ったことないけど興味ある方
  • C言語あるある有識者
  • C言語を読み書きできると何がうれしいか知りたい方・ご存知の方
1
LT(5分)

ECS(Fargate)で Laravel のリリース時の DB マイグレーションってどうやってますか?

benzoh_w benzoh

多くのWEBアプリケーションで導入されているであろう ECS(Fargate) 環境では DB マイグレーションってどうやってますか?

  • ECS Execログインを利用して migrate コマンドを実行する
  • ecspresso をつかう
  • 自前でマイグレーション用のコンテナを用意する
  • (他にもある?)

弊プロダクトでは マイグレーション用のコンテナを用意する 方法を採用しています。
コンテナ環境での DB マイグレーションの実行方法はあまり情報がないように思われるので参考になれば嬉しいです。

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

エンジニア経験2~3年のメンバー中心でDDD・TDDに挑戦してみた

古池新太郎 | 株式会社スタイル・エッジ

弊社では数年間運用してきた業務システムをフルリプレイスしました。
既存のシステムでは、業務ロジックが分散されていたり、業務知識の属人化などによって、開発スピードが出せなくなってきていました。

この状況では、機能拡充のボトルネックになることが明らかだったため、今回のリプレイスでは、ドメイン駆動設計(DDD)やテスト駆動開発(TDD)、依存関係や責務を明確にしたレイヤードアーキテクチャなどを取り入れた、よりモダンな開発に挑戦しました。

本セッションでは、モダン開発への挑戦にあたり、具体的に実践したことや直面した課題、工夫したことなどを話したいと思います。

本セッションで話すこと

  • 実際に行ったドメインモデリングの流れと気をつけたこと
  • DDDやTDD、レイヤードアーキテクチャをチーム開発で実現する上での取り組み
  • 直面した課題とそれを解消した仕組み
2
LT(5分)

Instagram Graph APIに詳しいので知見をたくさん公開する(怖い話もあるよ)

s_ikuta_tete 生田 聡満

Instagram使ってますか?
仕事でInstagramからデータを取得するAPIを毎日何万回と叩いてるんで、普通の人より詳しいです。
Meta社への問い合わせや許せねえ!というエピソードなど素早くたくさん話します。

Instagramのサービス作ってみようかな〜とか、Meta社が最近ThreadsだしたしAPI公開されたら気になってる〜や、外部API利用で起こる怖い話ききたい〜みたいな人に大変刺さる内容になるはずです。

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

エンジニアの少ない会社で新人エンジニアリングマネージャーがよい仕事をするために心がけたこと

s_ikuta_tete 生田 聡満

最近流行り?のエンジニアリングマネージャー。
ある日突然上司(非エンジニア)から会社初の技術職でのマネージャーをやってくれないかと打診があった私。
エンジニアリングマネージャーになって何したの〜から、上手くやれた話、上手くやれなかった話、めちゃ大変だった話をします。

エンジニアの少ない会社でエンジニアリングマネージャーになるのって何が大変?
実際にどんな仕事が増えたの?
なりたい人はどういうことやってくとよさそう?

みたいなことお話します!

LT(5分)

Symfony歴1年生が5分間でサービスを作り出すライブコーディングに挑戦!

mako5656_i 伊神 誠人

Symfonyフレームワークを使って、リアルタイムでメモアプリを作ります。
5分という限られた時間の中で、どれだけの機能を実装できるかを実証するために、ライブコーディングを行います。
もちろん、トラブルが発生する可能性もありますが、その場合はその場での対応をお見せします。

SymfonyはLaravelやCakePHPなどのフレームワークと比べ、少し敷居が高いと感じられるかもしれませんが、実際そうでもないと思っています。
1年間のSymfony経験で得た知見や手法を駆使し、5分間でどれだけ素早くアプリケーションを構築できるかを発表しようと思います!

お話すること

  • Symfonyで利用するコンポーネントの超簡潔な紹介
  • 限られた時間の中でのデモンストレーション

Symfonyに興味を持つ全ての方々に、実際の開発をリアルに感じていただける内容にしようと思います!

2
LT(5分)

東京で叫ぶ地方カンファレンスの存在意義

YKanoh65 加納悠史

新型コロナウィルスの流行により、リモートでのやり取りが多くなりました。
これは技術イベントも例外ではありません。

手軽に東京をはじめとする遠隔地の人々とコミュニケーションをとるようになった現在に、地方でカンファレンスを行う意義はなんでしょう?
そこには「最新の技術を知りたい」「楽しく盛り上がりたい」以外の重要なミッションがあります。

このトークではリモートが当たり前になった時代に、わざわざ地方でカンファレンスを開催する意義について、お話しします。

3
採択
2023/10/08 14:50〜
トラック3 - 4F コンベンションホール 梅
レギュラートーク(25分)

ノンフレームワークのレガシープロダクトを、Laravelに"載せる"実装戦略と、その後の世界

tomoki2135 廣部知生

ノンフレームワークのプロダクトに、フレームワークを導入した経験はありますか?
計画で諦めた人、チャレンジして失敗した人もいるかもしれません。

私の開発しているプロダクトは2001年にリリースされました。
当然設計もレガシーで
・PHPファイルにHTMLがベタ書きされている
・ルーティングはページごとにxxx.phpが存在する
など、非常に”牧歌的”設計になっています。

そんなプロダクトを、Laravelに移植するプロジェクトが立ち上がりました。

誰もが無理だと思ったこのプロジェクトは
""載せる""をキーワードに設計され、無事にリリースされました!

このトークでは”載せる”をキーワードに
”載せる”戦略と、そのメリット
”載せる”ときに苦労した点
”載せた”あとの世界
についてお話します!

※このトークは、PHPerKaigi2023で行ったLTのレギュラートーク版です。