現在私はプレイングマネージャーという形で、複数の案件を掛け持ち自身も開発をしながらメンバーを管理し、加えて会社の組織設計や雑務も行っています。
様々な仕事を行う中で、特にシステム開発という仕事は楽しくやりがいがあり、集中した時にはあっという間に1日が終わってしまいます。
そして後から気づくのです。「開発以外の仕事全然できてない」と。。
この問題を打破すべくタイムトラッキングを導入し、自分が何の仕事にどれだけ時間を使っているか可視化することで本来やるべきことに時間を使えるように改善を進めていきました。
このLTでは実際に発生した問題から始まり、タイムトラッキングツールの導入、実際に可視化して気づいた点や自身の作業の改善内容、導入してみて良かった点/反省点をまるっとお話します!
アジャイルソフトウェア開発宣言の中に「包括的なドキュメントよりも動くソフトウェアを」と記載がある通り、アジャイル開発において「動くソフトウェア」というものは非常に重要視されていると思います。
そのため、普段の開発業務で「動くソフトウエア」を素早く提供することを求められる場面は、きっと多いのではないでしょうか?(むしろ、常にそういう期待値を持たれているかもしれません。)
本トークでは、そんな「動くソフトウエア」を素早く提供するために実際にスクラムチームで取り組んだことについて、実体験をベースにした知見をご紹介します。
このトークでお話すること
・「動くソフトウエア」とは何か
・どうやって価値提供のスピードを上げたのか
・内部品質を保つためにどんなことをしたのか
・まだ改善していく余地はあるのか
アジャイルソフトウェア開発宣言の中に「包括的なドキュメントよりも動くソフトウェアを」と記載がある通り、アジャイル開発において「動くソフトウェア」というものは非常に重要視されていると思います。
そのため、普段の開発業務で「動くソフトウエア」を素早く提供することを求められる場面は、きっと多いのではないでしょうか?(むしろ、常にそういう期待値を持たれているかもしれません。)
本トークでは、そんな「動くソフトウエア」を素早く提供するために実際にスクラムチームで取り組んだことについて、実体験をベースにした知見をご紹介します。
このトークでお話すること
・「動くソフトウエア」とは何か
・どうやって価値提供のスピードを上げたのか
・内部品質を保つためにどんなことをしたのか
・まだ改善していく余地はあるのか
数年間で成長してきた自社プロダクトですが、モノリスの複雑化の増大に対して軽減・改善していくために、モジュラーモノリスを導入することにしました。
そんな話を度々耳にしたことがあるのではないでしょうか。
ただ、実際にやってみたら「こんなはずしゃなかった」「予想外にいいことがあった」みたいなことになる、そんな経験がきっとあると思います。
本トークでは、モジュラーモノリスを導入した際の現場目線での知見や体験談をお話します。
モジュラーモノリスの1歩目を踏み出そうと思っている方や、レガシーコードに日々向き合っている方に聞いていただけると嬉しいです!
このトークでお話すること
・Pakege By Feature について
・導入するに至った背景
・モジュール構成とその中身について
・導入してみてよかったこと/苦労したこと
・これからの展望
Web アプリケーションフレームワークを使ったプロジェクトを新規作成し、自動生成されるファイル郡の中にある config というファイルまたはディレクトリ。
いったいこいつは何なのか?
どうやら項目を自分でも追加できるようだが、一体何を追加してよくて、何を追加すべきでないのか。
本トークはそんな疑問にお答えします。
不具合が確認され、丸一日かけて調査したら原因はうっかりミスによる構文エラーだった.......そんな経験ありませんか?
「そんなうっかりミスを実行する前に気づけたらいいな」そう思ったあなたにお勧めするのが静的解析です!
本トークでは PHP 静的解析ツールの一例として PHPStan を取り上げて、それが使えるとどんなことがいいのかをお話します。
PHPのソースコードでよく empty($hoge)
を見ることは有りませんか?
ドキュメント( https://www.php.net/manual/ja/function.empty.php )にて仕様は書かれていますが、腹落ちしていますか?
このLTでは、emptyの挙動を理解できるように、php-srcを読んでどのようなことをemptyは行っているかを説明します。
追記
注意: これは、関数ではなく 言語構造のため、可変関数 や 名前付き引数 を用いてコールすることはできません
https://www.php.net/manual/ja/function.empty.php
とのことで、関数と表記をしてしまいました。お詫びして訂正いたします。
ScalaにはOptionクラスがあるのをご存知でしょうか?
これは何らかの処理結果(オブジェクト)を返すメソッドにおいて、通常時は子クラスのSomeに結果を返し、処理できなかった場合は子クラスのNoneを返してくれるものです。
この仕組みがあれば、nullableのドメインプロパティを利用する際に制御が容易になったり、値がないかもしれないことを明示的に表現できるのでコードの可読性と保守性が向上します。
ただOptionクラスはPHPにないのです...ではどうするのか?
自分たちで用意するしかないですね!
このトークではPHPでOptionクラスを用意するところをご紹介します。
資料に余裕があれば、
弊社のプロダクトはこれまでnullableのドメインプロパティをどう扱っていたのか経緯を踏まえつつ、なぜOptionクラスに行き着いたのかも合わせてご紹介できればと考えています。
こんにちは!
PHPerTeaNight運営メンバーの久保田です。
PHPerTeaNightはPHPer(PHPを愛するプログラマ?)のためのIRT形式による勉強会です。
2022年7月から開始し、ほぼ毎月開催する勉強会です。
ぜひ、PHPerコミュニティとして輪を広げたいと思い番宣ならぬ、会宣をさせていただきたいと思います!
以下のような内容をトークしたいと思います。
このトークを聞いた人がPHPerTeaNightに参加してくださったり、他のPHPコミュニティの勉強会なども参加してくださると嬉しいです。
みなさんは普段開発している際、バグに遭遇することがあると思います。そしてそのバグの発生要因が PHPDoc のメンテナンス不足であると考えると怖くないでしょうか。
私は実際に Laravel を使用して開発している際前述したような経験をしました。そして PHPDoc の修正を行い、Laravel のコントリビューターとなりました。
私はこの一連の出来事からコードリーディングがとても大事であることに気付かされました。
この発表では PHPDoc の不足をどのように見つけたのか、どう修正したのか、そしてコードリーディングが世界の誰かに役に立つかもしれないということを話します。
大きなソフトウェアを一人で作ることは難しく、エンジニアには常にコミュニケーションスキルが求められます。
ましてや外国のチームと開発 "オフショア" においては必須スキルと言ってもいいでしょう。
オフショア開発では意思疎通の問題から予想できないハプニングや思いがけないアクシデントが多々生じます。
私は、現在所属しているチームにてベトナムチームとの窓口を4年担当し、
情報共有不足や、遠隔メンバとの温度感の違いによる認識齟齬をはじめとする様々な出来事を経験しました。
その中には、後から考えれば「ここでちゃんと伝えておけばよかった」と後悔するものもたくさんあります。
本セッションでは、そんなオフショアにおけるハプニングやアクシデントを紹介し、それらを回避するノウハウなどを実例を交えてお伝えすることで、
齟齬の発生しないコミュニケーションや、相手への意図の伝え方をお伝えできればと思います。
「推測するな、計測せよ」という言葉は、改善策を探す時だけでなく、新機能をリリースする時も同様で、「計測」することは重要です。
開発環境の少量のデータを扱う場合は問題なく動作するクエリも、本番環境の大量のデータではパフォーマンス低下し、スロークエリになる可能性があります。
今回は、フィルターによる約160万行削除とNested Loopのトータルコストが約12万、実行時間が約600msかかるクエリを、サブクエリを活用し、Nested Loopを無くし、実行時間を約0.2msに改善をした事例を取り上げます。
話すこと
注意:このトークではPostgreSQLを使用しています。
現在私が BABYJOB 株式会社で開発を担当している保活サービス「えんさがそっ♪」では、バックエンドは PHP で Laravel、フロントエンドに Laravel の Blade テンプレート + jQuery で構築しています。
最近ではフロントエンド開発への課題感から React の導入を積極的に行っています。
React 導入の経緯としては...
①肥大化した jQuery の管理に限界を感じていた
②流行りの SPA に挑戦したかった
今回は Laravel 製のサーバサイドレンダリングアプリケーションに React を部分導入してみて、感じたメリットとデメリットをお話ししたいと思います。
Laravelのアップデートを、Laravel Shiftを使いながら行ってきました。
実際にどのようなことを行ってきたかをお話しできればと思います。
アップデートをいずれ行う予定の方や、Laravel Shiftの導入を検討している方に
経験したことをシェアすることで、何かしらの参考になればと思います。
Java 6 のバックパックを背負ったまま、PHP 8 の山を登ろうとしたらどうなるでしょうか?このライトニングトークでは、私のそんなエピソードをご紹介します。
①スタート地点: Java の世界から出発し、PHP 8 の新たな土地を目指した時のお話。
②サバイバルギア: 新しい世界を生き抜くために、私が手に入れたリソース、ツール、そして秘密の武器についてお見せします。
③オンザロード: 途中で出くわした難問や驚きの発見、そしてそれらをどうクリアしたかのエピソードをシェアします。
まだトレッキング途中ではありますが、私の経験が、新しい技術にチャレンジしようとしているあなたの背中を押す一助となれば幸いです。
Laravel開発でのフロントエンドとしても使用されるVue/Reactは、コンポーネントを分割して開発する手法が多く取り入れられています。
その際、コンポーネント単位での開発を可能にするStorybookを活用し、コーディングはもちろん、Visual Regression TestやUIレビューのような、コーディングの先の運用についても活用してみませんか?
本トークでは、Storybook開発元のSaaS「Chromatic」について、実際に導入して感じたメリットや、導入のハードルを突破する知見を共有し、フロントエンド開発をスピードアップする方法をご紹介します。
対象の方
生成AIはときに新しい発見や、気づきを与えてくれます。
昨今話題のChatGPTを始めとした生成AIですが、みなさん使い方に迷ってませんか?
まずは身近なところから始めましょう、そうです、自分の登壇をまず分析しましょう。
ということで去年ペチコン(2022)の私の登壇「フィーチャートグルを使って素早く価値を検証する 早く安全に失敗し学ぶために」を題材にして
生成AIに分析させてみようと思います。
分析例
ブラウザでクラウドコンソールをポチポチしてインスタンスを立てる時代は終息へ向かい、現在は IaC によって 「コードでインフラを構成する」 ことが一般的になってきました。
AWS CDK は AWS CloudFormation を生成するマルチ言語ツールですが、実は AWS CDK TF と呼ばれる、 Terraform に向けて出力を行うものが存在します。
今回は AWS CDK TF を使い、多くのクラウド(ローカル仮想環境含む)で利用出来る、 LAMP ベースの Kubernetes 環境をデプロイできるようにする事例を紹介します。
MySQL や PostgreSQL は非常に安定した信頼できるプロダクトです。これまでの数々の実績を見てもそれは確実でしょう。
しかし、 IT 業界の規模が急速に拡大し、クラウドサービスが席巻している今、「1インスタンス1DB」を前提として設計されたそれらプロダクトには性能限界が来ています。つまり スケーラビリティの問題 です。
その問題を解決しようとしているのが Google Spanner や PingCAP TiDB などの NewSQL と呼ばれる新時代のリレーショナルデータベースです。
今回はその中でも TiDB に焦点を当てて、 MySQL や Spanner と比べたメリット/デメリットを実際に使って検証します。
対象者
「なんで PHP をメインで書いているのに、 JavaScript(TypeScript) も一緒に書かないといけないんですか! React ってなんですか!今は Svelte が良いって聞いたけどじゃあどれ使えばいいんですか!」
という問題を解決するかもしれないのが Laravel Livewire です。これを使えば、 PHP でフロントエンドのロジックを記述することが可能です。
今回は、 LaraconUS 2023 で発表された Livewire v3-beta と関連パッケージを使って、(ほとんど) PHP だけでフロントエンドロジックも実装してしまう技術を紹介します。
対象者