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

人には人それぞれのサービス層がある

shimabox しまぶ

わたしは十数年間この業界にいますが、いろいろなサービス層を見てきました。

  • DB処理が大量に詰め込まれたサービス
  • トランザクションスクリプトがひしめくサービス
  • どこからでも呼ばれてしまう「神」サービス
  • 複数のサービスと手を組み、仲良く連携するサービス
  • ドメイン層を支えるサービス
  • 取り急ぎ作られた「なんちゃって」サービス

そこには、愛らしいサービスもあれば、目を背けたくなるサービスもいました。
そしてこう思うのです「人には人それぞれのサービス層がある」と。

なぜ、人はみなそれぞれのサービス層を作ってやまないのか謎に迫りつつ、

  • サービス層とはそもそも何なのか、必要なのか
  • 憎まれるサービス層、愛されるサービス層とはなにか
  • 理想のサービス層とはあるのか

これらの問いに、SOLID原則、特にSRPを切り口としてサービス層について考察したいと思います。

3
レギュラートーク(20分)
新潟枠 カンファレンス初登壇

新潟のエンジニアコミュニティを盛り上げたい!

akshimo akshimo

「東京では毎日のように勉強会が開催される一方、新潟は勉強会が多くない」ーー3年前に東京から新潟へ移住しそう感じました。
では、実際の新潟の勉強会事情はどんなものでしょうか?どうすればより新潟を盛り上げられるのでしょうか?

本トークでは新潟でエンジニアコミュニティ運営に関わってきた実体験と具体的なデータの分析から、「新潟のエンジニアコミュニティを盛り上げるには?」を考えます。

トーク内容

  1. 新潟の勉強会事情
    • 勉強会数や人口などのデータ紹介
    • 新潟のエンジニアコミュニティを紹介
  2. 新潟を分析してみる!
    • データの統計的な分析を行う
    • 新潟特有の文化や背景を考える
  3. 新潟のエンジニアコミュニティを盛り上げたい!
    • 2.の分析結果とコミュニティ運営の実体験をもとに、新潟に適した活性化策を探る

本トークが新潟のエンジニアコミュニティを盛り上げる一助となれば幸いです!

2
LT(5分)

PHPer のためのプロポーザル駆動アウトプット入門

shogogg 河瀨 翔吾

PHPer 界隈は日本全国で毎月のようにカンファレンスが行われる、とても熱狂的なコミュニティです。そしてカンファレンスがたくさん行われるということは、それだけ登壇のチャンスがある、と言い換えることができます。

本 LT ではカンファレンスに参加すること・登壇することのメリットだけでなく、その入口であるプロポーザルを作る方法、そして「プロポーザルを作ること」そのものによって得られる学びや成長についてお話しします。

これをきっかけに、日本中の PHP カンファレンスに参加する人が増え、登壇する人が増え、PHPer 界隈を盛り上げる仲間が増えることを期待しています。

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

LLMを使ってできるだけサボっ(ry 楽して楽しく開発しよう!

suguru_ohki スー

もうわかってることをコーディングして手放しで勝手にやってくれないなかーと思ったことありませんか?僕はあります。

魔法のように勝手にコーディングしてくれると気持ち良さそうだなとも思っています!
そんな願望を元にCursorなどを例に出してできるだけ楽に開発する方法を具体的に紹介します。
日々のコーディング作業の中で、効率をぐんと上げるためのキーボードショートカット、カスタマイズのコツ、拡張機能・プラグイン連携の活用法、ワークスペースの最適化など、実践的なテクニックをデモを交えて解説します。

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

PHPバージョンアップの衝撃!「なんでだよ!?」が止まらない変化の全貌

suguru_ohki スー

皆さんも今までPHPのバージョンアップで苦しめら(ry 楽しんできたことと思います!

本トークでは、PHPの各メジャー・マイナーアップデートで起こる「え、こんな変わるの?」と突っ込みたくなる仕様変更を実体験とPHPの仕様の議論を追ってそれらを交えて紹介します。突然動かなくなった旧コード、非推奨から削除された関数、予想外の挙動や新機能の落とし穴…現場で感じる驚きと混乱何故そのようになったのか?をネタにしながら、どう対処すべきかを議論します。PHPエンジニアなら「なんでだよ!?」と叫ぶ瞬間が満載の内容です!笑

4
LT(5分)

Laravelで「ユーザーとしてログイン」機能を管理画面から実装する方法

masnmt masnmt

管理者がユーザーの問題を調査したり、代理操作を行う際に便利な「ユーザーとしてログイン」機能を、Laravelの認証機能を活かして実装する方法を紹介します。

この話をすると「うちでもやりたい!」と言われることがあったので、今回改めてまとめてみました。

とても便利な機能なのですが、実装を誤るとセキュリティリスクもあるため、抑えておくポイントも解説できればと思います。

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

Shadow DOMを使ったSPA化の利点と問題点

masnmt masnmt

既存のページの一部をSPAにすることになったのですが、CSSの競合が問題になりました。
「Shadow DOMを使えばCSSをうまく分離できるはず」と思って採用したのですが、いくつかハマりポイントがあったのでそれについてお話したいと思います。

・Shadow DOMの簡単な説明
・JavaScriptをShadow DOM内で使うときのハマりポイントとその対策

Vueを利用した初期化についても触れたいと思います。

2
ワークショップ(40分)

スロークエリのチューニングの勘所を学ぶワークショップ

soudai1025 曽根 壮大

実際にスロークエリを探すところから調査しながらどうやってスロークエリをチューニングしていくかを体験していきます。

PostgreSQLとMySQLを対象にします。

ワークショップ(40分)

入門!PHPとASTとOPCode 〜いつものPHPの少し深淵を覗いてみよう〜

o0h_ きんじょうひでき

私たちが普段書いているPHPによるコードは、いくつかのステップを経て機械に分かるよう変換されます。
AST(抽象構文木)にOPCode(オペコード)は、その流れを理解する上で欠かせない存在です。

日常的に接しているはずなのに馴染みがない─
そんな存在に、自分の手と目を使って少し仲良くなるワークショップです。
あなたのコードが、どんな風に解釈されているのか?一緒に覗いてみましょう!

対象

  • ASTやOPCodeなる単語を聞いたことはあるかも知れないが、よく知らないな!というphper

やること

  • 簡単なソースコードを、AST表現やOpCode表現に変換して見てみる
  • 微細な修正を加えつつ、それらがちゃんと対応しているのを実感する

形式

  • 予め用意された題材を手元で動かす、小講義+演習の形式
  • 合間に、頭の体操として(クイズのような)練習問題を挟みます
2
レギュラートーク(20分)

アーキテクチャレベルで依存性を逆転させたら最高だった話

katzchum katzumi

本セッションでは、複雑なレセプト業務システムにおけるアーキテクチャ改善の実践的アプローチを共有します。

依存性逆転原則をアーキテクチャレベルで適用し、複雑なシステムを段階的に改善した実践知見を、以下の3点から解説します:

  1. コアドメインの蒸留プロセス
    ・レセプト業務における本質的責務と付随的機能の切り分け手法
    ・データ依存関係のAPIインターフェース化による依存方向の制御

  2. アーキテクチャ進化の戦略
    ・システムとビジネスの理解に基づいた2段階のリアーキテクチャプロセス
    ・並行開発を可能にしたスキーマ駆動開発の実践的導入手法

  3. 得られた定量的・定性的効果
    ・開発の並行性向上によるリードタイム短縮
    ・バージョニングされたインターフェース定義によるコミュニケーションコストの削減
    ・システム分離による保守性と変更耐性の向上

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

AWS SQSとLaravelで大規模トラフィックを捌く

takeokunn たけてぃ

私は現在物流系の会社に所属をしており、ECサイトから注文情報や商品情報を取り込む外部連携部分の開発を行っています。
Shopifyや楽天市場など様々な外部連携先がありますが、各連携先ごとの仕様がバラバラです。
ShopifyのようなWebhook形式のものもあれば、楽天市場のようにAPI経由で情報を取得するパターンもあります。

日々大量のリクエストを送受信をしており、日々大量のJobを発火し正常に終了させています。
本登壇ではAWS SQSの機能の説明と、実際に工夫を凝らして運用して得られた知見を一部紹介します。

  • 標準QueueとFIFO Queueなど基本的な機能
  • SQSの可視性タイムアウトやメッセージンググループID
  • リアルワールドで起きていること
    • e.g. Webhookが順序通りに飛んでこない
レギュラートーク(20分)

ChatGPTに思い通りの回答をさせる技術

pinkumohikan ぴんくもひかん

ChatGPTが驚くほど人間のような回答で世間を賑わせて以来、生成AIが大変盛り上がっています。
しかし現時点では工夫をせずにプロンプトを投げると「突然英語で回答する」「架空の資料を元に回答する」など、ビックリさせられます。

本トークでは生成AIの仕組みやクセにフォーカスを当てながら、思い通りに操るためのマインドやテクニックを紹介します。
※ ChatGPTを想定していますが、大部分はGeminiやClaudeなど他の生成AIを使う場合でも通用する内容をお話します。

お話しすること

  • 生成AIの仕組み
  • Custom Instructionsで制約を与える
  • プロンプトエンジニアリング
  • 業務で使う場合の注意事項
    • 学習オプトアウト
    • 機微情報のマスク
4
上級者向けLT(5分)
カンファレンス初登壇

地方中小企業のエンジニアから大企業の執行役員になるまで

kyon_mm kyon_mm

多重下請けのSIer、地方中小企業のSIerでのエンジニアとして働いてきて、そのなかでちょっとずつスキルを身につけて、いまでは大企業の執行役員になりました。
そしてそれから4年働いて求められていることの変化に悩みながら、アーキテクト、プロダクトオーナー、コンサルタント、研究者、チームのリーダーをやってきました。
エンジニア的視点から経営者的視点までの約15年間の大きな変化を伝えられればと思っています。

以前に話したこちらをアップデートして話します。 https://speakerdeck.com/kyonmm/road-to-executive-officer-2022

あと、可能であれば当日は楽器と演奏者をいれて生演奏しながらトークできたらと思っています。(基本はギターになる予定です

6
LT(5分)
新潟枠 カンファレンス初登壇

コードリーディング入門!先人たちに思いを馳せればプログラミングがもっと楽しくなる

sakawe_ee さかうぇ

「コードを読むのになんだか時間がかかってしまう」、「上から読むのが非効率な気はするけれど、どこから見ればいいかわからない…」
このLTでは、コードリーディングの基礎を学び、そのコードが生まれた経緯を想像することで、コードリーディングをもっと楽しくする方法をお伝えします。

コードリーディングのポイント

  • 構造を捉える
  • 入出力に着目する
  • 主人公を探す

コードが書かれた背景に思いを馳せる

  • 開発者からのメッセージを読み解く
  • 過去の状況に同情する…
  • 初心者の頃の自分を思い出す

コードリーディングは、単にコードを理解するだけでなく、過去の開発者との対話であり、歴史を学ぶ旅でもあります。
プログラム修正のため・調査のためだけのコードリーディングから、歴史を紐解きレガシーコードの深淵をのぞく、一歩踏み込んだコードリーディングをしてみませんか?

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

アラートを減らす技術

pinkumohikan ぴんくもひかん

アラート無視が癖になっていませんか?

システムの異常に素早く気づき、信頼性を維持するためにインフラやアプリケーションの異常を知らせるアラートは欠かせません。
ですがアラートが過剰だと関心の低下を招いたり、重要な情報を見落とすなどして大きなトラブルにつながることもあります。

本セッションでアラートを減らすための考え方やテクニックについて抑え、アラートを信頼できる状態を目指しましょう。

想定観客

  • 「うちのシステム、アラート来すぎじゃない?」と思っているかた
  • 「このアラートって対応必要なの・・・?」と疑問に思ったことがあるかた

お話しすること

  • アラートが過剰だと何が良く無いのか
  • アラートの減らしかた
    • 棚卸し
    • 不具合の修正
    • 感度調整
  • ビジネスメトリックを監視する (書籍「入門 監視」より)
8
レギュラートーク(20分)

生成AIを用いたテストコード運用を模索する

zosokh ヒエイカザト

テストコード作成にどれぐらい工数を割いていますか?
規模感によりますが仕様要件への実装に対してのテストコード整備に個人的には3・4割の工数を割いています。
これが多いか少ないかは置いといて、テストコードにかけた工数はバグ対策やシステムバージョンアップ、影響範囲の大きい改修案件での大きな工数削減に繋がり、長い目でアプリケーションメンテナンスコストに恩恵が出ています。

ではテストコードにかける工数を生成AIを利用して減らしていく方法はないでしょうか。

  • GitHub Copilot、Cursor、VSCode Clineを使ったPHPUnitテスト作成サポート
  • 生成AIとCIで自動化運用の模索
  • 生成AIを利用する中でのテストコードの理解の前提、付き合い方
    などの話から
    より開発の速さと質の向上を求めるために、生成AIでの開発変化をどう作れるかを語れたらと思います。
1
ワークショップ(40分)

ルーティング処理を自作してみよう!

PHPといえばWebアプリケーション!
Webアプリケーションといえばルーティング処理!

このワークショップでは特定のURLでアクセスすると動的にコントローラーを呼び出す簡易ルーターを作ってみることで、普段なんとなく使っているWebフレームワークが内部でどんな処理をしているのか?を理解するための入口へ参加者をご案内します

1
LT(5分)

コメント駆動開発のすゝめ

コメント、書いていますか?

SNSでは比較的書く書かないが喧々諤々の議論になりがちなコードコメントですが、コメント駆動開発は特に初心者〜初級者にとってはとっつきやすく、TDDや生成AIによる補完とも相性が良いのでオススメです。

このLTではコメント駆動開発の概要とやり方、コツを簡単なサンプルコードを参考に解説します

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

インターフェース設計のコツとツボ

「インターフェースって何」って聞かれたら答えられますか?

インターフェースの設計はプログラミングの醍醐味とも言える創造的な営みです
PHPには言語機能としてのインターフェースが存在しますが、もう少し広義に考えれば

  1. プログラマが実装する各種関数/メソッドの引数や返り値
  2. フロントエンドとの協業に欠かせないOpenAPIの定義
  3. チーム内外とやりとりするための各種ドキュメント

なども立派なインターフェースといえます

このトークでは「契約による設計」の考え方を元に、実例を元にインターフェースをよりよく設計し、より価値の高い製品(システム)を作るために意識すべきことについてお話します

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

MDN Web Docs に日本語翻訳でコントリビュート

uutan1108 うーたん

Webアプリケーション開発者の方は一度は見たことがある MDN 。MDNの英語以外のドキュメントはコミュニティーによって日々翻訳やメンテナンスされています。

本セッションでは、MDNに日本語翻訳でコントリビュートする方法を0から紹介します。

GitやGitHubの簡単な使い方(git pullやcommit、push)とNode.jsの環境がPCにある方であれば今すぐ翻訳に着手できます。着手までの道筋が日本語翻訳コミュニティーによって明確化されているので簡単に準備→翻訳→ドキュメントに反映されます。

私は MDN Web Docs に日本語翻訳でコントリビュートした経験は少ないですが、初心者の目線で、MDN Web Docs 翻訳の魅力をお話しいたします。

2