障害、嫌ですよねぇ。
嫌だから、起こしません・・・!素晴らしいのですが、「リリース怖い」「改修怖い」では、前に進めなくなります。
1番良いのは「適切に怖がる」「転んだら盛大に学び尽くす」という態度です。
スクラムを筆頭に、「ふりかえり」の力は「組織を強くする」ためのアジャイルな組織に必須な力と考えられています。もっと広げれば、体験学習の世界でも重要なことです。
そうした、本来の「これから先に活かすふりかえり」の姿を取り返しませんか?
目の前に立ちはだかる削除フラグ......
削除フラグがアンチパターンであることは知っていても、目の前の削除フラグと付き合っていくしか無い...
そう思って諦めていませんか?
削除フラグを既存のアプリケーションに影響をできるだけ閉じて無くすことはできます。
テーブルから状態や属性を別のテーブルに移し、アプリケーションを壊すことなくリファクタリングしていくために必要なことを説明します。
レガシィコードと向き合い、リファクタリングして、目の前のプロダクトを改善している現場のテクニック、余すこと無くお話します!
生涯エンジニアを続けたい。
しかしインターネットを見渡せば凄腕のエンジニアばかり。
このまま、自分は生き残れるのだろうか...
私も今年、38歳を越え、職場ではCTOとして決断を迫られる中、それでも新しい技術を理解し、向き合って行かねばなりません。 もちろん一日は有限ですから勉強する時間も限られます。
そんな中、私がどうやって新しい技術を理解し、未来の技術を予測し、今の技術を選定しているか。
そのために日々をどう過ごしているか。そんな "エンジニアとして生き残るためのhack" を皆さんにお伝えします。
ピカソは言った。「優れた芸術家は模倣し、偉大な芸術家は盗む。」
先人の言葉を例に上げながら、課題を解決するエンジニアになるためのロードマップをお話します。
みんな、オブジェクト指向やめたいですよね?(うんうん)
けれども、オブジェクト指向やめたいと思ってもPHPには機能が足りません。
このセッションでは、オブジェクト指向をやめてコードを書くときに大事な考え方、抽象データ型と代数的データ型、そしてそのために必要な機能とそれを提案するPHP RFCについて紹介します。
--
抽象データ型、代数的データ型の考え方と、直積型、直和型、パターンマッチングとそれを提案する「PHP RFC: Algebraic Data Types」について話そうと思います。
https://wiki.php.net/rfc/adts
以前まで PHP で非同期処理を扱うためには様々な制約をクリアする必要がありました。しかし,昨今の PHP では非同期処理を容易に扱うためのライブラリである Swoole や,parallel,PHP 8.1 からビルトインされた Fibers などがあります。
しかし,そもそも非同期処理とはどういったものなのでしょうか。非同期処理を調べていくと並行処理や並列処理,マルチスレッドやマルチプロセスなど様々な単語が出現しますが理解するのもハードルが高いと感じる方もいらっしゃるかと思います。
本トークは初級者から中級者向けに非同期処理について,拙著「Swooleで学ぶPHP非同期処理」からいくつか引用・補足し,非同期処理の基礎から PHP で非同期処理を実現する方法をお伝えします。
ChatGPTやGitHub Copilot Xなど、今年に入ってさらに熱くなってきたAI業界。
今年からGitHub Copilotを使い、AIと一緒にプログラムを書いていますが、私たちの仕事にも大きな変化が訪れる気配を感じます。
今セッションでは、PhpStormとGitHub Copilotを使ったライブコーディングを行いながら、AIと協働するメリットや気をつけるべき点などをご紹介します。
「いい本ありますか?」しばしば聞かれます。紹介したとして貴方は本当に読んでいるのか…?というのはさておき、本を読むというのは一般的にはメリットのある行為です。
紹介した本が本当に読まれているのかはさておき(???)、聞かれたときに答える最近の本をご紹介するのは当然として、さらに一歩進み、「読んだ本を経典・正義にするな」という話をしたいと思います。
なお、PHP以外の本もご紹介します。なぜならPHPの本がないから…ではなく、万物は大体同じだからです。
PHP以外の本を読む事により、あらたなインサイトを貴方がえられるように頑張ってみたいと思います。
まあ、そうはいうても私の趣味もはいりますので、「これが聖書…!」と言う受け止め方はしないでくださいね!!
PHPは実のところ非常にデバッグがしやすい言語です。なぜならxdebugという非常に優秀なデバッガがあり、それを支えるエコシステムが存在するからです。xdebugを使うことで便利に、詳細に、迅速にデバッグを行うことができます。
しかしながら「xdebugなんていらないよ!print debugで十分!」という声もよく聞きます。
そんなことはない!!(断言)
ということで、多機能なxdebugで単なるステップ実行以上をご紹介します。
こんな魔法のような事までできる!そうxdebugならね!!
イベントソーシングやCDCなどのテクニックは、
レガシーシステムの移行やデータ移行・データパイプライン、
リアクティブシステム構築に欠かせない重要な要素です。
しかし、取り入れ方を間違えると致命的なアンチパターンに陥ってしまうこともあるんです。
例えば、状態をもたせないイベントでマテリアライズドビュー化してしまったり、
巨大なランタイムを持たせてしまったハンドラ、
分割しすぎて時系列を無視したイベント、
まったく互換性のないメッセージなどなど。
でも大丈夫!少しのミドルウェアの知識やドメインについての知識があれば、これらの問題は防ぐことができます。
ここでイベントソーシングやCDC、Outboxについて説明しながら、複雑さに立ち向かう方法を楽しくお伝えします!
実際にやってしまった失敗談や成功談をもとに、
これらのテクニックが何なのかをわかりやすく説明します。一緒に楽しく学びましょう!
このセッションはPHPにフォーカスしたものではなく、システムやアプリケーション全般に関するトークとなります。
超強力な統合開発環境 PhpStorm
今や多くの PHPer にとって無くてはならないエディタでありIDEであることに疑いはありません
多機能であるがゆえ、「えっ、何そんな便利機能があるの?知らんかった!」がまれによく発生します
PhpStorm を使い始めてそろそろ12年 (マジかよ) になりますが
まったく使いこなせている気がしません
ライブで「こんな機能あるんだよ」を紹介しますので
おおーなどと反応したり
こんな機能もあるぞーなど紹介(ガヤ)してほしいです
(ショートカットキーの話はしないです)
(PhpStorm を使っていない方はその便利さに圧倒されてください)
FWの気持ちを理解できると、きっと素敵ですよね
その為に「自分でFWを作ってみる」というアプローチがあります。今風の要件を備えた物を自作する事で、普段使っているFWを読み解く勘所を掴みやすくするのです
PHPerKaigi 2023では、FWの自作は開発者のレベルを高めるはずだ!という仮定のもと、今風のFWの要件を考察し実装するというテーマのトークを行いました
今回のトークでは、その際に得たFWを例に、実際に動くものを作り上げていく事に主眼を置いて発表します
ハンズオンっぽい形やライブコーディング風の説明を多く取り入れるので、是非その場で一緒に手を動かしながら聞いてください
※ 以下は実装を割愛
2018年のPHPカンファレンス関西で発表した「すばやく実装するための戦略とテクニック」から5年、「速さは力」をモットーに相変わらずスピードを出してコードを書いています。
自分では「長く在籍してドメイン知識がついたせいでは?」と思っていましたが、副業に行っても、転職しても、やはり「プルリクが光速」「レビューが追いつかない」と同僚から褒められたりクレームを言われたりします。
文系ですし、20代半ばで初心者からPHPを始めた身なので、才能があるわけではありません。
速さを実現するために積み重ねている工夫や使っているテクニックを、2023年現在の内容にアップデートしてお伝えします。
私のキャリアの直近3~4年は、東京のエンジニア採用に加え、地方のエンジニア採用をしてきました。
採用活動を通じて、地方のエンジニアが現地に根を張り、活躍することに非常に大切な意味があると思っています。
特にリモート普及後、「フルリモート」「現地の企業」「地方拠点」など、企業の選択肢も格段に増えてきました。
■話をしたいと思っていること
・関東と地方のキャリアの違い
・リモート普及後の地方のエンジニアの変化
・どのような活躍の仕方があるか
・逆にどのような問題がおきているか
・技術コミュニティの在り方の変化
・リモート時代の地方のエンジニアの存在意義
・地方でエンジニアが活躍することにどのような存在意義や価値があるのか
日本社会は、労働力減少や少子高齢化など直面している問題が山積みで、関東一極型の働き方は難しくなっています。
福岡であったり、それ以外の地域でのエンジ二アが活躍・活動する場所が増えていったり、居住地を含めた柔軟な働き方は今後ますます必要になっていくため、地方でキャリアの挑戦をしたいと考えている人の後押しになる発表を目指していきたいと思います。
私自身の経験を通じて、地方のエンジニアの活躍・地域ITコミュティの重要性についてお話したいと思います。
PHPのフレームワークやライブラリを作成する人に向けて、「みんながこういうノリで実装してくれたら嬉しいな」を形にした「PSR」と呼ばれる取り決めがあります。
https://www.php-fig.org/psr/psr-14/
「PSR-4(オートローディングに関する規約)」「PSR-7(HTTPメッセージの取り扱い表現方法に関する規約)」「PSR-12/PER Coding Style(コードのスタイルに関する規約)」などは、耳にしたことがある人も多いのではないでしょうか。
そんなPSRの中に、「PSR-14: Event Dispatcher」があります。イベントやその発行・購読についての規約です。
この14番は、どちらかというと知られていない部類のような気もしています!
このセッションで、改めてスポットライトを当ててみましょう。
「PSR-14とはどういうもので、リアルワールドにおいてはどのような実装があるのか」について知ってみませんか?
マネジメント、「私には無理」とか「億劫だな、やりたくないな」と思っている人も多いでしょうか?
その一方で、組織は何かしらの期待を持って、プログラマーに対して「マネジメント職をやってほしい」と依頼をしてくる事があります。
さて、最近では「マネジメント」というと「1on1をしよう」という話がありませんか。
そして、「1on1」と聞くと「コーチングを〜〜」という単語も、関連して想起されることがあるのではないでしょうか。
では、「1on1」「コーチング」という言葉から、何を思い浮かべますか?
あるいは「良い1on1」「良いコーチング」を自分の言葉で説明できるでしょうか。
私は、プレイヤー→リーダー→マネジメント(8人程度)→マネジメント(15人程度)→ジュニアなマネジメントも対象に含むマネジメント(35人程度)と、職務上の役割がシフトしてきました。
それに備えて、パーソナルコーチングのトレーニングを受けたり、組織開発や臨床心理学の領域に近いような学習も進めています。
そんな経験の中で、個人的には「コーチングのマインドやスキルを知ることで、良かった・明らかに役に立っている」と感じています。
本トークでは、主観的な経験を踏まえて「なぜ、どうやって、どうして役に立ったのか」をシェアしていきます
みんな大好きWordPress!世界のWebサイトの4割以上と圧倒的シェアを誇る皆様御存知のPHP製超有名CMS!
そんなCMSで作られたWebサイトのインフラをリプレースする機会に恵まれたので、イキって「時代はコンテナ!冪等性こそ至高!」とEC2からFargateに載せ替えようとしたら大失敗?!
今回のトークでは上記のEC2からFargateへのリプレースプロジェクトにおいて得られた知見を共有させて頂きます。
PHPのビルトインウェブサーバーを使ったことはありますか?
Laravelユーザーの方ならお馴染みの「php artisan serve」というコマンドで使用しているかもしれません。
実際HerokuやAWS ECSのLaravelデプロイ時に「php artisan serve」を使用する例もちらほら見受けられますし、公式サイトでもこのようなサンプルが紹介されています。
しかしながら、php公式がビルトインウェブサーバーを本番環境で使用することを禁止しています。
https://www.php.net/manual/ja/features.commandline.webserver.php
実際にビルトインウェブサーバーを使用した経験に基づいて、その弊害についてお話ししながら、ビルトインウェブサーバーの注意点をまとめてみました。
見知らぬコード、深いスタック、多様なクラスやメソッド・・・・
それらに立ち向かうのは、楽しくもあり大変でもあることですね!頭がパンクしちゃうこともしばしば!
どうしたら、少しでも効率よく・安心しながらコードリーディングを進められるでしょう。
ポイントは、「要点を掴む(=肝心でない所は脳みそからflushする)」「振り回されない(=コードを行ったり来たりしやすくする)」事だと思います。
それを実践するためのツールや技法を用意できると良いですよね。
脳内で補いきれない所は、「道具」で補って賢くやりましょう。
Xdebugのステップ実行と、ホワイトボードツール(Miro)の付箋とメモを活用することで、とっても効果的にコードの理解を進めることができます!
ある程度複雑なライブラリを例に、実際に「どうやったのか」をお見せします。
「翻訳してほしい技術書」あるいは「鈍器」として名高い、xUnit Test Patternsという書籍があります。
読んだことはありますでしょうか?あるいは、「名前は聞いたことあるけど・・」という方も、非常に多いと思います。
「興味があるし、役に立つとは確信しているのに、読んで見るに至っていない」
それは何故なのでしょう?要因の1つとして、 あなたの興味が足りないから という不都合な事実はありませんか!!
このトークでは、「どんな事が書かれているのか」を、時間が許す限り紹介していきます。
物量も情報量も多い書籍なので、興味を持っても「全部読む」のハードルは引き続き高いかも知れません。
それでも、「どんな事が分かる本なのか、自分の求めるヒントになりそうなのか」「どういう風に、読んでいけな良いのか」の解像度が上がってしまえば、きっと手にとってみたくなりますよね・・!
「45分」枠のうち、自己紹介やまとめの時間を除いて「40分」でxUTPアトラクトを目指していきます。
Composer大好きな皆さん、その愛をもっと強い形でぶつけてみたいな〜と思ったことはありませんか?
好きなものを自分のものにするには、やはり作ってみるのが1番ですよね。
既に高い完成度で存在しているComposerを、コレを機にわざわざバラバラにして再発明してみましょう!