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

テレワーク下でも組織文化を維持する ~「開発組織活性チーム」の約 2 年にわたる取り組み~

okashoi おかしょい/岡田正平

コロナ禍をきっかけとして、テレワークを導入した企業は珍しくないでしょう。
もともとソフトウェアエンジニアにとってテレワークは相性が良い部分もあったことから、様々な利点をもたらしてくれました。
その一方で、良いことずくめに思えたテレワークも、新たな問題をもたらしたこともまた事実でした。

従業員どうしの関係性や勉強会等の活発さといった文化をひとつの強みとしていたエンジニア組織は、テレワーク導入直後にはその強みがほとんど見えなくなっていました。
もともと組織には「開発組織活性チーム」というチームが存在しており、テレワーク導入による問題が無視できなくなってきた頃、「失われつつある組織文化を取り戻し、維持すること」を新たなミッションに掲げて活動内容を変化させました。

本トークではそこからおよそ 2 年にわたる「開発組織活性チーム」の取り組み内容と、それによって実現できたこと、できなかったことおよびそれらの考察をお話します。

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

フリーランスエンジニア、家を買う

pinkumohikan ぴんくもひかん

家を買うべきか、買わないべきか。
買うとしたらマンションか、戸建てか。
勤続年数が浅かったりフリーランスだと住宅ローンの審査が通りにくいという話は本当か。

家の購入って分からないことが多すぎて無限に悩みますよね。

本トークでは、家を購入するに当たって自分自身が調べたことや不動産屋に相談したことからの学びをご紹介します。

対象観客

  • 家を買うか買わないかで迷っている
  • 転職・独立を考えていて、住宅ローンが組めなくなるのか不安
  • 家を買おうと思っているが何を気にするべきか、いくら現金を用意する必要があるか知りたい

話すこと

  • 家を買うべきか、買うべきでないか
  • 物件を選ぶときに考慮するべきポイント
  • 家を購入するのに必要なお金
  • 住宅ローンうんちく (金利、返済方法、借りやすい金融機関)
5
レギュラートーク(15分)

趣味としてはじめるOSS

k1LoW 小山健一郎

(PHPerKaigi 2023でパンフレットに寄稿させてもらった https://fortee.jp/phperkaigi-2023/proposal/caec413f-384d-415e-8020-59053058a1f6 のトーク版です)

今ではオープンソースソフトウェア(OSS)を使うことは当たり前になっています。このことに異論を挟む人はいないでしょう。

ところで、「OSSへのコントリビュートをするのは敷居が高い」「OSSを作るのはなかなか難しい」とよく聞きます。
確かにそれもOSSの1つの側面かもしれません。

そこで提案です。趣味としてOSSを書くのはどうでしょう?
実はOSSは趣味で書くのもアリなのです。
皆さんの中にも「プログラムが好き」「プロダクトが好き」「モノづくりが好き」という方は少なくないはずです。
そんなあなたは趣味OSSの素質ありです。

筆者は「少し実用的で小さなOSSを書くのが趣味」と公言しています。
あくまで「いち趣味の紹介」としてOSS開発のはじめかたをお伝えできればと思います。

そして、オフライン発表だからこそできる、私の積みOSS(ネタ帳)を全てお見せします!
これは発表資料には含めない予定なのでその場限りの公開になるかもしれませんよ。

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

PHPStanが見るLevel6の世界

shimabox しまぶ

みなさんはこういった経験が無いでしょうか。

「PHPStanのレベル5まで対応完了!よしっ!」
「つづいて、レベル6っと、ッターン!」

Method xxx() return type has no value type specified in iterable type array.

「ふぁっ!?」

、、、はい。あると思います。
そんなときはArray shapesなりで、ひーひー言いながら対応すると思いますが、泣きながらこう思った人も少なからずいるのではないでしょうか?

「PHPStanはLevel6で何を見ているのだろう」と。

今回のトークでは、そういった疑問をソースコードリーディングを交えながら、みなさんと一緒に解き明かそうと思います。
PHPStanが見ている世界を知ることができれば、PHPStan(ひいては静的解析ツール)ともっと仲良くなれるはず!

■ 話すこと

  • PHPStanのレベル6について
  • レベル5とレベル6での解析方法の違い
  • 字句解析, 構文解析, 評価 について少し

■ ターゲット

  • PHPStanの対応(特にレベル6)で苦労したことがある人
  • PHPStan(静的解析ツール)と仲良くなりたい人
1
レギュラートーク(15分)

Laravelにおけるsql injectionと文字コードの関係

bianchiidentity 川﨑浩史

webサービスを開発する上で、脆弱性への配慮は非常に重要です。
皆様も一般的な脆弱性については意識をされているかと思います。しかし、マイナーな脆弱性についてはどうでしょうか?
本セッションでは Laravelにおいて実装された5c問題の脆弱性を持つデモ用のweb applicationを攻撃し、脆弱性の説明を行います。

対象

  • セキュリティ対策の基本について興味のある方
  • 具体的な文字コードにおける脆弱性の仕組みに興味のある方
  • ctfに興味のある方

内容

  • sql injectionの説明、blind sql injectionの説明
  • 5c問題はなぜ起こるのか
  • laravelの実装と実際のデモ
  • 安全に実装するための注意点

文字コードの知識を活かしたsql injectionの防止を通じて、セキュリティへの関心を高めましょう。

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

Laravelにおけるsql injectionと文字コードの関係

bianchiidentity 川﨑浩史

webサービスを開発する上で、脆弱性への配慮は非常に重要です。
皆様も一般的な脆弱性については意識をされているかと思います。しかし、マイナーな脆弱性についてはどうでしょうか?
本セッションでは laravelにおいて実装された5c問題の脆弱性を持つデモ用のweb applicationを攻撃し、脆弱性の説明を行います。

対象

  • セキュリティ対策の基本について興味のある方
  • 具体的な文字コードにおける脆弱性の仕組みに興味のある方
  • ctfに興味のある方

内容

  • sql injectionの説明、blind sql injectionの説明
  • 5c問題はなぜ起こるのか
  • laravelの実装と実際のデモ
  • 安全に実装するための注意点

文字コードの知識を活かしたsql injectionの防止を通じて、セキュリティへの関心を高めましょう。

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

Laravelを使った開発で意図せず起こりがちな脆弱性に注意しましょう

koh_hei128 Kohei Adachi

この発表では、Laravelを使ったWebアプリケーション開発において、誤った実装やセキュリティに関する不注意によって生じる脆弱性(XSS、CSRFなど)について説明します。また、それらを回避するための対策方法について説明します。

主な対象

  • Laravelを使って開発をしている方
  • セキュアなWebアプリケーションを開発したい方

話すこと

  • Webアプリケーションの攻撃手法について
  • Laravelにおける誤った実装やセキュリティに関する不注意によって生じる脆弱性とその対策方法について
レギュラートーク(15分)

opcodeから見るphpビルトイン関数と使い所

志岐 回

echoとprintって何が違うの?
for と foreach , whileの違いと使い所って?
早いコードと遅いコードってどのくらい差があるの?
php8.2に存在するビルトイン関数をopcodeを見て感覚ではなく理論で理解しよう!

話すこと
PHP8.2のビルトイン関数の紹介
類似した関数のopecodeの比較
早いコードと遅いコードの比較と関数の得意な処理の説明

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

ISUCON12 本選問題をもっと PHP で(できれば地獄の底まで)掘り下げる

sji_ch sji

今年に PHPerKaigi 2023 というイベントで、「時間を気にせず普通にカンニングもしつつ ISUCON12 本選問題を PHP でやってみる」というトークをしました。
https://fortee.jp/phperkaigi-2023/proposal/7e212cb2-be37-43e8-b6ee-5236d259fcbf

時間無制限バトルによって、結果的には ISUCON12 の優勝チームが Go で出した本選スコアを PHP で越えることができました。しかし、このときのチャレンジではまだ幾つか試せていない取り組みもあります。

例えば他言語で行われるような、オブジェクトのプールを事前生成して使いまわすような最適化には PHP でも意味があるのでしょうか?
実行時型検査のコストをバイパスするような最適化は可能なのでしょうか?
immutable_cache のような別のキャッシュソリューションに目に見える効果はあるのでしょうか?
Workerman や他の非同期 PHP フレームワークのような、さらに異なる PHP 実行環境との性能比較はどのような結果になるのでしょうか?

思いつくままにいくつかの挑戦を追加でやってみます。

対象とする聴講者は以下です。

  • 横に並べるサーバ台数を増やせない環境下での PHP の限界チューニングに興味のある人
  • PHP で ISUCON を戦っていきたい人
  • PHPerKaigi 2023 の元トークの内容を知っていて「この先に行くにはどうすればいいのか?」と思った人
16
レギュラートーク(15分)

v1.0.0になったOpenTelemetry PHPで監視をつよくする

na_it_o くすのき

OpenTelemetryはObservabilityを獲得するための標準化されたSDK・API・ツールの提供を目的とした、CNCFのオープンソースプロジェクトです。
CPU使用率のようなシステムメトリクスから、アプリケーションのカスタムログまで、様々な情報を言語やプラットフォームに依存しない統一的な規格で管理できます。
モニタリングツールもJaegerやPrometheusといった主要なOSSとの連携がサポートされているだけでなく、DatadogやNew Relicのようなベンダーサービスにも出力を取り込めるようになっています。
10種以上の言語への対応が進んでいる中、ついに昨年12月、PHPのSDKがv1.0.0になりました!
4月現在まだbetaですが来たるGAに備えて、便利に使いこなすために、OpenTelemetryがどういうものか、何に使えそうかを今一度みていきます。

話すこと

  • OpenTelemetryとはなにか。コンセプトと仕組み
  • どうやって使うのか
  • なにが出来るか
  • 実際のコードを使ったトレース、メトリクスの監視デモ

想定する聞き手

  • 監視に興味のある人
  • 独自のトレース、メトリクスを収集したい人
  • オープンな標準規格に寄せて連携先をお手軽に切り替えたい人
6
レギュラートーク(15分)

AIペアプログラミングのおかげで0からDockerでLaravel環境を構築できた話

y_kiyoshima ykiyoshima

開発環境を柔軟に構築でき、それを簡単に共有できるDockerですが、都度適切な環境を構築することが新米エンジニアの私にはとても高いハードルでした。
しかし、ある出来事によりそのハードルがここ最近ガクッと下がりました。AI技術の急速な進化です。

このLTではAIツールを活用して0からDockerでLaravel環境を構築できた実体験をお話しすることで、
Docker × Laravel環境の作り方をわかりやすくご紹介すると同時に、プログラミングにおけるAIツール活用のコツも少しご提供できればと思います。

話すこと

  • DockerでLaravel10環境を構築する流れ
    • ディレクトリ構成・ファイル構成
    • 設定ファイル(Dockerfile、compose.ymlなど)の書き方
  • AIツールをプログラミングに活用するためのコツ

対象者

  • DockerやLaravelをなんとなく知ってはいるけど使いこなすことは難しいと感じている方
  • AIツールをプログラミングに活用したいと思っている方
1
レギュラートーク(15分)

「良い命名」について本気で考えてみた

t_sumsum 高橋 宏和 (さざなみ)

コードを書いていて自分で命名をする機会って多いですよね。
良い命名をすることで、コードの可読性が向上し、保守性も高まります。一方、悪い命名はコードの理解を困難にし、ソフトウェア品質を低下させる原因となります。
実体験、書籍、ウェブ記事や他のカンファレンスで学んだことを総合的にみて、どんな命名をすべきかを具体的なコードを示しながら発表します。

本発表の目的は、良い命名の条件と具体的な命名方法を理解し、実践につなげることです。

内容

  • 命名の重要性
  • 悪い命名の例とその影響
  • 良い命名の条件と具体例
  • 実践で使える命名方法
    • 変数の命名
    • メソッドの命名
    • 命名の場所
レギュラートーク(15分)

文字コードとmbstringについて

youkidearitai てきめん

PHPで文字コードを扱うには、mbstringを使うのが主流であると思います。
そんなmbstringですが、PHP 8.1からMajor Overhaul of mbstringという大規模改修が入ったため、その内容を把握するための記事を書きました。
運良く、執筆者であるAlexさんに読まれたことで、ぼくはPHP 8.3となるバージョンの面倒を見るという立ち回りをしています。

文字コードはそれぞれ生まれも管理の方法も違うため、色々と混乱することもあるでしょう。
特にShift_JISのたくさんの亜種などはたくさんありすぎて何がなんだかわかりませんよね。
そういったものを紹介していければいいなと思っています。

また、PHP 8.3では、どうやらUTF-8を使うのがよさそうというのがわかってきました。
一方で、Shift_JISやISO-2022-JPなどを使うというのも選択肢としてあるようです。
それにはUTF-8特有の弱点も存在していて、Shift_JISが好まれる理由でもあるようです。

文字コード、それぞれ先人の歴史の積み重ねによるものが多いです。
一度、棚卸しを兼ねて文字コードを見てみませんか。

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

カンファレンスのつくりかた

__papix__ papix

カンファレンスは一日にして成らず...。参加者からすれば数日間の"お祭り"も、開催に至るまでは会場選定、企画、予算策定、スポンサーとの交渉...のように、とにかくたくさんの準備が必要です。

このトークでは、日頃あまり表に出てこない「カンファレンスがどのようにつくられるのか」についての話題を、(PHPカンファレンス福岡なのに、何故か)YAPC::Kyoto 2023というPerlコミュニティにおけるカンファレンスを例にしてご紹介します。

特にYAPC::Kyoto 2023は、「コロナ禍の前に企画され、コロナ禍でも一度も中止を決定することなく、延期を重ねて改めて開催された」という特徴(?)のあるカンファレンスです。コロナ禍におけるカンファレンスの準備やその対策、いわゆる「ウィズコロナ」時代のカンファレンスについての工夫や考察などについてもお話します。

カンファレンスにスタッフとして関わることに興味を持っているが、一方で具体的なイメージが持てなくてあと一歩を踏み出せない、という方もいらっしゃると思います。そういった方々が、このトークを通して「スタッフになると、こんなことをやるのか!」というイメージを持ち、PHPカンファレンスなどを含む身近な/興味のあるカンファレンスのスタッフに名乗り出る一助になればいいな、と思っています。

対象者

  • カンファレンスの運営に興味がある人
  • カンファレンスの裏側、裏話を聞いてみたい人
  • 他コミュニティのカンファレンスの様子が気になる人
6
レギュラートーク(15分)

Laravelを用いたWebサービス開発での多言語対応について

9rokirishima くろきり

海外展開を視野に入れたWebサービスを開発する場合、多言語対応は避けて通ることはできません。
要件次第ではありますが複数の言語を扱いたい場合、対象localeの判定やDBでの異なる言語データの持ち方等考慮すべき事項は多々あると思います。

このトークでは実際にLaravelを用いたWebサービス開発時の多言語対応について、
対応したことや後から振り返ってこうすればよかった等実際の開発で得た知見等をお話ししたいと思います。

話すこと

  • HTTPリクエストヘッダのAccept-Languageを用いたlocale判定について
  • DBで複数の言語データの持ち方、およびEloquentでの対象データの取得について
  • laravel-langを用いた複数言語のファイル生成
2
レギュラートーク(15分)

OpenAPI仕様書をそのままLaravel Validationとルーティングとして組み込む

katzchum katzumi

OpenAPI仕様書を書いて、そのまま使わないというのは勿体ないです。
swagger-phpでOpenAPIの仕様書を書いてそれをそのままアプリケーションに組み込んでしまおう!という内容です。
実際にswagger-phpで仕様書を書いて、それをどの様にValidationやルーティングとして利用するのか?について具体的なコードと実装例を上げて解説したいと思います。

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

日付計算で13月が生まれる!?実際のバグ事例から学ぶUnitテストの必要性

sucalul すか

私は、現在の会社で約1年間、料金チームに所属していました。このチームでは、締め日や売上日など、ビジネスにとって重要な日付の扱いが欠かせません。しかし、日付計算には様々な落とし穴があり、月末処理が適切に行われなければ企業に請求できないなど、クリティカルなバグを引き起こす可能性もあります。

日付計算は、時にうるう年や月末日の考慮が必要であり、さらにタイムゾーンの扱いも慎重に行わなければなりません。そのため、日付計算で様々なバグが発生することがあります。

このセッションでは、実際に発生した日付計算のバグについて取り上げ、実際のコードを交えながらその原因や修正方法について話します。

具体的には、以下のバグを取り上げます。

  • 13月が生まれてしまったバグ
  • プラン終了の1ヶ月前に送るべきメールが送信されていなかったバグ

これらのバグは、特定の日付でのみ発生するため、十分な手動テストが困難です。そのため、Unitテストによる日付計算のテストについても取り上げます。

また、PHPの日付計算でよく使われる、date(), DateTime(), DateTimeImmutable()の違いについても軽く取り上げます。

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

Laravel Hashingは安全なのか?

SAshunchan 山藤 駿亮

ユーザーのパスワード保存などでLaravelのHashingを使われたことがあると思いますが、もしHashingの安全性について尋ねられた時、皆さんはどう答えますか?もしかしたら公式ドキュメントで安全だと言われているから、みんな使っているから安全であると答えられるかもしれません。(以前までの自分はそうでした。)一般的な業務を行う際にこんなことを考える必要はありませんが、このLTではHashingでハッシュ化を行うことが果たして安全であると言えるのか、またなぜ安全であると言えるのかについて発表します。

発表すること

  • ハッシュ化に対する脅威
    ハッシュ化に対してどのような脅威が待ち構えているのかを紹介

  • ハッシュ化の脅威に対する対策方法
    前項で紹介した脅威に対する対策方法を脅威ごとに紹介

  • LaravelのHashingの実装について
    前項で紹介した対策方法をHashingでどのように実装しているのかについて実際のコードを見ながら紹介

トークの対象

  • 最初の質問に自分と同じような答えを出された方
  • ハッシュ化の安全性について興味がある方
  • LaravelのHashingの実装について興味のある方

トークの対象ではない方

  • 最初の質問にきちんと根拠をもって答えられる方
  • 「安全なWebアプリケーションの作り方」の代表的なセキュリティ機能の項目を一読されている方
レギュラートーク(15分)

QAエンジニアは何をするお仕事なのか

____rina____ ____rina____

ここ数年でQAエンジニアという名前を聞く機会が増えてきたかもしれません。
QAエンジニアは、会社によって持つ役割が大きく異なります。

また、テストエンジニアとQAエンジニアは何が違うのでしょうか?
テストエンジニアは、主にテストの実施に特化しています。
一方、QAエンジニアはプロジェクトやプロダクトなどの品質向上に貢献します。

私は10年間テスター(テストエンジニア)をして、その後、転職によりQAエンジニアとなりました。

私のテストエンジニア・QAエンジニアとしての経験から、このセッションでは、QAエンジニアの仕事内容について詳しく説明します。

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

テストライブ2023

____rina____ ____rina____

■概要
2018年のPHPカンファレンス福岡でしたテストライブをします!

今回のテスト対象は別のものを用意するよていです!

2018年の様子はこちらからご覧ください
https://underscore42rina.hatenablog.com/entry/2018/06/17/004141

2018年のPHPカンファレンス福岡でテストライブを行います。今回のテスト対象は、別のものを用意する予定です。

■詳細:
私は、PHPカンファレンス福岡でテストライブを行う予定です。今回のテスト対象は、現在検討中ですが、最新の技術を使用したプロダクトを用意する予定です。

このテストライブでは、参加者は探索的テストを目にすることができ、その方法や手順について学ぶことができます。

探索的テストとは、テスト計画やテストケースを事前に作成せず、テスターが自由に操作しながら、問題点や改善点を発見するテストのスタイルのことです。このテストは、想定外の問題点や改善点を発見することができるため、プロダクトの品質向上に貢献します。

さらに、探索的テストは経験ベースのテストと言われ、その手法は本などで技術を得られづらいため、参加者はこの機会に知識やスキルを見ることができます。

みなさまのご参加をお待ちしております。

2