2024年は 各地で PHP コミュニティのカンファレンスが開催されます。
PHPカンファレンス小田原2024 もその一つです。
私はこれまで 一般参加者として カンファレンスに参加してきました。
2024年2月開催の PHPカンファレンス関西2024 では、初めて実行委員という 運営側として 参加します。
本トークでは、 PHPカンファレンス関西2024 の実行委員の経験をもとに、 カンファレンスの舞台裏 について紹介します。
あなたもカンファレンスのスタッフになって、舞台裏での物語をつむいでみませんか?
Laravel では、 ファイル名と namespace を対応させることで、 require 文を書かずとも別ファイルに定義されたクラスを読み込むことができます。
これは、 PHP の autoload という機能で実現されています。
このトークでは、 PHP の autoload の概要について 5分で紹介します。
autoload の例として、 Laravel でどのように別ファイルのクラスを読み込んでいるかも簡単に説明します。
5分という短時間 で autoload についてなんとなく理解してみませんか?
SRE、この言葉からあなたは何を想像しましたか?
会社のAWSアカウントを管理してくれている人!困ったときに助けてくれる人!SLI/SLOを推進する人!
さまざまあると思います。
SREの起源であるGoogleではSRE(サイト信頼性エンジニア)の名の通り、運用するサービスの信頼性を保つことが責務とされていました。
現代では Enabling,Embedded,Platformなどなど多様なSREが存在しています。
サービスの信頼性を保つという観点は同じでもそのアプローチ方法は多様です。
このトークではこれらの違いについて弊社での実体験も交えて説明します。
ぜひ、皆さんの会社におけるSREについて考えるきっかけを作れればと思っています!
小田原っこ: 小田原の会社で働いていました!
開発をやっていると、ソースコードという「中見を知る」のは便利、もしくは逃げられません。
そして、Web系の開発ではOSS=部外者のコードにお世話になっている事がとても多いです。
──つまり、「スラスラとOSSなコードを読めたら、問題の解決の質や早さが向上する」と言えます!
しかしながら、初めてOSSの中見を読んでいくのには、いくつかの難しさもあると思います。
このトークでは、PHPのOSSパッケージを実例として取り上げ、そうした壁を乗り越えて「やってみる」ためのコツや情報の使い方を共有します。
少し大きめのコードでも臆せず読んでいけるようになるぞ!!
「テストがないコードはレガシーコードだ!」
Webアプリ開発において、テストコードが書かれることは一般的になりました。
ですが、テスト完走までにかかる時間は適切でしょうか?
テストにかかる時間は生産性に直接的な影響を及ぼす重要な要素です。早ければ早いほど良い。
本トークでは、PHPUnitで書かれているテストを高速化するテクニックについてお話します。
速さは正義。Googleもそう言っている。
Webページの表示速度はユーザ体験に直結し、ひいてはビジネスKPI (購買率、アクティブ率、解約率、etc...) にも影響を及ぼします。
本トークでは、Instagram分析ツール 「SINIS for Instagram」 のページ表示速度を約1/3にした事例をもとに、どうやって課題を見つけ、何の改善を試み、その結果どうなったのかについてお話します。
だいぶ市民権を得てきたフリーランスという働き方。
Web開発者界隈でも人気のキャリアになりつつあると感じます。
本トークでは2019年にフリーランスになって4期目を迎え、酸いも甘いも経験してきたわたくしがフリーランスのWebエンジニアとして働くということのメリット・デメリット、理想と現実についてお話します。
みなさん様々な環境にPHPのアプリをデプロイしていることと思います。
PHPコミュニティでは、Azureを使った事例はあまり公開されていないように思います。
AzureにもPHPをデプロイするのに適した良いサービスがたくさんあるのですが、「Azureはどこから手をつけていいかわからない...」といった話を聞くことも多いです。
そこで、このセッションでは、AzuereでPHPを含む今時なWebアプリケーションを動かすことのできる様々な環境を比較しつつご紹介しようと思います。
想定する聴講者
PHPをAzureで利用する環境に興味がある方
Azureには興味があるが、どこから手をつけて良いかわからない方
Azure初心者〜中級者の方
現代のコンピュータはハードウェアから私たちプログラマが書くプログラムの動作までの間が多くのレイヤーに分けられて動作しています。
レイヤーは自分より下を抽象化し、下のレイヤーを詳しく理解しなくても多くの場合プログラマはプログラムを書けます。
一方、プログラムが期待した様に動作しない時には下のレイヤーの動作の理解が問題の解決の助けになることもあります。
このトークでは私たちが愛するPHPをスタート地点にして、「CPUによる"プログラム実行"」「 PHPやJavaとC言語の根本的な違い」など、コンピュータプログラムがどの様に動作するのかを解説します。
コンピュータのレイヤー構造を理解すると、いままでは見えていなかった角度からプログラミングを楽しめるようになります。
このトークを通じて、低レイヤーが好きになったり、いろいろなレイヤーで面白いことをしたりする方が増えることを期待しています!
私はこれまでの業務で主にPerl、Go、TypeScriptなどを書いてきました。PHPは1行も書いたことがありません。
PHPカンファレンス福岡2023に何気なく参加したところとっても楽しく暖かいコミュニティだったので、「これは登壇する側にならねば!」と思いました。
このLTではPHPカンファレンス小田原2024当日までに締め切り駆動で初めて扱うPHPで何かしら成果を作り公開します。作ったものを当日発表するのでクオリティはおいておいて楽しみにしてもらえれば嬉しいです。
開発の中でPHPに対しての感想も出てくると思うので他言語経験した人からの視点も共有できればと思っております。
PHPでメールサーバからメールを取り込みたいと思ったことはありますか?
メールと言えばPOP3/IMAP4ですのでPOP3やIMAP4を使えば良さそうですが自分でPOP3/IMAP4を喋るのはややシンドイですね。
このトークではPHPでメールをメールを取り込むにはどうしたら良いか、そして最も広く使われているであろうメールサービスのGmailからメールを取り込む方法をお話します。
インターネット黎明期から存在するインターネットメールに放たれる自由奔放なメールは素手で立ち向かうにはやや手強い。
このトークがメールと戦うみなさんの力となることを祈っています。
Gmailからメールを取り込みたいと思ったことはありますか?
GmailはPOP3/IMAP4をサポートしているのでPOP3やIMAP4を使えば良さそうですがIDやパスワードは何を使えば良いでしょうか。
実はGmailはXOAUTH2という規格に対応しており、XOAUTH2を使ってWebベースの画面遷移でパスワードを取得することができます。
このトークではGmail + XOAUTH2を想定して以下の様なトピックをお話します。
なかなか情報が少ないIMAPやGmailのXOAUTH2対応ですので、このトークが同じ課題に立ち向かうみなさんの力になることを祈っています。
PHPのビルトインウェブサーバーを使ったことはありますか?
Laravelユーザーの方ならおそらく「php artisan serve」というコマンドで使ったことがあるかもしれません。
HerokuやAWS ECSのLaravelデプロイ時に「php artisan serve」を使用する例もちらほら見受けられますし、公式サイトでもこのようなサンプルが紹介されています。
しかし、php公式では本番環境での使用を禁止しています。
https://www.php.net/manual/ja/features.commandline.webserver.php
本トークでは、ビルトインウェブサーバーの注意点について実例を踏まえてその弊害についてお話しします。
PHPには公式野良含め数多の拡張が存在しています。
その中の一つに、プロセス制御を行うための公式の拡張機能であるpcntlがあります。
知られている使い方の一つには、Laravel Jobのタイムアウト処理やPHP-FPMでの利用があります。
このトークでは、pcntlの導入方法と実例を交えた利用方法について話します。
近年、PHPプロジェクトの品質を高めるためのツールとしてPHPStanのような静的解析ツールが導入されるケースが増えています。
PHPStanを導入することによって、PHPでもJavaやTypeScriptのように静的解析の恩恵を受けることができます。
既存のコードベースに初期導入するのは、コードベースが大きい程ハードルが高くなりがちです。
本トークでは40万行のLaravel PHPにPHPStanを導入した実例を踏まえて、どのように導入したのかをお話しします。
想定対象読者
WordPressの機能の一つにブロックエディタというものがあります。
ブロックエディタはカスタマイズ性や柔軟性が非常に高く、デザインの編集など、管理画面上で殆どの対応が完結します。
ブロックエディタは管理画面上での編集のみならずコードベースでの管理もすることができます。
しかしながら、コードベースで管理する方法についてWeb上で検索すると不十分な公式ドキュメントしか見つかりません。
機能を十分に使うにはWordPress本体のコードを読むしかなく、ベストプラクティスのようなものも自分が知る限りでは存在していないようです。
今回のトークでは、実際に自分が初期導入から実装までやった経験を踏まえて、どのように開発していけば良いのかの一例をご紹介します。
想定対象者
当トークは、
聴取者にとって「自分は本を読むべきか、どう読書をすれば良いのか」を発見するヒントになることを目指します。
──本を読むのは良いぞ!!
それは何故でしょうか?
読書による学習方法には、例えば次のような特徴があると考えます
ここから色々な旨みが生じます
私自身は、こうした特性に助けられてきました。
実際、読書を通じて「壁を突破できた」ような経験をする場面が何度もあります。
当トークで、その想いや分析を共有できるでしょう。
「成長したい」「楽したい」を叶えたい人に聞いて欲しいです。
読書ができると何を得られ、どう活かすかを一緒に考えてみませんか?
テスト書いてますか?ますよね?
─果たして、本当にそれが正解でしょうか。
テストには「欠陥があることの証明」が重要です。
「証明しなくて良い事」が増えれば、テストの責任も軽減されるでしょう。
つまり、書くべきモノが減ります!!
実際に、設計技法やPHPの機能、ツールによって、そんな願いが叶えられると考えます。
例えば「引数にint型宣言」で、「文字列を受け取ったらどうバグるかの証明」はお役御免です。
良い意味でテストを減らす道・・・探りましょう!
NotionにはデータベースにCSVでレコードを一括投入するための 「CSV取り込み」 という機能が標準で搭載されています。
が、少なくとも2023年11月現在においては正直だいぶ貧弱な機能で、本当に最低限のことしかできません。
(例えば、インポートできるプロパティの種類が限られている、ページ本文はインポートできない、「名前」カラムの値が重複している行があると正常にインポートできない、など)
そこで最近、必要に迫られてPHPでNotionのデータベースにCSVをおインポートするフォームを自作しました。
このトークでは、このフォームの具体的な実装手順を、デモを交えつつサクッと解説します。
どうも、要件ヒアリングに自信ニキです。
私はフリーランスエンジニアとして受託開発のお仕事をよく頂くのですが、お客さんとの対話・ヒアリングを割と得意としています。
お客さんはシステム開発のプロではないので、説明が的を射ないことも多く、複雑なシステム要件のヒアリングには根気と体力を要しますよね。
そればかりか、なかなか合意や結論に辿り着けずいたずらに時間が奪われた挙句、結局失注して悲しみ、といった経験はないでしょうか。
私はよくお客さんから「1しか言ってないのに100のアウトプット出てくるんやが」「話が早すぎてもはや笑える」などと言われます。
一体私はお客さんとの対話中に何を考え、どんな手順でヒアリングを進めているのでしょうか。
このLTでは、お客さんとの対話中の私の頭の中身をまるっと皆さんにシェアします。
明日からのお客さんとの対話・ヒアリングに少しでも役立てていただけると嬉しいです!