最近はOpenAPIを利用したスキーマ駆動開発のお話をカンファレンスや勉強会などで聞く機会が増えてきました。
スキーマ駆動開発で利用されるOpenAPIの定義は、手書き派の方が多い印象ですが私はyamlの手書きがとても苦手です。
本セッションでは、以前から利用しているswagger-phpを利用したAPI仕様の実際の書き方から、OpenAPIを活用してどのような形で開発を進めているかをお話ししようと思います
話すこと
swagger-phpを使ったAPI仕様の書き方
OpenAPIを利用したスキーマ駆動開発の進め方
フロントアプリとOpenAPI定義を共有する方法
私がCIの書籍を執筆した2014年当時はまだCI/CDはそれほど普及してはいませんでした。10年の時が流れて、現在開発の現場でCI/CDパイプラインは当たり前のように利用されています。
皆さんの開発現場でもなんらかの形でCI/CDを活用していること思います。しかし、利用するのが当たり前になったためか、以前より様々な開発の現場でどのような形で何をやっているか?のような情報があまり出てこなくなったなーと感じています。
本セッションでは、10年前のCIの実行環境などを振り返りつつ、私が現在構築しているCI/CDパイプラインの内容について解説をしたいと思います。
話すこと
過去のCI環境の簡単な振り返り
私が現在運用しているのCI/CD環境とどんなことをしているか
みなさん様々な環境にPHPのアプリをデプロイしていることと思います。
PHPコミュニティでは、Azureを使った事例はあまり公開されていないように思います。
AzureにもPHPをデプロイするのに適した良いサービスがたくさんあるのですが、「Azureはどこから手をつけていいかわからない...」といった話を聞くことも多いです。
そこで、このセッションでは、AzuereでPHPを含む今時なWebアプリケーションを動かすことのできる様々な環境を比較しつつご紹介しようと思います。
想定する聴講者
PHPをAzureで利用する環境に興味がある方
Azureには興味があるが、どこから手をつけて良いかわからない方
Azure初心者〜中級者の方
2024/02/02 にPHPUnit 11がリリースされました。
前回のPHPUnit 10ほど変更量はありませんが、それでも無視できない変更がいくつかあります。
例えばデータプロバイダーからの名前付き引数が使用できるようになったり、Deprecatedになったメソッドが20個近くあったり・・・
今回のトークではPHPUnit 11で何が変わったのか、changelogベースで解説していきます。
必要に応じて、実際に動かしたりしながらの解説もしていきます。
https://github.com/sebastianbergmann/phpunit/blob/11.0/ChangeLog-11.0.md
https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-11.1.md
AWS AppSync は、データソースに対して GraphQL API を簡単に実装できる仕組みで、開発者はリゾルバーと呼ばれるコネクタ処理を記述します。
AppSync は Amplify でも利用されています。
ただ、これまでは VTL(Apache Velocity Template Language) で記述する必要があり、少し導入に迷うポイントでもありました。
しかし現時点では JavaScript を使ってリゾルバを記述できるようになっています。これを APPSYNC_JS と呼んでいます。
APPSYNC_JS になって、VTLよりも良いことだらけなのでは?と思って使い始めてみたが....
このLTでは APPSYNC_JS を使って開発して得られた良いところ、苦労することのナレッジを稲妻トークで共有していきます。
コロナ禍入社した新卒3年目のエンジニアがリモートワーク環境で働いて感じたあるあるネタを社内からも情報収集して語ります。
「失敗」「成功」「解決しない問題」などを盛り込みます。
パーソナルコンピュータの普及やスマートフォンの普及によって日本語入力をしていない日本人は殆どいないくらいコンピュータに日本語が入力されています。
ソフトウェアへの日本語入力を支えている技術にIME(Input Method Editor)というものがあります。
コンピュータ上ではローマ字入力、スマートフォン上ではフリック入力が一般的ですが世の中には様々な日本語入力方法があります。
本登壇ではIMEの基本的な仕組みについての解説をした上で、SKKや親指シフトや月配列などマニアックな日本語入力を紹介して日本語入力の魅力について話します。
また、今後の日本語入力がどう変化していくのかその可能性や課題について考察します。
想定聴講者
GAE(Google App Engine)は古くからあるPaaSで、PHPが利用可能です。
2024年1月末を持って、gen1 と呼ばれていた古い仕組みのサポートが終了するため、個人開発して細々と運用してきたWebサービスも重い腰をあげて gen2 PHP8.2へ移行することにしました。
そして1年間、隙間時間で少しずつ対応して gen2 PHP8.2 で動作するようになりました。
このセッションでは同じようにまだgen1で動いているサービスをgen2に上げたい人や、
これから GAE gen2 を使ってみたい、興味がある人をターゲットにしています。
について話します。
みなさん、PHP上のEnum値はデータベースにどのような値で保存してますか?
数値型? DB上のEnum型? それとも文字列?
「いやいやw 文字列で保存したらデータ量が無駄やんw」
「変な値入れられたらアプリがバグるやんw」
「速度的にどうなん?w」
という声もあるかもしれません・・・
それでもなお僕は言いたい
「Enum値は文字列で保存してクレメンス!」
このトークでは、アプリケーション開発者とデータ利用者との協業をスムーズにするためのアイデアを紹介します。
データベースに蓄積されたデータは、分析や集計、機械学習といったデータ活用を行うことでその真価を発揮します。
データ活用を行うのはWebアプリケーションの開発者ではなく、データアナリストやデータエンジニア、関連部署の社員(あるいは未来の自分)など、そのデータベースにあまり詳しくない人の場合が多いでしょう。
このトークでは、そういったデータ利用者にとって優しい(最短で理解できる)データベースをどのようにしたら実現できるのかについて、アプリケーションエンジニアからデータエンジニアに転身した筆者の目線からお話します。
【トーク例】
・自動でER図を生成! SchemaSpy!
・Enum値は文字列で保存してクレメンス
・データパイプラインが止まっちゃった! XXする時は教えてくれ!
サイボウズのGaroon開発チームは日本とベトナムにそれぞれ拠点があり、ベトナム拠点には70名以上のメンバーが在籍しています。
やりとりは主に英語でしていますが、日本メンバーもベトナムメンバーも英語は母語ではない人がほとんどです。
そんな日本メンバーとベトナムメンバーはどうやってコミュニケーションをとって開発を進めているのでしょうか?
ミーティングはどうしてる?なんでベトナム?ぶっちゃけコミュニケーションコスト高くない?
このトークではそんなGaroon開発チームの開発事情を赤裸々にお話しします!
■ 話すこと
LaravelやSymfonyで開発を行う際、デバッグ時にdd()をよく使います。
様々なオブジェクトを入れても表示してくれるし、ブラウザアクセスやコマンドなど実行形式に応じて表示もよしなに変えてくれるなんで便利ですよね!
ddそのものは各FW側のヘルパ関数として作られていますが、中身を見ると共通してSymfonyComponentであるVarDumper::dumpが呼ばれています。
このトークでは各FWで使われているsymfony/var-dumperライブラリの中身がどのような作りになっているかを追いかけます。
みなさんチームで学習していますか?
環境の変化が激しく不確実性が高いこの時代に適応していくためには学習は必須!
しかし自分一人だけ勉強してもモチベーションも続かないし、勉強したことをチームメンバーに教えるのも大変。
そこでチームみんなで勉強してみませんか?明日から始めることができる方法を紹介します!
みなさん!こんにちは!
日常的にPHPを使用した開発をするなかで、「自分って実はすごいことをやり遂げているのに、誰もすごさに気づいてくれない!」と思ったことはないでしょうか?
もしくはチームで開発した成果物に対して、本来は誇るべき成果であり、チームとして自信を持ちたいのに、「今回はここがダメだったから、反省すべき!」とネガティブな方向に話が進んでしまったことはないでしょうか?
このLTでは、私が開発現場で使っているマウンティングテクニック、いわゆるMX駆動開発とは何かを紹介します。
以下がMX駆動開発で成し遂げられることです。
・開発者として、自分の作った成果物に自信を持てるようになる!
・チームメンバーとマウンティングし合うことで、共通認識を持てる!→結果的に納得度の高い成果物を開発できる!
みなさんはこのLTを聞くことで、早速マウンティングをしてみたくなることでしょう。
サービスを運用していると利用しているミドルウェアのアップグレードや巨大なデータベースのテーブルへのインデックスの追加などメンテナンスを入れて行わないといけないオペレーションが出てきます。
本発表では私が行ったデータベース(Amazon RDS)のメジャーアップグレードを例に、運用サービスのメンテナンスをどのように計画、実施したのかを紹介します。
またメンテナンスでの反省から学ぶ、準備と対応の重要性、メンテナンスの計画/実施したことない方にもイメージしやすいようメンテナンス時に考慮すべき点についても紹介できればと思います。
話すこと
過去10年間PHPに触れ続けた人間がPythonを扱うようになった後、改めて感じたPHPの良さを語ります。
双方のコーディング体験の違いを経験し、Web開発のしやすさという観点においてPHPの方が良かったと感じる点があります。
PythonはシンプルでAWSとの親和性も高い言語ではありますが、コードの書き方やフォルダ構成の作り方に若干の癖があります。
これが、Web開発において、バックエンドとフロントエンドを分ける構造にすると、2つ以上の言語を行き来することになるので、より一般的なスタイルのPHPの方がわかりやすさを感じます。
本トークでは、双方のコードの実例を交えながら、発表者が感じたPHPの方が良かった点、双方共通の問題などを喋ります。
私がおよそ10年ほどエンジニアとしてお仕事をしてきたなかで、いろんなインシデント対応をしてきました。
その中であった「これは辛いよ〜〜」や「こうだったら辛いだろうな……」といった事項をできる限り詰め込んでお話したいと思います。
WEBサービスを運用するにあたって発生したインシデント対応系の辛いこと
ハードウェア的な問題のインシデントについてはお話しません
インシデント対応でどんなことが辛いんだろう?を知って、そうならないようにしたいと考えてくださる方
みなさまPHP "以外の" 言語を書いていますか?
書籍「達人プログラマ」では1年に1言語あたらしいプログラミング言語を学ぶことを奨めています。
目の前の課題が同じでも言語が変われば別のアプローチになるのはよくあることです。さまざまなアプローチを学ぶためにもさまざまな言語を学ぶのは良いことです。
ところが、そうやって学んだ「他の言語でよくやるやり方」をそのままPHPに持ってきても上手くいかないものです。
言語を超えて適用できるベストプラクティスとはどのようなものか、PHPで推奨されるPHPらしい書き方とはどんなものなのか、このトークで一緒に考えてみませんか?
みなさまデザインパターンは好きですか?
一部プログラマ界隈では「デザパタは麻疹(はしか)」と揶揄されて忌み嫌われて(?)いますね。
なぜデザパタは嫌われるのか、デザパタに罹って治ったあとに何を学べるのか、デザパタのあるある言いたい、など。プログラマの"はしか"ことデザインパターンについてさらっと話します。
エンジニアにとってドキュメンテーション・技術ブログ・業務でのチャットコミュニケーションなど文章を "書く" 技術は重要ですよね。
とはいえエンジニアは文章の専門家ではありません。そのため文章を書くのに苦手意識を感じつつ悪戦苦闘している人も多いのではないでしょうか。
テキストアウトプットはメリットが多い、にもかかわらず文章術の学び方やノウハウはあまり出回っていません。
今回はブログがバズってるわけでもなく文章で食ってるわけでもない私が、苦手意識を克服して普通に書けるようになるまでに学んだことを振り返ってみます。
普通のエンジニアが普通の文章を書く技術を知って、テキストアウトプットのメリットを享受しませんか。