職場や自身の担当が変わった時など、今まで触ったことのないプロダクトをキャッチアップする機会はままあるかと思います。
そういった時、少なくともコードベースでのプロダクトを理解することは、その後の仕事効率に効果が出やすいものです。
ではプロダクトを理解するためには、何から見ていくのが良いか、それをどうやって自分の知識に落とし込んでいく方法があるのか、ということを簡単にお伝えしてみたいと思います。
みなさんはITコミュニティに関わっていますか?
そのITコミュニティにはどのように参加しましたか?
今,ITコミュニティに所属していると認識している方なら,自分自身がどのようにしてITコミュニティに溶け込んで行ったのか,ご自身の歴史を語るように話せるでしょう.こうした言い伝えのように語り継がれたITコミュニティへの参加,ITコミュニティへの貢献の話は,ITコミュニティに入ってきていない方や,ITの業界の外にいる方には伝わりにくいものです.その上,受け入れる側もどうすればよいか,経験で知るしかありません.そこで本セッションでは,ITコミュニティに受け入れる側としてどのような点に注意して振る舞えばよいか,整理整頓を試みます.
トークの目的
①PdM・Biz職の方:実力のあるエンジニアとの仕事で自分なりの価値をどう発揮するのかについて、ヒントになることがお伝えできればと思います!
②エンジニアの方:日々のPdMとのやり取りに活かせるような、PdMの視点・悩みをお伝えできればと思います!
トークの概要
・私は2022年4月に新卒入社し、新卒1年目、かつPdM・エンジニア等の経験なしでPdMのポジションで仕事をしていました。(CS出身)
・私が所属する株式会社リンケージでは、プロダクト価値の最大化を考えられる、課題解決能力が高い、「強い」エンジニアが集まっています。
・私はエンジニアの方々と仕事をする中で、「自分がいる意味ある?」と非常に悩んでおりました…(今も悩んでますが)
・本トークでは、「機能を考えない、Whyを考える」など、私なりに見出したPdMとしての価値、及びそこに至るプロセス・悩みをお話します!
テストコードのプルリクが来て意気揚々と見てみると、こんなコードが書かれていたりしませんか?
こういったテストがレビューで飛んできたとき、見るのがしんどそう...と、自分はまず別タブに移動してしまいます。
レビューはすぐにしたいんです。それなのになぜネガティブな感じから始まるのでしょう?もちろん理由はあるのです。
そこで本トークでは、上記テストコードに対する問題点と解決策についてコード例を交えつつ説明し、
こんなPHPUnitのレビューはいやだと言われぬために僕らが今日からできることをお話したいと思います。
レビュアーが嫌がるテストコードを知ることで、レビュアーに優しいテストコードを書いていきましょう!
私が開発しているプロダクトでは、DBへのデータアクセスでPDOを利用しています。しかし、そのまま使わずに、SQLのテンプレートエンジンであるTetoSQLを通して利用しています。TetoSQLでは、防衛的な型チェックや、ループ処理などのPDOの表現力を高める事ができます。
このトークでは、SQLテンプレートエンジンであるTetoSQLの紹介、PDOやORMとの比較、実際に使用した結果等についてお話しします。
PHPフレームワークであるSymfonyのSymfonyDI(Dependency Injection)はSymfonyを使う上でコードの保守性や拡張性を向上させるための不可欠なツールです。
その強力で柔軟な機能を初心者の方々にわかりやすく紹介します。
今回はyamlファイルに定義する方法を具体的な例を交えながらご紹介します。
勉強会とかカンファレンスに何回か参加しているとそのうち湧き上がってくる感情があると思います。
それは、自分も登壇する側に立ってみたい!
でも、
発表には憧れてるけど、発表することがない。
自分なんかが発表したって誰にも刺さらないでしょ?
発表したいけど発表ネタが浮かばないから、手を挙げられない。
その一方で、いつも登壇してる人がいるし、なんなら勉強会が決まった後にネタなんて考えればいいでしょ?って人もいるんです。
同じようにネタがないのに発表できる人と発表を尻込みしてしまう人、この違いはなんなんでしょうね?
そこで、ネタがなくて発表を尻込みしちゃっていた自分が、発表ネタを見つけるために心がけたことを話します。
同じように発表したいけど話すネタがなくて困ってる方の背中を押せたら嬉しいなと思います。
テストコード書いてますか?
書いてる皆様、 クラウドマネージドサービスが関連するアプリケーションでもテストコードを書けてますか?
継続開発が続く程重要性が高まるテストコードですが、今回はマネージドサービスが関連する場合について考察します
マネージドサービスが関わるアプリケーションの場合、
テスタブルになるようにどの様に分割して実装すればよいのか、
CI/CDでテストする為にどのようにエミュレートするのか考慮すべき課題があります
今回はAWS Lambda上で動作するPHPサーバーレスアプリケーションを題材に
Amazon S3、Amazon DynamoDB等の代表的なマネージドサービスのテスタブルなアプリケーションコードを具体的に示しながら考察します
PHPは様々な技術要素を組み合わせて動いています
カスタマイズ性という観点では非常にポジティブな要素ではあるのですが、
初めてPHPを動かす為には「環境構築」という障壁が存在します
今回はサーバー上でPHPを動かす為に必要な要素を解説しながら、
yumやdnfなどのパッケージ管理ツール、configureやmakeにも触れ、
phpenvやasdfが行っている事も覗きながら、PHPの環境構築についてお話します
soファイルとは何なのか、Apache + mod_phpとphp-fpm + Nginxの仕組みの違いについても触れ、
php.iniでどのように制御しているか解説します
PHP動作の仕組みを知り、理解してPHPを動作させましょう
生成系AIの勢いは止まりません
OpenAI のGPT-4 TurboやAssistants API の衝撃により、更に生成系AIは利用が広がることだと思います
またAWS re:Invent 2023にてAmazon Bedrockのアップデートも期待されています
利用するのと利用しないのでは、差を感じずにはいられず
私達PHPerも生成系AIの知識を追う必要があることは語る必要もないと思います
今回PHPerは生成系AIとどう付き合うべきなのかを、
2つの生成系AIサービスを比較しながら考えます
生成系AIの比較を行いながら理解することで、
現状PHPerがどのように向き合っていくべきなのかを振り返るセッションになれば幸いです
先日「PHPを動かす技術バトル~PHPer Tea Night~」という非常に興味深いイベントがあったので参加しました
その中でPHPの実行環境は「mod_php」を利用しているのか「PHP-FPM」を利用しているのかの議論がありました
インターネットでみた記事以上の情報のやり取りも行われ、様々な議論が起こり知見が深まった中で、
その違いの解像度を上げたいと考えました
もう一つの選択肢としてOSSであるBrefの話も添えてPHPの実行環境についての比較をします
なんとなくPHPの実行環境を決めるのではなくて、あなたの推しのPHP実行環境を見つけましょう
AWS Lambdaはうまくアーキテクチャに組み込む事で大きなメリットをもたらします
今回はAWS LambdaとLaravelを利用して作成した個人開発のMVPの動的サイトを紹介します
サーバーレスPHP、話には聞くけど動いてるとこ見たことないなぁという方必見!
技術要素を超高速スライドめくりで、構築する手順を示します(※解説するわけではありません)
元々個人的に作成したかったものをこのタイミングで作成して配置しておき、
皆様にも動かしてもらいながら、サーバーレスPHPを体験して頂ければ幸いです。
話者はPHP Conference Japan 2022にてHTTP3について調べた結果「スゲー!」ってなりました。
この体験を皆さまにスピーディーに体験していただくために、
HTTP3のいいところを仕組みにちょっと触れながらライトニングに話します。
細かいことは良いんです、HTTP3スゲー!ってなって欲しいんです。
その結果、HTTP3やってみるか〜!というモチベーションに繋がる事を望んでいます。
HTTPとPHPは切っても切れ離せない関係があります、その世界に酔いしれましょう!
(初心者向けトークです)
PHP Data Objects(PDO)は、DBへのデータアクセスを抽象化する、軽量で高性能な拡張モジュールです。PHPでWebアプリケーションを作成するときは、多くの機会でPDOを利用する事があります。
このトークではPDOの基礎的な使い方から、実務レベルでRepository層でのPDOの扱い方についてお話しします。
JIT コンパイルとは、実行時にネイティブコードへのコンパイルをおこなうことです。
PHP では、バージョン 8.0 から導入されました。
PHP 8.4 (プロポーザル記述時点での予定) では、8.0 で導入された JIT エンジンが作り直され、新しい JIT エンジンが導入される予定です。
このセッションでは、新しく入る JIT エンジンについて、現在の実装と比較しつつ紹介する予定です。
私はWebフロントエンドエンジニアですが、PHPカンファレンスに参加するうちに、PHPという言語の持つ魅力と、PHPコミュニティの魅力に深く引き寄せられました。
そこで、自身のWebフロントエンジニアとしての視点から、PHPの新たな展開を探ることができないかと考えました。私が注目したのは、Webブラウザのようなモダンな実行環境上で、ネイティブコードに近い速度と安全なコード実行を可能にするWeb Assemblyと、Rustで書かれたモダンなJavaScriptランタイムエンジンであるDenoを用いて、PHPを動かしてみるという取り組みです。
本プロポーザルでは、シンプルなアクセスカウンターの作成を通じて、これらの技術要素の組み合わせの持つ可能性を探求します。具体的な成果物の作成を通じ、Web AssemblyとDenoから実行されるPHPの可能性を掘り下げ、その結果についてお話します。
「ここN+1起きませんか?」「テストコード追加して下さい」「使っていない use 消して下さい」等々、
最近のコードレビューで指摘されたことをシェアします。みんなで悪い例を見て良いコードを書きましょう!
レビュアーの負担が減るよう個人的に作って確認している「レビュー依頼前チェックリスト」も見て下さい。
ある日、「手動オペレーションに定評がありますね!」(意訳)と言われたことがあります。(全然ネガティブな文脈ではないので安心してください!!!!!!!!!)
特にプロダクトの初期フェーズにおいては、プロダクト自体の機能や価値提供のために、管理画面の開発などの優先順位が下がることがあると考えています。
運用フロー、提供フローが定まっていないうちに画面を作り込んでしまうなどが、「早すぎる最適化」になってしまうこともあるでしょう。
そのような事態を避けるためにも、作り込めるポイントがくるまで、安定した手動オペレーションを行うことはチームにとってもプロダクトにとっても大切なことなのかもしれません。
本トークでは、手動オペレーションを行う際に私がどのようなことを心がけているのか?という話を中心に、作り込めるポイントをどう判断しているのかをお話ししてみたいと思います。
P.S. 浜松っこです。
コミュニケーションにおける「パス」について、「コミュニケーションパス」がまず頭に浮かぶと思います。
いわゆる、1対1のコミュニケーションがどれだけ発生するか?というコミュニケーションパスとともに、チーム間を跨ぐ場合に誰を経由してコミュニケーションするか?という経路としてのパスもあります。
個人的に、直接のコミュニケーションにおけるやりとりも「パス」(pass)することだと考えていて、相手にいいパスを出せるか?というのもチームコミュニケーションにとって大切な要素ではないでしょうか。
本トークでは、1対1のコミュニケーションにおける対話(パス交換)に着目して、私が大切にしていることを共有したいと考えています。