「Raspberry Pi で L チカ」「PHP で L チカ」「Raspberry Pi で "Get Wild"」「PHP で "Get Wild"」のサンプルは良く見かけますが、みなさん「Raspberry Pi + PHP で "Get Wild" 」の実装例はまだ見たことがないのではないでしょうか。
というわけで、私がやります!
エンジニア20名規模で複数プロダクトの開発保守をしている自社で約3名の少数精鋭SREチームを立ち上げ、やろうとしてきたこと、それに対して実際できたこと出来なかったこと、そして今後の展望について話します。
チーム開発に欠かせないチームビルディング。
何となく雰囲気でやってませんか?
チームビルディングの目的や、よくある失敗例を混じえながら抑えるべきポイントについて説明していきます。
PHPerの皆さんが大好きなLT会。
このLTでは、毎月オンラインで開催している社内LT会をどのように運営しているかをお話します。
私たちは4〜5人でLT会を運営しています。
運営チームが毎月行っている「2週間前の準備・当日の運営・振り返り」の様子や、その時にどんなことを話しているのかなど、
LT会やイベントの運営をやったことがない方、これから開催してみたい方に参考にしていただけたらと思います。
後輩に教育する中でよく引用させていただく資料や名言をできるだけ活用例と合わせてざっと紹介します。
教育する際の観点の振り返りや、言語化しづらいときに辞書的に使ったり、自身の振り返りとしても活用できます。
サービスの立ち上げ、数年間の運用を通し
「試行錯誤を繰り返し、致命傷を負わない戦い方」
を少しずつ学んできました。
その経験を通し
と感じた話をします。
熟練のエンジニアの方にも、初心者の方にも「わかる、ウケる」と感じてもらえる話をして
「いいものを作ろうとしている仲間」
として交流のきっかけができればいいなと思います。
PHPで実際にモノを動かしてみたいと思ったことはありませんか?
ラズペリーパイ(ラズパイ)のGPIOをPHPで制御することで、アクチュエータ(電気シリンダなど)を動作させることができます。
ラズパイとはシングルボードコンピュータで、電子工作や、近年では産業用途・IoTなどでも使用されています。
普段PHPを扱っているとPC上で完結する仕事が多いと思いますが、たまには現実のモノを動化してみると面白いです。
Slackのtimes文化根付いてますか〜?
Slackにて個人チャンネルを作りtwitterのようにつぶやく分報チャンネルことtimesですが、油断すると業務の話ばっかりになったり、投稿ハードルがあり投稿されなかったり、、うまく運用していくのがなかなか難しいものです。
そこで私がtimesでやっている様々な工夫を一挙に公開したいと思います。
先輩「この実装はどうしてこうなっているの?」
自分「ここは〇〇という理由でこうしています!」
先輩「了解です、その説明はコードコメントに書いておくとよいので追記お願いします~」
コードレビューを受けているとき、こんな経験はありませんか?
コードで表現できないことを説明したいとき、それを書く場所の候補はコードコメント、コミットメッセージ、プルリクエスト(説明欄やコメント)と多岐に渡ります。
「どこに書けばいいのかわからない!」そんなときの指針となるお話をします。
LaravelではRepositoryパターンは使いにくいんでしょうか。
「Repositoryパターンはデータアクセスロジックとビジネスロジックを分離し拡張性と保守性を高めた実装パターン」であると研修で理解しました。
しかしLaravel上でこの実装パターンを用いたところ、以下のような悩みに直面しました。
ここではこれらの悩みに直面した新卒PHPerが奮闘し、どのようにRepositoryパターンで実装したのかを紹介していきます。
もし「もっと良い方法があるよ!」と教えてくれる先輩PHPerがいらっしゃいましたら、ぜひ教えてください。。。
見知らぬコード、深いスタック、多様なクラスやメソッド・・・・
それらに立ち向かうのは、楽しくもあり大変でもあることですね!頭がパンクしちゃうこともしばしば!
どうしたら、少しでも効率よく・安心しながらコードリーディングを進められるでしょう。
ポイントは、「要点を掴む(=肝心でない所は脳みそからflushする)」「振り回されない(=コードを行ったり来たりしやすくする)」事だと思います。
それを実践するためのツールや技法を用意できると良いですよね。
脳内で補いきれない所は、「道具」で補って賢くやりましょう。
Xdebugのステップ実行と、ホワイトボードツール(Miro)の付箋とメモを活用することで、とっても効果的にコードの理解を進めることができます!
ある程度複雑なライブラリを例に、実際に「どうやったのか」をお見せします。
PHP8がリリースされ、追加された関数の1つにあるmatch式。
多くの場合、大体比較されるのはswitch文ですが、if文も代替できることをご存知、または知っているでしょうか?
今回の発表ではmatch式の基本と応用、発展形や本題のif文代替ケースをご紹介しながらどれだけif文とさようならができるか挑戦します。
2018年に「Laravel Collection の計算量を調べてみた」というタイトルで PHP勉強会で発表を行いました。
https://speakerdeck.com/hanhan1978/laravel-collectionfalseji-suan-liang-wodiao-betemita
あれから、5年。月日が流れて、Collection にはメソッドが追加され、ロジックにも変更が入りました。
というわけで、今、計算量がどうなっているのか測り直してみました。
メリークリスマス!
クリスマスといえば、Advent Calendarですね。
世の中には、クリスマス当日まで待ちきれなすぎて1人でカレンダーを埋めていく人も居ます。
私も、2018年に1人adventに初めて挑戦し、2021年には3枚の1人adventに挑んでみました。
このLTでは、自身の経験を通じて感じた「助かったこと」「苦しかったこと」やノウハウを共有し、「今年の12月は私もやってみようかな!!」と 道を踏み外す 奮い立つ人を1人でも増やすことを目的にお話をします。
[ネタバレ]このトークにおいて、タイトルにある「1人Advent Calendarを支える技術(よりも大事なもの) 」は「根性」です。
Rectorを使っているととても便利で、「フレームワークのバージョンを上げたら今までのメソッドがdeprecatedになって書き変えなきゃだぜ!!」といった場面をコマンド1発で乗り切ることが出来ます。
主要なFWやライブラリなどのマイグレーションには公式に対応していますが、自分たちのPJに適したルールは自分たちで作っていく必要があります。
「どういう風に、自動での書き換えを行わせるか・・」は知っておいて損はないはずです!
LTの中で伝えられる範囲で、Rectorを拡張するためのルールの作り方を紹介します。
皆さんふりかえり行ってますか?
何か物事を進めるうえでふりかえりというのはとても重要です。
自分たちが今どこにいて、どこを目指しているのか、ふりかえりを通して見つめ直すことができます。
わたしたちが行っているふりかえり術(ノウハウ・知見)を共有したいと思います。
リモートワークが当たり前になった昨今、心理的安全性の確保というのはどの組織でも重要な要素となっています。
その手法の1つに1on1というものがあります。
恐らく皆さんやられてると思います。
1on1というのは文字通り1対1の対話のため、そのやり方や手法が暗黙知になりやすいです。
社内で多くの人と1on1を行ってきましたのでノウハウや知見を共有したいと思います!
皆さんNRQL書いてますか!?
NRQLとはNew Relicで使うクエリ言語です。
監視やデータ集約にNew Relicを使っている人も多いと思います。
「目標線」「基準線」「進捗線」などのために任意の直線を引く小技を教えます。
DAPとはDebug Adapter Protocolの略で、LSP(Language Server Protocol)と同様Microsoftが作成したプロトコルです。
LSPについての解説は世の中にごまんとあるが、DAPについて触れている記事は全くといって無いのが現状です。
DAPの仕組みについてや、実際にemacsのdap-modeを用いてxdebugと繋ぎこむデモなどをしてDAPの魅力について語りたいと思います。