求人サービス「エンゲージ」はサービス開始からLaravelのモノリスなアプリケーションとして開発が行われてきました。サービスの内製化を目指して組織が急拡大していますが、毎回の機能追加のたびに発生する大規模な影響調査、チーム間のコミュニケーションコストの増加等の理由で開発速度が低下し、ビジネスサイドと開発サイドが協調して素早くサービスの価値を最大化するという、内製開発のメリットが活かしづらい状況でした。
弊社はそのような問題に対して、イベントストーミングやドメイン駆動設計、モジュラーモノリスといった開発を選択し、開発速度の向上やオーナーシップの強化を目指して取り組んでおり、その取り組みの軌跡や失敗の経験、今後の展望についてお話しします。
普段からドメインを意識した開発に取り組まれている方、これから組織に導入していこうと考えている方をはじめ、一つの事例として参考にしていただけると幸いです。
It is the year 2024 and PHP developers are still arguing about double quotes vs single quotes.
Lets explore if that actually still matters, see why it does not, learn what happens before your code gets executed and find the answer to the question: What has the OPcache ever done for us?
PHPerの皆さんは自分が開発しているプロダクトへの愛を持っていますでしょうか?
エンジニアからプロダクトへの愛には「受託開発だから特に愛してない」から「自ら企画した自社サービスだから我が子のように愛してる」まで様々な濃度があると思います。
エンジニアが自らオーナーシップを持つために・エンジニアにオーナーシップを持ってもらうために、プロダクト愛の濃度別にできることを語りたいです。
The 1brc is "a fun exploration of how quickly 1B rows from a text file can be aggregated with Java", but let's face it, we should be able to do this in PHP too, right?
Let's see how fast we can actually aggregate 1 billion rows in PHP and learn about optimising the performance of PHP software along the way.
Ever dreamt of becoming a PHP core contributor but felt overwhelmed by the prospect of creating RFCs, maintaining extensions, or writing C code? Worry no more!
We'll discover how to make an impact on the PHP core by writing tests. Join me for an interactive session where I'll live code a test on stage, demystifying the process and equipping you with essential techniques.
弊社で開発しているサイボウズ Garoon は利用してくださるお客様のお陰で20年を超える長寿プロダクトとなりました。
当初はオンプレミス版での提供から始まりクラウド版を経て現在では多くのお客様で利用されています。
その中で私はお客様からの問い合わせに対応するバックサポートチームでエスカレーションエンジニアを行っています。
クラウドの障害対応はもちろんですが、Garoon はオンプレミス版も提供しているため多種多様なお問い合わせがあります。
このトークではエスカレーションエンジニアのご紹介と具体的な問い合わせや業務内容をお話します。
新入社員がテストコードを書けない場合、どのように教えますか?
日頃書く人は感覚的に書けますが、書いたことのない人はコツを掴むまで時間がかかってしまうものです。
皆様も経験があるのではないでしょうか?
本セッションでは、そんなテストコードのチュートリアルをpublicリポジトリとして公開・そのリポジトリの利用方法やテストコードを書く上でのテクニックをお話します。
Docker環境さえ整っていれば誰でもLaravelフレームワーク内でPHPUnitのテストを書くための問題集にチャレンジできる内容となっております。
全ての操作用のコマンドやREADMEを用意しているので、Dockerの知識がなくてもテストの実行やテスト用DBの中身を確認できます。
これを機にテストコードを書けるようになりましょう!
対象者:
・テストコードを知りたい方
・育成コストに悩んでいる方
サービスは生き物のようなもので、放置すれば腐ってしまいます。
適切なメンテナンスとアップグレードが必要です。
本セッションでは、古くなったPHPフレームワーク(Laravel)を再生するための具体的な戦略を解説します。
ユニットテストの導入、Laravelアプリケーションのコンテナ化によるインフラ刷新、Laravelアプリケーション/MySQLのバージョンアップなど、数々の挑戦とそれを克服した方法を紹介します。
これにより、デプロイ頻度の向上、テストコードによる仕様の明文化、システムの安定性を向上させることができました。
実際の成功事例を通じて、参加者はPHPプロジェクトの持続的な進化を支える具体的な戦略を学ぶことができます。
年月を経たレガシーなアプリケーションの検索処理は、肥大化したロジックによりパフォーマンスが劣化しがちです。本セッションでは、実際に直面した検索遅延を、OpenSearchを活用して改善した実例をもとに、選定理由から実装の課題、実際の効果までをお話します。
PHPは、エンジニア・案件ともに豊富となり、もはや習熟していれば使いどころに困らない昨今となりました。
一方で、copilotの台頭や経営層のIT解像度の深化等により、
エンジニアへ投資する目線もまたシビアになったと言えます。
そんな中で、より魅力的なプロダクト開発や優れたチームの構築へ、私たちを連れて行ってくれるものは何でしょうか?
競合に劣らぬ価値を発揮し、プロジェクトを牽引するには、何が必要とされるでしょうか。
本LTでは、業界、業種、業態(営業→開発、医療→エンタメ等)を問わず経験した話者の観点から、
「必要だったビジネススキル」「掛け算の重要性」を主題としてご紹介します。
技術に伸び悩んだ時どうすべきか。ビジネススキルとは何か。
具体・抽象を交え時間いっぱい詰め込みます。
本LTで新たな気づき・学びをご提供し、ご清聴賜りました皆様のエンジニアライフの一助となれれば幸いです。
書き初めとは、新しい年に初めて字や絵を書くことを指します。令和6年の師走、今年最初のSymfonyを書いてみませんか?
このセッションでは、オートワイヤリングに特化し、Symfonyでのオートワイヤリングを実際に体験していただきます。Symfonyが初めての方や、他のフレームワークを利用している方にも、安心してSymfonyに触れる機会となることを目指しています。ぜひお気軽にご参加ください。
バックエンド開発を担当しながらスクラムマスターを務めることになり、気づけば約1年が経過しました。この1年間、開発チームの速度を向上させるために、さまざまなアプローチを試み、試行錯誤を重ねてきました。
チーム内のコミュニケーションの改善、プロセスの見直し、ツールの導入など、いくつかの施策を実施してきましたが、特に効果が現れた方法に焦点を当ててお話しします。
本セッションでは、実際に取り組んできた施策の背景、その成果、そして今後の展望についても触れながら、皆さんと共有したいと考えています。
令和の今日。性別関係なく、メイクを楽しめる世界になりました。
その中でも、爪を塗る(ネイルする)ことは開発生産性を上げる効果があると、私は考えています。
この5分で、ネイルによって得られるメリットをご説明します。
LaravelプロジェクトにおけるL5-Swaggerの活用方法と、それによるAPI開発プロセスの効率化について深堀りします。
L5-SwaggerはLaravelでSwagger(OpenAPI)ドキュメントを自動生成するツールであり、APIの設計、開発、テスト、そしてドキュメンテーションのプロセスを大幅に改善します。
ぺちこん参加回数2桁になっている私が、「ぺちこんは楽しいから、もっといろんな方に知って欲しい!参加して欲しい!」そんな思いで声をかけ、毎年初参加者を誘うことに成功しています。
ぺちこん自体を知らない方、名前は知っているけれど踏み出せない方、いろいろいらっしゃる中で、私が日頃から行っている声かけやお誘いポイントをお伝えします。
システム運用時にslack通知設定をしているシステムは多々あると思います。
私が関わっているシステムでも、日々様々な通知をslackに出しています。
しかし、slack通知が多すぎて本当に必要なものが埋もれてしまったり、@channelだらけでミュートしたくてもできないチャンネルになったりしていませんか?実は通知が届いていたのに誰も対応できなかった、なんて経験はありませんか?
そんな運用の苦労を少しでも減らす方法を、実際に運用してみて直面したケースを例にお話ししたいと思います。
■話す事
・slack通知NGパターン
・slack通知を誰が見るか
・slack以外の手段
■話さない事
・slack通知の設定方法
DRY(Don't Repeat Yourself)原則はコードの重複を減らし、保守性を高める効果的な手法ですが、適用の仕方によっては仕様変更に対応できなくなることがあります。
私が直面したのは、二つの似た処理を一つのメソッドに統合し、フラグで細かい違いを切り替えるコードでした。しかし、片方の処理を変更すると、もう片方にも影響が出てメソッドが複雑化する…これ本当にDRYなん?と思いました。
このトークでは、当時はDRYだったものが、時間とともに保守性を損ない、結果的にDRYではなくなったケースについて紹介します。
何を共通化し、何を分離すべきかを考え直し、どのようにリファクタリングを行ったかについて具体的な事例を交えてお話します!
「当時はこうでよかったが、今ここに大変更を加えたい」と感じている方や、似たような体験をした方にとって、私の対処方法が参考になれば嬉しいです!
PHPは言語仕様として様々な条件分岐を持っています。if, else, elseif, switch, 三項演算子, match, &&, ||...職業PHPエンジニアの皆さんは日々これらを使いこなして仕事をしていることと思います。では、ユーザー要求や要件の中に、あるいは要求以前のビジネスの中に、仕様書やフローチャートに表される前の条件分岐の形を見出す力はどうでしょうか?自信ありますか?
このトークでは、PHPの様々な条件分岐を概観した上で、日常で人間が行っている様々なビジネス上の判断をPHPの条件分岐に落とし込む考え方についてお話しします。
様々な条件分岐が「見える」生活をしてみませんか?
This session bridges the gap between PHP and JavaScript by comparing modern features like arrow functions, classes, and destructuring in both languages. Attendees will see how PHP has evolved to include features familiar to JavaScript developers, simplifying cross-language development.
This talk focuses on leveraging modern PHP features like arrow functions, typed properties, and named arguments to write robust, clean, and maintainable code. It offers best practices for structuring and organizing code and includes examples of bad code, showing how to resolve these issues with specific PHP features.