Select2というライブラリを使ってサジェスト機能を導入しようとしたものの、PrototypeJSとのコンフリクトや、データ量が多い環境でのパフォーマンス問題に直面しました。最終的にライブラリを使わず1から独自に実装した結果、パフォーマンスが大幅に向上し、機能を完成させることができました。この5分の発表では、その経験から学んだライブラリ選定の課題と、バックエンド処理を使ったサジェスト機能の実装方法を紹介します。
PHPStanは静的解析ツールとして、日々の開発で多くのエラーや警告を教えてくれます。今回の発表では、私が独断と偏見で選んだPHPStanのエラーをできるかぎり紹介し、そのエラーがどのような状況で発生するのか、また具体的な修正方法を一挙に発表します!
PHPStanのエラーを理解して、あなたも今日からPHPStanをあなたのより良い同僚の一人にしましょう!
そして開発品質を上げていきましょう!
開発初期段階で、社内だけにUIを公開して早期にフィードバックを集めるために、isProduction()を活用しました。
スプリントレビュー会前にUIや文言を改善できることで、リリース前の手戻りを減らし、開発スピードを向上させる具体的な方法についてお話しします。
課題:
UIや文言の修正がレビュー会後に集中してしまい、リリースが遅れることがありました。
実際の操作性の問題や細かいバグも見逃されがちで、後で修正することもありました。
解決策:
isProduction()を利用して、社内ではUIを早期に公開し、開発段階でも社内メンバーからフィードバックをもらい、リリースまでに改善することで手戻りを減少させました。
結論:
isProduction()を活用することで、早期にフィードバックを集め、リリース前の手戻りを減らし、開発の効率化を図ることができました。
LaravelのEloquetにはupsert関数があって便利だなぁ♪
あれ?updateOrCreate?
あれあれ?updateOrInsert?
一体どれを使えばいいんだーーー!!!
本セッションではこんな悩みを解決するために、それぞれの関数の説明とどう使い分けるかについてお話します。
皆さん「学ぶ・勉強する」と聞くと「机に向かって本を読む」「カンファレンスに参加する」というようなことを想像しませんか?
実際それらは学びに繋がる大事なアクションなので間違ってはいません。
でも「毎日本を読む」「毎日カンファレンスに参加する」ってしんどくないですか?
私はしんどいと思っちゃいます。
「本を読んで学ぶ」は手段のひとつでしかありません。
日常のありとあらゆるものが学びの対象となります。
例えば日々行っている業務から学ぶこともあるでしょうし、漫画やアニメから学ぶこともあるでしょう。
そういった全てのことから学べるようになると頑張らなくても学べて成長できるようになります。
本セッションでは
などをお話できればと思います。
世の中にはたくさん便利な言葉があります。
その中でも開発に関わる便利な言葉において「今の場面においてはその言葉は逃げじゃないか?」というシーンが多く見られます。
私もつい便利に使って逃げてしまうことがあります。
具体的には以下のような言葉は、便利ではあるが使い所を間違えると逃げに繋がる言葉だと思っています。
認知負荷・属人性・技術的負債・心理的安全性・視座…etc
本セッションでは
このあたりを中心にお話できればと思います。
「コンフォートゾーンを抜けましょう」っていうフィードバックもらったことありませんか?
私はあります。
でも「そもそもコンフォートゾーンって何?」「抜けろって言うけどどうやって抜けるの?」って思いませんか?
私は思います。
本セッションでは
皆さんCI/CD回してますか!
日々のルーチンワークを仕組み化して定期実行させるのは効率化の観点で非常に重要ですよね。
ローカルマシンでcrontab書いて手元のスクリプトを定期実行…みたいなことしてる人、いませんか?
それ、GitHub Actionsでできますよ!
本セッションでは
あなたの社内にも「あの人になら相談しやすいな」という人はいませんか?
社内で頼られる人にはどのような特徴があるのでしょう。
エンジニア歴25年、8社を渡り歩いてきた私が
社内コミュニケーションにおいて心がけている、細かすぎるけど大切なことをお話します。
弊社はPHPで自社サービスを提供しているスタートアップ。
エンジニアは超売り手市場でなかなか採用ができない。
毎日レジュメを眺め、スカウトメールを送る日々。
とある日、ようやく弊社事業に興味を持ってくれたエンジニアがカジュアル面談に来てくれた!
幸いにも事業関心も高く、マッチしそう!
ところが、弊社の採用言語がPHPであることを伝えると
「PHPはちょっと…」
え?
え?
そこで温度感下がってしまうの?
カジュアル面談でこんな状況に遭遇したら、どうすればいいでしょう?
このLTで採用担当のそんなお悩みを解決します。
とある機能を実装していたときのことです。その機能には、動的に作成・削除されるファイルの存在有無によって分岐する処理がありました。
検証環境でのテストも問題なく、満を持して本番環境にデプロイしたところ、なんと大量のエラーアラートが!
エラー内容を見てみると、どうやら削除したはずのファイルがなぜか存在すると判定されてしまっているようなのです。
調査の結果、PHPの意外な仕様が原因であることがわかりました。
上記の経験をもとに、あなたの知らない(かもしれない)PHPのファイル操作にまつわる仕様とその対策をお話しします。
私のチームでは最近GitLabからGitHubへと移行し、CIもGitHub Actionsを使い始めました。
せっかく移行するなら、単なる書き換えではなくGitHub Actionsならではの機能やベストプラクティスを取り入れたいと思い、いろいろと調査を行いました。
このLTでは、PHPアプリケーションのCIをGitHub Actionsで実装するにあたって得られた知見を共有します!
想定する聞き手
話すこと
話さないこと
Next.jsを今年から触り始めたんですが、フロント側のテストって何を書いていいかわからない、UI部分のテストって書くのが難しそう、と思っていました。
そこでフロント開発(Next.js)の自動テストについて調べて、実際に作成した時、こんなライブラリやツールを使ってこんなテストをしたよ、っていうようなことを話したいと思います。
具体的には以下のような内容を話す予定です。
•自動テストのタイミング(コミット時、GitHubのプルリクを出した時、mainにマージされた時など)
•ESLintでの静的解析
•Storybookを使った自動テストの作成
•Jestを用いたテストの作成
•Chromaticを用いたUIの変更点のテスト作成
•Codecovを用いてコードカバレッジの取得
2ヶ月間毎日Qiitaに投稿したらめっちゃ強くなった(気がする)
皆さんは、インプットだけでなく、記事を書いたり、LTをしたりといったアウトプットをしていますか?僕は、去年まではほとんどアウトプットをしていませんでした。
そんな僕が、2月から4月にかけての約2ヶ月間、毎日Qiitaに記事を書いて投稿しました。その時の体験談をお話ししたいと思います。
具体的には、以下の内容をお伝えする予定です。
皆さん、コードの品質に悩まされたことはありませんか?
バグと格闘する夜を過ごしていませんか?そんなあなたに、Larastanをご紹介します!
Larastanは、PHPStanの力を借りて、あなたのコードを守る不可視の盾となります。
主な特徴:
Larastanを使えば、本番環境でのハプニングとはおさらば。より堅牢で、メンテナンスしやすいアプリケーションを、自信を持って構築できます。
さあ、Larastanと共に、より洗練されたLaravel開発の世界へ飛び込みましょう!
マニュアル読んでますか?
PHP のマニュアルを読むと何が嬉しいのか、以下の観点からお話します。
私が携わったホスティングサービスでは、ユーザーがコントロールパネルからワンクリックで WordPress をインストールできる機能を提供しています。特定の契約者には、購入された WordPress テーマも同時にインストールできる機能も提供しています。
この機能の実現にあたって、テーマファイルを契約者のみにアクセス制御して配布することが重要な課題でした。この LT では、WordPress 簡単インストール機能の仕組みに触れた後、テーマを適切にアクセス制御して配布するための具体的な方法について、WordPress の制約を踏まえた解決策をお伝えします。
また、パブリッククラウドのオブジェクトストレージに保存されたテーマの転送コスト削減のために採用したキャッシュ戦略についても共有します。アクセス制御を維持しつつ、効率的な配布システムを構築するための工夫をお話しします。
皆さんは、PHPStanを使って開発していますか?
PHPStanは静的解析ツールであり、PHPの開発をサポートしてくれます。
例えば、未定義の変数のチェック、PHPDocの間違いの確認、型の確認などの機能があります。
これは、動的型付け言語であるPHPで開発していく中で、必ず役に立つ機能です。
さて、私が開発しているプロダクトは、20年前から存在します。
古いコードには型宣言がなかったり、クラスを利用しておらず、グローバル領域で書かれたコードも多くあります。
そんなプロダクトに静的解析を導入するまでの苦難の道程と、入れたらどのような警告が出たのかをLTでお話しします!
PHPStan苦手ですか?私は苦手でした。
苦手を克服するにはひたすら倒していくのが遠いようで近道です。
よく遭遇するパターンを5分で紹介できるだけ紹介していければと思います。
DDD(ドメイン駆動設計)に興味があるけど、どの本から読めばいいか迷ったことはありませんか?数多くのDDD関連書籍をすべて読むのは大変ですが、安心してください!とりあえず、手に入る本は全部読んで見ました!本トークでは、どんな人がどのDDD関連本を読めばいいのか、独断と偏見で発表します!