今日は3連休の中日でしたが、蒲田で行われたPHPカンファレンスに行ってきました!
実は…。
ここ最近、PHPしか書いてない!!!
ぐらいPHPにどっぷりつかっている私です。(`・ω・´)
(プルリクはJavaとかjsとか見ますが)
何をやってるかというと、先日書いたように、弊社のお客様が3000社を突破したんですよ!!!
ありがたいことなんですが、エンジニアの方ならよくわかっていただけると思うんですが、お客様が増えると…
・トラフィックが増える
・データが増える
・想定されていなかった使い方をされるお客様もいっぱい出てくる
という技術面の問題に直面しています。(´ω`)
そして、めちゃくちゃソフトウェアアップデートをしてるんですよ。機能がめっちゃ増えてます。
複雑性というのが増えてます。
少ない人数で素早いリリース、素早い不具合対応、スケールの問題に対処するかのヒントを得るために、こういう機会は私にとって重要です。(`・ω・´)
昼過ぎから行きましたので、下記のセッションから見ました。
下記には私的なメモだけ書いておきます。
後日スライドなどが公開されると思います。(内容が間違ってたら申し訳ないです。)
Webアプリケーションのパフォーマンス・チューニングの勘所
https://fortee.jp/phpcon-2023/proposal/9dd2a5e3-5a3d-4d3b-b39f-0fb3e17bbd15
曽根 壮大さんという方のお話ですが、この方の話は以前も聞いたことがあって、とてもためになりました。
・Cloud watch log insightsが便利
・サーバーの状態を調べるのに、最初にOSのメトリクスを見るのがよい(CPU使用率とか)
病気の検査で体重を測るのと同じようなもの。
・デッドロックが頻発すると、CPU使用率が上がる
・デッドロックを完全になくすのは難しい。逆にタイムアウトを短くして、アプリでリトライするのがよいと思う。
・キャッシュは使わなくて済むなら使わないほうが良い
壊れたときに不具合対応が難しいから
・キャッシュは必ず一次データから取り出すべし
☆目の前のコードを直すことができるのは自分たちだけ という言葉が印象的でした。☆
スケーラブルサービス――疎結合に成長するシステムに不可欠な要素
https://fortee.jp/phpcon-2023/proposal/d81f49cf-009c-4953-af24-1582a827edef
成瀬 允宣さんという方のお話で、3月にもPHPerKaigiでこの方のセッションを聞いてとてもためになったので聞きました。
・サービスをスケールさせるのは、ソフトウェアをメッセージ駆動にするのがよい
・メッセージキューはありものを使ったほうがよい。Kafkaの名前が挙がってました。
・ただ、メッセージキューは使うのが難しい。順序保証やトランザクションの話が上がってました。
・イベントソーシングにする。ステートソーシングとは違う概念。
成瀬さんが、イベントソーシングにすると、よりオブジェクトの状態にあう、という話をされていたのが印象的でした。
インピーダンスミスマッチを解決できるのではないかという話でした。
はは~。インピーダンスミスマッチという言葉を私はこの日初めて知ったんですが、なるほど!と腑に落ちましたね。
インピーダンスミスマッチとはDBの中身は、ある日ある時の状態(ステート)なんだけど、コード上のオブジェクトは「なう」な状態を扱っていることが多いのでミスマッチになっていくという話みたいです。
イベントの方がオブジェクトのプロパティなどに近いので、このインピーダンスミスマッチを解決できるという話。
・イベントを記録しておく。そうすると、イベントのリプレイが可能
なんとDBを消すことさえできる。イベントをリプレイすれば戻せるわけなので!
・イベントの設計図を作る
・LaravelでもKafka使えるよ!しかし、Javaとかで使ったほうがいいです…。
実は今、私イベント駆動でちょうどイベントの設計を作ったりしているところなのでジャストにためになりました!!(`・∀・)ノ
成瀬さんに後でその感動を伝えたところ、前にお会いしたことを覚えてくれて
「あ、後藤さんですよね?」
って名前を覚えて頂いていたので感動しました!°(´ฅωฅ`)°。 成瀬さんは芸能人みたいな方ですね!( ˊᵕˋ )
安全にPHPでWebアプリ開発するために実践していること
篠田 北斗さんという方のお話でした。
いかにうまくPHPのソフトウェアを開発・メンテナンス・運用していくかということで実践的なお話ばかりでためになりました。
・readonly 使ってこ。(個人的な話ですが、使うの忘れちゃうんで!)
・MTTRの短縮化を目指す
・エラートラッキングツールとチャットツールを連携させる。ここではSentryの名前が挙がってました。
オオカミ少年にならないように毅然とした態度をとる。
→この話、どうしたらオオカミ少年にならないのか、毅然とした態度とは何なのか、懇親会で篠田さんに直接聞いちゃいました!
ウチでも、同じような構成(Sentry+Slack)でオオカミ少年化しているところが結構あるので…。(´ω`)
「Sentryでignoreするエラーを選べるのでそれでミュートすべし」
「Slackでエラーが来たらちゃんとつぶしていく」
おおー。教えて頂いてありがとうございました!┌o ペコッ
・ノートラブルシステムへの道 というスライドがよいので見る。
→見ました。https://speakerdeck.com/yamaz/notoraburusisutemuhenodao?slide=25
確かにいい話です。「機能追加がなくても、売れればシステムは傷み始める」というのがまさしくその通りだなと。
その後は、ちょっと休憩してて、LTを一通り見ました。
PHPInsightsで技術的負債の可視化始めました
・Gitで直近1年間のファイル別変更回数を出す。その後、循環的複雑度を出す。
変更回数 × 循環的複雑度 = ソフトウェア保守のコスト
うわああああ 確かに!!
入社半年を迎える新米エンジニアがカンファレンス・勉強会から得た学び〜半年後の自分に伝えたいこと〜
・知らないことは調べようがない
単純だけど、真実だな!って思います。
ネットだけで調べものしていると、「知らないことに遭遇できない」ということがよくあると思います。
なんと、今回900人ぐらいの人が参加したそうです!
大盛況ですね。
各地でPHP Conferenceが行われるらしいです。
その後、懇親会で多くの方とお話させて頂きました。
どんなプログラムを書いているかとか、今注目している技術とか、組織がかかえる問題とか、その方のキャリアとか、よもやまテックなことだけじゃないお話ができて楽しかった~ o(>▽<)o
Github Copilot導入しようか迷ってたんですが、結構導入しているとか、便利だよって話をお聞きして、ウチでも使って行こうと思いました!
皆さま有難うございました!!!
indian pharmacy: best india pharmacy – cheapest online pharmacy india
buy medicines online in india: top 10 pharmacies in india – online pharmacy india
п»їlegitimate online pharmacies india: Online medicine order – п»їlegitimate online pharmacies india
trustworthy canadian pharmacy legitimate canadian pharmacy online canadian pharmacies comparison
best india pharmacy: indian pharmacy – top 10 online pharmacy in india
canadian drug: canadapharmacyonline legit – canada rx pharmacy world
canadianpharmacyworld canadian pharmacy world reviews reliable canadian pharmacy
medication from mexico pharmacy: mexican pharmacy – best online pharmacies in mexico
http://foruspharma.com/# mexico pharmacies prescription drugs
best online pharmacy india: indianpharmacy com – п»їlegitimate online pharmacies india
onlinecanadianpharmacy: canadian pharmacy meds – real canadian pharmacy
http://clomiddelivery.pro/# where buy generic clomid pill
http://doxycyclinedelivery.pro/# doxycycline prescription discount
paxlovid covid: paxlovid covid – paxlovid cost without insurance
https://paxloviddelivery.pro/# paxlovid generic
https://ciprodelivery.pro/# ciprofloxacin mail online
https://amoxildelivery.pro/# amoxicillin canada price
paxlovid pharmacy: paxlovid covid – Paxlovid over the counter
https://paxloviddelivery.pro/# paxlovid generic
http://clomiddelivery.pro/# how to get clomid for sale
http://ciprodelivery.pro/# purchase cipro
buying clomid without dr prescription: generic clomid without insurance – can i order generic clomid without dr prescription
doxycycline cheap: doxycycline 150 mg price – doxycycline 50mg capsules
Woah! I’m really loving the template/theme of this blog.
It’s simple, yet effective. A lot of times it’s tough to get that “perfect balance” between superb usability and visual appearance.
I must say that you’ve done a awesome job with this.
In addition, the blog loads extremely quick for me on Firefox.
Excellent Blog!
п»їbest mexican online pharmacies: mexico drug stores pharmacies – reputable mexican pharmacies online
mexican drugstore online mexican drugstore online best online pharmacies in mexico
buying prescription drugs in mexico mexican drugstore online mexican online pharmacies prescription drugs
reputable mexican pharmacies online mexico pharmacy medication from mexico pharmacy
mexican drugstore online purple pharmacy mexico price list reputable mexican pharmacies online
mexican rx online mexico drug stores pharmacies buying prescription drugs in mexico
purple pharmacy mexico price list: mexican online pharmacies prescription drugs – mexican pharmaceuticals online
mexican drugstore online mexico drug stores pharmacies mexican pharmacy
mexican border pharmacies shipping to usa best online pharmacies in mexico mexican mail order pharmacies
mexican pharmaceuticals online mexico drug stores pharmacies mexican pharmaceuticals online
medicine in mexico pharmacies: mexican mail order pharmacies – purple pharmacy mexico price list
reputable mexican pharmacies online: purple pharmacy mexico price list – buying from online mexican pharmacy