GMOインターネットグループ作成のPHPerチャレンジ問題の解説をします
「推測するな、計測せよ」という有名なフレーズは皆様ご存知かと思いますが、今回New RelicはLaravelアプリケーションを実際に"計測"するためのポイント、そのパフォーマンスチューニングの勘所を実際の New Relic の画面を使いながら mpyw さんと一緒にご紹介します。
https://blog.cybozu.io/entry/phperkaigi2023-sponser
の記事に記載している、PHPerチャレンジ問題の解説LTとなります。
最近、1993年発売のX68030というパソコンを買って動かして遊んでいます。
大学生当時に憧れだったけど高くてとても買えなかったX68030ですが大人になり財力が付いた今なら…と思ってフリマサイトを監視していたら良さそうな機体が出品されたのを発見してつい…。
X68030はHDDにSCSIを採用しHDD内蔵モデルであるX68030-HDには80MB(GBじゃないですよ)のHDDが内蔵されていました。
翻って現代、2022年。世の中には「Raspberry PiでSCSIデバイスをエミュレートする」とか「Compact Flashに格納したファイルをSCSI HDDとして見せる」とか「Raspberry Pi でFDDをエミュレートする」みたいな同人ハードウェアが生み出され、当時とはまったく異なる快適なX680x0環境を構築することができます。
このトークではX68030の紹介と、2022の今、X68030を楽しむにはどうすると良いかをお伝えします。
今でも十分通用するX680x0の魅力がみなさまに伝わり、X680x0ユーザが増えることを期待しています!(ねえよ)
みなさん、どんな環境、フローで開発されていますか?
このセッションでは、私が開発をしているとあるプロダクトのなかみをチラ見せしつつ、
開発環境はどんな構成?デプロイ先は?テストってどうしてます?CI/CD はどんな感じ?
など、普段はあまり詳細を話すことが少ない開発の現場を解説します。
みなさんは、PHP で正規表現を使っていますか?
ちょっとした条件判断や、文字列の整形などで使われていると思いますが、その正規表現は複数あることをご存知でしょうか?
Perl準拠の正規表現である preg 系関数、マルチバイト文字列の正規表現が使える mb_ereg 系関数 の2つです。
しかし、PHP プログラマーは一体どういう時にどっちを使えばよいのでしょうか?
このポスターセッションでは、PHP の正規表現が今までどのように実装されていて、どう現れてきたのかを順を追って説明します。
これを読めば、用途に合わせて、どの正規表現関数を選択すればよいのかを自分で考えられるようになります。
Laravel にて基本機能を構築した弊社の不動産投資クラウドファンディングシステム「不特法クラウド」は、2020年9月に正式リリースされました。
2年以上にわたる機能開発・システム運用、またインフラや DevOps 改善の試行錯誤の中で直面してきた様々な失敗を取り上げると共に、失敗から学んで品質改善につなげることのできた事例をご紹介します。
ゼロからプロダクトを磨き上げてきたエンジニアの汗と涙、何よりプロダクトへの愛情の詰まったプレゼンテーションです。
デジタルサーカス株式会社作成のPHPerチャレンジ問題の解説をします
本セッションでは、PHP のいくつかの dependency injection framework についての調査・検討を行います。
具体的には、 https://github.com/capsulephp/comparison にて示されている特定のシナリオを実現できるか?という比較内容を紹介します。
上記に加え、このリポジトリでは触れられていない追加機能や利用方法の違いについてまとめ、検討を行います。
開発チームには2種類のオーナーシップ欠乏症が発生しがちです。
「もっとオーナーシップを持って開発したい」「もっとオーナーシップを持って開発して欲しい」
上記についてフリーランス→社員エンジニア→エンジニアリングマネージャと経験してきた立場から、実体験を交えて考察します。
PHP 8.1以降のmbstringの進化はとどまることを知らず、文字コードの処理に後方互換性の破壊が発生していたりします。
それを網羅したブログを公開したところ、作者のAlexさんにも読まれて、そこからレビューをお手伝いするようになりました。
また、PHP 8.3となるであろうバージョンでは、UTF-8への処理に高度な最適化が加わりそうなため、大幅な改善が期待できます。そのため、UTF-8を使うことをますます強くお勧めすることになりそうです。
本セッションでは、レビューに加わることになった経緯や、UTF-8とはというところから、文字コードとmbstringへの理解を深めていくものとしたいです。
OPENLOGIでは10年もののPHPアプリケーション(Laravel)が日夜動き続けています。
コードの行数は数十万行あり、データベースのレコード数も数十億程度あります。
もしシステムが止まってしまったら、倉庫のオペレーションが止まり、ユーザの手元に商品が届かなくなります。
システムを安定的に動かし続けるために、「監視周りの強化」や「パフォーマンスチューニング」など様々な取り組みをしています。
また、次の10年改善し続けるための基盤作りも積極的に行なっています。
具体的に取り組んでいることについて幾つか紹介します。
ユーザーからのお問い合わせはプロダクトを運用するにあたり避けては通れません。
原因調査にかける時間を減らし、プロダクトの改修や新機能の開発に時間を割くためには、調査ノウハウの蓄積とそれらが瞬時に引き出せることが要求されます。
これらの要件を満たす方法を模索した結果、アキネイターのように質問形式で過去事例を絞り込む方法にたどり着きました。
このセッションでは、調査ノウハウと過去事例に関して、
miroで整理を試みた際の工夫点、その仕組みを運用する際に浮上した課題点をお話しします。
また、miroでの運用の限界を感じたためkibelaでの運用も試みたのでその際の工夫点、課題についてもお話しします。
サービス運用者の皆さん、技術負債解消に向き合えてますか?
機能拡張に対して技術負債がネックになり開発効率が落ちることに、何度も頭を悩ませた事があるのではないでしょうか。
ローンチして8年のフォトウエディング・前撮りの日本最大級のクチコミサイト「Photorait」では、サービスを更に拡大するべく新機能の開発を行いながら、長い年月の中で生まれたレガシーなシステムや非効率な運用フローなど、技術負債への課題解消も並行して行っています。
本セッションでは、新たな機能開発を止めずに並行して行っている負債解消への取り組みと、事業メンバーへの理解促進、そして今後の開発サイクル加速のために実施していることを発表します。
対象者
・サービス運用エンジニア全般
・技術負債改善の進め方を知りたい方
・事業メンバーの理解や賛同を得る方法を知りたい方
ソフトウェア開発において、負債による生産性の低下は身近に起こり得ることです。
負債はソフトウェアに直接的な影響はないため軽視されがちですが、継続開発する上で多くの場合に課題となってきます。
そんな負債に対し皆さんはどのような取り組みをしていますか?
本セッションでは、DDD導入やテスト設計の見直し、SRE活動やOASの活用など、我々が負債に対しどのように取り組んできたのか、実例と共に解説いたします。
本セッションを通じて
「負債を残さないために何をすればいいかわからない」
「他に良い方法があれば知りたい」
という方が参考にできるような時間を提供いたします。
カルテット開発部の2人によるLT2本立てでお送りします!
【オブジェクト指向に基づいたユニットテストの記述方法 by伊神】
ユニットテストが依存しすぎたり冗長になってしまっていませんか?社内ではその問題が起きないようにオブジェクト指向の考え方に基づきテストを書いています。オブジェクト指向に基づいた考え方いくつかピックアップしてご紹介します。
【Symfony超入門!コマンドだけでCRUD画面を作るチート法 by志賀】
SymfonyにもLaravelのphp artisan make:xxxのような公式コマンドがあります。それを使って、たった数コマンドでCRUD画面ができちゃうチート法教えちゃいます!これであなたのSymfonyチョットデキル
サイボウズのGaroon開発チームでは「完成度低いの歓迎LT大会」を不定期に開催しています。
このLT大会の目的は、登壇のハードルを下げることです。
LT大会を重ねるうち、より登壇ハードルを下げるため「完成度の低さ」が歓迎されるようになり、完成度の低い発表は実況スレッドで褒められるように、逆に完成度の高い発表には「完成度が高すぎる」と指摘が入る現象も発生しました。
このスポンサートークでは、完成度低いの歓迎LT大会を開催することになった経緯とその成果についてお話しした後、
実際にGaroon開発チームの3名による「完成度低いの歓迎LT大会」をお届けします。
直に完成度低いの歓迎LT大会の雰囲気を感じ取ってもらえればと思います。
どうぞ本家のLT大会のように、完成度の低い点を褒め、完成度の高い点には指摘しながらご参加ください。
株式会社フォトラクションでは「建設の世界を限りなくスマートにする」というミッションのもと建設支援クラウドPhotoructionを提供して早5年超。
サービスの基盤の大部分はPHP/Laravelで実現されております。
我々の提供するサービスがどのような課題を解決しているか、またそれらがどのような構成で実現されており、日々技術的な課題に向き合い改善しているかを紹介させて下さい。
それらを通じて、皆様に建設DXの世界を少しでも知っていただけると幸いです。
OSSが大事にしていることは、開発をすすめること。
しかし、それと同じく大事にしていること、それが「セキュリティ対策」。
なぜ大事なのか?どのくらいの時間をセキュリティ対策に費やすべきなのか?
実際に多くの時間をセキュリティに費やしたエンジニアが解説していきます。