エヴァンゲリオンとPHPに意外なつながりがあった!
そんな話をします。
https://speakerdeck.com/sapi_kawahara/php-with-high-synchronization-rate-with-evangelion
これのリニューアル版です。
PHP歴だけは長いぼくが Laravel よくわからないので避けようとしたものの
結局 Laravel を使うことにしました
その結果 Laravel の乗り方がようやくわかりました
アーキテクチャ(設計) というほど高尚なものではありませんが
フレームワークの利便性とアプリケーションコードの適切な分離を思いついたので話したいと思います
平たくいえば
「ぼくのかんがえたさいこうのLaravelのつかいかた」
です
「早くPHP 8.1を使いたい… でもうちはまだ7.3なんだお…」
PHPの新バージョン8.1の機能は既に確定していますが、PHPは毎年11月末にリリースされるので、あと2ヶ月待たなければいけません。
また、そもそもリリース済みの7.4や8.0の機能を使いたいけれど、自分の一存では上げられない… そんなこともあります。
このLTではそんなときに便利なsymfony/polyfillと、その限界についてお伝えいたします。
型付けしてますか? PHPで型安全なコードを追求しはじめると、やや取り回しの悪いPHPの標準関数の型に煩わされます。
そのような型には歴史的事情があるのですが、このLTでは標準関数の型の問題を解決するthecodingmachine/safeパッケージについて紹介します。
先進技術を貪欲に取り入れ続ける皆様にとって、PHPとGoを組み合わせた全く新しい (ver1リリースが2017年) FrameworkであるSpiral Frameworkの存在は周知のことかと思います。今回はこのSpiralとそれが採用しているCycleORM利用することで、エンティティの定義からデータベースのテーブル定義を同期させる機能をご紹介いたします。
Laravelなどのような積み上げ式のデータベースマイグレーションを採用している場合、時とともにマイグレーションファイルが増えていき、現在のデータ定義がわかりにくくなっていきます。一方、CycleORMを採用するSpiralでは、エンティティのプロパティ定義を利用して、データベースのテーブル定義との差分を検出し、定義内容を同期する機能が用意されています。この機能を活用することで、積み上げ式のマイグレーションファイルは不要となり、テーブル定義もエンティティのプロパティを見ればわかるようになります。
今時だとLaravelやCakePHPが割と覇権みたいに言われていますが、だからこそ、あえて、このSpiral Frameworkを通して、新しい開発体験をしてみてはいかがでしょうか。
AWS Lambda の新機能としてコンテナイメージのサポートが開始されました!
PHPerがサーバーレスラーになれる!嬉しくてたまりませんね!
じゃあどうすれば良いのか、具体的なデプロイ手順をライトニングなトークでお話します!
デプロイさえ出来ればあとはあなた次第、
めくるめくサーバーレスライフを堪能しましょう!
■想定する聴講者
- サーバーレスアーキテクチャに興味がある方
- とにかくPHPをサーバーレスで動かしたい方
■お話しないこと
- Productionで利用できるようなためになるお話
- 細かい理論
速いは正義、アプリケーションは速くあるべきです。
ではどうすれば良いのか
細かい理論などは気にしない、こうしたら早くなった
結果を貼り付けながら、何をしたのかひたすら話しますが、細かいことは話しません
OS、Webサーバー、PHP、RDBMS等の見直すべき要素に関して、情報を詰め込むだけ詰め込むことに挑戦します。
※注釈は付けますので細かな理論はそちらでご確認ください
■想定する聴講者
- PHPWebアプリケーションのパフォーマンスに興味がある方
- PHPのインフラを整備するエンジニア
- PHPでISUCONに挑戦する方
■お話しないこと
- パフォーマンス以外の話
- アプリケーションコードによる改善
- 劇的なパフォーマンス改善策
Google Cloud Platformの Cloud Run をご存知でしょうか。
Dockerのイメージで起動し、PHPで書いたWEBアプリケーションが直ぐにデプロイされて公開できる便利なサービスです。
デプロイするだけで証明書付きURLが発行されたり、トラフィック量調整によるカナリアリリースができたりと、
ものすごく便利でものすごく強力なのですが、意外に皆さんご存知ではないのでしょうか?
ということで、実際に現場で使っている感想も交えてCloud Runについてお話します。
初めての登壇チャレンジです。 よろしくお願いします!
CI(継続的インテグレーション)してますか?
このセッションでは、CircleCIを使ったCIの構築事例と、テスト高速化やデプロイフローの効率化などのさまざまな工夫を紹介します。
「CIやってみようかな」「うちでもテスト高速化できそう」「え?こんな機能あったの?」といった学びがあれば幸いです。
工夫の一例
コンピュータシステムの理論と実装という本を読んでおり,アセンブラの実装をすることになったので,アセンブラとはどのような機能を提供し,どのようにして実装をするのかという話をします.
コンピュータのソフトウェア階層の中で,最も基礎となるモジュールであるアセンブラを実装することによって,アセンブリ言語で書かれているプログラムがどのようにしてバイナリで書かれたプログラムに変換されるのか,その仕組みを広く浅く話したいと思っています.
PHPでモノを作るのがお好きな方,なぜか知らないけれどPHPでモノを作ることにロマンを感じる方,低レイヤーがお好きな方
大きなカンファレンスなどに登壇するのは初めてです.
小学校でプログラミング教育が必修化される中、「Scrach」のような
ビジュアルプログラミングは注目されています
そんな中、LOVOT(https://groove-x.com/)と呼ばれる
『役に立たない、でも愛着がある” 新しい家庭用ロボット』がコンセプトの
ロボットに、「LOVOT STUDY ビジュアルプログラミング」という
ブラウザを用いてビジュアルプログラミングし、LOVOTを操る仕組みが提供されています
"ビジュアルプログラミング"でできることは、PHPでもできる!ことを
実証するために、
本来、ビジュアルプログラミングで操作するLOVOTを
直接PHPのプログラムから操作してみました(非公式)
まずは、ビジュアルプログラミングを解析する過程、そして
解析内容を元にPHP(Ampを用いて)で再実装する過程をお話しします
Let's PHP programming!
【トーク対象】
・AWS RDS を利用されている方
【分野】
運用、データベース
【トークの概要】
AWSのRDSでMySQLを利用されている方は比較的多くいらっしゃると思います。
MySQL5.6が2021年2月にExtended Supportが終了したのをご存知でしょうか。
Extended Support終了に伴い、RDSのMySQLも5.6が廃止されます(2021年8月に廃止でしたが、どうも難航しているようで2022年2月まで延期されました)。
RDSはマネージド環境であるため一見管理不要なように思いがちですが、メジャーバージョンアップなどでは停止を伴うメンテナンスが必要になります。RDSを利用するwebアプリケーションによりますが、ダウンタイムの発生で大きな影響が発生しうるので計画的に対応する必要があります。
本セッションでは、実際のMySQL5.5から5.6、5.6から5.7へのアップグレード対応の事例を紹介します。マネージド環境でもダウンタイムが発生しうること、ダウンタイムを0もしくはできる限り短くしなければいけない場合の対応方法についてお話します。マネージド環境であってもメンテナンスを続けていかなければいけないことをお伝えできれば良いなと思います。
1番最初にOSSにPRを出した時に、皆さんは緊張されませんでしたか?僕はしました笑
PRを出すのはこの方法であっているのだろうか、的外れなPRではないだろうか…などなど。
このセッションでは、OSSにPR出すのにあたってまずは翻訳から参加することで心理的なハードルが下がったり、翻訳も案外勉強になってしまうことを、翻訳のtipsと共にお話しします。
クラウドファーストが謳われるようになっている現在、その利用を検討することは避けられないと思います。
このLTでは、自分のこれまでの経験から把握している、クラウド利用料金の抑え方のポイントをお話しします。
また、個々の施策の効果について、大きかった事例を優先的に、差し支えのない範囲でご紹介していきます。
[補足]
自分は現在フリーランスで、複数のLaravelベースなプロジェクトに参画していて、インフラ面を担当しています。
そのため、事業/案件規模に応じたコスト改善対応を経験しました。この背景が話の情報源になります。
みなさんのチームでは日頃からコードレビューはされてますか?
弊社でもリリースするコードに対して2人以上のコードレビューを必須にしたりと活発に取り組んでいます。
コードレビューには以下のような効果が期待できます
・ソフトウェア品質の向上とアーキテクチャの統一
・スキルの向上とナレッジの共有
いかに効果的にコードレビューを実施するかによって、チームの成熟度やプロダクトの品質に影響すると言っても過言では無いかもしれませんね。
しかし、正直なところ自分はコードレビューに苦手意識がありました。
一度のレビューに時間がかかったり、他のメンバーと比較してコードの改善提案をする回数が少ないのです。。。
そんな私が苦手意識のあるコードレビューをどの様に克服していくのか、体験談を踏まえてお話しできればと思います!(現在進行形)
▼お話しする内容
・苦手意識のあるコードレビューをどのように克服していったのか(体験談)
・チームの過去1年分のコードレビューを分析してみる
・ペアプロならぬペアレビューをしてみる
・とにかくレビューしてみる
などなど
皆さんはスクレピングツールを実装しようと思い立った時のどの言語で実装しようと考えますか?
もちろんPから始まるお馴染みのあの言語ですよね!
PHPですよね!
スクレイピングするならPythonというのが一般的かもしれませんが、自分たちが慣れ親しんできたPHPでも十分にスクレピングができるということをお伝えしたいと思います。
PHPが優れてるよ、というお話はしません。好きな言語で好きなものを自由に作ってみよう!というスタンスでお話しさせていただきます!
"
巨大なレガシーシステムのPHPを8に上げました。その時に苦労した点などを中心に知見を一気に紹介します。
対象システムは20年運用されており、ノンフレームワーク、昔ながらのおおらかなPHPで書かれたシステムです。
いわゆる「ゆるふわ」なPHPで書かれており、しかも大規模なシステムははPHP8とは非常に相性が悪く、バージョンアップは非常に困難なプロジェクトとなりました。
レガシーシステムをPHP8に上げるために何が必要だったのか?躓いた点は?どれくらい手をかけたのか?など、実務で発生したことをお話します。
とくに、できたこと・できなかったこと・やらなかったことなど、実際のバージョンアップで役立つ要素を紹介します。"
昨今では数学の重要性が以前にも増して叫ばれるようになってきました。
AI やビッグデータの技術や人材をコア・コンピタンスに据える企業も増え、データ経営といった言葉も耳慣れるようになってきました。
近いうちにプログラマーと数学は切っても切れない関係になる、そんな時代が到来するやも知れません。
とは言え数学を勉強するのはハードルが高い、でも数学を活用したコードは書けるようになりたい。
そんな PHPer に紹介したいライブラリが MathPHP 。
このセッションでは MathPHP を使ってベクトルや行列、統計学を手軽に扱う方法を紹介します。
皆様、LTは好きでしょうか?私は好きです。
日々の業務の中で、ちょっとした学びやTipsの共有、チームへの周知事項、くだらないことなど、その人がチームにLTを通して伝えられる知見はたくさんあります。
そのようなチーム内に埋もれそうになる知見を発表してもらうべく、LT大会を不定期で開催するようにしました。
「完成度低いの歓迎」と銘打つことで、良いことがあると感じました。
その取組について紹介します。
PHP 7.4 から FFI がサポートされるようになりました。これまで、Cのライブラリを経由して何がしかの処理を行う場合は、PHP拡張を作るしかありませんでしたが、FFIを使うことで、直接PHPからCのライブラリをコールすることが出来るようになりました。
このLTでは、Webカメラの操作を題材にしてPHP-FFIが開くPHPの新しい可能性について紹介します。