レギュラートーク(10分)

未来のPHPを先取りするPolyfillの世界

tadsan うさみけんた

うちのPHPはまだ7.1だから、その関数は使えないよ…

そんなことを言われて悲しい気持ちになったことはありませんか? PHPにもPolyfill(ポリフィル)とよばれるパッケージ群があり、バージョンの差異や環境を埋めるためのライブラリが提供されています。

今回のトークではPolyfillでできること、再現できないこと、実装方法などを簡潔に解説いたします。

4
レギュラートーク(10分)

技術的負債を返し続ける取り組み ~ あなたのPHPのバージョンいくつですか?~

akki_megane 秋葉 誠一

あなたの使っているPHPのバージョンいくつですか?
わたしはPHP8 です。

コードを書き、動くソフトウェアを作り価値を提供することがわれわれの仕事です。
しかしコードを書くということは同時に、書いたコードのメンテナンスコストという支払い続けるという負債を負うことなります。

  • サポート期限の切れた 言語、フレームワーク、ライブラリ
  • イケてない設計
  • 現実と解離する実装
  • 使われてない機能
  • あのときは最高だったコード
  • 過去の自分をしばきたい設計

こういったいわゆる技術的負債は優先度すらつけられず、「一生いつかやる」という状態になり、
気づいたときには、莫大な利子を伴い返済不可な状態になってしまいます。
そんなことにならないために弊社で行っている、「技術課題リファインメント」を用いた日々のプロダクト改善活動の事例をご紹介します。

6
レギュラートーク(10分)

たまには PHP で、パーサ(構文解析器)を書いていこう

__Mitsui ミツイ

プログラミングを始めた人が必ず一度は作る物といえば、そう、「独自のプログラミング言語」ですよね?
独自プログラミング言語を実装する最初の一歩は、ソースコードを構文解析して抽象構文木(AST)を得るところから始まります。今回はこの構文解析に着目して、PHP でパーサ(構文解析器)を書いてみました。
文字列処理と聞くとすぐに正規表現を書きたくなる方も多いと思いますが。正規表現とは一味違ったパーサの世界もちょっと覗いてみませんか?

3
レギュラートーク(10分)

PHP 8.0 の新記法を試してみよう!

okashoi おかしょい / 岡田 正平

昨年 11 月に PHP 8.0 がリリースされました。
本発表では PHP 8.0 で新しく追加された構文や関数等について、利用頻度が高そうだったり、関係する人が多そうなものをメインに紹介していきます。

1
レギュラートーク(10分)

PHP-FPM の子プロセス制御方法と設定をおさらいしよう

okashoi おかしょい / 岡田 正平

PHP-FPM(FastCGI Process Manager)の設定項目を「なんとなく」「デフォルトのまま」にしていませんか?
不適切な設定は充分なパフォーマンスが発揮できないばかりか、障害の原因にもなりかねません。
本発表では PHP-FPM の子プロセス制御方法と設定項目の意味、適切な設定値の判断方法について説明します。

3
レギュラートーク(10分)

WordPress プラグインを5年間開発してきて、いま後悔していること

__Mitsui ミツイ

株式会社あつまるでは自社のサービス(サイト制作)のために WordPress サイトと WordPress プラグインを5年以上前から開発してきました。
度重なる改善のおかげでサイト制作効率は何倍にもなり、弊社の生産性向上に寄与しています。

が、そんな中でも「なぜこんな作りにしてしまったんだ…」「なぜもっと早くこれをやらなかったんだ…」と後悔していることも少なくありません。
WordPress 特有の問題、モダンなフレームワークに憧れて真似した結果火傷した話など、みなさまにお話しさせていただきます。

レギュラートーク(10分)

リーダブルコミットのすゝめ

「他の人と未来の自分のために、調査しやすいコミットをしていこう」コミットの内容について僕が思うことです。
とはいえ調査しやすいコミットと言われても、ぱっと思いつかない人もいるのではないかと思います。
そこで本セッションでは、調査しやすいコミットとは何かについて話していきます。

具体的には以下のような内容について話をする予定です。

  • 調査しやすいコミットを書く理由は?
  • プレフィックスをつけよう
  • 何故その変更をしたのかわかりやすいコミットメッセージとコミット内容
  • チケットと紐付けよう
5
レギュラートーク(10分)

PHPでCSVのインポート/エクスポートに立ち向かう

ttskch たつきち

気軽に欲しいと言われるけど実は作るのが大変な機能ランキング第1位といえば、CSVファイルによるインポート/エクスポートでしょう。(異論は認めます)

特にインポートは入力データのバリデーションやインポート前のプレビュー表示などが必要になるとやることが多くてひたすら面倒です。

エクスポートはエクスポートで、データ量の多いアプリだと結構シビアに計算量をカットする必要があったりしますね。

このように、カジュアルに要望される割に意外と腕が試されるCSVインポート/エクスポートについて、PHPでの具体的な実装例をご紹介できればと思います!

1
レギュラートーク(10分)

3年規模のモバイル開発(Flutter)のバックエンドにLaravelを採用したお話

mukae9 向江

大阪市でシステム会社をやっている向江と申します。
トークの内容は現在自分がPMとして参画している開発期間が3年を予定されている小売店のアプリについて、第一フェーズが完了して少しおちつくので、アプリ自体はFlutterを採用しバックエンドにL aravelを採用したらどうなったかを話したいと思います。

■FlutterとLaravelの相性
■この規模感でこの選択は正しかったか
■ちょっと脱線するけどFlutterとかLaravelを採用している新参の会社がチームを組むとどうなるか(苦笑)

などを話せればと思います。

2
レギュラートーク(10分)

Composer2.0 新機能概論

2020年10月24日に、Composer 2.0がリリースされました。
Composer初のメジャーバージョンアップデートですが、どんな新機能が増えたのでしょうか?

そこでComposer2.0で新しく実装された機能について、時間が許す限りご紹介・解説いたします。
時間の都合で全ての機能について触れられない可能性がございますが、以下の機能について触れる予定です。

  • パフォーマンス向上
  • アーキテクチャの変更による依存関係の更新プロセスの改善
  • ランタイムの新機能
  • 依存関係のエラーレポートの改善
  • パッケージのバージョンの部分的な更新
  • その他便利なオプションなど
4
レギュラートーク(10分)

かゆいところに手が届く、Docker開発環境構築パターン 〜新規サブシステム開発編〜

hgsgtk 東口和暉

昨今モノリシックな機能拡張ではなく、いわゆる"micro service"と呼称されるような新規サブシステムの構築を設計手段として選択するケースが増えてきました。
そのような場合、開発環境構築から始まりますが、要件によって温度感が分かれます。

  1. 一部開発者が利用し、開発する
  2. 全開発者が利用し、一部開発者のみコード修正が発生する
  3. 全開発者が利用し、全開発者のコード修正が発生する

それぞれどのようにDocker開発環境を構築・拡張するかとよいかパターンを紹介します。

  • 一般的な"Single docker-compose pattern"での追加ケース
  • 既存のdocker-composeにNetwork相乗りする"Joining network pattern"
  • 一部開発者のみ開発・参照しているシステムの開発環境提供と、ローカル環境切り替え
4