LT(5分)

一つ覚えればOK! PhpStorm + Xdebug 設定マスターへの道

hanhan1978 富所 亮

Xdebug は開発時に最も頼りになる相棒です。
一般的には、ウェブアプリケーションのステップ実行が有名ですが、コンソールコマンドや、PHPUnit のテストでもステップ実行させることが可能です。

しかし、慣れていない人には、Xdebug の設定はむずかしいです。あれもこれも色々試すけど、上手く行かないことも多いです。
本LTでは、ポイントを一つに絞り、PhpStorm と Xdebug の連携方式にのみフォーカスします。

仕組みさえ押さえれば、どう設定すればよいかは自ずと思い浮かんで来ます!
Xdebug の設定はこわくない!上手に Xdebug を設定して、スムーズなウェブアプリケーション開発を楽しみましょう!

4
LT(5分)

リモートワーク時代の Tips : 生産性向上 と 学習モチベーション維持術

hanhan1978 富所 亮

みなさん、毎日元気に仕事できていますか?
リモートワーク全盛になって、家に一人でいるとモチベーションの維持が難しい?

この LT では、中堅エンジニアの私が、日々安定したパフォーマンスを維持しつつ、エンジニアとして必須である「学習」を維持するためにやっていることを紹介します。
同じことをやれと押し付けるわけではありません。こんな工夫をしているのか?と参考になれば幸いです。

このトークで話す内容

  • ポモドーロ・テクニックの利用と運用
  • タスクとスケジュールの管理
  • 体調維持、健康管理
  • 振り返り
5
LT(5分)

メーリングリストで磨くPHP力:知識と経験の宝庫を楽しもう

hanhan1978 富所 亮

2022年の4月から、ふと思い立って PHP のメーリングリスト(Internals)と PHP のバグイシューを全部読む行動を始めました。最初はしんどかったのですが、段々と体が慣れてきて、ついには週1でまとめを発表するまでになりました。

当然ですが、メーリングリストの中身は PHP の話題で満載です。知らない機能、使ったことのない関数、初見の仕様などが盛りだくさんです。

本 LT では、PHP 情報にまみれた生活を送ることで得られる経験について解説します。

6
LT(5分)

PHP でも WebAssembly:基本解説と楽しい遊び方

hanhan1978 富所 亮

WebAssembly (WASM) とか WASI と呼ばれる単語が、ウェブエンジニア界隈で飛び交っています。PHPerKaigi 2023 では、ブラウザ上で動作する PHP についての登壇もありましたが、本 LT では、実際に動作するサンプルを見せつつ、WebAssembly の基本を解説します。ついでに、ちょっと WebAssembly で遊んで見ましょう!もちろん PHP で!

7
LT(5分)

PHP を使って本気で高速なウェブサーバーに挑戦

hanhan1978 富所 亮

高速化が進み、JITコンパイラも導入されたPHPですが、残念ながら高速なスループットを求められる現場においては他のコンパイル型言語が選ばれることが多いです。
最近では、ISUCONにPHPで挑戦するものも少なくなりました。しかし、だからこそ!PHPでウェブサーバーを書いて、色んな言語に速度で挑戦しましょう!

以前挑戦したときは、OpenSwoole に頼り切りでしたが、今回はさらに色んな方式を試します。

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

PHPer に知ってほしい Microsoft Azure の現在

tsubakimoto_s 松村 優大

アプリケーションを安定的に運用していくには、安定した実行基盤を構成する必要があります。
プラットフォームの選択肢として Microsoft Azure というクラウドをオススメしたいです。

「PHPとAzure」についての情報はそれほど多くないため、親和性はあまり良くないんじゃない?と思う人もいるかもしれません。
しかし現在の Azure は様々なサービスが提供されており、PHP 製のアプリケーションでも PHP を普段使っているエンジニアでも、様々なシーンで Azure を利用することができます。
PaaS (Platform as a Service) を中心としたアーキテクチャーを構成することで、運用の作業負荷を軽減し、エンジニアが本来の役割や作業に専念するための環境を作ることができます。

アーキテクト(アーキテクチャーを考える人)やアプリケーション開発者を対象に、Azure で実現するクラウドアーキテクチャーについて紹介するセッションを行います。

【取り上げる予定のキーワード】
パブリッククラウド、Microsoft Azure、PaaS、GitHub、コンテナー、CI/CD、サーバーレス、DevOps、NoSQL、開発環境

4
LT(5分)

Docker Compose秘伝のタレのレシピ解説

na_it_o くすのき

PHPをDockerコンテナで動かし始めるとき、ローカル環境はDocker Composeで実装している人が多いのではないでしょうか。
Webサーバ (nginx) で受けてアプリケーションサーバ (php-fpm) で処理してDBサーバ (mysql) に接続する、そんな流れは知っていても、最初のうちはどう記述すればいいかよくわからず困りますよね。
結果、代々プロジェクトでコピペされてきた、あるいはインフラの人に声をかけると出てくる"秘伝のタレ"をあまり理解しないまま使ってしまっていませんか?
秘伝のタレを継ぎ足してきた立場から、その中身を紹介・解説します。理解してより旨いタレを作りましょう。

話すこと

  • Docker Composeで起動する基本のサービス構成 (Web/App/DB)
  • リバースプロキシ (HTTPS-PORTAL, Traefik) を利用したTLS終端, サービス間のポート競合回避
1
レギュラートーク(30分)

複数サービスのシームレスな運用を目指したNotionの活用方法

litencatt 中村 光佑

Notionはとても優れたドキュメンテーションサービスであり、ある程度使い方を覚えてしまえばこれまで様々なWebサービスを組み合わせて仕事していたものが使い方次第でNotionだけでそれらが行えて便利なことから、自身が所属する会社においても導入後はエンジニアに限らず様々な職種の方々が利用しています。

自身が所属する事業部内で私は複数のサービスを運用するチームにも所属しており、そこで最も利用しているNotionの機能はデータベース機能です。Notionのデータベース機能とは単なるページの集合体ではなく、フィルター機能や各種ビュー機能などが備わっていることから、複数のサービスの仕様や運用マニュアルなど膨大な量のドキュメントを分類して管理するのにとても便利な機能であり、すでにサービスの運用を行う上では欠かせないものとなっています。

しかしそのようなデータベースをここ2〜3年管理する中、ドキュメントやデータベースが日々増加してきたことで以下のような課題や要望が発生してきました。

  • 問い合わせ対応をする上で運用マニュアルを管理するデータベースから知りたい情報がうまく見つけられない場合がある
  • 仕様や運用マニュアルなどコンテキストごとに複数のデータベースを作成しているが、それらの情報が連携できておらず欲しい情報にうまくたどり着けない
  • 普段Slackで運用メンバー同士がコミュニケーションをとっているのでそこからNotionの情報にシームレスにアクセスしたい
  • サービスの仕様などサービスにとって重要なドキュメントはレビューした上で更新したい

このような課題や要望を解決するために運用しているルールや利用しているツールなど、自身が所属する組織においてどのようにNotionを活用してサービスを効率的に運用しているかについての知見を共有したいと思っています。

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

プロダクト開発の正義と善行 〜 そこに愛はあるのか

chatii ちゃちい

日頃、皆さんは何かしらの開発業務を行なっているでしょう。多くのメンバーで、プロダクトをどのように進めていくかよく話し合われ、同意のもと開発が進んでいる現場もあるでしょう。はたまた、少ないメンバーで、いろんなことが決め切らずに開発フェーズに入ることもあるかもしれません。

本トークでは、いずれの場合でもプロダクトを作る上で正義はあり、善行を行えることをお伝えしたいものです。
正義に基づく仕事なのか、仕事の結果善行となっているのか。本プロポーザルをお読みの方には、その2つにどんな違いがあるのかお分かりにならないと思いますが、ぜひともぼくのトークから仕事に反映できる何かを掴んでいただければ幸いです。

聞いていただきたいターゲットは以下のような方々です。

  • エンジニアになってまだ1〜2年、1社目で今が良いのか悪いのかわからない
  • 子供がいて、エンジニアリングと子育てになにか共通点がありそうと感じている
  • 他のトークが技術ガチな話なので箸休め的に
5
LT(5分)

世界最強テキストエディタEmacsでPhpStormを超える方法

takeokunn たけてぃ

Emacsは世界最強のテキストエディタであり、PHPプログラミング単体を切り取ってもPhpStormを超える可能性を祕めています。

本LTはEmacsがPhpStormで出来ることと同様の操作が可能であることをお伝えします。
そしてもっと高度な操作やEmacsの機能を最大限に使いこなす方法を紹介していきます。

ぜひ本LTで「世界最強テキストエディタ」Emacsの可能性について感じていたきたいです。

話すこと

  • Emacsへの愛について
  • EmacsでPHPを書く際に便利なパッケージについて
  • LSPやDAPについて
  • org-modeの活用方法について
2
LT(5分)

プロジェクトの振り返りの必要性と意義あるものにするための努力

kankitsudo かんきつ

プロジェクトの振り返りは行っていますか?

振り返りにて
「これまでの問題点」
「これから伸ばしていく点」
を発見できるかもしれません。
プロジェクトの結果は技術面だけでなく、人為、経営など、多方面から影響を受けます。
これまでKPT法というフレームワークを用いて行った振り返りmtgで
記憶に残っている体験談をお話しします。

会社員時代、エンジニア同士にて行った振り返りmtg
サブリーダーを担ったプロジェクトにて行った振り返りmtg
案件に参画した際のチームにて行った振り返りmtg

素晴らしいフレームワークを使っても、
全てが有意義な振り返りmtgにはならないこと、
有意義な振り返りmtgには努力が必要であることをお伝えできれば嬉しいです。

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

phpstan-strict-rulesでよりbetterなphpを手に入れよう

takeokunn たけてぃ

近年、PHPプロジェクトの品質を高めるためのツールとしてPHPStanのような静的解析ツールが導入されるケースが増えています。

しかしながら、PHPStanをただ単に導入しただけではバグを完全に潰すには足りません。
PHPStanに新たなルールを加え、更に厳しくするためのPluginがphpstan-strict-rulesです。

PHPには厳密性に欠ける関数が散在します。
例えば、 in_array に第三引数を渡さないと厳密性が損われるので警告を出してくれるといったものです。

phpstan-strict-rulesを普及すれば、誰もが安心して開発できる環境が整うと信じています。

対象

  • 既存のPHPStan level maxでは満足できない身体になってしまった人
  • PHPStanでは捕捉しきれないバグに遭遇したことのある人
  • 型に厳しい別言語から来た人
2
レギュラートーク(15分)

PHPで浮動小数点数を文字列に正しくキャストする

sanogemaru 佐野元気

PHPerのみなさんは金額計算などで、BCMath関数を使ったことがあるのではないでしょうか?
この関数郡は共通して「引数を文字列にする」という特徴があります。

ただし、floatをstringにキャストする際は少し注意が必要なので、正しくキャストするための方法をご紹介します。

本トークで話すこと

  • 何故float型を四則演算すると計算結果がずれてしまうのか
  • float型を単純に文字列にキャストするのは危険
  • 文字列に正しくキャストするにはどうしたらいいのか
2
レギュラートーク(30分)

コードを計測することで捉える問題点

blue_goheimochi 大橋 佑太

コードの問題点は見た目にはなかなか表れません。
長年の経験でピンとくる場合もあるかと思いますが、多くの場合知らず知らずのうちによくないコードが増えていき、気付いた頃にはそれは「レガシーコード」と呼ばれるようなコードになっているかもしれません。

ではどのようにして問題点に気付くことができるでしょうか??

そのための1つのアプローチがコードを計測することだと考えています。
コードを計測することで得られる情報は多岐にわたります。例えば、コードのサイズ、重複コードの有無、コーディング規約の遵守状況、循環的複雑度、エラーの有無などです。これらの情報を取得することで、コードの状態を明らかにすることができます。

計測した数値はそれ単体で問題点を示すわけではありません。
その他の数値と組み合わせたり、実際にコードと照らし合わせて判断することが必要です。

本トークでは、主にコードをツールで計測することによって得られる結果に着目し、どのようにしてコード改善にアプローチするかをお話しします。

本トークでは主にコードをツールで計測することによって得られる結果に着目しながら、どのようにコードを改善に対してアプローチをすることができるか?をお話しさせていただきます。リファクタリングやコード改善に携わる方々にとっての一助となればと思っております。

5
採択
2023/06/24 10:30〜
Fusicホール
レギュラートーク(15分)

【令和最新版】開発者フレンドリーなHTTP SDK作るには

tadsan うさみけんた

あなたのアプリケーションでは外部APIを参照していますでしょうか。
あるいは、あなたの作ったAPIを開発者に利用してほしいと考えていますでしょうか。

外部システムをプログラミング言語から使いやすくするパッケージはSDK(software development kit)と呼ばれることもあり、HTTPリクエストの発行やPHPクラスへのマッピングが主な責務になります。

基本的にはマニュアル通りの設定をしてメソッドを呼び出して使えるようにれば最低限使えるSDKができますが、開発やテストのしやすさという観点ではそれだけでは不足です。

このトークでは開発者とSDKユーザーの立場から、2023年現在で考えられるSDKの理想形とテスト手法について手短かに紹介します。

キーワード

  • PSR-7, PSR-18, Asynchronous request
  • 🙅🏻‍♀️ 不用意にGuzzleに依存しない
  • HTTPlug Discovery

本稿の前提となる議論についてはPHPからのHTTPリクエスト (2016年版)にも掲載しているので、予習にどうぞ。

12
レギュラートーク(15分)

Laravelがリクエストを受け取ってからレスポンスを返すまでの流れを一つひとつ丁寧に

aki_artisan あかつか

Laravelなどのフレームワークを使うと、安全なアプリケーションを素早く作ることができます。
一方で、処理が抽象化されていて簡単に書けてしまう分、よく理解せずに使うと思わぬところで時間を溶かしてしまったり、脆弱性を含むプログラムを書いてしまったりすることも多々あると思います。
そこで、このトークでは脱初心者を目標にLaravelが行っていることを一つひとつ追っていくことで、エラーメッセージを見た時に素早く対応できる状態を目指します。

対象者

  • Laravel初心者
  • Laravelを使った開発でエラーの解決に時間がかかる方

話すこと

  • .htaccess
  • index.php
  • autoload
  • routes/ での処理
  • viewの表示の仕組み
  • 404などのエラーページ表示の仕組み

話さないこと

  • artisanコマンドの実装
    リクエストとレスポンスの部分を主に扱いたいため、開発に使う機能は今回は割愛します

ゴール

  • Laravelがリクエストを返すまでの流れがわかる
  • エラーメッセージを読んだ時に、どこを修正すれば良いか素早く判断できる
1
採択
2023/06/24 14:10〜
Fusicホール
レギュラートーク(15分)

Laravel x Inertia.js 「現代のモノリス方式」によるお手軽SPA開発

_tutida_ tutida

近年のWebアプリケーションに求められるUI/UXはどんどん上がってきており、SPAアプリケーションを構築する機会が増えてきていると思います。
「フロントとバックエンドが疎結合!」という甘美な響きの裏には、スキーマ管理・リポジトリ運用・API認証など様々なオーバーヘッドが存在しており、
中小規模アプリケーションの場合はSPAはコスト高で選択肢から外してしまったことはありませんか?

Laravel8から登場したInertia.jsを使うと、これまでのBladeを使ったシンプルなレンダリングと同じ手法で、お手軽にSPA開発が可能になります。
Controllerから変数をセット、レンダリングするビューを指定するだけで、認証やスキーマなどを意識せず、JavaScriptページコンポーネントへとデータが渡りSPAとして動作します。

この構成をInertia.jsの公式サイトでは「現代のモノリス」と呼んでいます。
APIを構築せず、密結合な構成にすることで生産性の向上を提唱する新しいWebアプリケーションの開発手法の1つです。

このセッションでは、そんなInertia.jsの概要の説明と簡単なチュートリアルをしながら、
実際のお仕事に導入した際に感じたメリット・デメリットも交えてご紹介していきます。

話すこと

Inertia.jsとは
LaravelでのInertia.jsの使い方と例
導入して感じたメリット・デメリット

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

こんなテストケース(PHPUnit)はいやだ

shimabox しまぶ

テストコードのプルリクが来て意気揚々とレビューしてみると、こんなテストケースが書かれていたりしませんか?

  • テストケース名が test_executeメソッド() としか書かれていない
  • ひとつのテストケースの中で、複数のシナリオが確認されている
  • なんでもかんでもデータプロバイダー
  • テストケースの中にif文がやたら書かれている
  • ひとつのテストケースを確認するのに、大量のデータセットが必要
  • etc

こういったテストコードがレビューで飛んできたとき、自分はちょっといやだなぁと感じてしまいます。

本トークでは、なぜ上記のようなテストコードをいやだなぁと感じてしまうのか、何が問題になるのか、それに対してどのように書き換えればいいのかをコード例を交えながらお話しできればと思います。

4
LT(5分)

PLATEAUの3D都市モデルをUnityに取り込んで遊ぶぞ!

ktam1219 kta-m

PLATEAU(プラトー)というものをご存知でしょうか?
国交省が主導する、日本全国の3D都市モデルの整備・活用・オープンデータ化プロジェクトです。
現在、さまざまな都市の3Dモデルが公開されており、これらを活用して多様な実証実験が実施されています。

本LTでは、これらの3D都市モデルをUnityに取り込み、ちょっとしたゲームを作って遊んでみます。
なんというか、ボールっぽいものを転がして、建物を巻き込んで、カタマリ的なものを作っていくようなタマシイ風のやつです。

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

マネジメント業をやる立場になる前に知っておきたかったこと

ktam1219 kta-m

私は、10人のメンバーが所属するチームのチームリーダーをしています。
エンジニアリングもする、いわゆるプレイングマネージャーというやつです。

リーダーになったのは約5年前。
当時は、組織改変に伴ってリーダーができそうな雰囲気の人を捕まえて、
「リーダーできる?できるな!?君は次からリーダーだ!いい感じに頑張れ!以上!」
といった具合でリーダーが任命されており、みんな手探りでマネジメント業をやっていました。
あなたの会社も同じような感じだったりしませんか?

リーダーになったからにはマネジメント業に対してもお給料が出ているので、しっかりやりたいところです。
しかし、マネジメント業を学ぼうと思って本を漁ってみると、「がんばらなくていい、自分の色を出して頑張れ!」と書いている心意気の本や、フィードバック手法やらコーチングやら進捗管理やらの具体的なノウハウが書かれた本が目立ちます。

しかし、まず最初に知るべきは「マネジメント業という仕事の本質」です。
自分が何をしようとしているのかを知らずして、さまざまなノウハウを学んでもそれは単なる付け焼き刃なのです。

本セッションでは、私がリーダーになる前に知っておきたかったマネジメント業という仕事の本質を、自身の経験も交えつつ共有できればと思います。

対象者

  • 上長がどんなことをしているのかを垣間見たい方
  • これからマネジメント業をしようとしている方
  • マネジメント業を担っているけどどうしたらいいかわからず迷子になっている方
2