PHP8.0にて導入されたnullsafe演算子(null安全演算子)。
メソッドチェーンしたいけどnullableだからnullチェックしないといけない、そんなときに大活躍するのがこのnullsafe演算子です。
ご存じの方も多いかも知れませんが、改めてその有用性や使い方を「今まではこう書いていた」という事例であるif文での書き方やnullObjectパターンを添えてご紹介したいと思います。
nullsafe演算子を使いこなして、より効率的なコードを書く第一歩を踏み出しましょう。
想定視聴者
PHPは20年を超える歴史を持つ言語で、php.netでは度々「歴史的な理由」という単語を見かけます。
このトークでは、php.netの標準関数における説明において「歴史的な理由」がなぜ生まれたのかを追い、PHPの歴史とともにその理由について深掘ります。
ChatGPTの人気で、話題沸騰の生成AI。
Pythonではなく、PHPでOpenAIのAPIをつかう方法をやってみました。
Pythonが一般的に使用される中、PHPを活用してAI技術を取り入れる方法を実際のコード例を説明します。
ステートレスなHTTPをステートフルに変えてくれる仕組みがセッションです。ユーザのログイン、リダイレクト後のエラーメッセージの表示、CSRF対策等、現代のウェブアプリケーションで多用されているセッションですが、セッションがどのように動いているかと聞かれた時に正しく答えられますか?
本トークでは、ウェブアプリケーションにおけるセッションについて、その正体を分かりやすく解説します。セッションの正体を知ることで、初心者とベテランエンジニアの間に存在する知識と経験の差を少しでも埋めることが狙いです。
このトークでお話すること
内製開発チームを立ち上げて半年程度のスタートアップに昨年ジョインし、2023年の7月からCTOをやっております。
14名の開発チームに成長、サービスの展開を加速させていく中で、組織作りや開発基盤の整備を含め、取り組んできたことをPHPer目線でお話しします。
CTOに限らず似たような立ち位置の企業にジョインしたエンジニアの参考になればと考えています。
◆対象者
・スタートアップエンジニア
・新規の開発チーム立ち上げをしている人
◆話すこと
・エンジニア組織作り
・採用、技術広報、技術試験の導入
・経営層、他部署の知識向上
・開発環境、ルール作り
・うまくいった取り組み、うまくいかなかった取り組み
いろいろな言語の言語機能のうち、PHPにまだないものを挙げます。
で、ないのはしょうがないので、どうするかと考えていきます。
クリーンアーキテクチャって難しいですよね?
ドメインモデル, ユースケース, アダプタ, インフラストラクチャ, etc, はい、私は全くわかりませんでした。
ただ少し視点を変えて、それぞれのレイヤーを擬人化して会話させてみると、なぜ依存関係や依存の向きについて口酸っぱく言われるのか、なんとなくわかった様な気になることができました。(例えば、ユースケースとインフラストラクチャを直接会話させると何が起きるのかなど)
そこで本トークでは、
を中心に、クリーンアーキテクチャを少しでも理解してもらえることを目標としてお話ししたいと思います。
深い話はせず、あくまでも擬人化を用いてレイヤー間のやり取りを説明します。
このトークを聞けば、あなたはきっとそれぞれのレイヤーで思い出す顔が増えるでしょう。
みなさんはシステム障害が起きた時、どのように調査を行いますか?
根拠となるデータを元に仮説を立てて検証するというのがセオリーですが、時に必要なデータが無くて行き詰まったり、経験則や自身の勘に頼ってしまいがち、という事もあると思います。
OpenTelemetry はシステムの状態を可視化するためのデータ(テレメトリーデータ)を収集するためのツールとして登場し、オブザーバビリティを高めることがやりやすくなっています。そして、OpenTelemetry PHPが最近GAされたことでPHPアプリケーションにもこの波がやってきました。
本セッションではオブザーバビリティ入門したい方向けに、以下のことをお話しします。
開発をしているときにコメントがあると助かりますよね。
「なるほど、ここはそういう処理をしてるのか!」と、コードの中身を詳しく読まなくとも実装を進めることができます。
しかし、時としてコメントは嘘をつき、あなたを陥れます。
特に古いシステムではこれまでに蓄積され、忘れられ、熟成されたコメントが至るところに散りばめられています。
私が普段開発をしているメール共有サービス メールディーラーはリリースから20年以上が経つサービスであり、熟成されたコメントが多数存在します。
本LTでは私が実際に遭遇したレガシーコードに潜む奇妙なコメントをご紹介し、コメントを信じることが如何に危険なことであるかを知っていただきます。
コメントを信じるか信じないかはあなた次第です!
速いは正義、アプリケーションは速くあるべきです。
ではどうすれば良いのか
細かい理論などは気にしない、こうしたら早くなった
結果を貼り付けながら、何をしたのかひたすら話しますが、細かいことは話しません
OS、Webサーバー、PHP、RDBMS等の見直すべき要素に関して、情報を詰め込むだけ詰め込むことに挑戦します。
※注釈は付けますので細かな理論はそちらでご確認ください
想定する聴講者
お話しないこと
みなさん、PHPを初めて学んだ時に感じた「?」を覚えていますか?
私の所属する開発チームでは、PHPマニュアルの精読を始めました。
精読してみて改めて感じたPHP独自の魅力について、皆さんに共有したいと思います。
このセッションでは、PHPの特殊な機能、他のプログラミング言語との比較、その機能ができた背景について、私なりに調べた結果や考察を発表します。
対象者:
PHP8.1では、いくつかのリソースがobjectに移行しました。
例えば
pgsql result リソース → PgSql\Result オブジェクト
pgsql link リソース → PgSql\Connection オブジェクト
などです。
私が開発しているMaildealerは、すでに開発から20年以上経過しているレガシープロダクトです。
その中に存在する PgSQL 用の独自ライブラリは、すべてがリソースで扱うことが前提のコードになっていました。
マイナーリリースで気軽に入れられた変更が、レガシープロダクトに与えた影響と、その解決方法をお話します!
先日、製造業で働いている友人からIT業界に転職したいという話をいただいたのですが、その際にある疑問が湧きました。
それは、完全な初心者が2か月間訓練したら、どれくらいPHPが書けるようになるのだろうか……?というものです。
お互いに平日はお仕事があるので、夜中や休日にひっそりとお勉強するしかありません。
IT未経験の若者が苦労の末 2か月間でPHPを習得する 話、 聞いてみたくない ?
具体的な内容
私が最初に出会ったプログラミング言語は大学の授業で勉強したC言語でした。授業や試験で問題を解くためにC言語を勉強していました。
ですが、授業外でHTMLやCSS, JavaScriptでWEBサイトを制作し、そこでPHPに出会いプログラミングが好きになりました。ここで初めて「プログラミング = 授業で勉強するもの」の考え方がなくなりました。プログラミングでWEBアプリケーションを作成し、エラーに苦しんで、実際に動かす体験は嬉しさと楽しさでワクワクしていました。
最初はノンフレームワークのペライチのコードを書き、次はフレームワークで開発、一周回ってノンフレームワークで開発しました。
本セッションでは、PHPで「作ることが楽しい」体験から「コードが書ける、読める楽しさ」に変化していった経験についてお話しします。
メールを送る処理の実装時うっかり誰かに送ってしまうことはないでしょうか?
開発時のメールの誤送信事故を防止するために、ダミーのメールサーバに送るようにするということが多いかと思います。
Mailcatcher や Mailhog、Mailpit などの便利なツールが公開されていますが何か使われていますか?
弊プロダクトでは、ツールは利用せずにログにメールの送信内容を出力しています。
このアプローチでの Laravel を利用した開発時のメリットとデメリット、ログの可読性を上げるための工夫など私たちが行っていることを紹介します。
普段どういう風にlaravel開発を行なっていますか?
デバッグする時にddやlogなど使用していますか?
今回紹介するXdebugではより洗練され、便利で、直感的なデバッグが可能になります。
私自身、同僚にXdebugを教えてもらってからその利便性に驚かされました。
簡単なデモ動画でXdebgの初期設定、基本動作、共有できればと思っています。
皆さんの開発作業の効率が格段に向上するはずです。ぜひこの機会にXdebugの魅力を実感していただければ幸いです。