テストコード書いてますか?
書いてる皆様、 クラウドマネージドサービスが関連するアプリケーションでもテストコードを書けてますか?
継続開発が続く程重要性が高まるテストコードですが、今回はマネージドサービスが関連する場合について考察します
マネージドサービスが関わるアプリケーションの場合、
テスタブルになるようにどの様に分割して実装すればよいのか、
CI/CDでテストする為にどのようにエミュレートするのか考慮すべき課題があります
今回はAWS Lambda上で動作するPHPサーバーレスアプリケーションを題材に
Amazon S3、Amazon DynamoDB等の代表的なマネージドサービスのテスタブルなアプリケーションコードを具体的に示しながら考察します
PHPは様々な技術要素を組み合わせて動いています
カスタマイズ性という観点では非常にポジティブな要素ではあるのですが、
初めてPHPを動かす為には「環境構築」という障壁が存在します
今回はサーバー上でPHPを動かす為に必要な要素を解説しながら、
yumやdnfなどのパッケージ管理ツール、configureやmakeにも触れ、
phpenvやasdfが行っている事も覗きながら、PHPの環境構築についてお話します
soファイルとは何なのか、Apache + mod_phpとphp-fpm + Nginxの仕組みの違いについても触れ、
php.iniでどのように制御しているか解説します
PHP動作の仕組みを知り、理解してPHPを動作させましょう
本トークでは、Laravelで作られた基本的なウェブアプリケーションを例に上げて、ウェブアプリケーションのチューニングとはどのようなことをすればよいのか?どのような原因でウェブアプリケーションが遅くなるのかを説明し、その対処法について紹介します。
本トークで話す内容
「愚者は経験に学び、賢者は歴史に学ぶ」
オットー・フォン・ビスマルクの格言です
私はPHP4から少しづつ進んできたPHPの変化を感覚として捉えていますが、
言語化出来るレベルでの理解が出来ていないと気付きました
今回はオンラインリソースを駆使することでPHPの歴史を振り返ることで、
PHP、ひいてはPHPコミュニティの選択を振り返ってみようと思います
私と一緒にPHPの歴史を振り返りながら、この日本でPHPのカンファレンスが生まれるまで成長してきたのかを学べればと思います
現場で働くうえでよく分からん&ほぼ必須な要素としてGitが存在します。
とはいえ、gitについて調べても「 commit や push みたいな基本操作は分かるけど、深いところが何も分からん……」となりがちではないでしょうか?
このトークでは、ベテランエンジニアはなぜか知っている git 知識についてお話ししようと思います。
OSSのコントリビュートは誰でも可能です。
開発経験を積みたい人や、所属組織外の人からコードレビューを受けたい!という人にとって
OSSコントリビュートは副業に比べて低いリスクで開発経験を積むことができます。
本トークでは貢献の仕方・手法をご説明したうえで、Laravelを使ったOSS/ECパッケージ「Laracom」を動かしながら、コードを一緒に読んでみようと思います。
初心者でもやっていけることをやることでオープンソースに貢献をすることで知見が得られ、
エキスパートへの道を一歩踏み出すきっかけになれば幸いです。
開発生産性の指標の1つに「デプロイ頻度」があります。
開発に2,3ヶ月程度かかる大きめの機能開発で、機能をまるっと作ってからリリースしようとしたら、このデプロイ頻度が落ちてしまいました。
また、プルリクエストが肥大化して、レビューが複雑になることもあり、不具合や障害が発生しやすくなっていました。
このトークではそんな大きめの機能開発でも、設計とタスク分割を工夫することで、テストコードも実装しながらデプロイ頻度を上げたチーム開発の事例を紹介します!!
どさんこ: どさんこワイドの奥さんお絵かきですよを現地に見に行ったことはありません
多くのPHPerは日常的にGitを使用していると思いますが、理解して使いこなせているでしょうか?
このトークは、新卒入社したばかりのPHPerやGit初級者に向けて、チーム開発におけるGitの“使いこなし方“に焦点を当て、実践的なノウハウをお届けします!
commit&pushしているだけの「ただ使う」レベルから、わかりやすいPRを作るために適切なコマンド/オプションを選択できる「理解して使う」レベルへとステップアップし、今よりもっとチーム開発を楽しみましょう!
どさんこ: 生まれも育ちも自然豊かなでっかいどうで育ちました
PHP を含む、クラスベースのオブジェクト指向プログラミング機能を持つ言語(あるいはそれ以外の言語でも)インターフェースを利用できます。
アプリケーションの実装上の設計を考えたことがある人は、インターフェースが使えると何が嬉しいのか?どんな場面で使えばよいのか?と思ったことがあるのではないでしょうか。
本トークでは、また設計の文脈で聞いたことがあるかもしれない「腐敗防止層」というワードとともにインターフェースの使い方、ひいては設計全般に通用する考え方をお話します。
以下を満たす方が聴講することを想定します。
フレームワークに備わっているようなクエリビルダや ORM、便利ですね。
一方で「この SQL 文はクエリビルダの機能では表現できないな」「長年使われてきた秘伝の SQL 文があってな......」といったケースで生の SQL 文を使わざるを得ない、というケースがあるかもしれません。
そこで今回は以下の 3 つの手段で生 SQL を扱う方法を説明します。
みなさんはローカル環境で開発を行って本番環境へデプロイするまでどのように実施していますか?
実はここでお話する取り組みは今も絶賛進行中だったりするものもあります。
出来らあっ!!という気持ちからコンテナ化を進めることになり、ローカル環境整備やデプロイフローの改善といったものへ繋がっていきました。
このトークでは、
といったことを話していこうと思います。
GraphQL はクエリ言語を用いて、クライアントが必要とするデータを API に 過不足なく伝達できる という、 従来の REST API では実現が難しい機能 が利用できます。
GraphQL はさまざまなプログラミング言語でサポートするためのライブラリが用意されており、 PHP 用のライブラリも用意されています。
本トークでは、 GraphQL の基礎を説明したあと、 Laravel で GraphQL サーバーを実装する方法を紹介します。
Laravel の GraphQL サーバーライブラリとして、 Lighthouse を利用します。
GraphQL の基礎を学び、 API サーバーを実装してメリットを体感してみませんか?
みなさん様々な環境にPHPのアプリをデプロイしていることと思います。
PHPコミュニティでは、Azureを使った事例はあまり公開されていないように思います。
AzureにもPHPをデプロイするのに適した良いサービスがたくさんあるのですが、「Azureはどこから手をつけていいかわからない...」といった話を聞くことも多いです。
そこで、このセッションでは、AzuereでPHPを含む今時なWebアプリケーションを動かすことのできる様々な環境を比較しつつご紹介しようと思います。
想定する聴講者
PHPをAzureで利用する環境に興味がある方
Azureには興味があるが、どこから手をつけて良いかわからない方
Azure初心者〜中級者の方
現代のコンピュータはハードウェアから私たちプログラマが書くプログラムの動作までの間が多くのレイヤーに分けられて動作しています。
レイヤーは自分より下を抽象化し、下のレイヤーを詳しく理解しなくても多くの場合プログラマはプログラムを書けます。
一方、プログラムが期待した様に動作しない時には下のレイヤーの動作の理解が問題の解決の助けになることもあります。
このトークでは私たちが愛するPHPをスタート地点にして、「CPUによる"プログラム実行"」「 PHPやJavaとC言語の根本的な違い」など、コンピュータプログラムがどの様に動作するのかを解説します。
コンピュータのレイヤー構造を理解すると、いままでは見えていなかった角度からプログラミングを楽しめるようになります。
このトークを通じて、低レイヤーが好きになったり、いろいろなレイヤーで面白いことをしたりする方が増えることを期待しています!
PHPでメールサーバからメールを取り込みたいと思ったことはありますか?
メールと言えばPOP3/IMAP4ですのでPOP3やIMAP4を使えば良さそうですが自分でPOP3/IMAP4を喋るのはややシンドイですね。
このトークではPHPでメールをメールを取り込むにはどうしたら良いか、そして最も広く使われているであろうメールサービスのGmailからメールを取り込む方法をお話します。
インターネット黎明期から存在するインターネットメールに放たれる自由奔放なメールは素手で立ち向かうにはやや手強い。
このトークがメールと戦うみなさんの力となることを祈っています。
令和になっても相変わらず紙の書類の需要は大きく、Webアプリ開発においても帳票印刷機能は多くの案件で要求されます。
しかし、これがとにかく面倒くさい。
帳票印刷機能を実装したことのある方には強く共感していただけると思います。
そんな面倒で難しい帳票印刷ですが、実は私は既に数年前に最強無敵のソリューションを編み出し済みです。
という条件を満たせる唯一(当社調べ)の方法です。
このトークでは、この至高のソリューションを具体的に解説します!
API Platformは、SymfonyをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュートを1行追加するだけで一瞬でREST APIを作れてしまう優れもので、
Symfonyのエコシステムにおいては既に決定版となっています。
しかし、ある程度複雑なことをしようとすると途端にフレームワークについての深い理解が求められたり、
痒いところに手が届かず強引なワークアラウンドが必要になったりするという面もあり、入門と実戦の間には大きな隔たりがあります。
このトークでは、API Platformの導入方法から基本機能の概要、さらには実践投入に向けた各種ワークアラウンドや実装テクニックを、
実際に動作するデモをお見せしながら丁寧にご紹介します。
API Platformの実戦投入、あるいはその検討の一助になれば幸いです!
PHPは現在のところ、毎年何らかの新バージョンをリリースしています。
大体毎年11月末〜12月にリリースされることが多いです。
さて、PHPカンファレンス小田原の時点では4月です。
このときにはPHP Internalsはどうなっているのか、新機能はどうやって決まっているのか、
alphaとかbetaとかって何?などをお話します。
ぜひ最新のPHPのキャッチアップに繋げていきましょう。
アブストラクトマシマシ・シンタックス少し・ツリーマシマシ。このような呪文を見かけたことはありませんか。そう,二郎系ラーメンです。この呪文を「コール」と呼び,ラーメンの着丼前のトッピングとしてヒアリングされます。一見,二郎系ラーメンのコールは複雑そうに見えますが,ある一定の法則性があります。そしてスタッフは法則性に基づいて解釈し,ラーメンにトッピングをします。似たようなのを見たことがありますね。そう,お察しの通りプログラミング言語の構文解析器です。例えばramen(1, 2)という構文はramenという関数をコールし,1と2という引数を与えます。つまりトッピングです。このようにramenという関数の引数は 2つで…といった意味を与えるのが構文解析器です。
本トークでは,PHPで構文解析器で専らよく使われるAST解析を実装するにはどうしたらよいか,二郎系ラーメンのコールを題材として解説します。
何度も遭遇する PHP の「Allowed memory size of ...」。しかし、結局解決方法がわからず、最後には「ini_set('memory_limit', -1)」でその場を凌ぐという苦い経験をした方も多いのではないでしょうか。
PHP ではガベージコレクションもそれなりに発達しており、メモリを気にしないで書けるから良いと思っている人も少なからずいらっしゃると思います。
しかし、裏を返すと、メモリについてあまり考える機会がないとも言えます。PHP7.4 から弱参照といった機能も入り、メモリ管理に少しずつ関心が寄せられてきているのではないかなと思います。
そこで本トークでは、PHP でメモリ管理から逃げないようにするためには,PHP のメモリ管理の仕組みから,どのようにすれば省エネにメモリを使えるか、書き方のヒントまで含めてお話できればと思います。