採択
2024/01/12 18:10〜
クリエイティブスタジオ
セッション(15分)

PHPからはじめるコンピュータアーキテクチャ

tomzoh 長谷川智希

現代のコンピュータはハードウェアから私たちプログラマが書くプログラムの動作までの間が多くのレイヤーに分けられて動作しています。
レイヤーは自分より下を抽象化し、下のレイヤーを詳しく理解しなくても多くの場合プログラマはプログラムを書けます。
一方、プログラムが期待した様に動作しない時には下のレイヤーの動作の理解が問題の解決の助けになることもあります。

このトークでは私たちが愛するPHPをスタート地点にして、「CPUによる"プログラム実行"」「 PHPやJavaとC言語の根本的な違い」など、コンピュータプログラムがどの様に動作するのかを解説します。

コンピュータのレイヤー構造を理解すると、いままでは見えていなかった角度からプログラミングを楽しめるようになります。
このトークを通じて、低レイヤーが好きになったり、いろいろなレイヤーで面白いことをしたりする方が増えることを期待しています!

セッション(15分)

テックをリードする戦略と学び

metalic_kudo_h 工藤颯斗

世の中には様々な技術が存在します。

皆さんはその中からどのような基準で技術を選定していますか?
そしてどのような環境で開発をしていますか?

本セッションでは、テックリードとして行ってきた、技術選定や開発環境の整備等について、どのような取り組みをしてきたのか、成功談や失敗談と共に解説いたします。
本セッションを通じて
「どういう基準で技術選定をすればいいかわからない」
「コード品質をどのように保てばいいかわからない」
「テックリードって何をしたらいいかわからない」
といった方が参考にできるような時間を提供いたします。

1
採択
2024/01/13 17:50〜
クリエイティブスタジオ
LT

プロポーザルに通したいのでプロポーザルのテキスト分析をします!

shunsock shunsock

概要
PHPを用いてサービスを提供しているPR TIMESの機械学習を担当するエンジニアが通っているプロポーザルの秘密を探ります

対象者

  • AIや機械学習の導入に興味のあるPHPer
  • PHPカンファレンスの登壇にチャレンジしたいPHPer

話すこと

  1. テキスト解析をするまでの流れと分析結果
    • Webからのデータ取得
    • 日本語テキストデータの前処理 (正規化・形態素解析など)
    • 通っているプロポーザルと通っていないプロポーザルに出現する単語分布の比較
    • プロポーザルのトピックの分析
  2. プロポーザルの作成
    • OpenAIによるプロポーザル作成
      => 単語やトピックの分析した情報を元にプロポーザルを作成します

話さないこと

  1. 機械学習・統計的手法そのものの仕組み
  2. 日本語以外のテキストの前処理の方法
  3. テキスト以外の前処理の方法
セッション(15分)

既存PHPアプリケーションへのOpenAPI導入戦略

picopico_dev 当田 昇

皆さんはPHPアプリケーションにOpenAPIを導入していますか?

OpenAPIとは、HTTP APIの仕様を定義できる言語です。
自動ドキュメント生成やフロントエンドのクライアントコード生成、APIのモック化やバリデーションなど、API開発を支援する非常に強力な機能を備えています。

しかし、既にそれなりの規模のAPIを運用している場合、初期コストや導入難易度が高くなってしまうため、導入を諦めた方もいるのではないでしょうか。

本セッションでは、特定のフレームワークに依存せず、より低コストで安全にOpenAPIを導入するアプローチについてお話しします。

主な対象

  • APIを開発している方
  • OpenAPIの導入・運用に興味がある方
2
LT

ぼくは bun をガンガン使ってきた

sogaoh sogaoh

v0.1.1 というリリース初期の頃から、とある同僚によって試されたのを見て、その高速な動作に気が付き「この npm install が超遅いのどうにかしたい」を瞬時に改善した bun。
その bun の メジャーバージョン 1.0 が、2023/9/8 にリリースされました。
(なお今日は 2023/9/11)
以来、複業する自分が随所で、プロダクションには影響のないところから、「使えるどころ」を見出してきました。
このトークでは、npm スクリプトのラッピング、cdktf diff を bun run plan / cdktf deploy を bun run apply に置き換える、など、柔軟な発想で効果的に、高速で名高い bun を利用してきた事例をいくつか紹介します。
Webサービス開発・運用のちょっとした局面で役に立てば幸いです。

1
採択
2024/01/12 20:10〜
クリエイティブスタジオ
LT

Webアプリケーション周りのいろいろなアップグレード戦記

sogaoh sogaoh

拙者、いわゆるマイクロ法人。複数の現場に片手片足から突っ込みまして、主にクラウドインフラ関連箇所を手伝っております。
そんな自分が、比較的最近で遭遇してきた難局、それらをどう切り抜けてきたのか、はたまた妥協してきたのか、といった事例をお話しします。

現時点(2023/9/11)では、以下のような経験をお話しできます。

  • PHP 5系のEC2サーバーで稼働している歴史あるプロダクトを、PHP 8 に上げてFargate にリプレースしていく試み
  • Aurora 2 (MySQL 5系) のRDS を、Blue/Green Deployment 機能を利用して Aurora 3 (MySQL 8系) にアップグレードした午前4時、その後にできなくなった「とあること」
  • Laravel 10 に上げた後、あるとき S3 アップロード/参照 が機能しなくなったことに気がつきました事件
LT

Composerのオートロードってなにをやっておりますの?

22kerokero22 kerokero

Composerを使用する際にも登場するおワードとしてオートロードがありますわ。
autoloadはお名前空間の指定により、おクラス名をお自動解決する為の機能ですわ。
しかし「実際にどうやって動いているのかよく分からないぞ」というお気持ちでなんとなく使っている方もいるのじゃなくって?

こちらのおトークでは、vendor/autoload.phpのお中身を見ながらComposerがオートロードで何をしているのかを紹介いたしますわ!

お対象者

  • Composerを使ってるけれど、autoloadとかよく分からんというお人
1
採択
2024/01/12 20:00〜
クリエイティブスタジオ
LT

全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験

8nohe 福田 匡彦(青い森ウェブ工房)

「標準的なバス情報フォーマット(GTFS-JP)」オープンデータ(一部条件付き公開データ含む)を活用した無料の時刻表情報サービス「バス時刻検索」(CakePHP使用)を2022年9月に新規公開し運営しています。

素材のGTFS-JPデータを毎日ダウンロードし、更新を検知時に加工しDBへ取込みを行いますが、基本的にPHPプログラムで行っています。

今回は、毎朝最新版が公開されるバス会社もあり、更新データ量が大きく、DBへ反映が高負荷な状況にどう対処しているか?についてお話する予定です。

◇参考情報:ある日の都営バスGTFS-JPデータ(全国でも大きめ)は毎朝4時台に更新される上に、そのテキストファイル15個のサイズが計「79.7 MB」もあり。
(100万行越えのファイルもあります!)

その他、予期しないエラーや問題等をどのように解決したか等を語ります。

セッション(15分)

PHPで学ぶGitの仕組み

22kerokero22 kerokero

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

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

具体的な内容

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

対象者

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

PHPer 2年生が、何も分からんけど各種オフイベに乗り込んでみた結果

22kerokero22 kerokero

新型コロナウイルス感染症が5類に移行したことで世の中的には3年ぶりの平穏を取り戻しつつある今日この頃、これまで開催が難しかったオフライン勉強会も少しずつ増えてきています。
言い換えると、これまでオフラインイベントに参加してこなかった人でも2023~24年はコミュニティに簡単に溶け込める年であるということです。
古参も新参も大歓迎のこのチャンス、逃す手はないと思いませんか?

このトークでは実体験をもとに、新卒2年目の新米PHPerがオフラインイベントに実際に参加して感じたことについてお話ししようと思います。

具体的な内容

  • オフイベは怖くないよ!
  • PHPカンファレンスJapan2023・phpcon沖縄2023にそれぞれRT・LT登壇した際に新米の視点で感じたことなど

対象者

現地で人と話してみたいけど、やっぱり怖いよーという人

採択
2024/01/13 17:35〜
クリエイティブスタジオ
LT

新米PHPerですが、php-srcをちょっとだけ読めちゃった件について

22kerokero22 kerokero

PHP本体のソースコード、気になりませんか?
普段使ってるPHPがどうやって動いているのかを知りたいけど「なんか難しくてよく分からない」という方、その気持ちよく分かります。

このトークでは実体験をもとに、php-src解読能力を0から1にしてみようと悪戦苦闘した話をしようと思います。

具体的な内容

  • 新卒PHPer2年生の自分が、php-srcを眺めてみた際に必要になった知識について
    • PHPの処理系を動かしているSAPIやZend Engineなど、用語をそもそも知らないと始まらない部分の紹介

対象者

  • PHP本体のソースコードに興味がある人
  • php-srcに興味を持ったことがあるけど難しそうだからと敬遠気味な人
  • 難しそうな話を聞くのは5分間が限界な人
セッション(15分)

Fiber の中身を理解する

nsfisis nsfisis

Fiber は、PHP 8.1 から導入された stackful な coroutine です。
ここで一度、Fiber の実装を PHP の処理系レベルまで追いかけることで、Fiber が何であるか、そして、裏で何をしているのかを理解することにしましょう。

主な対象

  • 非同期処理の内部実装に興味があるかた
  • 言語処理系の内部実装に興味があるかた

話すこと

  • PHP における「Fiber」とは何か
  • PHP の VM (virtual machine) のおおまかな構造
  • Fiber を実行・停止・再開・中断したとき、PHP VM に何が起こるか

話さないこと

  • Fiber を裏で利用するライブラリやフレームワーク
1
セッション(15分)

PHP 処理系の garbage collection を理解する

nsfisis nsfisis

Garbage collection (GC) とは、確保したメモリ領域を適切なタイミングで解放する仕組みのことです。
メモリが比較的潤沢になった今でも、メモリ溢れによるサーバ障害は決して珍しくありません。
PHP における GC を理解し、メモリを意識したプログラミングをすることで、本番サーバを夜中に落とさないようにしましょう。

主な対象

  • 普段メモリを意識してプログラミングしていないかた
  • 言語処理系の内部実装に興味があるかた
  • メモリ溢れで本番環境をダウンさせたことのあるかた

話すこと

  • PHP における GC のアルゴリズム
  • 確保したメモリはいつ解放されるのか
  • メモリ溢れを起こさないプログラミング

話さないこと

  • GC のパラメータをいじってチューニングする
2
セッション(15分)

新卒エンジニア視点から見た大規模プロジェクトでのスクラム導入の体験

uutan1108 うーたん

私は新卒エンジニアとしてスクラムに関心を持ち、Certified ScrumMaster (CSM) 資格を取得しました。そして、大規模プロジェクトにおいて、先輩のスクラムマスターがスクラムを導入していく様子と、その変遷に携わった経験を通して得た知見を、このセッションで皆さんと共有したいと考えています。

初期段階では、職能ごとにチームが分割され、コミュニケーション不足と手戻りが増加しました。後に他のチームにエンジニア兼スクラムマスターがアサインされ、チームビルディング、振り返り、他チームとのコミュニケーションの機会が増え、プロジェクトにポジティブな変化が生まれ始めました。

このセッションでは、新卒エンジニア視点からの具体的な経験とスクラムの文化を持たないチームにおいて、緩やかなスクラム導入を支援するスクラムマスターの動きについてもお話しします。

1
採択
2024/01/13 11:25〜
クリエイティブスタジオ
セッション(15分)

日本PHPカンファレンス2024スタンプラリーとその実装

koyhoge 小山哲志

2023年はコロナ禍から日常が戻り始め、様々なテックカンファレンスが開催されて、その楽しさや重要性を皆が再確認した年でした。それを受けて2024年は各地でPHPカンファレンスの開催が予定されています。

2018年と2019年に全国で開催されたPHPカンファレンスにおいて、紙の台紙を用いたスタンプラリー企画を私は実現しました。せっかくなので2024年もなにかやりたいのですが、台紙の用意やはんこの発注など面倒な作業が多いので、以前と同じ方法は取りたくありません。

そこでスタンプラリーをウェブサービスとして実装し、みなさんに使って頂くことにしました。PHPカンファレンス北海道2024はその初お披露目になる予定です。果たして快適に動作するのか、乞うご期待。発表ではその技術解説やインフラ構成についても話す予定です。

9
採択
2024/01/12 20:05〜
クリエイティブスタジオ
LT

Laravelで敢えて試す脆弱性のある書き方

kanbo0605 カンボ@沖縄

Laravelでどのように書くと脆弱性のある書き方になるのかを実際のコードを交えて解説します!
主に下記の脆弱性について話そうと思っています。

・XSS
・CSRF
・SQLインジェクション
・OSコマンドインジェクション
など

セッション(15分)

決める技術

77web 菱田裕美

一番最初の技術選定をはじめとして、コーディング規約採否・静的解析採否・仕様・関数名・変数名などなど…開発の仕事は「決める」ことの連続です。
ここぞというときに素早く「決める」ためには、何が必要か?何をしているか?何を考えているか?
ベテランPHPerが日々実践していることをお話しします。

LT

PHPで独自フレームワークを作ってみよう!作り方を解説!

kanbo0605 カンボ@沖縄

弊社ではエンジニアの研修カリキュラムで独自フレームワークを作っており、研修用のPHP独自フレームワークの作り方を詳しく解説します!
MVCの仕組みなどをちゃんと理解するにあたっても良い勉強になると思います。
具体的に自作する内容は下記です。

・routing
・CSRF対策
・Cotroller
・Model
・バリデーション

採択
2024/01/13 15:00〜
クリエイティブスタジオ
セッション(15分)

失敗例から学ぶSOLID原則

asumikam asumikam

オブジェクト指向プログラミングにおいて重要な概念となる「SOLID原則」 。
本セッションでは、自分が違反して書いてしまったコードを例に、SOLID原則を紹介していきます。

  • どのSOLID原則に違反しているか
  • 違反がもたらす具体的な問題
  • 正しい実装

多くの書籍でSOLID原則に関する具体例が示されていますが、このセッションでは「実際の失敗例」を通じてSOLID原則を理解していただこうと考えています。
自分がミスってしまった実装例を、時間の許す限り赤裸々に公開します!!

LT

【賛否あり?】 Enum値は文字列で保存してクレメンス

820zacky つざき

みなさん、PHP上のEnum値はデータベースにどのような値で保存してますか?

数値型? DB上のEnum型? それとも文字列?

「いやいやw文字列で保存したらデータ量が無駄やんw」
「変な値入れられたらバグるやんw」
「速度的にどうなん?w」

って声もあるかもしれません・・・

それでもなお僕は言いたい
「Enum値は文字列で保存してクレメンス!」

5