わたしは十数年間この業界にいますが、いろいろなサービス層を見てきました。
そこには、愛らしいサービスもあれば、目を背けたくなるサービスもいました。
そしてこう思うのです「人には人それぞれのサービス層がある」と。
なぜ、人はみなそれぞれのサービス層を作ってやまないのか謎に迫りつつ、
これらの問いに、SOLID原則、特にSRPを切り口としてサービス層について考察したいと思います。
「東京では毎日のように勉強会が開催される一方、新潟は勉強会が多くない」ーー3年前に東京から新潟へ移住しそう感じました。
では、実際の新潟の勉強会事情はどんなものでしょうか?どうすればより新潟を盛り上げられるのでしょうか?
本トークでは新潟でエンジニアコミュニティ運営に関わってきた実体験と具体的なデータの分析から、「新潟のエンジニアコミュニティを盛り上げるには?」を考えます。
本トークが新潟のエンジニアコミュニティを盛り上げる一助となれば幸いです!
PHPer 界隈は日本全国で毎月のようにカンファレンスが行われる、とても熱狂的なコミュニティです。そしてカンファレンスがたくさん行われるということは、それだけ登壇のチャンスがある、と言い換えることができます。
本 LT ではカンファレンスに参加すること・登壇することのメリットだけでなく、その入口であるプロポーザルを作る方法、そして「プロポーザルを作ること」そのものによって得られる学びや成長についてお話しします。
これをきっかけに、日本中の PHP カンファレンスに参加する人が増え、登壇する人が増え、PHPer 界隈を盛り上げる仲間が増えることを期待しています。
もうわかってることをコーディングして手放しで勝手にやってくれないなかーと思ったことありませんか?僕はあります。
魔法のように勝手にコーディングしてくれると気持ち良さそうだなとも思っています!
そんな願望を元にCursorなどを例に出してできるだけ楽に開発する方法を具体的に紹介します。
日々のコーディング作業の中で、効率をぐんと上げるためのキーボードショートカット、カスタマイズのコツ、拡張機能・プラグイン連携の活用法、ワークスペースの最適化など、実践的なテクニックをデモを交えて解説します。
皆さんも今までPHPのバージョンアップで苦しめら(ry 楽しんできたことと思います!
本トークでは、PHPの各メジャー・マイナーアップデートで起こる「え、こんな変わるの?」と突っ込みたくなる仕様変更を実体験とPHPの仕様の議論を追ってそれらを交えて紹介します。突然動かなくなった旧コード、非推奨から削除された関数、予想外の挙動や新機能の落とし穴…現場で感じる驚きと混乱何故そのようになったのか?をネタにしながら、どう対処すべきかを議論します。PHPエンジニアなら「なんでだよ!?」と叫ぶ瞬間が満載の内容です!笑
管理者がユーザーの問題を調査したり、代理操作を行う際に便利な「ユーザーとしてログイン」機能を、Laravelの認証機能を活かして実装する方法を紹介します。
この話をすると「うちでもやりたい!」と言われることがあったので、今回改めてまとめてみました。
とても便利な機能なのですが、実装を誤るとセキュリティリスクもあるため、抑えておくポイントも解説できればと思います。
既存のページの一部をSPAにすることになったのですが、CSSの競合が問題になりました。
「Shadow DOMを使えばCSSをうまく分離できるはず」と思って採用したのですが、いくつかハマりポイントがあったのでそれについてお話したいと思います。
・Shadow DOMの簡単な説明
・JavaScriptをShadow DOM内で使うときのハマりポイントとその対策
Vueを利用した初期化についても触れたいと思います。
実際にスロークエリを探すところから調査しながらどうやってスロークエリをチューニングしていくかを体験していきます。
PostgreSQLとMySQLを対象にします。
私たちが普段書いているPHPによるコードは、いくつかのステップを経て機械に分かるよう変換されます。
AST(抽象構文木)にOPCode(オペコード)は、その流れを理解する上で欠かせない存在です。
日常的に接しているはずなのに馴染みがない─
そんな存在に、自分の手と目を使って少し仲良くなるワークショップです。
あなたのコードが、どんな風に解釈されているのか?一緒に覗いてみましょう!
本セッションでは、複雑なレセプト業務システムにおけるアーキテクチャ改善の実践的アプローチを共有します。
依存性逆転原則をアーキテクチャレベルで適用し、複雑なシステムを段階的に改善した実践知見を、以下の3点から解説します:
コアドメインの蒸留プロセス
・レセプト業務における本質的責務と付随的機能の切り分け手法
・データ依存関係のAPIインターフェース化による依存方向の制御
アーキテクチャ進化の戦略
・システムとビジネスの理解に基づいた2段階のリアーキテクチャプロセス
・並行開発を可能にしたスキーマ駆動開発の実践的導入手法
得られた定量的・定性的効果
・開発の並行性向上によるリードタイム短縮
・バージョニングされたインターフェース定義によるコミュニケーションコストの削減
・システム分離による保守性と変更耐性の向上
私は現在物流系の会社に所属をしており、ECサイトから注文情報や商品情報を取り込む外部連携部分の開発を行っています。
Shopifyや楽天市場など様々な外部連携先がありますが、各連携先ごとの仕様がバラバラです。
ShopifyのようなWebhook形式のものもあれば、楽天市場のようにAPI経由で情報を取得するパターンもあります。
日々大量のリクエストを送受信をしており、日々大量のJobを発火し正常に終了させています。
本登壇ではAWS SQSの機能の説明と、実際に工夫を凝らして運用して得られた知見を一部紹介します。
ChatGPTが驚くほど人間のような回答で世間を賑わせて以来、生成AIが大変盛り上がっています。
しかし現時点では工夫をせずにプロンプトを投げると「突然英語で回答する」「架空の資料を元に回答する」など、ビックリさせられます。
本トークでは生成AIの仕組みやクセにフォーカスを当てながら、思い通りに操るためのマインドやテクニックを紹介します。
※ ChatGPTを想定していますが、大部分はGeminiやClaudeなど他の生成AIを使う場合でも通用する内容をお話します。
多重下請けのSIer、地方中小企業のSIerでのエンジニアとして働いてきて、そのなかでちょっとずつスキルを身につけて、いまでは大企業の執行役員になりました。
そしてそれから4年働いて求められていることの変化に悩みながら、アーキテクト、プロダクトオーナー、コンサルタント、研究者、チームのリーダーをやってきました。
エンジニア的視点から経営者的視点までの約15年間の大きな変化を伝えられればと思っています。
以前に話したこちらをアップデートして話します。 https://speakerdeck.com/kyonmm/road-to-executive-officer-2022
あと、可能であれば当日は楽器と演奏者をいれて生演奏しながらトークできたらと思っています。(基本はギターになる予定です
「コードを読むのになんだか時間がかかってしまう」、「上から読むのが非効率な気はするけれど、どこから見ればいいかわからない…」
このLTでは、コードリーディングの基礎を学び、そのコードが生まれた経緯を想像することで、コードリーディングをもっと楽しくする方法をお伝えします。
コードリーディングのポイント
コードが書かれた背景に思いを馳せる
コードリーディングは、単にコードを理解するだけでなく、過去の開発者との対話であり、歴史を学ぶ旅でもあります。
プログラム修正のため・調査のためだけのコードリーディングから、歴史を紐解きレガシーコードの深淵をのぞく、一歩踏み込んだコードリーディングをしてみませんか?
アラート無視が癖になっていませんか?
システムの異常に素早く気づき、信頼性を維持するためにインフラやアプリケーションの異常を知らせるアラートは欠かせません。
ですがアラートが過剰だと関心の低下を招いたり、重要な情報を見落とすなどして大きなトラブルにつながることもあります。
本セッションでアラートを減らすための考え方やテクニックについて抑え、アラートを信頼できる状態を目指しましょう。
テストコード作成にどれぐらい工数を割いていますか?
規模感によりますが仕様要件への実装に対してのテストコード整備に個人的には3・4割の工数を割いています。
これが多いか少ないかは置いといて、テストコードにかけた工数はバグ対策やシステムバージョンアップ、影響範囲の大きい改修案件での大きな工数削減に繋がり、長い目でアプリケーションメンテナンスコストに恩恵が出ています。
ではテストコードにかける工数を生成AIを利用して減らしていく方法はないでしょうか。
PHPといえばWebアプリケーション!
Webアプリケーションといえばルーティング処理!
このワークショップでは特定のURLでアクセスすると動的にコントローラーを呼び出す簡易ルーターを作ってみることで、普段なんとなく使っているWebフレームワークが内部でどんな処理をしているのか?を理解するための入口へ参加者をご案内します
コメント、書いていますか?
SNSでは比較的書く書かないが喧々諤々の議論になりがちなコードコメントですが、コメント駆動開発は特に初心者〜初級者にとってはとっつきやすく、TDDや生成AIによる補完とも相性が良いのでオススメです。
このLTではコメント駆動開発の概要とやり方、コツを簡単なサンプルコードを参考に解説します
「インターフェースって何」って聞かれたら答えられますか?
インターフェースの設計はプログラミングの醍醐味とも言える創造的な営みです
PHPには言語機能としてのインターフェースが存在しますが、もう少し広義に考えれば
なども立派なインターフェースといえます
このトークでは「契約による設計」の考え方を元に、実例を元にインターフェースをよりよく設計し、より価値の高い製品(システム)を作るために意識すべきことについてお話します
Webアプリケーション開発者の方は一度は見たことがある MDN 。MDNの英語以外のドキュメントはコミュニティーによって日々翻訳やメンテナンスされています。
本セッションでは、MDNに日本語翻訳でコントリビュートする方法を0から紹介します。
GitやGitHubの簡単な使い方(git pullやcommit、push)とNode.jsの環境がPCにある方であれば今すぐ翻訳に着手できます。着手までの道筋が日本語翻訳コミュニティーによって明確化されているので簡単に準備→翻訳→ドキュメントに反映されます。
私は MDN Web Docs に日本語翻訳でコントリビュートした経験は少ないですが、初心者の目線で、MDN Web Docs 翻訳の魅力をお話しいたします。