プロジェクトの振り返りは行っていますか?
振り返りにて
「これまでの問題点」
「これから伸ばしていく点」
を発見できるかもしれません。
プロジェクトの結果は技術面だけでなく、人為、経営など、多方面から影響を受けます。
これまでKPT法というフレームワークを用いて行った振り返りmtgで
記憶に残っている体験談をお話しします。
会社員時代、エンジニア同士にて行った振り返りmtg
サブリーダーを担ったプロジェクトにて行った振り返りmtg
案件に参画した際のチームにて行った振り返りmtg
素晴らしいフレームワークを使っても、
全てが有意義な振り返りmtgにはならないこと、
有意義な振り返りmtgには努力が必要であることをお伝えできれば嬉しいです。
PLATEAU(プラトー)というものをご存知でしょうか?
国交省が主導する、日本全国の3D都市モデルの整備・活用・オープンデータ化プロジェクトです。
現在、さまざまな都市の3Dモデルが公開されており、これらを活用して多様な実証実験が実施されています。
本LTでは、これらの3D都市モデルをUnityに取り込み、ちょっとしたゲームを作って遊んでみます。
なんというか、ボールっぽいものを転がして、建物を巻き込んで、カタマリ的なものを作っていくようなタマシイ風のやつです。
PHPを使用している方にとっては、PHPの中身に興味がある方も多いと思います。そんな時は、PHPのソースコードを読んだり、改造したりすることで理解が深まることがあります。
PHPを改造した場合、その動作を確認するためには、コンパイルする必要があります。また、PHPをWeb上で表示するためには、Apacheなどのサーバーソフトウェアのインストールも必要になります。
そこで、このトークでは、PHPを実際にコンパイルしてWeb上で表示させる手順について、Dockerfileをお見せしながら解説します。
対象者
・PHPをコンパイルしてみたい方
話すこと
・PHPをコンパイルする手順
・PHPとApacheをコンパイル・インストールする上ではまったポイント
話さないこと
・Cコンパイラの選択
・PHPの内部実装
人工知能ってやばいですね!!私はあまり中身については分からないのですが、「きっとヤバいね」という噂をたくさん聞くので、すっごいヤバそうだなという事を知っています。
TestGen AIは、RectorやEasy Coding StandardsといったOSS活動でも有名なTomas Votruba氏のプロジェクトです。
https://testgenai.com/
テスト対象のコードを入力すると、自動的にPHPUnitのテストコードを生成してくれます。
(動作イメージは、↓のツイートなどを見ると分かりやすいかと思います)
https://twitter.com/testgenai/status/1639331232151371804
何をしてくれて、どんな感じに動くのでしょうか?
このLTでは、実際に触ってみて&これからどんな発展の可能性がありそうかを共有します。
今や、CIを回して静的解析を活用して、コーディング規約の運用は機械で自動化するのが当たり前です!!
カンファレンスや勉強会に参加している皆さんにとっては、きっと「そうだそうだ!」と強く頷いていただける主張なのではないでしょうか。
・・・本当にやれていますか?
現実には、きっとそんな甘くないぜ!と唇を震わせている人もいるのではないでしょうか。
今まで使っていない方法や仕組みを取り入れるのは、心理的な抵抗感や不安も生じますよね。
まずは「ノーコストで入れてみる」という方法をとれないものでしょうか?それが出来れば、導入に向けた障壁が1つ解消しそうです。
このLTでは、実際にそうしたアプローチを実施して、PHP_CodeSnifferを既存プロダクトに導入した際の話+今後の展望をお話しします。
私の戦略は、「既存コードに影響のないSniffを入れる」「それによって、まずは”CIでスタイルチェックが動いている”状態を作る」「そのために、既存コードの適合状況を機械的に分析する」「自転車置き場の屋根の色の議論を避けるために、トップダウン的にPER Conding Styleをベースにする」「今後の進展のための仕組みを作り、運用・展開を移譲する」などを組み合わせたものでした。
この手立てを使って、「何年もスタイルチェッカーを入れたい声はあったが実現されていなかった、10年以上の歴史を持つプロダクトコード」に対して、今ではCIによるチェックが稼働しています!
PHPにはプリロード(Preload)があります!!パフォーマンスが上がります!
・・・噂は聞いたことがある・存在は知っていても、実際に使ったことはありますか?
何となく難しそうだなぁ。。複雑な事をしなければいけないそう。。そんな風に、遠い存在に感じている人も多いのではないでしょうか
ayesh/composer-preload というパッケージがあります。
see: Packagist
これはComposer Pluginです。
READMEを見ると Composer Preload is a composer plugin aiming to provide and complement PHP opcache warming. と記述されています。
正に「プリロードを気軽に使ってみよう」を支援するツールであり、私達にとってプリロードを「遠い存在」から「身近な存在」に近づけてくれる可能性があります。
どんなアイディアでそれを実現し、どんな仕組みになっているのでしょうか?
簡単に内部に触れてみましょう。
それによって、「プリロード完全に理解した!」という人を増やすLTになります。
私は、学生時代に地方の大学で技術コミュニティー(サークル)の運営に取り組んできたので、地方大学のコミュニティーについてお話ししたいと思います。
私は新卒のエンジニアですが、昨年まで地方の大学で技術コミュニティの運営に取り組んできました。私が大学生の頃、2019年12月からコロナが流行し、大学はリモート授業になり、サークル活動も対面で行うことが難しくなりました。また、「地方のITコミュニティー」と「大学のサークル」では特性が異なりオンライン化に伴い、それぞれのコミュニティーで苦戦したことがあると思います。
このような環境の中で行ったことや、苦戦したことや上手くいかなかったことについて発表します。また、「大学生のコミュニティー特有の課題」や「地方大学のコミュニティーの課題」についてもお話ししたいと思います。
「学生で参加される方」や「学生コミュニティーに携わっている方」に少しでも多くのことが共有できればと思っています。
AWS上で構築したWebアプリケーションを開発したとき、PHPをメインに使っていてもフロントエンドから amplify を使って直接サーバーリソースにアクセスすることもあるでしょう。
これまで長らく使われてきた aws-sdk-js(以降 aws-sdk)は v2 から v3 となり、モジュール別のパッケージとして展開されるようになりました。
私も担当しているプロジェクトではサーバーサイド、クライアントサイド共に TypeScript を使っていますが、 aws-sdk v2 が本年中にメンテナンスモードに入ることから v3 への移行作業を行なっています。
そこで蓄積された v3 移行のナレッジや、ハマりポイントなど、v3 移行の現場から生の声を稲妻トークでお届けします。
Github Actionsでworkflowを作成してCI/CDされている方も多いのではないでしょうか?
本セッションでは2022年にリリースされたカスタムアクションで開発者体験が良かったものを紹介したいと思います。
実際にプロジェクトに導入して習慣が変わっていった体験談にも触れたいと思います。
関連してworkflowの作成時のtipsもいくつか紹介したいと思います。
PHPアプリケーションのコード品質を上げて、メンテナンス性をあげて、寿命を伸ばすためによく使われるようになったphpstan。
皆さんのプロジェクトのphpstanのlevelはいくつですか?baselineは解消できていますか?
SymfonyやLaravelで作ったアプリケーションに対してlevel:maxを設定してbaselineなし・エラーなしにした経験から、コードを書くときに気をつけること&phpstanを納得させるテクニックをLTの5分にギュッとまとめてお伝えします。
日々大量の PHP コードをタイピングする PHPer にとって快適なタイピング環境は非常に重要です。
しかし、市販のキーボードでは手に馴染まない、キーピッチが狭すぎるなど、自分のニーズに合わない場合があります。
そこで、基板から設計する自作キーボードの世界に足を踏み入れてみませんか?
このセッションでは、PHPer 向けに、自作キーボードの製作方法を紹介します。
ハードウェアの知識がなくてもおおまかな手順が理解できるように、
必要なツールや素材、発注から組み立てまで、キーボード製作のための手順を解説します。
自分だけのキーボードを作るための知識を獲得し、自分だけの理想のキーボード 「Endgame」 を作り上げ、快適なタイピングライフを手に入れましょう!
Macで複数バージョンのPHPを使い分けるのって意外と難しくないですか?
Docker経由でしかPHPを使わないみたいな猛者スタイルで行ければいいのかもしれませんが、
パフォーマンスや開発体験の問題からローカルのPHPを使いたい事情もあると思います。
phpenvやsymfony-cliと.php-versionファイルを併用すればディレクトリごとに使用するPHPバージョンを指定することもできますが、
この辺はいざ導入しようとするとYak Shavingの嵐が待っていて(実体験)非常に面倒だったりします。
というわけで、このLTでは私がMacのローカル環境で複数バージョンのPHPを楽に使い分けるために実際にやっていることを5分でサクッとお伝えします。
実際に運用していてまったくストレスを感じていない方法なので、ちょっとでも困っている人には明日からすぐにお役立ていただける内容だと思います!
みなさん普段FigmaやFigJamを使っていますか?
私はよく使っていて、特に好きな機能は「カーソルチャット」です。
複数人でリアルタイムにカーソル位置を共有できたり、ライブメッセージの送信を行うことができたりなど、使っていて楽しいです。
この素晴らしい機能を他のWebアプリにも組み込むことはできないかと考え、 カーソルチャットのReactライブラリを作ってみました!
このLTでは自作ライブラリの仕組みや、Reactアプリにカーソルチャットの機能を実装する方法、そしてReact Flowと組み合わせて簡単なコラボレーションアプリを作ってみた話をします。
ユーザーのパスワード保存などでLaravelのHashingを使われたことがあると思いますが、もしHashingの安全性について尋ねられた時、皆さんはどう答えますか?もしかしたら公式ドキュメントで安全だと言われているから、みんな使っているから安全であると答えられるかもしれません。(以前までの自分はそうでした。)一般的な業務を行う際にこんなことを考える必要はありませんが、このLTではHashingでハッシュ化を行うことが果たして安全であると言えるのか、またなぜ安全であると言えるのかについて発表します。
ハッシュ化に対する脅威
ハッシュ化に対してどのような脅威が待ち構えているのかを紹介
ハッシュ化の脅威に対する対策方法
前項で紹介した脅威に対する対策方法を脅威ごとに紹介
LaravelのHashingの実装について
前項で紹介した対策方法をHashingでどのように実装しているのかについて実際のコードを見ながら紹介
PHPで業務をこなす私の傍らには、いつもPHPUnit君がいました。
ユニットテストの多大な恩恵に与っている今、もはやPHPUnitによる自動テスト無しの生活は考えられません。
このトークでは、新人PHPerの私がPHPUnitについて学んだことを皆さんにお伝えしようと思います。
プロジェクトで「vendor/bin/phpunit」を実行してテストを動かしたことはあるけど、phpunit.xmlとかテストスイートとかよく分からんといった初学者向けの内容になります。
私は、現在の会社で約1年間、料金チームに所属していました。このチームでは、締め日や売上日など、ビジネスにとって重要な日付の扱いが欠かせません。しかし、日付計算には様々な落とし穴があり、月末処理が適切に行われなければ企業に請求できないなど、クリティカルなバグを引き起こす可能性もあります。
日付計算は、時にうるう年や月末日の考慮が必要であり、さらにタイムゾーンの扱いも慎重に行わなければなりません。そのため、日付計算で様々なバグが発生することがあります。
このセッションでは、実際に発生した日付計算のバグについて取り上げ、実際のコードを交えながらその原因や修正方法について話します。
具体的には、以下のバグを取り上げます。
これらのバグは、特定の日付でのみ発生するため、十分な手動テストが困難です。そのため、Unitテストによる日付計算のテストについても取り上げます。
PHPを使い始めてからというもの、私にはずっと気になっている存在がいました。
それは、ディレクトリの隅っこでこちらの様子をうかがっているcomposer.json君です。
このトークでは、新人PHPerの私がcomposerについて学んだことを皆さんにお伝えしようと思います。
プロジェクトで「composer install」したことはあるけど、実際何をしてるのかはよく分かっていないといった初学者向けの内容になります。
仕事と家事と育児との分業をこなして15年目を迎え、感じたことをお伝えします。
分業のバランスを取るため、phperフリーランスという働き方を選択しました。これまで満足に分業の両立ができていたことはありません。今でも葛藤の毎日です。安心してください、分業のバランスが取れてなくて当たり前です。
今では子供達はある程度手が離れてきたので、仕事の比率を上げるべく、また決意を改めるため、昨年法人化しました。逃げれない状況を作って馬車馬のように働いています。
分業のモデルケースとしてお聞きいただけると嬉しいです。
スプラトゥーン3やってますか?
スプラトゥーン3って魅力的なブキが多く、どのブキ使うかつい迷っちゃいますよね?
今流行りのChatGPTに直接聞けば教えてくれますが、ChatGPTのおすすめブキ以外にも自分にあったブキがあるんじゃなイカ?
そう思って、ChatGPTとPinecone使ってスプラトゥーン3ブキのレコメンド機能をSymfonyで作りました。
機械学習の知識がほぼない状態で、どのように作っていったか5分でお話しするでし。
使用技術
本LTでは、3ヶ月の新卒研修を経た新米エンジニアの私が、研修中に直面した課題や失敗、それから得た学びを紹介します。
そして、少しだけ未来の自分に伝えたいメッセージをお話します。
ここ数年で、エンジニアを取り巻く環境は目まぐるしく変化しています。
GPT-4を始めとするGenerative AIの台頭が、モノづくりの生産性や、エンジニアという職業そのものに与えるインパクトは計り知れません。
数ヶ月、半年のような短いスパンでも、私たちをめぐる世界は大きく変化しているかもしれません。
エンジニアとして成長し生き残るために、私自身が大切だと感じたことをお伝えしたいと思います。
本LTは、PHPに直接関連する内容ではありません。
しかし、多くのエンジニア(社会人・学生問わず)の方に共感していただけるようなお話をしたいと考えています。
「新卒エンジニアあるある」的な体験談や失敗談で、エンジニアの方々に懐かしんでいただけるように。
これから社会人エンジニアになろうとしている学生の方には、少しだけ近い目線でお話ができるように。
そして、今を生きるエンジニアとして、未来の自分に送るタイムカプセルになるようなLTができればと思います。