REPL(Read-Eval-Print Loop)はコードのデバッグ、小さなスクリプトの実行、簡単な計算などを行うのに便利な対話式環境です。
代表的なREPL環境にはRubyのirbや、PHPのbobthecow/psysh があります。
使ってみて便利な一方でどのような仕組みで動いているのでしょうか?
このセッションではREPLの解説から実際、Read(読み込み、)Eval(評価)、Print(出力)、Loop(ループ)
それぞれの処理をPHPで書きながらどのような仕組みで動いているのかを解説して、紹介を行います。
本LTでは、入社半年を迎えるエンジニアの私が、社内外で主体的に参加・主催したカンファレンス・勉強会でのエピソードや取り組み、そこから得た学びを紹介します。そして、少しだけ未来の自分に伝えたいメッセージをお話します。
エンジニアを取り巻く環境はここ数年で目まぐるしく変化しています。リモートワークの増加によってエンジニアリングのスタイルやコミュニケーション方法も大きく変わりました。
人と技術、人と人の出会いの場となるオフラインカンファレンスや勉強会のニーズの高まりを改めて感じる機会が増えています。
本LTは、PHPに直接関連する内容ではありません。私が過去に参加した様々なカンファレンスや勉強会から得た学びについて、多くの方々に共感していただけるような体験談をお届けしたいと思います。
そして、今を生きるエンジニアとして、未来の自分に送るタイムカプセルになるようなLTができればと思います。
「テストがないコードはレガシーコードだ!」
Webアプリ開発においてPHPUnitなどでテストが書かれることは一般的になりました。
ですが、テスト完走までにかかる時間は適切でしょうか?
テストにかかる時間は生産性に直接的な影響を及ぼす重要な要素です。早ければ早いほど良い。
本トークでは、PHPUnitで書かれているテストを高速化するテクニックについてお話します。
Webアプリケーション開発でデータストアとして良く使われているRDBMS 「MySQL」。
大きなシェアを誇るMySQLですが、ご存知の通り2023年10月に5.7系はEOLを迎えます。
安全のためにもMySQL 8へのバージョンアップが必要となりますが、メジャーバージョンアップとなると押さえておくべきことがたくさんあります。
本トークでは、MySQLを8へバージョンアップするに当たって押さえておくべきこと、省力化する方法についてお話致します。
サーバーレスPHP、凄いんです。
BrefというOSSのお陰で、驚くほど簡単に環境が作れて、デプロイまで出来てしまう。
今回はサクッと作れてコストメリットが高いサーバーレスPHPの魅力を語ります
実行環境の1つとして、是非サーバーレスPHPを選択肢に加えてください。
話者は昨年HTTP3について調べた結果「スゲー!」ってなりました。
この体験を皆さまにスピーディーに体験していただくために、
HTTP3のいいところを仕組みにちょっと触れながらライトニングに話します。
細かいことは良いんです、HTTP3スゲー!ってなって欲しいんです。
その結果、HTTP3やってみるか〜!というモチベーションに繋がる事を望んでいます。
日付計算の正確性は非常に重要であり、それには月末の計算、閏年、タイムゾーン対応など、考慮すべき事項が数多く存在します。
このトークでは、「13月が出現するバグ」や「プラン終了の1ヶ月前に送るべきメールが送信されていなかったバグ」を具体例に取り上げます。
これらのバグが生じた原因とその解法について、実際のコードを使って掘り下げます。
これらのバグは特定の日付だけで発生し、手動テストでは見つけにくいという性質があります。
そこで、Unitテストを活用することで、このような問題を早期に発見し、予防する具体的な戦略とコード例を紹介します。
バグから学ぶことの重要性と、Unitテストの利用がいかに有効であるかについてお伝えします。
開発者数が多く、MVPアプリにも高トラフィックなアプリにも採用できるPHP。
インターネットではPHPのゆるい使い方ばかりが槍玉に上がっていますが、最近のPHPは言語仕様としての型サポートも強固になってきています。
もう一歩進んで、より安全に仕様変更やリファクタリングを行うためにどういう工夫が出来るでしょうか?
本セッションでは、プロダクト開発時に堅牢性を高めるための仕組みと文化についてお話致します。
みなさんSymfony Messenger使ってますか?
Symfony MessengerはSymfony Componentsのひとつで、非同期処理を扱うことができます。
このトークでは、DelayStampを使って非同期処理の実行タイミングを制御する方法や、ドキュメントには載っていない利用上の注意を実務で得た知見をもとに紹介します。
皆さんが所属してるエンジニア組織の課題はなんでしょうか?
どの組織も何かしらの課題があるのではないかと思います。
当社ではPHPで開発された複数メディアを運営し、
エンジニアの人数も増加しながら継続的にリリースすることで順調に事業を成長させてきました。
一方で、事業が成長するにつれて「スキル獲得に漠然とした不安がある」や
「他エンジニアと交流・切磋琢磨が生まれにくい」と言った声も聞こえるようになりました。
こういった課題に対して、エンジニアリングマネージャーを中心に「技術推進委員会」という名の横断組織を作り、
メンバーで熱い議論を交わしながら課題解決の施策を考え、実施してきました。
このセッションでは、
横断組織の立ち上げからこれまでに実施してきた多くの施策や、施策を実施したことでの組織の変化について話します。
チームのタスク管理について、以下のようなお悩みはありませんか?
・ タスクの優先順位がよくわからず、大事なタスクが締め切り直前なのに終わってない!
・ タスクが属人化していて、タスクは計画通りなのか、なにか問題を抱えてしまっているのかを把握するのが難しい!
私たちのチームはこの対策として、チームの開発効率と生産性を向上させるアジャイル開発手法の一つ、スクラムを始めました。
スクラムを活用することで、タスクの優先順位や進捗がチームで共有され、柔軟に見直すことが可能になりました。
また、アジャイルのマインドセットが身につき、日々のタスクへの向き合い方にも良い変化がありました。
こんな良いことづくしのスクラム、軽い気持ちで始めてみませんか?
【このLTで話すこと】
・ スクラムってなに?
・ なんでスクラムを始めたの?
・ スクラムの始め方
・ スクラムを始めたことによるチームの変化
皆さん、コードリーディングは得意ですか?
私には苦手意識がありました…
しかし、仕事で他者が書いたコードをメンテナンスしなければなりませんし、OSSを使いこなすため、あるいは、使いやすくするためにそれを読みたくもあります。
苦手なりに工夫することで、仕事に支障なく、他者が開発したOSSを理解しPRを送ったりできるようにもなりました。
このトークではPHPで書かれたコードを理解するために行なっているプラクティスやツールを共有します。
PHP カンファレンス福岡 2023にて「APIシナリオテストを書くべき10の理由」というセッションで登壇を行いました。
その登壇までに至る経緯を推しツールであるrunnの出会いからお話したいと思います。
個人的にはOSSへの貢献や取り組み方など、貴重な経験になったと感じており、またカンファレンス駆動開発も大変魅力的でその一部をお伝えできたらと考えています
皆さんAPIテストの自動化を行っていますか?
APIテストでは効率よくカバレッジを上げることができます。ただしE2EでのテストとなるとControllerテストとは異なりそのままではコードカバレッジを測定することが出来ません。
E2Eテスト(APIテスト、ブラウザテスト等)でバックエンドのコードカバレッジを取得する際の方法をお話させて頂きたいと思います。
世の中には止むに止まれぬ事情で古いバージョンのPHPを使用することもあります。
世の中にはコンテナという便利な技術がありますが、止むに止まれぬ事情で手元にインストールしたいときもあります。
決してそういう事情があったわけではありませんが、今回はPHP4系から8系まで手元でビルドしインストールしてみようと思います。
弊社はPHP >= 8.1 以上しか使用しないので決してそういう事情があったわけではありません。
~君はそのアルファベットの意味を考えたことはあるか?~
技術的な話題には、数多くの"略語"が利用されます。
技術的な名称は英語であるため、「PHP」や「JIT」などアルファベット3文字程度の略称が用いられることが多いでしょう。
しかし、その略語の正式な名称、または語源をご存じでしょうか?
正式名称を知れば、その略語の正体が見えてくる??
本トークではエンジニアになじみ深い"略語"をクイズ形式で紹介します。
現在、私はPHP5.2で稼働しているレガシーアプリケーションのバージョンを最新の8.2に上げるプロジェクトに参加しています。
このプロジェクトは、7系へのバージョンアップをスキップするという挑戦的なプロジェクトで、さらに、現状は使用中のフレームワークが古かったり、テストがほとんど書かれていないという状況でもあります。
このような制約がある中で、「バージョンを8.2に上げて、アプリケーションを問題なく動かす」という目的を達成するために私が今考えている戦略についてお話しします。
このプロジェクトは今まさに進行中であるため、もっといい案があったり同じような課題を解決したことがある方がいれば助けていただけると嬉しいです!
バージョンアップのプロジェクトは多くの企業で共通の課題であるため、お話しする内容が皆さんの取り組みの一助となれば幸いです!
【トーク概要】
『コードレビューやペアプロの文化がない環境で過ごした転職前の5年間』と『チーム開発が活発な職場に転職してからの半年間』では、
確実に後者の方が私に多くの学びや恩恵を与えてくれています。
1人ではなくチームで開発をすること、人を頼ることのメリットについて、お話したいと思います。
【対象者】
・職場にコードレビューやペアプロの文化がなく、基本的に一人で開発している方
・人を頼るのが苦手な人
・スキルアップに伸び悩んでいる人
※大きめなカンファレンスでの登壇は今回がはじめてです。
PHPerな僕がアルケミストになってElixirを触っている話。
PHPがメイン言語な僕がElixirを触っていてPHPと似ているところやElixirの良いところや癖など紹介。
Elixirからの良い文明をPHPに持ってきたい。
【対象者】
受け持っているプロジェクトの進行と新人教育の両立は、多くのエンジニアが直面する課題です。
この課題を解決するために、PHPの研修をDockerとDevContainerを使用して自動化する方法を思いつき実践してみました。
どのようにしてPHPの研修を自動化し、新人が自己学習を進められる環境を整えたのかを共有します。
具体的には、問題を作成し、自動テストで答え合わせを行うことで、新人が自己ペースで学習を進められる環境を提供しました。
この方法により、新人の教育を効率的に行うことができました。