みなさんのアプリケーションのデプロイは高速ですか?
昨今のWebアプリケーション開発では、UIはVue.jsやReactなどを使ったSPAとして提供し、PHPはAPIとしてデータを提供してSPAと連携する構成がよく見られます。
ただ、この構成で長く提供されているWebアプリケーションであればあるほど、UIの変更や更新が頻繁に行われるSPAのコードの中身は複雑になり、ビルドが少なくない時間を取ってしまってデプロイフローの開始から完了までの時間が長くなってしまう問題が発生してきます。
今回は、そういった課題が発生したWebアプリケーションのデプロイを高速化するために、PHP側の改善はもちろんのこと、フロントエンド目線でnode_modules周りやフロントエンドビルドツールまで手を加えた際のTipsをお話できればと思います。
このトークをお聞きいただき、高速なデプロイを手に入れて、高い開発体験とWebアプリケーションを使ってくださるユーザーさんに対して価値提供の高速化を実現する一助になれば幸いです!
PHP Conferenceの参加は初で、大きいカンファレンスでの登壇経験は浅いので、なにとぞお手柔らかにお願いします!
皆さんはスクレピングツールを実装しようと思い立った時のどの言語で実装しようと考えますか?
もちろん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の新しい可能性について紹介します。
PHPといえば、Web開発。
Web開発と切っては切り離せないのが「データベース」と「SQL」です。
このトークは、オライリー・ジャパン出版の名著「SQLアンチパターン」で紹介されている25のアンチパターンを「超特急」で学ぶものです。
わずか4分のLTで、25個のアンチパターンをおさらいします。
東京2020オリンピックのピクトグラムパフォーマンスのようなスピード感のある超特急LTをお楽しみください。
大事なところだけをギュッとして、明日からすぐ使える知識としてお届けできたら幸いです。
何らかの理由によって「既存のクラスやAPIの使い方が変更された、それに対応しないといけない!」という場面が、
しばしば開発の現場には発生します。
その時に、なるべく「人間の目と手で作業する」という負担は避けたい・・面倒くさいな・・と思うのが人の心情ではないでしょうか。
https://github.com/rectorphp/rector は、既存のPHPコードのリファクタリングやアップグレードを自動実行するツールです。
こいつを上手く使えれば、あの退屈で機械的な作業を真の意味で「機械の作業」にする夢が叶うかも知れません!!
本セッションでは、Rectorについて紹介し、具体的に活用するための方法を話したいと思います。
Xdebugを活用していますか?ステップ実行の機能については、利用経験者も多いかと思います。
公式サイトを開き、トップページを見ると「Step Debugging」「Improvements to PHP's error reporting」「Tracing」「Profiling」「Code Coverage Analysis」と主要機能が列挙されています!
本LTでは、「知っているといざという時に便利!!」なTracing・Profilingの機能を紹介します。
Tracingを使いこなせば「この処理どう動いているんだ???」を効率的に理解するのに役立ちますし、Profilingを使いこなせば「どこの処理がボトルネックになっているんだ???」をパパパっと理解できるようになっちゃいます。
ぜひ、プログラマーの道具箱に入れておきたいですよね!
オンライン勉強会やイベントが続くこと1年。
なかなか参加者の盛り上がりを登壇者や参加者間で共有することができずモヤモヤした日が続いてきました。
そこで効果音を共有することで課題を解決するサービス pong swoosh を公開しました。
開発の経緯、実際使ってみてどのような反応があったのかを紹介します。
■トーク対象
Ruby + RailsとLaravel + PHPの比較(新規事業開発)
■トークの概要
・業務経験2年のWebエンジニア
・Ruby + Railsでマーケティング支援ツールの開発、運用を行ってきた。
・新規事業開発室に異動となり、MVP開発を任された。(チームメンバー2名のリーダー)
・技術好奇心でPHP Laravelを採用
・Railsは自由に書ける分、チーム開発時のRVに工数がかかる。(直感的に書けるRubyの弱点)
・一方Laravelは、PHPの型が整っているのでレビューがしやすい。
・Rails(Ruby)とLaravel(PHP)のメリデメを実際の開発工数を比較して行う。
PHPerKaigi2021でベストフィードバッカー賞をいただきました。
これは「フィードバックの数 x 愛」が1番だったという賞ということでした。
カンファレンス中に合計21個のフィードバックを送っていました。
正直見たセッション全てには送れていないです。
実際みんなあんまりフィードバック送ってないのかな?と思ったのでこのLTの時間を使って
・フィードバックって大事だよね
・フィードバック送ってみようかな?
って少しでも多くの人に思ってもらおうと思いプロポーザルを投げました。
大きなカンファレンスでプロポーザル採択による登壇はしたことがありません。
よろしくおねがいします!
コロナ過とDXの波でPHPの求人がプログラミング言語求人で1位になった。気が付けば、全世界のWebでPHPが動くようになった。これからPHPerになる人は何をするべきか?これからのPHPerは何をするべきかを、マーケッタ歴30年のスピーカーが独自の視点で市場動向を解説します。
昨今のE2Eレベルのテストではその自動化テストのツールとしてSeleniumに代表されるようなブラウザ操作ライブラリが使われます。
Seleniumなどを使ったことがある人は多いでしょう?ではその裏側で行われている仕様については知ってますでしょうか?
本トークでは、PHPで実際にSeleniumのようにブラウザを動かすツールを自作するプロセスでそれらの仕様を理解する場を提供します。本トークで得られることは以下です。
本トークを経て、WebDriverについての理解が深まることで、ブラウザ操作の自動化についての技術的理解が一段深まるお得な4分間にいたします。
変更履歴の機能を実装するのって、考慮する事も多いし、大変ですよね?
Laravel Activity Logを使うと、簡単に変更履歴の機能を実装できます。
このセッションでは、laravel-activitylogをどのように導入するか説明します。
データベースのテーブル定義をしてて、こんな事ってないですか?
・まだ始めたばかりのサービスでユーザ数を知られたくない。
・ユーザIDが連番になっていて、ハックされそうで怖い。
このようにユーザIDを公開したくない場合に、推測されにくいIDがuuidです。
UuidTraitを作って、Modelクラスでuseするだけでuuidの生成ができます。
このセッションでは、UuidTraitの作成から使い方までを説明します。
今まで仕事で携わってきたPHPでの開発において、可読性、保守性が明らかに低かったコードの例を話し、リファクタリングする場合はどうするかなどを説明します。
例えば、メソッドの引数が7個以上ある。変数名が解読不能。if文のネストが7つ以上あるなどです。
皆さんリリースの頻度はどれくらいでしょうか?
毎日、毎週、もしかして毎秒だったりしますでしょうか。
一般的に我々開発者が顧客に望まれるプロダクトを作るためには高頻度のリリースは必要不可欠です。
しかし、それを実現するためには完全に作り込んだ機能が実現できてないといけないのでしょうか。
今回は未完成の機能をプロダクション環境に混ぜ込むための、フィーチャートグルの概念、効能をご紹介します。加えてlaravelに組み込んだ例もご紹介します。
「より良くPhpStormを使うために、コーディング規約やテスト実行の設定をプロジェクトやチームで共通化しよう」
.idea/ ディレクトリを.gitignoreで無視するように設定しているレポジトリをよく見かけます。
もし”慣習的に”そうしているのであれば、勿体ないかも知れません!
普段の開発にPhpStormやInteliJ IDEAファミリーを利用している方も多いのではないかと思います。
高機能でありながら、「少しだけ」使う分にも充分に威力を発揮することには、ユーザーの皆さんも同意されるのではないかと思います。
他方で、「設定しなければいけない項目」も少なくないのも事実です。
Inspectionの設定、Interpreterの設定、テスト実行の設定・・・
これらを「PJメンバー全員で同期する」ことができれば、一気に効率が良くなります。
「生産効率」の水準が揃う、という手段となります。
そのための手段が「.ideaを共有する」なのです!!
どのように使えば良いのでしょうか?
また、それによってどこまで実現できるのでしょうか?
本トークを通じて紹介します!