SymfonyをAmazon ECSで稼働・運用することに関して話します。
特に運用面で気をつけていることなどについてお話しします
話すこと
・SymfonyをECS上で稼働させる際の注意点と構成図
・GitHub ActionsやCodePipelineなどを用いたデプロイの自動化
皆さんはチームで「完了の定義」は運用していますか?
また、それはちゃんと運用できていますか?
このトークではITエンジニア/ソフトウェアエンジニアである以前に、
一人のビジネスパーソンとして仕事をする上で大事な概念である
「完了の定義」
の運用について
についてお話させて頂きます。
当たり前のことではあるけど実践しようとすると意外と難しい、完了の定義について一緒に考えましょう!
キャリアについて考えたことはありますか?
自分の場合、結婚して子供が生まれてから今まで、本当にいろいろなことを考えてきました。
その間、転職をしたり、会社が買収されたり、スタートアップに飛び込んだり。
今では自分の会社を経営しており、メンバーの雇用を始めたりもしています。
そしてずっと、Webエンジニアであり続けてきました。
ふりかえってみると、何が自分と家族にとって最善なのか考え続けてきた結果だったりします。
今まで考えてきたことについて、ちょっと話してみようと思うのです。
皆さんがキャリアについて考える上で、何か参考になることがあればうれしいです。
Symfonyで複雑なフォームの実装についてお話します。
お話する内容
・EntityTypeを利用したFormTypeの実装
・ネスト構造のFormType
・ConstraintValidatorを利用した独自バリデーションの実装方法
皆さん、コア吐いてますか?
コアダンプファイルは実行中のプログラムのある時点でのメモリ内容を、丸っとファイルへ吐き出したものです。Linux や Unix 系 OS では、プログラムがクラッシュした際など、設定によってその原因究明のためのコアダンプファイルを吐き出させることができます。
我々 PHPer にはコアダンプファイルは馴染みの薄いものです。PHP スクリプトの実行でコアが吐かれるのは、ふつう処理系や C 言語拡張部分の不具合を踏んだ場合です。PHP は仕事で使われることの多いビジネスマンの言語で、仕事でそのような不具合を踏みやすい環境を常用することは珍しいでしょう。
しかしこのコアダンプ、プログラムのクラッシュ時以外でも取れば取れるもので、気合で読めばけっこう楽しいものでもあります。みなさんもこのトークを聞いて、毎日じゃんじゃんコアを吐いていきましょう!
みなさん、サーバレスで動かすPHPはお好きですか? 私は大好きです。
よくサーバレスなマネージドコンテナサービスでWEBアプリを実行しますが、定期実行するジョブもマネージドなサーバレス環境で実行したくありませんか?
そんなあなたのために、3大クラウドそれぞれで定期ジョブ実行するためのポイントやそれぞれのサービスの比較を行い、実際にPHPを動かす際のポイントなどをお話します!
対象
・Dockerなどコンテナについてなんとなく聞いたことがあり、ちょっと動かしてみたい人
・サーバレスでコンテナを使った定期ジョブをしたい方
・サーバレスという言葉に惹かれる人
お話すること
・各社のサーバレス コンテナサービスの比較(特徴や料金体系など)
・実際にトライしてみての気づき
お話しないこと
・商用環境での運用の話(個人開発ベースです)
・ライブデモはありません(あくまでスライドのお話ベース)
みなさん、技術イベント楽しんでますか?
関西は実に6年ぶりの開催ということで、PHPerやエンジニアだけではなく、多種多様な方が会場にいらっしゃるでしょう。
そんなみなさんに、PHPコミュニティの良さ...否、「技術イベント」に参加する良さをもっと布教したい!!
2024年はコロナ禍が落ち着き、多くのイベントが復活。
各地域に熱狂をもたらしています。
今日、PHPカンファレンス関西に勇気を出して参加してくれたあなたに!
技術イベントの尊さを、ギュっと15分に濃縮・還元します。
PHPカンファレンス関西から、技術イベントに”もうちょっとだけ”踏み込んでみませんか?
仕様をコードで表現するとは?
PHPのコードを例に、よく聞くDDDの戦術設計や戦略設計、そのあり方の一つをお見せできればと思います。
例外はただのトラブルシューターじゃありません。コード内の誰が何を担当するのかを教えてくれる、責務の指針なんです。
『PHPの例外、多すぎてどれ使えばいいかわかんない!』『例外、いつキャッチすればいいの?』『エラー情報、どこに吐き出すのが正解?』こんな疑問を持ったことはありませんか?
PHPの組み込み例外クラスの選び方から、自分で独自例外を定義するノウハウまで、コードをもっと読みやすく、管理しやすくするための実践的なアプローチについて考察してみます。
例外をマスターして、エラーハンドリングをもっとスマートに。
私たちが働く IT の業界は変化が激しく、既存のスキルが数年ですぐに陳腐化してしまいます。
変化のなかで生産性の高いエンジニアであり続けるためには新たな事柄を戦略的に学んでいくことが重要です。
本セッションでは戦略的な学習習慣を身につけること「学び方の学び方」についてブレイクダウンして考察していきます。
B+木をご存知でしょうか?RDBMSのインデックス作成に採用されているデータ構造で、ディスクの効率的な利用や、検索を行いやすいなどの特徴があります。しかし、耳学問で聞いてもイマイチ特徴がピンと来ないのです。
本トークでは、PHPでB+木のデータ構造を実装して、RDBMSでB+木が採用される理由、インデックスの構造的な仕組み、何故検索が速くなるのか?などなど、データベースの仕組みの根幹を覗いてみましょう。
本トークで話す内容
プログラムを書くときに計算量を意識していますか?計算量の基本を理解することで、サービスが成長したときに問題を起こしにくいプログラムを作成することができます。簡単なプログラムを例にして、まず計算量という概念に慣れてみましょう。
このセクションではリアルなLaravelのプロジェクトを例に、ドメインイベントを用いてどうやってコードをすっきりさせるかをナビゲートします。
テストも楽チンになるし、コードも再利用しやすくなるような、ちょっとした工夫を伝授します。
リファクタリングって難しそう?
いえいえ、このセッション後は、もう怖くないですよ。
Laravelとともに、もっとコードライフを楽しみましょう!
Laravelには便利な機能がたくさんあり、Eloquent、Facede、サービスコンテナ、認証、ミドルウェア、Blade、artisanコマンドなどの機能を活用することで、スピード感のある開発ができることは間違いありません。
ただ、それらに依存しすぎることによる弊害も少なくないでしょう。ビジネスの変化への対応による作り直し、各機能のバージョンアップの際に思わぬ量のコード修正になってしまうことがあります。
そんなことを想定し、Laravelのコードからドメインのコードが独立するよう、主にInterfaceを利用してドメインロジック(=わたしたちのコード)を切り出すことを心がけています。
まずLaravelで素早く開発するための例を紹介し、どのようにしてLaravelのコードとドメインのコードの距離を保っているか、どんなメリットがあるのかを事例を交えて紹介させていただきます!
PHPドキュメンテーション
「password_hash() は、 アルゴリズムやコスト、ソルトといった情報もハッシュに含めて返すことに注意しましょう。 」
ぼく
「え、ソルトも同じところにあったら意味ないんじゃ?」
このセッションでは、そんな疑問に答えるべく、password_hash関数について掘り下げて解説します。
そもそもパスワードをハッシュ化する目的や、パスワードにまつわる攻撃手段とその対応を見ていきましょう。
話すこと
・ハッシュ化とは何か
・なぜパスワードはハッシュ化するのが良いのか
・ソルトは何を解決するか
・ブルートフォース攻撃やタイミング攻撃への対応
みなさんは 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つの基準になりそうです。
このトークで「設定の仕方」「ルールの作り方」で比較し、それぞれの思想も紐解きます!