PHP-FPMを使ったWebシステムで,応答が遅くなった,突然繋がらなくなった,という経験はありませんか?
PHP-FPMのメトリクスを取るとプロセスやリクエストの状況を把握でき,これら問題の解決に役立ちます.
メトリクスを出力するために従来まではphp-fpm_exporterなどのデータ形式を変換する外部ツールが必要でしたが,
PHP8.1からは多くの監視ツールが対応するOpenMetrics形式で出力できるようになりました.
一方,Web上にはPHP-FPMのみでメトリクスを出力する方法の情報が少なく,実際に出力すると幾つかの落とし穴がありました.
発表ではPHP-FPMのみでメトリクスを出力する場合の設定例・注意点,exporterを使う方法との比較を話します.
レビューでつい「なんでこうしたの?」などと聞いてしまい、責める意図はないものの空気が気まずくなった経験はありませんか?
このLTでは、心理学をもとにした質問の技術を活用し、レビューを詰問ではなく「対話」に変えるためのヒントをお届けします。
「意図を引き出す」「気づきをもたらす」といった観点から、よくあるNG質問の言い換え例や、相手が話しやすくなる質問の工夫を紹介します。
レビューの空気を気にする方に届いてほしい内容です。
少し変えるだけで大きく変わる質問の仕方を一緒に見てみませんか??
長年運用されてきた PHP プロダクトをこれからも安心して使い続けるためには、 PHP 本体のアップデートが不可欠です。
本セッションでは、 PHP 4 の時代から20年以上運用されたプロダクトを PHP 8.3 までアップデートしてきたことで得られた知見と、 PHP 8.4 以降にバージョンアップするために何をするのか、を共有します。
レガシーと向き合う皆さんに役立つ実践的な知見をお届けします。
■ 話すこと
AIを利用したコーディングによって生産性が高まっていることは間違いありません。
0→1の生産性が高まった反面、設計不備による低品質なコードやテーブルも量産されてしまいます。
だからこそ、今こそデータモデルのあるべき姿を考え、その形にデータベースもリファクタリングしていくことが必要です。
そこで今回は下記の項目についてご紹介します。
コードレビューでは、人格攻撃をしてはならないとされています。
それは裏返せば、書かれたコードをレビューするときに
それを書いた人のことをどうしても考えてしまう、ということでもあります。
自分が攻撃(非難)されたように感じてしまうのも、同じこと。
自分が書いたコードは、あたかも自分の一部であるかのように感じる気持ちがあるのです。
しかし現在、生成AIがコードを書くようになってきています。
人間が書いているところを補完してくれたり、
自律的にコードを書いてPull Requestの作成までしてくれます。
では、そのコードはあなたが書いたものだと言えますか?あるいは、思えますか?
このトークでは、コードと私たちの距離について考察します。
(心理的な)オーナーシップの話だけでなく、責任の分界点についても見ていきます。
生成AIの導入で変わりつつある距離感について、一緒に考えてみませんか。
PHPはWeb開発の現場でカジュアルに使われてきましたが、「正しく」使うのが難しい言語だと言えます。
20年以上の歴史を重ねてきたWeb開発の現場でもさまざまな言語が生まれてきましたが、PHPの存在感は未だに衰えてはいません。
そのような言語の中でも揺れ動いてきたのが「静的(static)」と「動的(dynamic)」という概念です。
PHPは一般に「動的型付けのスクリプト言語」のように分類されますが、異なる特徴を持った言語も多く登場しています。
本トークではPHPの静的性と動的性について紹介し、PHPの現在地点、そして「静的解析」という技術がどのように問題解決につながるかを紹介します。
現代のコンピュータはハードウェアから私たちプログラマが書くプログラムの動作までの間が多くのレイヤーに分けられて動作しています。
レイヤーは自分より下を抽象化し、下のレイヤーを詳しく理解しなくても多くの場合プログラマはプログラムを書けます。
一方、プログラムが期待した様に動作しない時には下のレイヤーの動作の理解が問題の解決の助けになることもあります。
このトークでは私たちが愛するPHPをスタート地点にして、「VMって何?」「 PHPやJavaとC言語の根本的な違い」など、コンピュータプログラムがどの様に動作するのかを解説します。
コンピュータのレイヤー構造を理解すると、いままでは見えていなかった角度からプログラミングを楽しめるようになります。
このトークを通じて、低レイヤーが好きになったり、いろいろなレイヤーで面白いことをしたりする方が増えることを期待しています!
PHP は2015年以来、毎年11〜12月頃にバージョンアップが行われており、11月20日には待望の PHP 8.5 がリリース予定です。
かつてはゆるふわ言語の代表格として知られた PHP ですが、7.0 以降は型周りの表現力が大幅に強化された他、Readonly Property/Class の導入など、堅牢で読みやすく、壊れにくいコードを書くための強化が行われてきました。
そして PHP 8.5 では Haskell や Elixir など「関数型言語」にあるような「パイプ演算子」が導入されます。PHP にパイプ演算子……隔世の感がありますね。
本トークでは PHP 8.5 で導入される新機能の内、個人的に注目しているパイプ演算子と NoDiscard アトリビュートを中心に、どのようなメリットをもたらすのかを具体的なコードと用例を用いて解説します。
このトークでは、ある仮説を提案します。
技術的負債の、「利率」にあたる部分はチームメンバーの増加によって見かけ上増える
プロダクトの開発で機能とソースコードが変更されると貸借対照表の借方に新機能によって得られる価値(正味現在価値)が入り、貸方に技術的負債が入ると捉えられます。この、貸方に入る技術的負債が通常の負債とは異なる性質を持つと言うのが、この仮説の骨子です。
トークでは、貸借対照表や正味現在価値などの用語についても解説を加えます。
この仮説を通して、各チームで
・技術的負債の解消をするかどうか
・いつ技術的負債を解消するか
・カスタマイズをすべきかどうか
・カスタマイズをする場合はリファクタリングを計画するか
などについて議論を深めるきっかけにしていただくことを目指します。
※内容の正確さには注意を払いますが、私は会計学の専門家ではありません。
広島人のためのブログコミュニティサービス「広島ブログ」を、気づけば20年運用してきました。
https://www.hiroshima-blog.com/
たった2人の小さなチームで開発から運営までを担い、広島に根ざしたウェブのコミュニティを作り続けています。
その間、本当にいろんなことがありました。
「人の顔が見えるインターネット」には、今も昔も特別な力があると感じています。
地元と向き合い続けて見えた、小規模ウェブサービス運営の面白さと難しさをお伝えします。
マイクロサービス流行の時代で、あえてモノリスを作りませんか?
バックエンドとフロントエンドの連携を行う際は、辛い思いをした方が多いのではないでしょうか。
APIの作成、認証の実装、フォーム送信など、様々なハードルがあります。
そういった問題を解決して、フルスタック開発を楽にするライブラリさえあれば...
実際にありますよ!
このLTでは、SPAのフロントエンドをバックエンド内で作れるInertia.jsをご紹介します。
基本的な使い方から、直近の新機能やInertia.jsの将来を解説します。
このLTを通じて、「フルスタック開発が楽になった!」「フロントエンドのためのAPI設計はもうさらばだ!」と思ってもらえればと思います。
「PHP 8.4.0から、インターフェースプロパティを宣言できるようになりました。」
私はこれをみたときに、「よっしゃ、きた!!!!」と大興奮しました。
とはいえ、この内容については多くの人が注目していたのかなと思っており、話のネタとしては今更感がありますが...
改めて皆さんに 「インターフェースにプロパティを定義できる喜び」 をシェアします。
そこで、以下についてお話をさせていただきたいです
「やる気が出ない。でも何かしなきゃ。」
そんな焦りに飲み込まれていた自分が、少しだけラクになれた経験をお話しします。
仕事での責務が増えてアウトプットが止まり、アウトプットするネタも浮かばず、周りがどんどんアウトプットしているのに自分だけが取り残されているように感じて、焦っていた時期がありました。
そこで私は、無理に動かず“できる範囲だけ続ける”ことを選びました。
このセッションでは、私が試してきた工夫や気づき、そして“やる気がない前提でどう設計するか”についてお話します。
やる気が出ないことにモヤモヤしている方、立ち止まっている自分に不安を感じている方へ、エンジニアとして長く続けていくための“ペースのつくり方”の一例として、少しでもヒントになれば嬉しいです。