Facebookが公開し、GitHubのAPI v4にも採用されたことでも知られるGraphQL。旧来のRESTfulな形式のAPIを爆発的に置き換えていっている!とは言えませんが最近少しずつ国内でも採用事例を聞くようになりました。
このトークではGraphQLの魅力について話し懇親会で話のネタに出来るくらいに分かった気になるトークをしたいと思います。
Raspberry Pi でLEDを光らせたりするのは、Python / C だけだと思っていませんか。
このトークでは電子工作の基礎から、PHP から Raspberry Pi の GPIO を制御する方法や、OSS のライブラリを紹介します。
そんな方の背中を少しでも押せたらいいなと思います。
Java Virtual Machine Specificationを読み解きながら、PHPでJavaのバイトコードを解釈し実際にJVMがどのようにして動いているのかを感じてもらいつつ、30億のデバイスで走るJavaの気持ちになれるようなトークをします。
PHPでJavaを動かすことによってPHPもまた、30億のデバイスで走る言語の一つとなります。
ユニットテストを書くにあたり、テスト初級者と中級者・上級者ではユニットテストの「質」が異なるでしょう。テスト初級者の書くユニットテストはすぐに破綻し開発体験を良くないものにしてしまいます。
これは、私自身がユニットテスト初心者を脱するために、改めてまとめることを試みた、よりよいであろうと調べ考えた方法と逆のアンチパターンについてです。
PHP界隈で最も普及したフルスタックフレームワークであるLaravel。
便利なフレームワークが持つ豊富な機能に”甘い”魅力を感じる一方で「なぜLaravelではファサードを採用しているのか?」、「なぜEloquent を採用しているのか?」と言った疑問を考えた事はあるでしょうか?
「“How” ages faster than “Why”(手段は本質よりも早く廃れる)」と言う言葉があるように、Laravelでのメソッドの呼び出し方は他のPHPのFWでは通用しませんし、他の言語でも意味をなさないもしれません。しかし、Laravelで採用されている技術やアーキテクチャは言語の壁を超えて流用ができると考えています。
この発表では0からフレームワークを作りながらLaravelで採用されているアーキテクチャが「なぜ良いのか?」っと言った視点で発表をしたいと思います。
リファクタリング、ナビゲーション、ファイルの移動、PhpStormをマウスを使って操作していませんか?
マウス、トラックパッドは窓から投げ捨ててしまいましょう。
マウスフリーになるPhpStormの知ってトクするショートカット、並びに便利技100選を紹介します。
このセッションを受講すれば明日から開発速度が100倍くらいになる!かもしれません。
PHPアプリケーションを持続的にメンテナンスし成長させるためには人手によるテストには限界があり、機械的な自動検査をすることが有効です。テスト機能を提供するフレームワークを利用していないコードベースであってもテスト可能にするための基本的な考えかたについて業務での事例を交えて紹介します。PHPUnitなどを使ったユニットテストの導入やPHPStan・Phanを使った静的解析、プロジェクト固有のローカルルールを検査するための正規表現ベースのチェッカーなどを扱います。
「抽象」という言葉に抵抗を感じるプログラマは多くいると思います。抽象的=フワっとしていて理解しづらいという抵抗や、抽象化=プログラムを分かりづらくするという抵抗など。では、プログラムを書く上で、抽象化は不要なのでしょうか?
この講演では、私達人間にとっての抽象化と、プログラミングにおける抽象化について掘り下げ、プログラミングにおいて役立つ抽象化がどのようなものなのかをお話します。
株式会社オウケイウェイヴ さまによるランチセッションです
PHPの現場の公開収録です。
収録した内容は以下URLで公開されています。
https://php-genba.shin1x1.com/28
昨年のベストトーク賞「SOLIDの原則ってどういうふうに使うの?」でも話題になったとおり、設計の難度を上げるのは「バリエーション」です。
そのバリエーションの発生パターンの見極め・予測法こそがプログラマーとしての経験値と言っても過言ではないと思います。
いざバリエーションが発生してから「しまった…!」とならないように、発生しうるバリエーションの予測精度を上げるには設計時にどこに注目・注意すればいいか?のコツをお伝えします。
社内ベンチャーやスタートアップでは少ない人的リソースで高速にプロダクトを開発していくのが重要です
しかしながら、大きなピボットや急な仕様変更の可能性も高く、こういった状況でのAPI開発は様々な課題があらわれます
このセッションでは上記の課題にどういう解決策を考え、BEAR.Sundayでどういったかたちで解決していったのか
そして、少し珍しいフレームワークであるBEAR.Sundayでの実務例をご紹介いたします
モバイルアプリ向けのAPI開発、今となっては当たり前の開発要件です。しかし、一般的なWebアプリケーション開発しか経験が無かった我々にとっては難しい課題でした。
プロジェクト開始から1年、ホームページ作成サービスグーペのiOSアプリは、2019年1月中旬にリリースする運びとなりました。初めてのRESTful API, 技術選定, 既存サービス向けのモバイルアプリ開発ゆえの課題, クラス設計, セキュリティ対策, プッシュ通知, 認証, チームコミュニケーションなど様々な課題がありました。
本セッションでは我々が経験した課題をどのように解決し何を学んだのか、プロジェクト全体を通じてご紹介したいと思います。特に今後新規でモバイルアプリを開発されるAPI開発者におすすめです。
HTTPはRPCではなく、RESTはHTTP上のCRUDシステムではありません。RESTはハイパーメディアアフォーダンスという発見性を持ち、進化可能性(evolvability)、スケーラビリティ、自己記述性、といったアプリケーションをパワフルにする力を持ちます。このトークでは、RESTの本来の力がアプリケーションにどのようにパワーとパフォーマンスを与え、アプリケーションアーキテクチャとどう作用できるのかフレームワーク製作者の視点を交えてお話します。
3ヶ月でphp5.5のサイトを7.2へバージョンアップリリースした過程の記録と現在のサイトの変化、そこから得た今後の対策についての3つの点からお話しします。
・phpバージョンアップでのプロジェクト体制や取り決めたルールと開発過程での数々のハマった課題を掘り下げリリースまでこぎつけた記録についての紹介。
・リリース後のサイトの品質やパフォーマンスの変化、当時同様にphpバージョンアップをしていた姉妹サイトとの比較や事例紹介。
・php7.3や今後のphpバージョンアップを見据えてやったこと、事前にやりたかったことの共有。
この数ヶ月、Rust版、PHP版ファミコンエミュレータを読み、Go言語に移植しています。
PHP版を元に、PHPでどのようにファミコンエミュレータを実装しているのか、Goで再実装した時に見えた違いなどを解説。
そもそも2019年にもなって何でファコミンエミュレータなのか、何が楽しいのか、魅惑のエミュレータワールドを通して体験できたコンピュータの世界をご紹介。
今話題のSwooleはPHPにイベント形式の非同期処理をエクステンションという形で導入することができます。これを利用することで、PHPのフレームワークを高速化してみようと試みます。一般に、フレームワークや外部ライブラリを利用していると、それらのソースファイルを読み込むために多くの時間がかかるようで、Swooleを使ってイベント形式のサーバを建てることで、この読み込みコストをほぼゼロにできると期待できます。今回はLaravelを例に取り、Swooleによる高速化の導入、及び、Swooleによってどれだけ高速化できたかを、apacheやfpmなどの別の形式のサーバと比較します。また、Swooleの導入によって発生する問題についても言及します。
日ごろからお世話になっているインターネット。
そのインターネットはネットワーク同士を接続した巨大なネットワークです。
そのネットワーク内でルータがどう動いているのか、ネットワークをつなげるためルータがどれだけ頑張っているのかを少しでも理解したいと思い、ソフトウェアルータを自作しました。
コアな部分はErlangで実装し、追加のモジュール部分はElixirで実装しました。
内容はL2、L3の実装、ルーティングの実装を行い、さらにL4以上をコントロールするためのモジュール実装をどのように行ったのかを話せればと思います。
ネットワークはアプリケーションにない面白いところが沢山あります。
あまり意識することのないネットワークに焦点を当ててみてはどうですか。
少しでもネットワークのことに興味を持ってもらえると嬉しいです。