このトークでは架空サイトのログインをInterfaceを利用して差し替えることでInterfaceへの理解を深めます。
「Interfaceってなんだか抽象的で分かりにくい」
「解説しているブログ記事や映像を見てもいまいちピンと来ていない」
「ライブラリのInterfaceの使い方見てもいまいち嬉しさが分からない」
そんな方は是非このプロポーザルに☆をつけてください!
Interface、コワクナイ!
内製開発チームを立ち上げて半年程度のスタートアップに昨年ジョインし、2023年の7月からCTOをやっております。
14名の開発チームに成長、サービスの展開を加速させていく中で、組織作りや開発基盤の整備を含め、取り組んできたことをPHPer目線でお話しします。
CTOに限らず似たような立ち位置の企業にジョインしたエンジニアの参考になればと考えています。
◆対象者
・スタートアップエンジニア
・新規の開発チーム立ち上げをしている人
◆話すこと
・エンジニア組織作り
・採用、技術広報、技術試験の導入
・経営層、他部署の知識向上
・開発環境、ルール作り
・うまくいった取り組み、うまくいかなかった取り組み
クリーンアーキテクチャって難しいですよね?
ドメインモデル, ユースケース, アダプタ, インフラストラクチャ, etc, はい、私は全くわかりませんでした。
ただ少し視点を変えて、それぞれのレイヤーを擬人化して会話させてみると、なぜ依存関係や依存の向きについて口酸っぱく言われるのか、なんとなくわかった様な気になることができました。(例えば、ユースケースとインフラストラクチャを直接会話させると何が起きるのかなど)
そこで本トークでは、
を中心に、クリーンアーキテクチャを少しでも理解してもらえることを目標としてお話ししたいと思います。
深い話はせず、あくまでも擬人化を用いてレイヤー間のやり取りを説明します。
このトークを聞けば、あなたはきっとそれぞれのレイヤーで思い出す顔が増えるでしょう。
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の組み込み例外クラスの選び方から、自分で独自例外を定義するノウハウまで、コードをもっと読みやすく、管理しやすくするための実践的なアプローチについて考察してみます。
例外をマスターして、エラーハンドリングをもっとスマートに。
いろいろな言語の言語機能のうち、PHPにまだないものを挙げます。
で、ないのはしょうがないので、どうするかと考えていきます。
私たちが働く IT の業界は変化が激しく、既存のスキルが数年ですぐに陳腐化してしまいます。
変化のなかで生産性の高いエンジニアであり続けるためには新たな事柄を戦略的に学んでいくことが重要です。
本セッションでは戦略的な学習習慣を身につけること「学び方の学び方」についてブレイクダウンして考察していきます。
B+木をご存知でしょうか?RDBMSのインデックス作成に採用されているデータ構造で、ディスクの効率的な利用や、検索を行いやすいなどの特徴があります。しかし、耳学問で聞いてもイマイチ特徴がピンと来ないのです。
本トークでは、PHPでB+木のデータ構造を実装して、RDBMSでB+木が採用される理由、インデックスの構造的な仕組み、何故検索が速くなるのか?などなど、データベースの仕組みの根幹を覗いてみましょう。
本トークで話す内容
ステートレスなHTTPをステートフルに変えてくれる仕組みがセッションです。ユーザのログイン、リダイレクト後のエラーメッセージの表示、CSRF対策等、現代のウェブアプリケーションで多用されているセッションですが、セッションがどのように動いているかと聞かれた時に正しく答えられますか?
本トークでは、ウェブアプリケーションにおけるセッションについて、その正体を分かりやすく解説します。セッションの正体を知ることで、初心者とベテランエンジニアの間に存在する知識と経験の差を少しでも埋めることが狙いです。
このトークでお話すること
プログラムを書くときに計算量を意識していますか?計算量の基本を理解することで、サービスが成長したときに問題を起こしにくいプログラムを作成することができます。簡単なプログラムを例にして、まず計算量という概念に慣れてみましょう。
このセクションではリアルなLaravelのプロジェクトを例に、ドメインイベントを用いてどうやってコードをすっきりさせるかをナビゲートします。
テストも楽チンになるし、コードも再利用しやすくなるような、ちょっとした工夫を伝授します。
リファクタリングって難しそう?
いえいえ、このセッション後は、もう怖くないですよ。
Laravelとともに、もっとコードライフを楽しみましょう!
Laravelには便利な機能がたくさんあり、Eloquent、Facede、サービスコンテナ、認証、ミドルウェア、Blade、artisanコマンドなどの機能を活用することで、スピード感のある開発ができることは間違いありません。
ただ、それらに依存しすぎることによる弊害も少なくないでしょう。ビジネスの変化への対応による作り直し、各機能のバージョンアップの際に思わぬ量のコード修正になってしまうことがあります。
そんなことを想定し、Laravelのコードからドメインのコードが独立するよう、主にInterfaceを利用してドメインロジック(=わたしたちのコード)を切り出すことを心がけています。
まずLaravelで素早く開発するための例を紹介し、どのようにしてLaravelのコードとドメインのコードの距離を保っているか、どんなメリットがあるのかを事例を交えて紹介させていただきます!
PHPドキュメンテーション
「password_hash() は、 アルゴリズムやコスト、ソルトといった情報もハッシュに含めて返すことに注意しましょう。 」
ぼく
「え、ソルトも同じところにあったら意味ないんじゃ?」
このセッションでは、そんな疑問に答えるべく、password_hash関数について掘り下げて解説します。
そもそもパスワードをハッシュ化する目的や、パスワードにまつわる攻撃手段とその対応を見ていきましょう。
話すこと
・ハッシュ化とは何か
・なぜパスワードはハッシュ化するのが良いのか
・ソルトは何を解決するか
・ブルートフォース攻撃やタイミング攻撃への対応