LT(5分)

地方大学生が技術サークルを盛り上げるためにしたこと

uutan1108 うーたん

私は、学生時代に地方の大学で技術コミュニティー(サークル)の運営に取り組んできたので、地方大学のコミュニティーについてお話ししたいと思います。
私は新卒のエンジニアですが、昨年まで地方の大学で技術コミュニティの運営に取り組んできました。私が大学生の頃、2019年12月からコロナが流行し、大学はリモート授業になり、サークル活動も対面で行うことが難しくなりました。また、「地方のITコミュニティー」と「大学のサークル」では特性が異なりオンライン化に伴い、それぞれのコミュニティーで苦戦したことがあると思います。
このような環境の中で行ったことや、苦戦したことや上手くいかなかったことについて発表します。また、「大学生のコミュニティー特有の課題」や「地方大学のコミュニティーの課題」についてもお話ししたいと思います。

1
LT(5分)

LaravelHerdでサクッと環境構築

9rokirishima くろきり

今年のLaraconUSでLaravelの環境構築ツールとしてLaravel Herdが紹介されました。
Laravelの環境構築ツールとしてはLaravelValetが既に存在しますが、
Valetよりも簡単にすぐ導入できるところにメリットがあり、
どれくらい簡単かというと動かすだけならHerdをインストール後、create-projectをするだけでブラウザで表示させることが可能です。
またそれだけではなく、動かすPHPのバージョンもクライアントツールで簡単に切り替えられ、
様々なバージョンで試すことも容易になります!

このLTではLaravel Herdの紹介とValetとの比較、実際に使ってみての所感をお話しします!

2
LT(5分)

タイムトラッキングで時間の使い方を可視化してみた

9rokirishima くろきり

現在私はプレイングマネージャーという形で、複数の案件を掛け持ち自身も開発をしながらメンバーを管理し、加えて会社の組織設計や雑務も行っています。
様々な仕事を行う中で、特にシステム開発という仕事は楽しくやりがいがあり、集中した時にはあっという間に1日が終わってしまいます。
そして後から気づくのです。「開発以外の仕事全然できてない」と。。

この問題を打破すべくタイムトラッキングを導入し、自分が何の仕事にどれだけ時間を使っているか可視化することで本来やるべきことに時間を使えるように改善を進めていきました。
このLTでは実際に発生した問題から始まり、タイムトラッキングツールの導入、実際に可視化して気づいた点や自身の作業の改善内容、導入してみて良かった点/反省点をまるっとお話します!

1
LT(5分)

動くソフトウエアを素早く提供するためのスプリントの過ごし方

sanogemaru Genki Sano

アジャイルソフトウェア開発宣言の中に「包括的なドキュメントよりも動くソフトウェアを」と記載がある通り、アジャイル開発において「動くソフトウェア」というものは非常に重要視されていると思います。
そのため、普段の開発業務で「動くソフトウエア」を素早く提供することを求められる場面は、きっと多いのではないでしょうか?(むしろ、常にそういう期待値を持たれているかもしれません。)

本トークでは、そんな「動くソフトウエア」を素早く提供するために実際にスクラムチームで取り組んだことについて、実体験をベースにした知見をご紹介します。

このトークでお話すること

・「動くソフトウエア」とは何か
・どうやって価値提供のスピードを上げたのか
・内部品質を保つためにどんなことをしたのか
・まだ改善していく余地はあるのか

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

動くソフトウエアを素早く提供するためのスプリントの過ごし方

sanogemaru Genki Sano

アジャイルソフトウェア開発宣言の中に「包括的なドキュメントよりも動くソフトウェアを」と記載がある通り、アジャイル開発において「動くソフトウェア」というものは非常に重要視されていると思います。
そのため、普段の開発業務で「動くソフトウエア」を素早く提供することを求められる場面は、きっと多いのではないでしょうか?(むしろ、常にそういう期待値を持たれているかもしれません。)

本トークでは、そんな「動くソフトウエア」を素早く提供するために実際にスクラムチームで取り組んだことについて、実体験をベースにした知見をご紹介します。

このトークでお話すること

・「動くソフトウエア」とは何か
・どうやって価値提供のスピードを上げたのか
・内部品質を保つためにどんなことをしたのか
・まだ改善していく余地はあるのか

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

モジュラーモノリスを導入してみたチームの裏話

sanogemaru Genki Sano

数年間で成長してきた自社プロダクトですが、モノリスの複雑化の増大に対して軽減・改善していくために、モジュラーモノリスを導入することにしました。

そんな話を度々耳にしたことがあるのではないでしょうか。
ただ、実際にやってみたら「こんなはずしゃなかった」「予想外にいいことがあった」みたいなことになる、そんな経験がきっとあると思います。

本トークでは、モジュラーモノリスを導入した際の現場目線での知見や体験談をお話します。
モジュラーモノリスの1歩目を踏み出そうと思っている方や、レガシーコードに日々向き合っている方に聞いていただけると嬉しいです!

このトークでお話すること

・Pakege By Feature について
・導入するに至った背景
・モジュール構成とその中身について
・導入してみてよかったこと/苦労したこと
・これからの展望

4
LT(5分)

"config" ってなんだ?

okashoi おかしょい/岡田 正平

Web アプリケーションフレームワークを使ったプロジェクトを新規作成し、自動生成されるファイル郡の中にある config というファイルまたはディレクトリ。

いったいこいつは何なのか?
どうやら項目を自分でも追加できるようだが、一体何を追加してよくて、何を追加すべきでないのか。

本トークはそんな疑問にお答えします。

4
LT(5分)

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

okashoi おかしょい/岡田 正平

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

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

本トークで話すこと

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

本トークで話さないこと

  • PHPStan の詳細な使い方、設定
  • 型にまつわるお話
LT(5分)

てっていりかい!emptyの挙動をphp-srcを読んで理解しよう

tyamahori tyamahori

PHPのソースコードでよく empty($hoge) を見ることは有りませんか?

ドキュメント( https://www.php.net/manual/ja/function.empty.php )にて仕様は書かれていますが、腹落ちしていますか?

このLTでは、emptyの挙動を理解できるように、php-srcを読んでどのようなことをemptyは行っているかを説明します。

追記

注意: これは、関数ではなく 言語構造のため、可変関数 や 名前付き引数 を用いてコールすることはできません
https://www.php.net/manual/ja/function.empty.php

とのことで、関数と表記をしてしまいました。お詫びして訂正いたします。

1
LT(5分)

PHPでもオプションクラス欲しいよね!無いなら作るまでさ!

AkitoTsukahara AkitoTsukahara

ScalaにはOptionクラスがあるのをご存知でしょうか?
これは何らかの処理結果(オブジェクト)を返すメソッドにおいて、通常時は子クラスのSomeに結果を返し、処理できなかった場合は子クラスのNoneを返してくれるものです。

この仕組みがあれば、nullableのドメインプロパティを利用する際に制御が容易になったり、値がないかもしれないことを明示的に表現できるのでコードの可読性と保守性が向上します。

ただOptionクラスはPHPにないのです...ではどうするのか?
自分たちで用意するしかないですね!
このトークではPHPでOptionクラスを用意するところをご紹介します。

資料に余裕があれば、
弊社のプロダクトはこれまでnullableのドメインプロパティをどう扱っていたのか経緯を踏まえつつ、なぜOptionクラスに行き着いたのかも合わせてご紹介できればと考えています。

採択
2023/10/08 15:55〜
トラック4 - 4F コンベンションホール 鶯
レギュラートーク(25分)

学園祭Web開発の現場とPHPのこれまでとこれから──技術選定と教育から語る

Arthur1__ Arthur

私は学生時代に学園祭実行委員会に所属し、PHPを用いた学園祭Webサイトの開発・運用や情シス業務に携わっていました。その頃の経験を振り返り、学園祭というドメインならではのWeb開発の過去と未来に触れつつ、一般のエンジニアでも他人事ではない技術選定や教育に関する話をします。

こんな話を時間の許す限りします

  • 「学生」「学園祭」というドメインならではのチーム・プロダクトの特徴
  • PHPでの開発を学び、後輩に伝承するための講習会と砂場遊び
  • 現代における学園祭Webサイトの設計論
  • 社会人エンジニアとなった今、役立っている経験
5
LT(5分)

[PR]IRT形式の勉強会「PHPerTeaNight」を運営しています!

kubotak_public Kenjiro Kubota

こんにちは!
PHPerTeaNight運営メンバーの久保田です。
PHPerTeaNightはPHPer(PHPを愛するプログラマ?)のためのIRT形式による勉強会です。
2022年7月から開始し、ほぼ毎月開催する勉強会です。

ぜひ、PHPerコミュニティとして輪を広げたいと思い番宣ならぬ、会宣をさせていただきたいと思います!
以下のような内容をトークしたいと思います。

  • 誕生の経緯
  • 勉強会の内容
  • 過去のテーマ
  • どうやって運営しているか

このトークを聞いた人がPHPerTeaNightに参加してくださったり、他のPHPコミュニティの勉強会なども参加してくださると嬉しいです。

3
採択
2023/10/08 11:20〜
トラック6 - 3F 特別会議室
レギュラートーク(25分)

クレジットマスターとの戦い

NakMeKtt 仲見川勝人

近年、ECサイトなどにおいてクレジットマスターと呼ばれる、ランダムにクレジットカード番号を生成してECサイトのクレジットカード入力欄を用いてオーソリチェックをかけまくるという迷惑極まりない攻撃が増加傾向となっています。
私の関わるサービスでも例に漏れず攻撃を受けたことがあり、その対策に追われました。
今回はLaravelの機能を用いての対策や、もう一歩踏み込んだ対策を行ったのでご紹介してみようと思います。

内容

  • LaravelのThrottleについて
  • Throttleだといまいちだった事
  • 他にやった対策(開発)

こんな人向け

  • クレジットマスター対策をしたい人
  • LaravelのThrottle(大量のアクセスを制限する機能)について知りたい人
LT(5分)

Laravel のコントリビューターになって変わったフレームワークに感じること

みなさんは普段開発している際、バグに遭遇することがあると思います。そしてそのバグの発生要因が PHPDoc のメンテナンス不足であると考えると怖くないでしょうか。
私は実際に Laravel を使用して開発している際前述したような経験をしました。そして PHPDoc の修正を行い、Laravel のコントリビューターとなりました。
私はこの一連の出来事からコードリーディングがとても大事であることに気付かされました。
この発表では PHPDoc の不足をどのように見つけたのか、どう修正したのか、そしてコードリーディングが世界の誰かに役に立つかもしれないということを話します。

4
採択
2023/10/08 15:20〜
トラック4 - 4F コンベンションホール 鶯
レギュラートーク(25分)

既存コードベースにもPHP_CodeSnifferを導入して楽したい!

takaram71 荒巻拓哉

多くの現場でコーディング規約が策定され、それに沿った開発が行われています。
私のチームでもコーディング規約があり、実装者とレビュー者がそれぞれチェックを行っていました。
しかし守るべきルールの数は80を超え、人間が限られた時間の中目視でチェックするのは無理がありました。その結果見落としも頻発していました。

大変なことは自動化するのがプログラマの美徳。そこでPHP_CodeSnifferをIDEとCIに導入し、人間の負荷を下げることに成功しました!

しかしその裏では、既存プロジェクトであるが故のいくつもの障壁がありました。
「独自の規約なので、定義済みのルールセットを利用できない……」
「既存コードに違反があるせいで、毎回CIがエラーになる……」

このトークでは、約半年をかけてPHP_CodeSnifferをチームに導入した経験談と、直面した障壁の乗り越え方についてお話しします。

LT(5分)

オフショアから学ぶ他者への意思伝達法

YKanoh65 加納悠史

大きなソフトウェアを一人で作ることは難しく、エンジニアには常にコミュニケーションスキルが求められます。
ましてや外国のチームと開発 "オフショア" においては必須スキルと言ってもいいでしょう。

オフショア開発では意思疎通の問題から予想できないハプニングや思いがけないアクシデントが多々生じます。
私は、現在所属しているチームにてベトナムチームとの窓口を4年担当し、
情報共有不足や、遠隔メンバとの温度感の違いによる認識齟齬をはじめとする様々な出来事を経験しました。

その中には、後から考えれば「ここでちゃんと伝えておけばよかった」と後悔するものもたくさんあります。
本セッションでは、そんなオフショアにおけるハプニングやアクシデントを紹介し、それらを回避するノウハウなどを実例を交えてお伝えすることで、
齟齬の発生しないコミュニケーションや、相手への意図の伝え方をお伝えできればと思います。

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

クエリパフォーマンスチューニング:スロークエリを未然に防ぐために計測する

sucalul すか

「推測するな、計測せよ」という言葉は、改善策を探す時だけでなく、新機能をリリースする時も同様で、「計測」することは重要です。
開発環境の少量のデータを扱う場合は問題なく動作するクエリも、本番環境の大量のデータではパフォーマンス低下し、スロークエリになる可能性があります。
今回は、フィルターによる約160万行削除とNested Loopのトータルコストが約12万、実行時間が約600msかかるクエリを、サブクエリを活用し、Nested Loopを無くし、実行時間を約0.2msに改善をした事例を取り上げます。

話すこと

  • 実行計画の解読:EXPLAINコマンドの理解
  • 実際に行った対応
    • 本番レコードの調査
    • どのようにクエリの再設計を行ったか
    • INDEXの再考

注意:このトークではPostgreSQLを使用しています。

2
LT(5分)

Laravel に React を部分導入して感じたこと

勝佐拓也

現在私が BABYJOB 株式会社で開発を担当している保活サービス「えんさがそっ♪」では、バックエンドは PHP で Laravel、フロントエンドに Laravel の Blade テンプレート + jQuery で構築しています。
最近ではフロントエンド開発への課題感から React の導入を積極的に行っています。

React 導入の経緯としては...
①肥大化した jQuery の管理に限界を感じていた
②流行りの SPA に挑戦したかった

今回は Laravel 製のサーバサイドレンダリングアプリケーションに React を部分導入してみて、感じたメリットとデメリットをお話ししたいと思います。

1
LT(5分)

Laravelアップデートを行った経験をシェアする

kido

Laravelのアップデートを、Laravel Shiftを使いながら行ってきました。

実際にどのようなことを行ってきたかをお話しできればと思います。

アップデートをいずれ行う予定の方や、Laravel Shiftの導入を検討している方に
経験したことをシェアすることで、何かしらの参考になればと思います。

LT(5分)

あの時、Java から PHP へ:新しい世界へのトレッキング

BABY JOB ミヤギ

Java 6 のバックパックを背負ったまま、PHP 8 の山を登ろうとしたらどうなるでしょうか?このライトニングトークでは、私のそんなエピソードをご紹介します。

①スタート地点: Java の世界から出発し、PHP 8 の新たな土地を目指した時のお話。
②サバイバルギア: 新しい世界を生き抜くために、私が手に入れたリソース、ツール、そして秘密の武器についてお見せします。
③オンザロード: 途中で出くわした難問や驚きの発見、そしてそれらをどうクリアしたかのエピソードをシェアします。

まだトレッキング途中ではありますが、私の経験が、新しい技術にチャレンジしようとしているあなたの背中を押す一助となれば幸いです。

2