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

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

tomoki2135 廣部知生

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

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

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

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

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

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

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

ユニットテスト環境整備~みんながテストを書ける環境へ~

堀川慶太

開発速度の優先は時にユニットテストを犠牲にします。

私のプロダクトはリリースから15年を超えてなお、テストを書くというカルチャーが根付いていませんでした。
その結果、品質問題が日々顕在化していく中で、昨今一般的であるテストを書きながら開発をする手法を取ることで品質を上げていこうという機運がチーム内で高まりました。

しかし、環境整備をしてもテストが書かれないという事例も往々にしてあります。
私たちも過去にテストライブラリ導入を行いましたが、テストはほぼ書かれませんでした。
既存プロダクトにテストを書くカルチャーを根付かせるのは難しいのです。

本トークでは、ユニットテストを書きながら開発していく環境を整備していった一連の流れとその後をお話しします。

【話す内容】
・環境整備を行った経緯・後日談
・ライブラリ移行(codeception⇒PHPUnit)
・CI運用
・テスト記述方針整備

採択
2023/10/08 13:45〜
トラック5 - 1F 会議室AB
レギュラートーク(25分)

25分で理解する!Symfonyの魅力とその実践的活用法

ippey_s 角田 一平

Symfonyは、PHPのフレームワークの一つで、多くのPHPerに愛用されています。その魅力とは何でしょうか?そしてその魅力をどのように活用すれば良いのでしょうか?

このセッションでは、Laravelなど他のフレームワークが優位を占める現在でもSymfonyが一定のシェアを保つ理由、Symfonyの特性とその魅力について掘り下げます。

  • Symfonyの主な機能とそのユニークな特性
  • Symfonyがもたらす開発効率の向上とその理由
  • 実際の現場でSymfonyを活用するケーススタディ

このセッションを通じて、他のフレームワークを使用している方に、Symfonyの可能性とその魅力を感じていただき、Symfonyを活用した開発の新たな視点を提供できればと考えています。

このセッションは、PHPフレームワークに興味がある方、Symfonyについて知りたい方に特におすすめです。

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

なぜ人は組織から去っていくのか?

samurai_se Kanon

システム開発を行う上で必ず存在するもの、それは組織です。
そして組織には人の出入りがつきものです。
しかし、入る人間よりも出る人間の方が多いと次第に組織運営は立ち行かなくなってしまいます。

このトークではなぜ人は組織から去っていくのか?自身の経験+書籍『エンジニアリングマネージャーの仕事』をもとに考察した結果をお話したいと思います。

具体的な内容

  • 自身の経験に基づく、組織を去るときのマインド
  • 書籍『エンジニアリングマネージャーの仕事』に基づいた、「エンジニアリングマネージャーが与えるべきもの」
  • 自身の経験と書籍『エンジニアリングマネージャーの仕事』で語られる「人が去っていく理由」を照らし合わせた結果

対象者

  • 現在進行形でエンジニアリングマネージャーの方
  • 長く一緒に働いてくれる同僚を探している方
  • 転職を考えている方
採択
2023/10/08 15:20〜
トラック5 - 1F 会議室AB
レギュラートーク(25分)

わたし、Composerが気になります

22kerokero22 kerokero

composer.jsoncomposer.lockcomposer requirecomposer install......よく分かんないぞ。
そんな疑問を持ったまま、なんとなくモヤモヤとしている新米PHPerを救いたい。

このトークでは、Composerというやつが何なのかを紹介します。

具体的な内容

  • Composerの役割について
  • composer.json .lock requireについて
  • プラットフォームパッケージについて
  • pharについて
  • autoloadについて
  • 実際にComposerを使って構築してみる

対象者

  • Composerが気になる人
  • 「pharアーカイブ」ってなんだよ?という人
  • 「autoload」ってなんだよ?という人
  • PHP初心者の人
レギュラートーク(25分)

PHPで学ぶGitの仕組み

22kerokero22 kerokero

現場で働くうえでよく分からん&ほぼ必須な要素としてGitが存在します。
とはいえ、gitについて調べても「 commit や push みたいな基本操作は分かるけど、深いところが何も分からん……」となりがちではないでしょうか?

このトークでは、ベテランエンジニアはなぜか知っている git 知識についてお話ししようと思います。

具体的な内容

  • git init した際に構成される.gitディレクトリの中身について
  • GitHub上にあるgit/gitのソースコードを覗いてみる
  • 実際にgit addgit commitをPHPで実装してみる

対象者

  • 簡単なgitコマンドは扱える人(add, commitなど)
  • 複雑な操作になると不安になってしまう人
  • あの日破壊したブランチのことをまだ忘れられない人
3
レギュラートーク(25分)

完全未経験のIT初心者に、2か月ほど夜な夜な PHP を教えてみた結果

22kerokero22 kerokero

先日、製造業で働いている友人からIT業界に転職したいという話をいただいたのですが、その際にある疑問が湧きました。
それは、完全な初心者が2か月間訓練したら、どれくらいPHPが書けるようになるのだろうか……?というシンプルなものです。
お互いに平日はお仕事があるので、夜中や休日にひっそりとお勉強するしかありません。

IT未経験の若者が苦労の末 2か月間でPHPを習得する 話、 聞いてみたくない ?

具体的な内容

  • PHPやバックエンドについて教えた2か月間の記録
  • 教わる側の新人目線でどういうところがキツイと感じたかについてのぶっちゃけ裏話
  • 実際に教えた技術実践で作ったもらった成果物の紹介

対象者

  • 未経験エンジニアの可能性に興味がある方
  • 新人教育でPHPを教える際に難しさを感じている方
6
レギュラートーク(25分)

Webシステム開発の新潮流 「フルサイクル開発者」

pinkumohikan 篠田 北斗

フロントエンドやバックエンドのような技術的関心事で担当領域を区切るのではなく、プロダクトが価値を提供するために技術面全般へ責任を持つ「フルサイクルエンジニア (full-cycle developer)」という考え方が流行りつつあります。
本トークではフルサイクルエンジニアとして5年ほど仕事をしてきた私が、フルサイクルエンジニアとは何なのか、何をやり何をやらないのか、良いところ大変なところ、キャリアについての懸念についてお話します。

対象観客

  • フルサイクルエンジニアという考え方に関心があるかた
  • フロントエンド/バックエンド/インフラだけを専門的にやっているがこれで良いのか?という悩みを抱えているかた

話すこと

  • フルサイクルエンジニアとは何か
  • フルスタックエンジニアとの違い
  • やること・やらないこと
  • 良いところ・大変なところ
  • 専門性やキャリアへの懸念
1
レギュラートーク(25分)

フリーランスWebエンジニアというキャリア

pinkumohikan 篠田 北斗

だいぶ市民権を得てきたフリーランスという働き方。
2019年にフリーランスになって4期目を迎えた私が、フリーランスのWebエンジニアとして働くということについて広くお話します。

対象観客

  • フリーランスWebエンジニアをというキャリアに関心があるかた

話すこと

  • そもそもフリーランスとは何なのか
  • 正社員との働き方の違い
  • どういう人がフリーランスに向いている、向いてないのか
  • どうやって仕事を取っているのか
  • いつまでフリーランスとして働けそうなのか
  • フリーランスのつらいこと
  • お金の話
  • 住宅ローン組める組めない話
1
レギュラートーク(25分)

動くソフトウエアを素早く提供するためのスプリントの過ごし方

sanogemaru Genki Sano

アジャイルソフトウェア開発宣言の中に「包括的なドキュメントよりも動くソフトウェアを」と記載がある通り、アジャイル開発において「動くソフトウェア」というものは非常に重要視されていると思います。
そのため、普段の開発業務で「動くソフトウエア」を素早く提供することを求められる場面は、きっと多いのではないでしょうか?(むしろ、常にそういう期待値を持たれているかもしれません。)

本トークでは、そんな「動くソフトウエア」を素早く提供するために実際にスクラムチームで取り組んだことについて、実体験をベースにした知見をご紹介します。

このトークでお話すること

・「動くソフトウエア」とは何か
・どうやって価値提供のスピードを上げたのか
・内部品質を保つためにどんなことをしたのか
・まだ改善していく余地はあるのか

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

モジュラーモノリスを導入してみたチームの裏話

sanogemaru Genki Sano

数年間で成長してきた自社プロダクトですが、モノリスの複雑化の増大に対して軽減・改善していくために、モジュラーモノリスを導入することにしました。

そんな話を度々耳にしたことがあるのではないでしょうか。
ただ、実際にやってみたら「こんなはずしゃなかった」「予想外にいいことがあった」みたいなことになる、そんな経験がきっとあると思います。

本トークでは、モジュラーモノリスを導入した際の現場目線での知見や体験談をお話します。
モジュラーモノリスの1歩目を踏み出そうと思っている方や、レガシーコードに日々向き合っている方に聞いていただけると嬉しいです!

このトークでお話すること

・Pakege By Feature について
・導入するに至った背景
・モジュール構成とその中身について
・導入してみてよかったこと/苦労したこと
・これからの展望

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

学園祭Web開発の現場とPHPのこれまでとこれから──技術選定と教育から語る

Arthur1__ Arthur

私は学生時代に学園祭実行委員会に所属し、PHPを用いた学園祭Webサイトの開発・運用や情シス業務に携わっていました。その頃の経験を振り返り、学園祭というドメインならではのWeb開発の過去と未来に触れつつ、一般のエンジニアでも他人事ではない技術選定や教育に関する話をします。

こんな話を時間の許す限りします

  • 「学生」「学園祭」というドメインならではのチーム・プロダクトの特徴
  • PHPでの開発を学び、後輩に伝承するための講習会と砂場遊び
  • 現代における学園祭Webサイトの設計論
  • 社会人エンジニアとなった今、役立っている経験
5
採択
2023/10/08 11:20〜
トラック6 - 3F 特別会議室
レギュラートーク(25分)

クレジットマスターとの戦い

NakMeKtt 仲見川勝人

近年、ECサイトなどにおいてクレジットマスターと呼ばれる、ランダムにクレジットカード番号を生成してECサイトのクレジットカード入力欄を用いてオーソリチェックをかけまくるという迷惑極まりない攻撃が増加傾向となっています。
私の関わるサービスでも例に漏れず攻撃を受けたことがあり、その対策に追われました。
今回はLaravelの機能を用いての対策や、もう一歩踏み込んだ対策を行ったのでご紹介してみようと思います。

内容

  • LaravelのThrottleについて
  • Throttleだといまいちだった事
  • 他にやった対策(開発)

こんな人向け

  • クレジットマスター対策をしたい人
  • LaravelのThrottle(大量のアクセスを制限する機能)について知りたい人
採択
2023/10/08 15:20〜
トラック4 - 4F コンベンションホール 鶯
レギュラートーク(25分)

既存コードベースにもPHP_CodeSnifferを導入して楽したい!

takaram71 荒巻拓哉

多くの現場でコーディング規約が策定され、それに沿った開発が行われています。
私のチームでもコーディング規約があり、実装者とレビュー者がそれぞれチェックを行っていました。
しかし守るべきルールの数は80を超え、人間が限られた時間の中目視でチェックするのは無理がありました。その結果見落としも頻発していました。

大変なことは自動化するのがプログラマの美徳。そこでPHP_CodeSnifferをIDEとCIに導入し、人間の負荷を下げることに成功しました!

しかしその裏では、既存プロジェクトであるが故のいくつもの障壁がありました。
「独自の規約なので、定義済みのルールセットを利用できない……」
「既存コードに違反があるせいで、毎回CIがエラーになる……」

このトークでは、約半年をかけてPHP_CodeSnifferをチームに導入した経験談と、直面した障壁の乗り越え方についてお話しします。

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

クエリパフォーマンスチューニング:スロークエリを未然に防ぐために計測する

sucalul すか

「推測するな、計測せよ」という言葉は、改善策を探す時だけでなく、新機能をリリースする時も同様で、「計測」することは重要です。
開発環境の少量のデータを扱う場合は問題なく動作するクエリも、本番環境の大量のデータではパフォーマンス低下し、スロークエリになる可能性があります。
今回は、フィルターによる約160万行削除とNested Loopのトータルコストが約12万、実行時間が約600msかかるクエリを、サブクエリを活用し、Nested Loopを無くし、実行時間を約0.2msに改善をした事例を取り上げます。

話すこと

  • 実行計画の解読:EXPLAINコマンドの理解
  • 実際に行った対応
    • 本番レコードの調査
    • どのようにクエリの再設計を行ったか
    • INDEXの再考

注意:このトークではPostgreSQLを使用しています。

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

Chromatic x Storybookでフロントエンド開発をもっとスピードアップする。

yasuaki640 渡邉泰暁

Laravel開発でのフロントエンドとしても使用されるVue/Reactは、コンポーネントを分割して開発する手法が多く取り入れられています。
その際、コンポーネント単位での開発を可能にするStorybookを活用し、コーディングはもちろん、Visual Regression TestやUIレビューのような、コーディングの先の運用についても活用してみませんか?

本トークでは、Storybook開発元のSaaS「Chromatic」について、実際に導入して感じたメリットや、導入のハードルを突破する知見を共有し、フロントエンド開発をスピードアップする方法をご紹介します。

対象の方

  • Storybookをもっと活用したい方
  • VRT入れるの大変そうで手を出せてない方
  • イケてるSaaSを入れたいけど、(セキュリティやコスト的に)うちの会社じゃ無理かな、という方
1
レギュラートーク(25分)

AWS CDK TF で Kubernetes を構築して、マルチクラウドなサービス展開をしよう!

akai_inu やまゆ

ブラウザでクラウドコンソールをポチポチしてインスタンスを立てる時代は終息へ向かい、現在は IaC によって 「コードでインフラを構成する」 ことが一般的になってきました。

AWS CDK は AWS CloudFormation を生成するマルチ言語ツールですが、実は AWS CDK TF と呼ばれる、 Terraform に向けて出力を行うものが存在します。

今回は AWS CDK TF を使い、多くのクラウド(ローカル仮想環境含む)で利用出来る、 LAMP ベースの Kubernetes 環境をデプロイできるようにする事例を紹介します。

対象者

  • IaC をプログラミング言語で書きたい方
  • Kubernetes もプログラミング言語で構築したい方
レギュラートーク(25分)

新時代は NewSQL っしょ!ということで TiDB を使ってみた件

akai_inu やまゆ

MySQL や PostgreSQL は非常に安定した信頼できるプロダクトです。これまでの数々の実績を見てもそれは確実でしょう。

しかし、 IT 業界の規模が急速に拡大し、クラウドサービスが席巻している今、「1インスタンス1DB」を前提として設計されたそれらプロダクトには性能限界が来ています。つまり スケーラビリティの問題 です。
その問題を解決しようとしているのが Google Spanner や PingCAP TiDB などの NewSQL と呼ばれる新時代のリレーショナルデータベースです。
今回はその中でも TiDB に焦点を当てて、 MySQL や Spanner と比べたメリット/デメリットを実際に使って検証します。

対象者

  • MySQL でスケーリング大変だ、と思っている方
  • NewSQL(TiDB) の実力がまだわからない方
2
レギュラートーク(25分)

Laravel Livewire v3 でグッバイ JavaScript

akai_inu やまゆ

「なんで PHP をメインで書いているのに、 JavaScript(TypeScript) も一緒に書かないといけないんですか! React ってなんですか!今は Svelte が良いって聞いたけどじゃあどれ使えばいいんですか!」

という問題を解決するかもしれないのが Laravel Livewire です。これを使えば、 PHP でフロントエンドのロジックを記述することが可能です。

今回は、 LaraconUS 2023 で発表された Livewire v3-beta と関連パッケージを使って、(ほとんど) PHP だけでフロントエンドロジックも実装してしまう技術を紹介します。

対象者

  • JavaScript(TypeScript) しんどい方
  • 「全部 PHP がいい!」という方
2
採択
2023/10/08 12:40〜
トラック3 - 4F コンベンションホール 梅
レギュラートーク(25分)

大解剖! amphp を使って非同期 PHP を実現しよう!

akai_inu やまゆ

PHP はデータベース通信、ファイル操作などの I/O バウンドなユースケースで多く使われています。

これまでの PHP では I/O 処理でブロックし、処理が終わるまで待機する仕組みになっていましたが、 PHP 8.1 から Fiber がコア実装に含まれたことにより、 PHP でも非同期な処理をサードパーティ extension なしでより簡単に実装することが出来るようになりました。

中でも注目を集めるライブラリ群が amphp です。このライブラリ群は、 HTTP サーバや MySQL クエリの非同期化など様々な高レベル実装を提供しています。

今回は、現段階で実装済みの各ライブラリを紹介し、今後 PHP でも非同期処理を使いやすくなるぞ、ということを紹介したいと思います。