下岡 昨年、子供が成人式を迎えた記念に、子育てもエンジニアとして働くことも、どちらも諦めずに過ごした21年間を振り返りたいと思います。
・実家には頼れない!
・リモートワーク
・保活とか子供の受験とか
・保護者会とかPTAとか
・残業できない自分
・旦那は気軽に飲み会に…
・勉強会などのイベントに参加する旦那(エンジニア)を見送る一方、いつも留守番の私
そして、今。
PHPとは関係ない話ですみません。
イベント参加される方々に、送り出す側の気持ちを伝えたいと共に、
子育て真っ最中の方やこれから子育てする若い方々に、エールを送れたらと思います。
秋葉 誠一 Laravel Vapro とは、Laravelのアプリケーションを、AWS Lambda 上に構築しするためのサービスです。
AWS Lambda 上に構築することにより、LaravelをSeverless 化することができ、
Severless の特徴である、「管理コストの低減」、「自動スケーリング」、「従量課金」の恩恵を受けることができます。
Laravel Vapor は、Laravelの製作者 Taylor Otwell 氏自らが、10ヶ月 週 40時間をかけて作成したサービスで、2019/09/11 に正式 リリースされたばかりです。
このサービス自体有料なので、使うのに躊躇されている方や、「実際どうなのよ? 」
と思っている方向けに、Laravel Vapro についてお話できればと思います。
秋葉 誠一 昨今PHP界隈でもテストコードを書くことが当たり前になってきました。
テストコードのある開発体験をすると、一時期からテストが大好きになる時期がやってきます。
このことはTDD本では テスト熱中症 (test infected) と表現しています。
テスト熱中症 自体悪いことではありませんが、
テスト熱中症が悪いほうに悪化すると、手当たり次第見境なくテストを書き、
テストを書くことが自体目的となってしまうことがあります(実際私がそう)。
テストコードは道具であって、テストコード書くこと目的にしてはいけません。
そんな戒めを込めた話しをできればと思います。
あんどす 新規プロジェクトを立ち上げる際、悩むことの一つにアプリケーションのアーキテクチャ設計があります。
私自身、プロジェクトの立ち上げで、アーキテクチャ設計をおこなったりするのですが、
その中で体験した失敗談を中心にお話させて頂けたらと思います。
以下、アジェンダ(予定)です。
・アーキテクチャについて
・失敗談
・メンバーへのアーキテクチャ浸透
・アーキテクチャへの固執
・まとめ
武田 憲太郎 パフォーマンス・スケーラビリティ・開発・運用、
これら多角的な観点から「マスタデータ」を考えます。
都道府県マスタ : 1:北海道/2:青森/3:岩手/4:宮城 …
金融機関コード : 1:みずほ銀行/5:三菱UFJ銀行/9:三井住友銀行 …
ポケモン一覧 : 1:フシギダネ/2:フシギソウ/3:フシギバナ/4:ヒトカゲ …
カテゴリ一覧 : general:一般/social:世の中/economics:政治と経済 …
変わらないデータでしょうか?変わるデータでしょうか?変わるとしたらいつでしょうか?運用するの誰でしょうか?
データの特性を捉えた適切な実装により、開発と運用の双方を効率化できます。その方法をご紹介します。
カンボ@沖縄 私の会社では、沖縄で半年に一回、開発合宿を主催しており、その中で海辺で開発をした話をします。
実際、海辺でビーチ駆動開発をしてどうだったか?開発は捗るのか?支障はないのか?注意点などを話させて頂きます。
itosho 私は2012年からうるう年の2月29日にだけ動く「PRESENT4229」というWebサービスを個人で運営しています。4年に1度という特性上、サービスイン前にほぼフルスクラッチでシステムのリプレイスを行っています。
本セッションでは「PRESENT4229」が辿ってきた技術的変遷を紹介しながら、Web技術がこの8年間でどのように進化・変化してきたのかを読み解きたいと思います。そして、来る2020年2月29日、 3回目のサービスインを控えた「PRESENT4229」の裏側をどこよりも早くお話させていただきます!
PRESENT4229: https://present4229.com/
Tsukahara 慣れ親しんだフレームワークでいろんな案件に挑戦するのも良いですが、
エンジニアとしては、新しい技術で案件に挑戦したくなるものですよね。
LTでご紹介させていただきたいのは、
Laravelを社内標準に追加させてもらった際に
社内であれこれ相談・説得したり、実際にサービスを作ったりしたお話です。
▼あらすじ
新しいフレームワークを新しく導入するには色々とハードルを超えないといけませんでした。
特にクライアントのサービスで導入するには
以下のチェックポイントをクリアして、ディレクターに納得してもらう必要がありました。
・導入することによりクライアントに与える事ができるメリットを考える
・工数がオーバーしないか確認する
・技術相談できる相手がいるか確認する
これらのポイントをどのようにクリアしていったのか...!?
Laravelを導入して、組織はハッピーになれたのか...!?
ういろう エンジニアとして落ちこぼれだった私が、
1年かけて生まれ変わった(と思う)理由って?
ただの落ちこぼれが、今ではあちこちで登壇してたりします。
ブログ・登壇いろいろやってましたが、
私は、1%の努力と、99%の幸運で今ここに居ます。
・友人の存在
・若手ものづくり集団の存在
・そして、PHPerコミュニティの存在
今の私がいるのは、その1%の悲鳴と99%の温かいコミュニティで
出来ているってお話をします。
声を上げないと、助けられないってお話です。
ういろう 『Laravel5系』ってひとくくりにするのは間違ってるってお話します。
■結論
Laravel6.xからセマンティックバージョニングになったよ
Laravelが6になってから、めっちゃバージョン上がってない!?
って思った人はたくさんいると思います。
でもそれは、5までと違って、6からはバージョニングが変わったからです!
■内容
・セマンティックバージョニングって?
・今起こってるバージョンアップって?
・どんなの増えてる?
・セマンティックバージョニングにしないって過去のドキュメントにあった気がすr
ういろう 注)この話はフィクションです。きっと。
■対象
・今最新を使っている人(メインターゲットです)
・これからやる人
・もうやって、あるある話を聞いて涙したい人
皆さん、バージョンアップしてますか?
PHPや、Laravel、古くなってきたからバージョンアップしよう。
よくある話ですね。
でも、何も考えずにプログラムを書くと、あとで痛い目を見ます。
これは、本当にあったかはわからない、バージョンアップで悲しみを背負った人の話。
■内容
・vendor配下をいじった報い
・コードをコピペで拡張した悲しみ
・Laravelを見捨ててPHP上げたらLaravelがお亡くなりに
・テストコードなんてなかった
・このライブラリはもう居ない
・消えた機能
・見つからない変更点
・再度襲いかかるコピペの悲しみ
・見えない終わり
・把握できない予算、見積もり
・PHPのアプデは簡単だったという圧力
・本当はマイナーバージョンアップではない誤解
・把握できないバージョンアップの利点
ういろう 注)この話はフィクションです。きっと。
■対象
・今最新を使っている人(メインターゲットです)
・これからやる人
・もうやって、あるある話を聞いて涙したい人
皆さん、バージョンアップしてますか?
PHPや、Laravel、古くなってきたからバージョンアップしよう。
よくある話ですね。
でも、何も考えずにプログラムを書くと、あとで痛い目を見ます。
これは、本当にあったかはわからない、バージョンアップで悲しみを背負った人の話。
■内容(変更あるかもしれません)
・vendor配下をいじった報い
・コードをコピペで拡張した悲しみ
・Laravelを見捨ててPHP上げたらLaravelがお亡くなりに
・テストコードなんてなかった
・このライブラリはもう居ない
・消えた機能
・見つからない変更点
・再度襲いかかるコピペの悲しみ
樋口雅拓 静的型付言語なら、こんな苦労はしないで済むのに!
そう思った経験は、ありませんか?
それを強く感じたため、PHPに変わる何かを探し始めました。
そして、以下の5つのチャレンジを行いました。
これらのチャレンジを通じて、どのような成果を達成できたか、そしてPHPと比べて良かった点と悪かった点について発表します。
やなせ たかし PHP でも「型」に関する議論が盛り上がっている今、一度「型」についておさらいしてみませんか?
近年、主要なプログラミング言語の「型」を取り巻く環境が変化しています。もちろん PHP も例外ではなく、7.0 以降「型」に関する機能を強化しています。
PHP では型ヒントの強化や、Java ではローカル型推論が導入されるなど、さまざまな言語で「型」に関する機能が拡張されています。
この拡張の傾向としては、動的型付け言語(PHP, Python)は漸進的型付けを導入する、静的型付け言語(Java, C#)は型推論を導入するというのがよくみられます。
その結果、言語の型付けの方式に寄らず、必要な個所に型を記述するというスタイルに収束していきそうな気配すらあります。
しかし、両者の間で「型」そのものの扱いには明確に差があります。その差とは何でしょうか?その差は何をもたらすのでしょうか?
そして、PHP 上で「型」と向き合う時が来たとき、どのように付き合っていくのがいいのでしょうか?
このセッションでは、両者の「型」の進化をおさらいしながら、PHP がこれから「型」と付き合っていく上で得られるものや課題、PHPer が「型」とうまく付き合っていくための基礎知識についておなしします。
藤澤貴之 「コミュニティ運営を通して、エンジニアとの繋がりを広げ、自己成長につなげたい。」
そんな思いで、私たちは、2019年1月から、特にジャンルを問わない「もくもく勉強会」コミュニティを立ち上げ、9月までにのべ100人超の方に参加して頂くことができました。
10月からは、それまでの「もくもく勉強会」をやめ、「PHPを主軸としたWeb開発に関する勉強会コミュニティ」として再始動をしています。
本セッションでは、私たちが、なぜスタイルを変えてコミュニティを再始動するに至ったか、どのように変えたのかという点に触れつつ、これまでコミュニティ運営をやってみたうえでの、気づき・学び、安定したコミュニティ運営のためにやっていることなどをご紹介します。
カンボ@沖縄 Nuxt.js + Netlify + ヘッドレスCMS「microCMS」のJAMstack構成でコーポレートサイトをリニューアルした話をします。
この構成で開発することによって、サイトの表示速度の改善、UXの向上、開発スピードの向上に繋がりました。
また、microCMSは管理画面上でユーザの操作に必要な部分だけを見せるような構成になっており、ユーザ目線でもとても便利だと思います。
大重智志 ユーザ投稿型の音声配信サービス内のひとつの機能として、あるユーザにとって好きな投稿をレコメンドすることになりました。
分析の結果、「好きな投稿=よく聴く投稿に似ているもの」であるだろうと仮定し、似ている投稿とは何なのかの研究が始まりました。
投稿データは音声の波形データであるので、その音声データを解析して特徴ベクトル化し、それを用いて似ている投稿を学習により推定することにしました。
そして最終的に、音声知識が皆無である中、音声データの解析手法やベクトル化手法とその実装について試行錯誤し、最終的にはサービスにそのまま組み込むのではなくGCP上でマイクロサービス化することで疎結合なシステムを作り上げました。
これは、Pythonを用いて、音声知識がゼロの状態から、数多の音声データを聴き様々な手法を試し学習させマイクロサービスを完成させた、PHPerによるトークとなります。
具体的には以下のような内容を予定しています。
基本的にPythonを使って実装しており、PHPの話は一切出来てきません!
想定している対象者
話さないこと
大重智志 ユーザ投稿型の音声配信サービス内のひとつの機能として、あるユーザにとって好きな投稿をレコメンドすることになりました。
分析の結果、「好きな投稿=よく聴く投稿に似ているもの」であるだろうと仮定し、似ている投稿とは何なのかの研究が始まりました。
投稿データは音声の波形データであるので、その音声データを解析して特徴ベクトル化し、それを用いて似ている投稿を学習により推定することにしました。
そして最終的に、音声知識が皆無である中、音声データの解析手法やベクトル化手法とその実装について試行錯誤し、最終的にはサービスにそのまま組み込むのではなくGCP上でマイクロサービス化することで疎結合なシステムを作り上げました。
これは、Pythonを用いて、音声知識がゼロの状態から、数多の音声データを聴き様々な手法を試し学習させマイクロサービスを完成させた、PHPerによるトークとなります。
具体的には以下のような内容を予定しています。
基本的にPythonを使って実装しており、PHPの話は一切出来てきません!
想定している対象者
話さないこと
大重智志 新規サービスの立ち上げに伴い新しいチームが発足しました。
これまではデータベースの設計であったりAPIエンドポイントの設計であったりはもちろんしっかりとやってきましたが、恥ずかしながらアプリケーションコード自体の設計はしっかりとはやってきませんでした。
ファットなコントローラーにテストも不十分という環境が当たり前のなか、新しいチームでの開発が始まるにあたり、せっかくなら良い設計のサービスにしようと思いたちました。
設計指針として様々な選択肢がありますが、今回はクリーンアーキテクチャを採用することにしました。
私自身も含めて設計に明るいメンバーはおらず、リリース日も決まってしまっているなかで、新たな「設計」を取り入れることをチームに受け入れてもらうために奔走し、挑戦しました。
これは、ひとりの設計初心者であるPHPerが、設計初心者チームに受け入れてもらうために取り組んだことに関するトークとなります。
具体的には以下のような内容を予定しています。
チームに受け入れてもらうために行ったことがメインで、設計手法自体はサブになる予定です。
PHPの話も少しだけ出てくると思います。
想定している対象者
話さないこと
大重智志 新規サービスの立ち上げに伴い新しいチームが発足しました。
これまではデータベースの設計であったりAPIエンドポイントの設計であったりはもちろんしっかりとやってきましたが、恥ずかしながらアプリケーションコード自体の設計はしっかりとはやってきませんでした。
ファットなコントローラーにテストも不十分という環境が当たり前のなか、新しいチームでの開発が始まるにあたり、せっかくなら良い設計のサービスにしようと思いたちました。
設計指針として様々な選択肢がありますが、今回はクリーンアーキテクチャを採用することにしました。
私自身も含めて設計に明るいメンバーはおらず、リリース日も決まってしまっているなかで、新たな「設計」を取り入れることをチームに受け入れてもらうために奔走し、挑戦しました。
これは、ひとりの設計初心者であるPHPerが、設計初心者チームに受け入れてもらうために取り組んだことに関するトークとなります。
具体的には以下のような内容を予定しています。
チームに受け入れてもらうために行ったことがメインで、設計手法自体はサブになる予定です。
PHPの話も少しだけ出てくると思います。
想定している対象者
話さないこと