みなさんは Serverless アーキテクチャをお使いでしょうか。
PHP では、 Bref と呼ばれるサードパーティ製のランタイムを用いることで Serverless 、正確に言えば Function as a service 環境上でアプリケーションを動かすことが可能です。
しかしながら、このアーキテクチャは専ら CDN を組み合わせ、公開されたインターネット環境から アクセスしてくることを基本としており、それ以外のアクセスが制限されている環境 = 閉域網下において、このアーキテクチャが採用されたケースは、あまり見ることができません。
このセッションでは、 DirectConnect を用いた閉域網下の環境にて、 Serverless アーキテクチャを採用した Laravel アプリを実装し得られた知見についてお話ししたいと思います。
皆さんはPHPサーバーのセットアップをどのように行っていますか?
手動で行う方法、構築済みサーバーを利用する方法、コンテナ技術を用いる方法など、様々な方法があります。
しかし、これらの方法は時間がかかったり、手順が複雑であったり、構成変更の柔軟性に欠けたりすることがあります。
今回紹介するのは、Ansibleという強力な構成管理ツールを用いた、PHPサーバーの構築・デプロイメントの自動化です。
AnsibleはSSH接続によってエージェントレスで動作し、軽量で学習コストも低いため、PHPサーバーの環境構築に最適なツールです。
このセッションでは、インフラ知識の無い初心者でも分かるように、柔軟な構成で効率的にPHPサーバーを自動構築する手法についてお伝えします。
一言で「PHPでのプログラミングを勉強する」と言っても、多くの要素が含まれます
等々。
初心者・入門者から初級者への上昇には、
例えば「指示の内容(単語や言いたい事)が理解でき、実施できる」は1つの目安です
どう歩めば良いでしょうか?
5つの要素について、オススメ書籍の紹介を交えながらお話します
テスト駆動開発(TDD)を使えば、安心感を持ってコードを変更できるようになったり、スモールステップで開発できるようになったりするという恩恵を得られます。
このセッションでは、ターミナル上で動作するリバーシを題材にしてTDDの基本を解説します。
セッションの内容 :
主な対象者 :
PHPのコーディングスタイルの治安を守るツールには、強力なプレイヤーが複数居ます。
どれを選びますか?
「利用しているFWと親和性が高いもの」で選ぶのも良いですし、
「標準やコミュニティでどんなルールセットが存在するか」もポイントになります。
「似たツール、どれを好む?」が、新しい自転車置き場の屋根の色になってしまっては、本末転倒です。
機能的な比較は1つの基準になりそうです。
このトークで「設定の仕方」「ルールの作り方」で比較し、それぞれの思想も紐解きます!
EMを始め、マネージャーやリーダーには「人を動かす」という場面が多くあります。
「目標を定義する」「組織での解決をデザインする」「仕事を割り当てる」、こんな流れです。
他人の参加を前提にした物事は、「その人が動いてくれなかったら」で達成が危機に晒されたりもします。
マネジメントには、こうしたリスクを織り込んで、安全にゴールまで辿り着く事が求められます。
他方で、「大きな仕事を与える」「自由にやらせる」ことの効能が、強くしなやかな組織を育む上で重要だと見做されています。
私が両者の狭間で足掻きながら見えてきたのは、「信頼するけど期待しない」という感覚です。
このトークでは、自身の経験を通じて掴んだポイントを共有します。
世の中に入門書や入門者向けの記事は溢れています。
上級者向けの書籍や記事も増えています。
入門書を終えた後、次のステップに進むために何を学ぼうか悩んでいるビギナーの方は多いのでは無いでしょうか?
PHPを使って業務で開発を行っていくうえで、次のステップとして学ぶと良いことを具体的なケーススタディを交えてお話ししていきます。
◆対象者
・入門書をやり終えた程度のPHP初心者
・簡単なWEBアプリケーションが作れるようになったPHP初中級者
◆話すこと
・バグを生み出しづらい書き方
・コーディング規約
・チーム開発において読みやすい書き方
・コメントの入れ方
・セキュリティを意識した書き方
・エラーの見方
privateメソッドのテストを書くか書かないか問題はよく話題にあがるかと思います。
実は、私もかつてはprivateメソッドのテストをたくさん書いていた時代がありましたが、今はprivateメソッドのテストは書かずにテストを書いています。
自分の思考の整理をするのに繋がった「単体テストの考え方/使い方」という本の内容からも引用しつつ、
実体験をベースに「なぜprivateメソッドのテストを書かないのか」というところをお話します!
トークで話す内容
オブジェクト指向プログラミングにおいて重要な概念となる「SOLID原則」 。
本セッションでは、自分が違反して書いてしまったコードを例に、SOLID原則を紹介していきます。
多くの書籍でSOLID原則に関する具体例が示されていますが、このセッションでは「実際の失敗例」を通じてSOLID原則を理解していただこうと考えています。
自分がミスってしまった実装例を、時間の許す限り赤裸々に公開します!!
TechTrainというバックエンドがLaravelのプロダクトで5年ほど運用してきました。コードベースも大きくなり、リファクタも積み重ねなくていく必要が出てくるくらいにはなっています。
度々部分的に記事でCI/CDについて紹介されていることはありますが、本番環境で何を全体的に運用するのか?といった紹介がないので、導入し、必要なところを改善するのに少し苦労しました。
このトークでは、Laravelの運用にあたり、何をCI/CDで導入し、どういうポイントを抑えると、楽にできるのか?について詳しくお話しします。
PHPは20年を超える歴史を持つ言語で、php.netでは度々「歴史的な理由」という単語を見かけます。
このトークでは、php.netの標準関数における説明において「歴史的な理由」がなぜ生まれたのかを追い、PHPの歴史とともにその理由について深掘ります。
OSSコントリビュートはした方が良いという話はよく聞きます。
しかし、実際にどう進めれば良いのかという話は中々ないように思います。
このトークでは、私が業務中に行ったOSSコントリビュートの手順を1から解説します。
OSSコントリビュートの手順に正解はありませんが、このトークを通して「ほ〜ん、大体こんな感じなんやな〜」と思っていただければ幸いです。
対象読者
自分のために書くPHPも良いものですが、人助けのために書くPHPもとても良いものです。
これを機に、PHP界隈のOSSコントリビュート文化がもっと成熟して、多くのPHPerが気軽にコントリビュートできる世界になれば嬉しいです。
みなさん、サーバレスで動かすPHPはお好きですか? 私は大好きです。
このコンテナを稼働させる仕組みは様々ありますが、1つのコンテナを動かして気楽にWEBアプリ開発をしたくありませんか?
そんなあなたにぴったりなのが フルマネージドでコンテナ型アプリを作成できる
・App Runner
・Cloud Run
・Container Apps
です。
これらのサービスの比較と実際にPHPアプリケーションを動かす際のポイントなどをお話します!
・Dockerなどコンテナについてなんとなく聞いたことがあり、ちょっと動かしてみたい人
・サーバレスという言葉に惹かれる人
・各社のサーバレス コンテナサービスの比較(特徴や料金体系など)
・商用環境での運用の話(個人開発ベースです)
・ライブデモはありません(あくまでスライドのお話ベース)
MySQL5.7のEOL対応は順調ですか?
MySQL8になって色々新しい機能があるのは知ってるけどいまいちちゃんと把握してない方、何となく機能は知ってるけど使い所がピンと来てない方向けにMySQL8の新機能WITH句とWindow関数のおさらいと便利な使い方、可読性の高いSQLの書き方について実例を出しながらお話しします。
「PHPコミュニティ、その魅力と熱狂をあなたにも」と題した私のトークへようこそ!
2022年から数々のPHPカンファレンスや勉強会に飛び込んで、今や参加したイベント数は両手ではとうに数えきれないほど、私はPHPコミュニティへの熱い愛に満ちています!!!
PHPにとどまらず、技術コミュニティへの情熱は、一人のPHPerとして、また一人のエンジニアとして、成長の核となっています。
「技術コミュニティとは何か?」、「なぜ私はPHPコミュニティをここまで愛するのか?」という問いに対し、私の体験と感動を通じてその答えをお届けします。
ただ参加するだけではもったいない!このトークを通じて、「PHPコミュニティ人生をどうすれば200%楽しめるか」という秘訣を余すことなく解説します!
6年ぶりのPHPカンファレンス関西2024だからこそ聞いてほしいトークです!是非、この機会をお見逃しなく!!
このトークでは、LaravelのORMシステムであるEloquentのアクセサ・ミューテタが何か、またクエリビルダとの違いは何かについて、PHP初心者に向けてわかりやすく解説します!!
その後、Eloquentとクエリビルダを組み合わせて使用する際の注意点について、実際に起こった失敗談を紹介します。
そして、この失敗から得た教訓をもとに、同様の問題を避けるためにはどうしたら良いのかについても掘り下げます。
このトークを聞くことで、Laravelを利用しているけれどもEloquentとクエリビルダの違いが分かっていない方も、明日からその2つの違いを理解し、安全なデータベース操作ができるようになるでしょう!乞うご期待!
少し前にパスワードにまつわる「ハッシュ」と「ソルト」という言葉が話題になりました。
また「平文で保存していたパスワードが流出する」といった事件もたびたび耳にします。
パスワードの扱いについては、Web アプリケーションフレームワークを使っていればあまり意識することは無いかもしれません。
実際、意識しなくてもフレームワークがよしなにしてくれます。
でも、いったい「ハッシュ」や「ソルト」とは何なのか?
上述のような事件を起こさないよう、アプリケーション開発者としてしっかり押さえておくべきポイントをお話します。
不具合が確認され、丸一日かけて調査したら原因はうっかりミスによる構文エラーだった.......そんな経験ありませんか?
「そんなうっかりミスを実行する前に気づけたらいいな」そう思ったあなたにお勧めするのが静的解析です!
本トークでは PHP 静的解析ツールの一例として PHPStan を取り上げて、それが使えるとどんなことがいいのかをお話します。
フレームワークのドキュメントに従って、あるいはプロジェクトの既存のコードに従ってファイル上部に書いた「namespace」「use」といったキーワード。
この意味、正しく理解していますか?
「ディレクトリ名と対応させて書くやつ」「他の言語でいう import みたいなやつでしょ?」みたいな認識をしていませんか?
実は PHP の機能としては namespace(名前空間)とディレクトリ名、ファイル名には一切の関係はありません!
「じゃあ、なんで require とかを書かずに他のファイルに定義したクラスを使えているの?」と思ったあなたに、その仕組みと、それらを支えている存在をお教えします。
コードで扱われる関数の分け方の基準として凝集度と結合度というものがあります。
これらは構造化プログラミングの文脈において提唱されている概念であり、オブジェクト指向プログラミングにおける様々なデザインパターンやSOLID原則を理解する上でも重要なものです。
このトークではPHPで書かれた具体例をもとに、凝集度と結合度についてお話します。