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

マネジメントの奥義「信頼するけど期待しない」を身につける

o0h_ きんじょうひでき

EMを始め、マネージャーやリーダーには「人を動かす」という場面が多くあります。
「目標を定義する」「組織での解決をデザインする」「仕事を割り当てる」、こんな流れです。

他人の参加を前提にした物事は、「その人が動いてくれなかったら」で達成が危機に晒されたりもします。
マネジメントには、こうしたリスクを織り込んで、安全にゴールまで辿り着く事が求められます。
他方で、「大きな仕事を与える」「自由にやらせる」ことの効能が、強くしなやかな組織を育む上で重要だと見做されています。

私が両者の狭間で足掻きながら見えてきたのは、「信頼するけど期待しない」という感覚です。
このトークでは、自身の経験を通じて掴んだポイントを共有します。

トピック

  • 私はなぜ「人の才能に頼る」ことが好きなのか
  • 「信じる」と「期待する」の違い、比較
  • 現場において、どのように実践していくか?、その言動
5
レギュラートーク(15分)
初心者向け

もはや入門者ではない。「PHPかんぺきにりかいした」になりたい人のための次のレベルへの道標

kunikiya 原田裕介

世の中に入門書や入門者向けの記事は溢れています。
上級者向けの書籍や記事も増えています。
入門書を終えた後、次のステップに進むために何を学ぼうか悩んでいるビギナーの方は多いのでは無いでしょうか?
PHPを使って業務で開発を行っていくうえで、次のステップとして学ぶと良いことを具体的なケーススタディを交えてお話ししていきます。

◆対象者
・入門書をやり終えた程度のPHP初心者
・簡単なWEBアプリケーションが作れるようになったPHP初中級者

◆話すこと
・バグを生み出しづらい書き方
・コーディング規約
・チーム開発において読みやすい書き方
・コメントの入れ方
・セキュリティを意識した書き方
・エラーの見方

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

privateメソッドのテストって書かない方がいいんだっけ?

asumikam asumikam

privateメソッドのテストを書くか書かないか問題はよく話題にあがるかと思います。
実は、私もかつてはprivateメソッドのテストをたくさん書いていた時代がありましたが、今はprivateメソッドのテストは書かずにテストを書いています。
自分の思考の整理をするのに繋がった「単体テストの考え方/使い方」という本の内容からも引用しつつ、
実体験をベースに「なぜprivateメソッドのテストを書かないのか」というところをお話します!

トークで話す内容

  • かつて私が書いていたprivateメソッドのテスト(と、その理由)
  • なぜそれが良くなかったか?「偽陽性」「偽陰性」の視点から考える
  • どのようにテストを書くべきだったか?
  • privateメソッドのテストは書かない方がいいのか?(※経験に基づいた持論)
4
レギュラートーク(15分)

失敗例から学ぶSOLID原則

asumikam asumikam

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

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

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

4
レギュラートーク(15分)
初心者向け 初登壇

本気で運用するLaravelのCI/CD

suguru_ohki スー

TechTrainというバックエンドがLaravelのプロダクトで5年ほど運用してきました。コードベースも大きくなり、リファクタも積み重ねなくていく必要が出てくるくらいにはなっています。
度々部分的に記事でCI/CDについて紹介されていることはありますが、本番環境で何を全体的に運用するのか?といった紹介がないので、導入し、必要なところを改善するのに少し苦労しました。
このトークでは、Laravelの運用にあたり、何をCI/CDで導入し、どういうポイントを抑えると、楽にできるのか?について詳しくお話しします。

4
レギュラートーク(15分)
初登壇 関西在住者

PHPerならPHPを使って人助け(OSSコントリビュート)始めませんか?

koyolympus wadakatu

OSSコントリビュートはした方が良いという話はよく聞きます。
しかし、実際にどう進めれば良いのかという話は中々ないように思います。

このトークでは、私が業務中に行ったOSSコントリビュートの手順を1から解説します。
OSSコントリビュートの手順に正解はありませんが、このトークを通して「ほ〜ん、大体こんな感じなんやな〜」と思っていただければ幸いです。

対象読者

  • OSSコントリビュートって何? 美味しいの? 状態の人
  • OSSコントリビュートをどう進めれば良いか知らない人
  • PHPを使って人助けしたいなと考えている人

自分のために書くPHPも良いものですが、人助けのために書くPHPもとても良いものです。
これを機に、PHP界隈のOSSコントリビュート文化がもっと成熟して、多くのPHPerが気軽にコントリビュートできる世界になれば嬉しいです。

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

PHPをサーバレスコンテナ環境で動かしていこう! ~3大クラウドの比較を添えて~

みなさん、サーバレスで動かすPHPはお好きですか? 私は大好きです。
このコンテナを稼働させる仕組みは様々ありますが、1つのコンテナを動かして気楽にWEBアプリ開発をしたくありませんか?

そんなあなたにぴったりなのが フルマネージドでコンテナ型アプリを作成できる
・App Runner
・Cloud Run
・Container Apps
です。
これらのサービスの比較と実際にPHPアプリケーションを動かす際のポイントなどをお話します!

対象

・Dockerなどコンテナについてなんとなく聞いたことがあり、ちょっと動かしてみたい人
・サーバレスという言葉に惹かれる人

お話すること

・各社のサーバレス コンテナサービスの比較(特徴や料金体系など)

お話しないこと

・商用環境での運用の話(個人開発ベースです)
・ライブデモはありません(あくまでスライドのお話ベース)

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

MySQL8の新機能WITH句とWindow関数を使って可読性の高いSQLを書こう!

for__3 zoe

MySQL5.7のEOL対応は順調ですか?
MySQL8になって色々新しい機能があるのは知ってるけどいまいちちゃんと把握してない方、何となく機能は知ってるけど使い所がピンと来てない方向けにMySQL8の新機能WITH句とWindow関数のおさらいと便利な使い方、可読性の高いSQLの書き方について実例を出しながらお話しします。

6
レギュラートーク(15分)
初心者向け

Laravelの罠:Eloquentとクエリビルダの共存に学ぶ実践的失敗談

kotomin_m ことみん

このトークでは、LaravelのORMシステムであるEloquentのアクセサ・ミューテタが何か、またクエリビルダとの違いは何かについて、PHP初心者に向けてわかりやすく解説します!!
その後、Eloquentとクエリビルダを組み合わせて使用する際の注意点について、実際に起こった失敗談を紹介します。
そして、この失敗から得た教訓をもとに、同様の問題を避けるためにはどうしたら良いのかについても掘り下げます。

このトークを聞くことで、Laravelを利用しているけれどもEloquentとクエリビルダの違いが分かっていない方も、明日からその2つの違いを理解し、安全なデータベース操作ができるようになるでしょう!乞うご期待!

6
レギュラートーク(15分)
初心者向け

パスワードのハッシュ、ソルトってなに?

okashoi おかしょい/岡田 正平

少し前にパスワードにまつわる「ハッシュ」と「ソルト」という言葉が話題になりました。
また「平文で保存していたパスワードが流出する」といった事件もたびたび耳にします。

パスワードの扱いについては、Web アプリケーションフレームワークを使っていればあまり意識することは無いかもしれません。
実際、意識しなくてもフレームワークがよしなにしてくれます。

でも、いったい「ハッシュ」や「ソルト」とは何なのか?
上述のような事件を起こさないよう、アプリケーション開発者としてしっかり押さえておくべきポイントをお話します。

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

静的解析ツール PHPStan を活用して実装上のうっかりミスを早期発見しよう!

okashoi おかしょい/岡田 正平

不具合が確認され、丸一日かけて調査したら原因はうっかりミスによる構文エラーだった.......そんな経験ありませんか?
「そんなうっかりミスを実行する前に気づけたらいいな」そう思ったあなたにお勧めするのが静的解析です!

本トークでは PHP 静的解析ツールの一例として PHPStan を取り上げて、それが使えるとどんなことがいいのかをお話します。

本トークで話すこと

  • 静的解析と PHPStan についての概要
  • こんなうっかりミスを検出できます

本トークで話さないこと

  • PHPStan の詳細な使い方、設定
  • 型にまつわるお話
2
レギュラートーク(15分)
初心者向け

PHP の namespace と autoloading の関係を正しく理解する 〜PSR-4 を添えて〜

okashoi おかしょい/岡田 正平

フレームワークのドキュメントに従って、あるいはプロジェクトの既存のコードに従ってファイル上部に書いた「namespace」「use」といったキーワード。

この意味、正しく理解していますか?
「ディレクトリ名と対応させて書くやつ」「他の言語でいう import みたいなやつでしょ?」みたいな認識をしていませんか?

実は PHP の機能としては namespace(名前空間)とディレクトリ名、ファイル名には一切の関係はありません!

「じゃあ、なんで require とかを書かずに他のファイルに定義したクラスを使えているの?」と思ったあなたに、その仕組みと、それらを支えている存在をお教えします。

5
レギュラートーク(15分)
初心者向け

PHPで知る「凝集度と結合度」

22kerokero22 kerokero

コードで扱われる関数の分け方の基準として凝集度結合度というものがあります。
これらは構造化プログラミングの文脈において提唱されている概念であり、オブジェクト指向プログラミングにおける様々なデザインパターンSOLID原則を理解する上でも重要なものです。

このトークではPHPで書かれた具体例をもとに、凝集度と結合度についてお話します。

具体的な内容

  • 品質の良いコードって何?
  • 凝集度と結合度について
  • SOLIDのSである単一責任の原則(SRP)について

対象者

  • 時と場合による良いコードの具体的な根拠について知りたい人
    • 少しでも多くの判断基準を持ちたいと思ってる人
  • 凝集度と結合度っていうワードを初めて聞いた人
  • SOLIDの原則という言葉はなんとなく聞いたことがある人
9
レギュラートーク(15分)
初心者向け

XOAUTH2を使ってGmailからメールを取り込む

tomzoh 長谷川智希

Gmailからメールを取り込みたいと思ったことはありますか?
GmailはPOP3/IMAP4をサポートしているのでPOP3やIMAP4を使えば良さそうですがIDやパスワードは何を使えば良いでしょうか。
実はGmailはXOAUTH2という規格に対応しており、XOAUTH2を使ってWebベースの画面遷移でパスワードを取得することができます。
このトークではGmail + XOAUTH2を想定して以下の様なトピックをお話します。

  • PHPで使えるIMAP4のライブラリ
  • IMAP4で新着メールのみを取り込む方法
  • GmailのアプリパスワードとXOAUTH2対応

なかなか情報が少ないIMAPやGmailのXOAUTH2対応ですので、このトークが同じ課題に立ち向かうみなさんの力になることを祈っています。

3
レギュラートーク(15分)
初心者向け

Enumとmatch式を使おう〜取り得る値を表現してより変化に強いシステムを〜

NakMeKtt 仲見川勝人

みなさんEnum(列挙型)使ってますかー?

PHP8.1にてついにPHPにもEnumが導入されました。
今まで外部ライブラリに頼っていた機能が言語レベルでサポートされ、IDEもこれに対応し始めています。

本セッションでは、Enumがもたらす変更への強さと、PHP 8.0で追加されたmatch式のシナジーを、具体的なコード例を用いて解説します。switch文の一般的な落とし穴、例えばフォールスルーの誤りや条件追加の漏れなどが、これらの新機能によりどのように解決されるのかを見ていきます。

Enumとmatch式を利用して変化に強いシステムを作っていきましょう!

想定視聴者

  • Enumに聞き覚えがない方や、その使い方に不安がある方
  • 条件分岐で頻繁にif文やswitch文を使っている方
  • switch文のフォールスルーでつまずいた経験がある方
  • 条件の追加忘れで困ったことがある方
8
レギュラートーク(15分)

Gatekeeperの概要とmacOS用ソフトウェアの署名および公証手順

matsuo_atsushi 松尾篤

macOSのGatekeeperは、悪意のあるソフトウェアのダウンロードやインストールからユーザーを守るためのセキュリティテクノロジーです。macOSで開発しているとGatekeeperを意識する機会はあるものの、実際にソフトウェアを提出して公証(ノータリゼーション)を受ける手順まで経験したことのあるPHPerは少ないのではないでしょうか。このトークでは、Gatekeeperの概要や歴史、そしてPHP以外の言語を用いて作成したコマンドラインツールを実際に署名して公証を受ける手順について解説します。

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

Symfony Profilerはいいゾ!

kin29ma_n 志賀彩乃

Symfonyにはデバックに便利なSymfony Profilerというものがあります!
(にわかですがLaravelにもLaravel Telescopeというのがあるようですね、symfony/var-dumperが使われているんですね)

Symfony Profilerが超便利なので、個人的推しポイントを共有します!

4
レギュラートーク(15分)
初心者向け

PHPで始めるOSS活動 ~ 初めてのComposerパッケージ公開~

seike460 清家史郎

OSS活動は自分のためにも他の人のためにも非常に尊い行為です。
このトークでは、PHPを使用して初めてのComposerパッケージを公開する手順を解説します。

PHPerとしてOSSに貢献することはスキルアップとコミュニティへの貢献の両方を果たします。
パッケージの作成からテスト、文書化、そしてPackagistに登録するまでのステップを詳しく説明します。
またOSSプロジェクトでのコラボレーションの重要性と、オープンソースコミュニティへの貢献がいかにして個人の成長に繋がるかについてもお話します。

このトークを通じて、参加者は自身のPHPプロジェクトを公開し、OSSコミュニティに貢献を後押し出来れば幸いです。

  • お話すること
    • Packagistに公開するまでの手順
    • 考慮すべきこと
    • OSS活動の意義
    • OSSへのコントリビュートについて
10
レギュラートーク(15分)

Laravelの認証機能をカスタマイズしてワンタイムトークン認証を実装したときの試行錯誤

KizuMiyagi BABY JOB ミヤギ

私が開発を担当しているサービスでは Laravel をフレームワークとして採用しています。
Laravel が提供している認証機構は、通常ほとんどのニーズを満たせるほど充実しています。
しかし、現場では「独自の認証方法を追加したい!」というニーズが発生することも多々あると思います。

私はつい最近、そのようなニーズに合わせて Laravel の認証機能を探求し、独自の UserProvider を作成しました。
認証機能を探求して分かったことやカスタマイズのプロセス、全体を通しての気づきについて共有したいと思います。

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

PHPでNotionのデータベースにCSVをインポートするフォームを作ってみる

ttskch たつきち

NotionにはデータベースにCSVでレコードを一括投入するための 「CSV取り込み」 という機能が標準で搭載されています。
が、少なくとも2023年11月現在においては正直だいぶ貧弱な機能で、本当に最低限のことしかできません。
(例えば、インポートできるプロパティの種類が限られている、ページ本文はインポートできない、「名前」カラムの値が重複している行があると正常にインポートできない、など)

そこで最近、必要に迫られてPHPでNotionのデータベースにCSVをおインポートするフォームを自作しました。
このトークでは、このフォームの具体的な実装手順を、デモを交えつつサクッと解説します。

2