リモートワークが日常となった現代、テキストコミュニケーションの重要性に気づいている人はどれほどいるでしょうか?
新卒入社からずっとリモート下で働くリモートネイティブとして、私が学んだテキストコミュニケーションの重要さや、明日からすぐ使えるTipsをお伝えします!
「先輩にどう質問する?」「ビジネス側のやり取りはどう進める?」などシーンに応じて、伝わりにくい文章の例をどう改善するか解説!
絵文字「👍」や感嘆符「!」など細かな表現まで、日々のテキストコミュニケーションで意識しているポイントをたくさん解説!
不具合や障害発生時にSlackなどでエラー通知を受け取ることはありますよね。
そのとき、即座に何をすべきか具体的な対応方法をイメージ出来ますか?
エラー発生時の対応は、迅速かつ効率的でなければ、小さな問題が大きな障害に発展することも……!!
そこで、私がエラー通知を受け取ったときの初動〜対応完了までに「何を考えて」「どのように対応しているのか」をお伝えします!
このLTを聞けば、「エラー通知来ないでほしい」と願っている皆さんも、通知が来ても慌てることなく、冷静に対応できるようになっているはずです!
静的解析ツールは「ここが良くないから、こういうふうに直すといいよ」と教えてくれる便利ツールです。
開発環境やCIで導入している方も多いのではないでしょうか?
私が開発するプロダクトにも導入されていましたが、PHPのバージョンアップに取り組んで初めて「静的解析を導入するとってこんなに嬉しいのか!」と感動しました。
このトークでは、初心者〜中級者向けに、安心安全なバージョンアップという観点に絞って、静的解析のスゴいところや使いどころを紹介します!
これからバージョンアップをする人はもちろん、コードの品質を高めたい方にとっても役立つ内容です!
テストに必要なPHP環境を設定できるGitHub ActionsのアクションであるSetup PHP Actionは、PHPの各バージョンに対応しているだけでなく、さまざまな拡張モジュールやツールを活用することができます。さらに、マルチプラットフォームに対応しており、LinuxだけでなくWindowsやmacOS上で手軽にテストを実行させることもできます。このLTでは、テストやOSSのコントリビュートにも役立つ、Setup PHP Actionの使い方を解説します。
LaravelやSymfonyで開発を行う際、デバッグ時にdd()やddd()を使います。
様々なオブジェクトをいれても表示してくれるし、ブラウザアクセスやコマンドなど実行形式に応じて表示もよしなに変えてくれるなんで便利ですよね!
ddそのものは各FW側のヘルパ関数として作られていますが、中身を見ると共通してSymfonyComponentであるVarDumper::dumpが呼ばれています。
このトークでは各FWで使われているsymfony/var-dumperライブラリの中身がどのような作りになっているかを追いかけます。
私たち開発者にとってログは非常に重要です。
開発時のデバッグやローンチ後の障害解析など、ログを出力していることで救われたシーンは多かれ少なかれあるのではないでしょうか?
そんな私たちを助けてくれるログですが、Laravelでは様々な設定やカスタマイズが可能です。
しかしどのような設定ができるのか理解するところまで手が回らず、デフォルトのまま運用してそのままという悲しいシーンを見ることも多々あります。
このトークでは実際にログ出力する際にLaravelのLogManagerがどのような処理を行なってログを出力するのか、各設定の詳細、Laravel10より追加されているLaravelPailを用いたログの限定出力のやり方等をお話ししますので、今後のログ運用の助けになれば幸いです!
PSRはPHP Standards Recommendationsの略でコーディングスタイルやオートローディングの規格、インターフェースなどのPHPに関する勧告を出しています。
PSRは必ず勧告に従わなければいけないなどの強制力はありませんが昨今ではPHPのフレームワークやライブラリでPSRで策定されたインターフェースが数多く取り入れられていてこのインターフェースに倣ってメソッドを呼んでいる方も多いのではないでしょうか。
HTTPに関するインターフェースは多数策定されていますが、その中のどれか一つを選んで公式の説明と共にそのインターフェースを実装しているライブラリの実装例を見ながら解説して理解を深めていきたいと思います。
ここで言うスクラッチ開発はフレームワーク(&ライブラリ)を使わずにシステムを開発する事を指す事にします。
フレームワークはセキュリティやセッション管理などなど色々な事をよしなにこなしてくれたり、細かい実装は隠蔽されてインターフェースの使い方さえ分かれば誰にでも一定のレベルで使える開発生産性をあげてくれる素晴らしい道具です。
ですが素のPHPだけでシステムを開発する事でPHPそのものやフレームワークを使った開発もより理解が深まりエンジニアとしてのレベルもアップすると思います。
今回はスクラッチ開発でWEBシステムを開発する事によってどのような学びがあるかを話します。
Laravel eloquentを使ったRDS上での検索クエリは、テーブル間のJOINやクエリの複雑さが検索パフォーマンスに悪影響を与えていました。特に、利用頻度の高いクエリがレイテンシー低下の主因となり、その改善を目指してOpenSearchを導入しました。
結果、検索速度が飛躍的に向上し、レイテンシーも大幅に改善されました。また、OpenSearchのPHP DSLライブラリを導入することで、クエリの構築をシンプルにし、保守性を高める工夫も行いました。
Laravel eloquentとの共存を図りながら、検索機能のパフォーマンス最適化を実現しました。これらの経験を基に、検索機能改善の実例を紹介します。
このトークは、パフォーマンスに課題を抱える開発者や、検索機能の改善に興味のある方に向けた内容です。
現在Laravelを愛用しているPHPer、企業は非常に多いと思います。
状況や何を作るかにもよると思いますがPHPで何か作ろうと思ったらLaravelが第一候補になる事が多いのではないでしょうか。
自分はPHPが主戦場になってから今までCakePHPを使用していてLaravelを使ったことが無いので1週間という時間を仕事もしないで、家に篭ってただLaravelと向き合って学んだ事、作った物を発表します。
社外の勉強会のLTや登壇、挑戦してはみたいけど踏み出せない。そんなあなたへ。
私はあまり考えずに突発的にLTに飛び込んだことで、自分の行動が変わり、その後も発表の機会を得ることができました。
このLTでは、最初に勇気を出して飛び込んでみた結果、どのように行動変容が起こったのかをお話しします。
登壇経験がない、または不安を感じている方に向けて、「最初の一歩」を踏み出すヒントをお伝えします。
CloudFrontのエラーが頻発…でも原因がよく分からない。
実はWAFのルールに引っかかっているかもしれません。
このLTでは、WAFの基本的なルール設定を実際に遭遇した事例を元に紹介します。
ここ数年、私はRaspberry PiでCPUを作っています。
これは、Z80というCPUをコンピュータから取り外して代わりにRaspberry Piで作った自作CPUを取り付けて動かすというもので、PiZ80と呼んでいます。
PiZ80はZ80採用のパソコン・MSXを動かすことを最終目標にしています。
現在のPiZ80は同じくZ80採用のコンピュータ・SBCZ80でZ80よりも高速に動作する様になっていますが、ここに至るまでにはさまざまな改善がありました。
このトークではそもそもCPUを作るというのはどういうことか、CPUを作る時にどこに速度的な課題があるのか、そしてMSXでPiZ80を動かすまでの道のりをお話します。
このトークを聞いた方がCPUやハードウェア自作を好きになり、そしてあわよくばPiZ80のソフトウェアをいっしょに改善していけることを願っています!
PHPでCookieを管理する際、セキュリティ面やライフサイクルについては意識するものの、
サーバーサイドとクライアントサイドの境界を意識することはほとんどありません。
しかし、近年ではSSR(サーバーサイドレンダリング)の普及により、
サーバーとクライアントの役割が明確に分かれ、Cookieの扱いにも違いが生じています。
このトークでは、PHPとSSRにおけるCookie管理の違いに注目し、
両者の処理の境界がどのように影響を与えるかを解説します。
PHP開発者がSSRで直面しやすい問題点や、それに対するよりベターなプラクティスを紹介し、
Cookie並びにフロントエンド技術への理解をより深めていただくことを目指します。
実践的な知識を持ち帰り、PHPからSSRへの移行に役立ててもらうことを期待しています。
画面開発で、こんなお悩みを抱えていませんか?
これらの課題が原因で開発効率が低下しモチベーションも低下してしまいました。その解決策の一手として、デザインシステムの導入を進めました。
今回は、すでに存在していたデザインリニューアルのデザイン案をベースに、プロダクトにデザインシステムをうまく反映できていなかった状況から、仕組みを整備して導入を進めるまでの一連の取り組みをお話します。
最近では、DevOpsの中にSecurityを意識した活動を含める、DevSecOpsの様な考え方が広まっており、この様な流れの中でSAST(Static Application Security Testing)やDAST(Dynamic Application Security Testing)の様な検査をCI/CDに組み込む事例を見かける様になってきました。
このセッションでは、SASTツールの一つである、SonarQubeの基本的な機能や特徴、実際にCIに組み込んでの活用方法、実行環境の構築例などについてお話しします。
話すこと
SQLにおいて、最も重要なのは「正確さ」、次に優先すべきは「速度」です。
これらの要件を満たすため、どれだけ努力しても、時には可読性が犠牲になることがあります。
本セッションでは、正確さと速度を最優先した結果、可読性が低くなってしまったものの、非常に高い精度と高速性を持つSQLを実例を交えて紹介します。
一見して何をしているのか分かりにくいかもしれませんが、その背後には緻密な工夫が詰まったSQLの世界をご覧ください。
主に非エンジニア、WEBディレクターや初心者向けのセッションです。
対象:
• WEBディレクター
• 企業などのWebサイト管理者
• PHPにこれから触れるかもしれない人
ゴール:
エンジニアとの要件定義内容の確認やベンダーとの会話が少しはスムーズになれたらいいな。
内容:
受託会社で働いていると、改修や運用案件で、どうしてPHPを選ばなかったの? または、その反対にどうしてわざわざPHPにしたの? って案件にめぐり逢います。
クライアントから相談いただく「運用しにくい」「更新が自由に行えない」といったサイトやサービスは、PHPの使われるところが間違っているのでは…と感じることが多いです。
ちょっと知識があれば、防げたかもしれない…!
非エンジニアの人に役立っていただけそうなことをお話できればと思います。
リッチなUIを実装するために多くのアプリケーションでjQueryが利用されています。
導入がしやすい、使いやすい、プラグインも豊富といった利点がありますが
DOM操作の命令的なコードはロジックやUIが複雑になると保守性が悪くなる傾向にあります。
一方で、ReactやVueなどのフレームワークは、宣言的UIにより保守性が上がりますが
学習・運用コストなど過剰な技術となるケースも少なくありません。
本トークではLaravelのMPAにおけるフロントエンドの実装手法についてお話します。
Alpine.jsを使ったUI実装を中心に、jQueryの使いどころ、ViteやNative ESMによるJavaScriptの管理、Blade連携、コンポーネント化について紹介します。
チームやプロダクトに適したアーキテクチャを選択し、より本質的な課題解決ができるきっかけとなれば幸いです。
オブジェクト指向を学ぶ私たちは、必ず一度は「SOLID原則」に触れる機会があると思います。
私も何度も学習を重ねる中で、その原則がもたらす恩恵や、守ることの重要性を徐々に理解してきました。
…ただ、「リスコフの置換原則(LSP)」だけは「これを守るとどう良いのか?」がいまいちしっくりきていませんでした。
「同じ気持ち!」なあなたに向けて、このセッションでは、以下のようなお話をします。
「なるほどLSP完全に理解した!」といってもらえるようなトークにします!