Promiseについて、「分からん!」から「そんなものもあるんだ」を経て、「そういう風になっていて、そう動くのか」に至るためのトークです
PHPによる実装を試みます
PHPUnitはPHPテストフレームワークのデファクトスタンダードとして長年使われており、普段PHPを書いてる方であれば目にしたことがあるツールの1つです。
プロジェクト規模が大きくなればなるほどテスト数が増加し、PHPUnitの実行時間が増え、CI待ちがボトルネックになるといったことが多々あります。
今回はPHPUnitをあの手この手で低速化する方法をお伝えすることによって、逆説的にPHPUnitの実行速度劣化を防ぐ考え方が身につきます。
PHPでWebアプリケーションを作る際、ほぼ全てのケースでデータ永続化の為にデータベースを利用するでしょう。
長年運用していくにつれ、テーブル数やカラム数の増加によって、認知コストやコミュニケーションコストが増加する一方です。
これらの負荷を下げる為に「DBスキーマを可視化する」ということは非常に有用であり、tblsは継続的な運用に耐えうるだけの機能を持ち合わせています。
本トークではtblsを用いたDBスキーマ可視化の実例を上げつつ、具体的なツール導入とCI設定の方法を紹介していきます。
Language Server Protocol (LSP)は、2016年にMicrosoftが発表したJSON-RPCベースのプロトコルです。
LSPはモダンなテキストエディタなら必ずある機能(e.g. 定義ジャンプ)を提供していますが、一番の魅力は特定のテキストエディタに依存しない形での実装になっていることです。
これにより各テキストエディタでの実装の必要がなくなり、エディタ選択の自由度が飛躍的に高まりました。
PHPの言語サーバ実装はintelephenceとPhpactorがメジャーです。
本登壇ではPhpactorの実装に触れつつ活用テクニックを紹介していきます。
メンタルは崩れると業務のパフォーマンスに大きな影響を及ぼします。
比較的メンタルが弱い私が継続して業務に携わるため実践してきたセルフケアやレジリエンスと言われる回復力の鍛え方をお話します。
基本的にどなたでもではありますが。
年月を経たレガシーなアプリケーションの検索処理は、肥大化したロジックによりパフォーマンスが劣化しがちです。本セッションでは、実際に直面した検索遅延を、OpenSearchを活用して改善した実例をもとに、選定理由から実装の課題、実際の効果までをお話します。
PHPカンファレンス沖縄2024にて @ex_takezawa さんのアクターモデルの話を聞いて衝撃を受けました
https://speakerdeck.com/ytake/understand-and-experience-the-actor-model-in-php
今回はPHPでアクターモデルを実現できる @ex_takezawa 作のPhluxorに入門し使用感と分散システムの優位性を探ります
https://phluxor.github.io
利用者の目線からPhluxorを使用する上での必要な前提知識や実際のハマりポイント、感じたメリットなど含めて分散システム入門します
より皆様に近い立場からの分散システムの実際の体験を共有し、少しでも分散システムが身近になることを目指します
変更に強いユニットテストの設計と実装について、実践的なアプローチについてはなします。
多くの開発現場で課題となっているテストコードのメンテナンス性やどのようなテストを書いたほうがいいかを具体的に解説します。
主なトピック:
ユニットテストの本質的な目的の再考
メンテナンス性を重視したテスト設計の考え方
プログラムの振る舞いに基づくテスト戦
効果的なテスト階層の構築方法
具体的なテストコード作成の指針
新しい仕様変更に対してどのようにテストを書いていくか
ソフトウェア開発を行っていると以下のような用語を見かけると思います
これらの用語に触れると、興味と好奇心を掻き立てられると思います。
いざ調べてみるとこれらの用語が具体的に何を意味するのか、どのように適用されるのかが分からなくて圧倒されます。
これらの用語の具体的な例や実践を通じて理解するのもいいですが、かなり数も多く時間がいくらあっても足りません。
特に〇〇アーキテクチャというものが色々な人々が語っていますが、具体的なイメージがつかず、気軽に試す事もままなりません。
そこで、一つ一つの用語を覚えるよりも体系的な理解を行っていくことが必要なのではないか?と考えています。
本トークではこれらの用語がどのように関連し合っているのか?どのように向き合っていけばいいのか?をお話いたします。
テストコードの意図をより明確にするテクニックとしてGiven-When-Then構文というものがあります。
Given-When-Then構文はどのテストフレームワークでも適用できる万能な書き方になります。
直ぐに始められて一歩先をいくテストコードを書いてみませんか?
毎日チームの朝会でアイスブレイクから始めています。
アイスブレイクってホントになんでもいいんですけど
しょうもないネタでその人の人となりが分かる瞬間、とても嬉しくなります。
しょうもないネタ集と人となりを知るポイントなどを話したいと思います
本番でエラーが発生!
焦りますよね。
まずは、ユーザが困っていないかの判断をしましょう。
さてその次は?
ログやデータベースなどの事実を元に例外が発生している原因の調べ方と向き合い方について話したいと思います。
例外を出さないように品質高いものをリリースすることは大前提ですが、
それでも例外は起こるもの。
例外が起こるということは?ユーザがふかく使っているということだ!ハッピー!
例外をローカルで再現できた!ハッピー!
(サービスの特性によってはマジでこんなこと言ってられないと思いますが)
例外対応は、エンジニアの華ですよね。楽しくやっていきましょう。
スクリプトがサーバ全体のメモリを食いつぶさないようにするための安全装置として、PHP にはプロセスごとのメモリ消費を memory_limit という設定値で制限できる仕組みがあり、制限を超えた時には "Allowed memory size of N bytes exhausted" というメッセージが出ます。
世には PHP 製の OSS が星の数ほどあり、GitHub を "Allowed memory size of" で検索すれば、そういった PHP 製の OSS プロジェクトでメモリ問題に悩まされているものを見つけられます。
それらを適当に拾い食いして辻斬りのように解決していく活動を通じ、PHPのメモリ問題の基本的な解決方法を紹介していきます。PHP の基本的なメモリ管理機構やメモリ消費量の計測方法、参照関係のたどり方、メモリを食いがちな部分といった話もあわせて解説します。
近年、急速に"(コードの)質と(質の高さからくる開発)スピード"が注目されるようになってきました。
一方で「何故、"質とスピード"を求めるのか」に対するお話はあまり見かけません。
このトークでは「兵法」から見た「"ソースコードの質"や"開発スピード"は何のために必要なのか?」、「"ソースコードの質"や"開発スピード"は本当に必要なのか?」についてお話します。
日本でも著名な「孫子の兵法」から現代戦で重視される戦術論「リズムとテンポ」などの観点から「市場を支配するために必要な"質とスピード"」に迫ります。
このトークで得られる知見
1 あらためて考える「なぜ"質やスピード"が必要なのか」
2 "質やスピード"を求める場合の基準
3 組織人として組織を持続可能にするために考える事
このトークで話さない事
1 孫子の兵法をはじめとした戦略論・戦術論の詳解
こだわりのマイホームが3年経ったら住みづらくて穴だらけのあばら家になるのがWebシステムです。プロダクトとして一応お金を稼げてはいるんだけど、なんか保守開発がやりづらくて速度落ちる…フレームワークのアップデート対応も脆弱性対応も追いついてない…というのはよく聞く話ですね。
そんなとき、「よし!リニューアルだ!」とプロジェクトを立ち上げるものの、結局色々あって頓挫…という経験はありませんか?私はあります!
このトークでは、まず、「なぜ人はシステムのリニューアルに失敗してしまうのか?」を解説した後、リニューアルせずに少しずつ改善する方法をメインにお話しします。おまけとして、どうしてもリニューアルしたい人のためのリニューアルに成功した事例のお話もするかもしれません。
AWS が提供する、ソフトウェア開発のための生成 AI アシスタントサービス Amazon Q Developer は、 PHP にも対応しています! Amazon Q Developer の概要、セットアップ方法、活用方法をクイックに紹介します。
今年の3月に実施されたPHPerkaigi2024でコードゴルフ大会に参加し、とても楽しかったため、「自分の会社でも実施したい!」と思い立ち、実際に開催しました。結果は大成功で、とても楽しい時間を過ごせたので、その時の話をします。
コードゴルフの内容は、「FizzBuzz」問題や、1時間で解ける程度のの難易度のものを採用しました。言語はPHPを使用しました。
具体的には以下のような内容を話す予定です。
•コードゴルフ大会を実施するにあたって、コードゴルフができるWEBアプリをどのように作成したか
•コードゴルフ大会の雰囲気や参加者からの評判
•参加者たちの感想
•コードゴルフ大会を定期的に開催していることでの社内への影響
•コードゴルフ大会を開催した私自身の感想