OSSにPRを出すのは、すごいエンジニアや上級者がやることだと思っていませんか?
そんなことは全くありません。
たとえあなたがエンジニアになりたてだったとしても、そのOSSを使ったことがなくても、PRを出すチャンスはあります。
本トークでは、私が過去に数々のPHPライブラリに対して送ってきたPRを紹介しながら、PRを送りつけるときの心構えやチャンスの探し方を紹介したいと思います。
OSSの例:
本トークを聞けば、
「あ、こういうところにチャンスがあるのか」
「自分もやってみよう」
という気持ちになれるかもしれません。
その結果、PHPのエコシステムがどんどん良くなるといいなと思っています。
ドメイン駆動設計をどのようにして知ってもらい、文化を広めるというのは非常に難しいです。
色んな手法で広めていくと思うのですが、今回私が行ったのは「言葉と資料」で駆動設計をプロダクトに盛り込むことにしました。
今回はドメイン駆動設計を布教した一連の流れをお話できればと思います。
ドメイン駆動設計を社内で布教したい、実践でやってもらいたいという方へ一例として知見に貯めていただければと思います。
AWSのLambdaにCustom RuntimeでPHPの導入出来るようになってから日が経ち、私が関わった案件でもLambda for PHPを導入したシステムがあります。
別の開発者が初めて作成し初めて載せたものでどういった感覚で作られていたのか、そして実装面に対して問題等などは起きていなかったのか、といった部分を段階的に紐解いた話をいたします。
そして当時リリース優先でやらなかったUTについても実装を行い、そのUT実装に至るまでの手順などもお話します。
LambdaでCustom Runtimeで動かしたい方、またはLambdaには載せたけどUTの実装まで至らなかった方にはご参考になる情報を発信できればと思います。
みなさんはインフラ(またはクラウド)の構築、運用、整備を行ったことはありますか?
普段、サーバサイドエンジニアがインフラを兼任することはあまり多いケースではないと思います。
今回その多くないケースを踏み、インフラ面を兼務したことで得た利点、課題点、発展をそれぞれお話できればと思います。
インフラエンジニアという人の仕事がどういった業務を行い、私達サーバサイドがあまり気にしていなかったことや、気がかりだったところ等、
サーバサイドの視点を交えながら知見としてご参考いただければと思います。
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを書き込んで何かしらを行うことも可能だったりします。
例えば、java が実行する class ファイルのようなバイナリを PHP で生成して、 java コマンドで動かすことも可能です。
言い換えると java コマンドで動くバイナリファイルを PHP のみで生成する、つまりコンパイラを作るということです。
本トークでは、 class ファイルの構造やオペコード(プログラムを実行する命令のこと)を PHP だけを使い、
どのようにしてファイルに書き込んだら java コマンドで動くかをお話できたらと思います。
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを書き込んで何かしらを行うことも可能だったりします。
そう、例えば PHP のソースコード自体を PHP を使って Java のクラスファイルにコンパイルし、java コマンドで動かすようにすることも可能です。
言い換えると、 Kotlin や Scala のような JVM 言語を PHP のソースコードを用いて PHP で実装するということです。
本トークでは、 PHP を AST (抽象構文木、簡単に言うとソースコードがプログラムで理解されやすいように最適化した状態) に分解し、それを Java のクラスファイル(バイナリファイル)にコンパイルしてから java コマンドで動かすまでの一連の流れをお話できればと思います。
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
PHP はそれ以外の用途としてバイナリを読み込んで何かしらを行うことも可能だったりします。
例えば mp3 の ID3 タグを取得する, zip を解凍する, jpg のメタデータを取得する、などなど。
しかし、これらは一般的にはライブラリや拡張機能が提供されていて、刺激が少ないかと思います。
そんな中で、今まで誰もやったことがなさそうなこととして PHP でバイトコードにコンパイルされた Python を動かしてみたいとは思いませんでしょうか。
私は動かしてみたいと思います。本セッションでは PHP でどのようにしてバイトコードにコンパイルされた Python を動かすのかをトークできればと思います。
PHP 7.4 より、PHP をビルドする際に使用されるオプションである --enable-zip が正式にバンドルされなくなりました。
これにより、 PHP で zip を展開したり、読み込んだりすることにハードルが上がってしまいました。
libzip は PHP 7.3 より、libzip 自体の野良ビルドが必要であったり、 cmake のバージョン自体もあげないといけなかったり、必要なモジュール導入のハードルが高くなっていました。
PECL に移ったとはいえ、ビルドするのはなかなか敷居が高いです。ではどうしたらいいのか。何もモジュールにこだわる必要はありません。 PHP 単体で zip ファイルを読めばいいのです。本セッションでは、 PHP でどのようにして zip ファイルを読み込むのかをトークさせていただければと思います。
CakePHPは2.xから3.xで大規模な変更を実施すると共にポストPHP5.6時代に十分に適応したソフトウェアに進化しました。4.xでは、「PHP7.2を必須とする」という方針が採用されています。
php-figのメンバーでもあるCakePHPは、どのように「時代に合わせた進化」を遂げてきたでしょうか?
これまでの軌跡を辿り、リリースが近づいている4.0(※)の概要、その先にある4.1/5.xへの言及にも触れながら、その思想の背景を読み解きます
※2019年11月時点。カンファレンスまでにstableが出ていると思います
ペット、かわいいですよね。私はハムスターを二匹飼っています。それぞれキンクマとジャンガリアンです。
可愛すぎて「常時見ていたい…」そのような気持ちになることはありませんか?
ありますよね。更に、ストリーミングで常に見れたらうれしいですよね。
そんなニーズに答えるため、 PHP の拡張の Swoole と Raspberry Pi を使用して、ストリーミング再生で常に最新の情報が送られるようなハムスター監視システムをつくってみました。
実装までの過程で、Swoole や Raspberry Pi で乗り越えた壁や、どのような形で開発をしたのか一つのドラマとしてトークします
みなさんは PHP にどのようなイメージをお持ちでしょうか。Web のイメージが強いのではないかと思います。
しかし、PHP は Web 系以外、例えばそう、 JVM などを実装することも可能なのです。
JVM とは、 Java Virtual Machine の略で、 中間コードにコンパイルされた class ファイルを動かすための仮想マシンのことです。
JVM は JVM Spec と呼ばれる Oracle が公開しているドキュメントがあるため実は PHP でも開発することは可能です。
30 億のデバイスで PHP が走ると思うとワクワクしますよね。
本セッションは PHP という言語の枠組みの中でどのようにして JVM のようなスタックマシンを実装したのかをトークさせていただきつつ
実際に Hello World を出力するところまでをお話できればと思っております。
普段私たちが触れているPHPUnitなどは、xUnitと呼ばれるテスティングフレームワークの一つです。Kent Beck氏がSmalltalkで実装したものが様々な言語で広がってきた流れで生まれています。何気なく使っているこのPHPUnitを理解する足がかりに、xUnit自体を自分でPHPで実装すると、xUnitの考え方やPHPUnitに対する理解が深まるのではと思います。
このトークでは、そんなxUnitを実装して理解するという話です。聴講者の方々が普段使っているツールの中について考えるきっかけになれば幸いです。