12月1日、東京都大田区産業プラザPiOにて「PHPカンファレンス2019 」が開催されました。本稿ではその模様をお届けしています。今回は、GMOインターネットのスポンサードによるPHPのコミュニティのセッションと、弁護士ドットコム、BASE、PHP技術者認定機構のセッションをレポートします。
「コミュニティアップデート powered by GMOインターネット」
このセッションでは、各地のPHPコミュニティやカンファレンスの運営者による、それぞれのコミュニティの紹介が行われました。
司会は成瀬允宣さん(@nrslib ) 、登壇したコミュニティの方は、PHP勉強会@東京の向井賢一さん(@mukaken ) 、PHPerKaigiの長谷川智希さん(@tomzoh ) 、Laravel Meetup TokyoのKurikazuさん(@kurikazu ) 、PHPカンファレンス北海道のMakiさん(@makies ) 、PHP仙台の木村俊彦さん(@taiko19xx ) 、Nagoya.phpのttskchさん(@ttskch ) 、Kansai PHP UGの田中ひさてるさん(@tanakahisateru ) 、山隠ぺちぱーずのryerさん(らいあ;@ryer )、Fukuoka.phpの市川さん(@cakephpher ) 、PHP沖縄のカンボさん(@kanbo0605 ) 、マイアミ SunshinePHPのAdam Culpさん(@adamculp ) 、その通訳サポートのイアンさん(@brison_ian )です。Slackも連動させて、登壇横のスクリーンにその書き込みを表示しながら進行しました。
各コミュニティの登壇者ら(撮影:山本ノリコ)
ここではセッション中の会話をいくつか拾って、各コミュニティを紹介します。
司会の成瀬さん(撮影:松浦麻奈未)
PHP勉強会@東京
向井「PHPユーザー会に所属し、ユルフワな団体です。PHP勉強会は毎月最後の水曜日開催していて、参加者の半分が初心者です。2005年の10月から開催して15年続いています。開催数は前月で144回を超えました。勉強会が終わったあとにPHP勉強会に参加して良かった、などのツイートを見て一喜一憂してます。次回は12月25日に開催します」
PHPerKaigi
長谷川「2018年に開催、次回3回目の技術カンファレンスです。始めたきっかけは、PHP福岡で技術を永遠と話ができることに気づいて主催することにしました。複数日開催やサイドイベントをやるのがPHPカンファレンスとの違いで、このカンファレンスは文化祭であり同窓会みたいな感じです。これとは別にソフトドリンクを主体のイベントにGMOさんが協賛しているPHPer茶会の勉強会を企画してます。今、PHPerKaigiはスピーカー募集してます。明日まです。LTルーキー枠を用意してます。LTルーキー枠は事前練習を開催してます。まずは、参加してみましょう!」
向井「ルーキーズは人気あるんですか?」
長谷川「ねらい目です!」
Laravel Meetup Tokyo
Kurikazu「Laravelにまつわる話とPHPにまつわる話をしてます。実は、PHP勉強会@東京の向井さんが最初に始めました。スタッフの竹沢さんと私のスケジュールが空いていると開催されます。connpassで募集してます。以前は募集しても参加者が少なかったですが、Laravel人気とともに東京だと60〜80人が埋まります。Laravelは自由に実装できるフレームワークなので、設計の話がでてくるのが面白いです。LaravelハンズオンやLaravel渋谷なども開催されています。Laravel JPカンファレンス、絶賛トーク募集中です」
(撮影:松浦麻奈未)
PHPカンファレンス北海道
Maki「北海道と美味しいものを食べにくればいいという感じのカンファレンスです。来年ぐらいに大型なカンファレンスをやりたいです」
向井「北海道といえば、食べ物がおいしいので、そういう目的で行ってもいいんですか?」
Maki「そういう目的でおいでよ?という意味もありました。大通り公園で毎年9月に美味しいものが食べられるので、そこにあわせて開催しています」
向井「来年オリンピック開催ですね」
Slack「北海道たのしかったなー」
Slack「北海道いきたかった」
PHP仙台
木村「本来は代表の五十嵐さんがくる予定でした。代打で来ました。今年の3月に第1回目を開催しました。来年の開催も決定していますが、日時はまだ決まっていません。オリンピック後にやりたいです。参加者は地元民が300人ほど。懇親会のほうが多いくらいの人数でした。国内で、ペチコンというようになったのはPHP仙台からな気がします」
Maki「PHPカンファレンスで検索すると北海道が出てくる!」
カンボ「私は沖縄が常に上に出てきます」
木村「今日は一番下ですね」
Maki「東京は東京ってつけてほしい!」
Nagoya.php
ttskch「2014年から開催している勉強会で、頻度は隔月で20人くらい。登壇する勉強会とか違い、もくもく会に近い勉強会です。最初のほうは、週末に3時間集中してやっていました。プログラミング問題を手を動かして解こうというのが特徴です。最近は平日夜開催に変更しました。そうなると問題解く時間は40分と短くなるため、問題の選定に苦労しています。ほかの特徴として、PHP勉強会@東京の全員自己紹介をパクって、PHP暦を聞いています。PHP暦15年から0秒という人もいました。初心者でも達人も楽しめる勉強会にしています」
向井「全員で自己紹介が一番いいって言われたことがあります」
長谷川「全員で自己紹介はコンテンツですよね?」
Slack「福岡でも自己紹介を最近はじめました」
ttskch「名古屋は問題を解きたいので自己紹介15秒です」
一同「笑」
(撮影:松浦麻奈未)
Kansai PHP UG
田中ひさてる「東京の次に古いカンファレンスです。2019年のカンファレンスは他地域が多いので、来年のカンファレンス開催に乞うご期待! 場所は梅田かな? いままでもグランフロントでやっていました。東京は毎年でいいですが、ほかのところは交代交代でやりませんか?」
向井、長谷川「毎年やらないと困ります! スタンプラリーが厳しくなる一方です」
山隠ぺちぱーず
ryer(らいあ)「 島根と鳥取の山陰地方で開催しています。2017年にできたコミュニティーで、もくもく会や勉強会を開催してます。Rudyの創始者が松江に住んでいて、行政がRudyを押している、そのRudy城下町であえて、PHP勉強会を開催しています。開催すると30人ぐらい来ます。半分以上は県外からです。山陰地方にPHPerがいるのか?ということで島根のIT企業に『メイン業務でPHPを使っている』のかアンケートをとってみたところ、結果は15%でした。また、技術者のスキルをアンケートすると、4割PHPができると返答ありました」
Slack「隠れPHPerブーム」
長谷川「青い宝石(Rubyが赤い宝石なので)出してやりましょう。PHPワールドカンファレンスやりましょう!」
Fukuoka.php
市川「2012年から隔月くらいで勉強会を定期的開催して、だいたい20人集まります。ほとんどPHPの話を少ないが、移住してきた人にPHPerがいることを示めせればと、技術者同士のコミュニティーの場となっています。今年からPHPカンファレンス福岡を開催しました。300名ぐらい集まりました。5割ぐらいが福岡九州圏でした」
ryer(らいあ)「 人材ブラックホールですよね!」
ttskch「カンファレンスやってるんで福岡にPHPer多いはずなのに20人? 隠れPHPer? 20人固定メンバーですか?」
市川「10人固定メンバーで、10人ずつ新規メンバーですね」
(撮影:松浦麻奈未)
PHP沖縄
ガンボ「2年半前に移住して、今年初めてPHPカンファレンスを主催しました。経験者に聞きながら、カンファレンスを開催しました。カンファレンスは150人集まりました。地元は4割の参加で、北海道や台湾からも来てくれました。スピーカーとのやりとりですが、英語が苦手だったので、Google翻訳を駆使し乗り切りました」
Slack「今年はPHPカンファレンス沖縄のために1週間休みをとって、娘と2人で沖縄満喫してきました!」
Slack「海外から来るのもいいですね」
ガンボ「また、Laravel meetupを10回開催してます。他にもやOkinawa.phpをやっています。沖縄の技術コミュニティが多数立ち上がっていて、インフラ勉強会など、いろいろな勉強会が開催されており、言語の縛りが薄い集まれます。小さな勉強会を開催しても、旅行ついでに県外から参加する人も多いです。映像でつないで、サテライトでトークすることもあります。参加者は6割が県外から、4割が地元からです」
マイアミ SunshinePHP
Adam Culp「マイアミで開催するSunshine PHPを、8年前に立ち上げました。マイアミの人にとっては他の地域のPHPカンファレンスに参加するのは旅費の負担が大きかったのです。ちなみにアメリカには、8個のカンファレンスがあります」
Slack「アメリカ国内に8個って少なく感じる」
Slack「日本が多いのでは…」
Adam Culp「カンファレンス主催者とみんなで協力してます。それとPHPを発展させたいので、ノウハウを共有しています。今ではアメリカ内でSunshine PHPが最も大きいPHPコミュニティに成長しました。ユーザーグループが1,100人を超えて、毎週木曜日にみんなで集まります」
長谷川「カンファレンスは何日やってるんですか?」
Adam Culp「3日間。最初の1日は朝と夜の3時間、それぞれ4コース準備しています。合計10セッションあります。カンファレンスを聞いて帰るだけなら、YouTubeと一緒です」
長谷川「チュートリアルは一度やってみたいけど、すごく大変ですよね」
(撮影:松浦麻奈未)
フリートーク
各コミュニティの紹介の後には、登壇者らによるフリートークが行われました。そこでは、集客についての悩みや、イベントでの発表について気軽に声をかけてほしいこと、いつか各地域コミュニティで調整して1週間連日でイベント開催してみるのはどうかという話、カンファレンスがボランティアに支えられていたり・興味をもっている人に手伝ってもらっていたりして成り立っていることなど、様々な話題を取り上げていました。
狩野秀明さん「「弁護士ドットコム」を作り続ける開発組織について」
弁護士ドットコム Tech Leadの狩野秀明さんは、開発組織が最も大切にしている「人」について、そして組織の変遷と文化について話しました(発表資料 ) 。
狩野さん(撮影:萩原崇之)
課題に合わせて柔軟に変化
弁護士ドットコムでは機能別組織、事業部別組織、マトリクス組織と、それぞれの組織体制をとるなかで発生した課題の解決を目的として、柔軟に組織体制を変化させていることを紹介しました。
機能別組織では、エンジニアの仕様理解が十分にできなかったことで、コードが複雑になってしまうという課題がありました。その課題を解決するために事業部別組織に移行しましたが、事業部ごとのエンジニア同士の会話が減ってしまい、知識が事業部内に閉じてしまうという課題が発生しました。現在は機能別組織、事業部別組織それぞれの利点を盛り込むべく、マトリクス組織を採用しています。現状の組織体制も課題が出てきた場合にその解決に向けて組織体制を変化させる可能性があるとのことです。
すべては「サービスの成長」のため
また、「 専門家をもっと身近に」という理念のもと作りたい機能がたくさんあるなかで、限られたリソースを効率的に投入すべく、チームとしてアジャイルな開発に挑戦しているとのこと。サービスの成長のために必要なことは、職種関係なく提案してチームとして解決を試みているそうです。事業のコアとなる機能は堅実な作りで安定したサービス提供に注力する一方、新規事業やリスクの小さい案件では、Bear.Sundayを利用するなど技術的なチャレンジもしていると紹介しました。さらに、自社運用をしていたインフラをマネージドサービスに置き換えることで、インフラチームの負荷を減らして、よりサービスに注力できるような技術を選定していると語っていました。
カイゼンを支える文化
社外のエンジニアとのコラボレーションを目的とした、タピオカLTやRESTful WEB APIs読書会など勉強会を主催したり、チームの成長と理解を促進するための必読書の設定、書籍購入の補助にも積極的であることも取り上げました。特に、毎週金曜日をTech Focus Dayとしてミッションごとにチームを組織して、技術的負債の返済やサイトのスピード改善などユーザーのためのカイゼン活動にも注力しているそうです。会場からもこうした取り組みについて、より詳細な内容を知るために質問が投げかけられていました。
狩野さんは「このような組織体制、文化の中で共通のマインドセットを持ち、職種にかかわらずチームメンバーにリスペクトを持ってコミュニケーションをとることができる『人』を大切にしている」と締めくくりました。
天重誠二さん「MVCにおける「モデル」とはなにか」
弁護士ドットコム エンジニアの天重誠二さんは、MVCモデルとは何かについて、ドメインモデル、メンタルモデルそして設計について話しました(発表資料 ) 。
天重さん(撮影:杉本展将)
天重さんは業務での経験やDCIアーキテクチャとの出会いから、MVCはフレームワークとして表現されるソリューションというより、一般的な問題であるとの思いを抱くようになったと言います。
ドメインモデルとは
今回の発表では、飲食店での注文処理フローと複写式伝票を例に、ドメインモデルを説明しました。ここでいうドメインとは問題領域であり、ビジネスの目的「お客さんの食べたいものを提供する。利益をあげる」であるとします。またドメインモデルとは解決領域であり、ビジネスを駆動する手段「調理する。注文を受ける。伝票によって厨房とホールが情報を伝達する」であるとします。こうした視点からドメインモデルとは、「 ドメイン(目的)を情報処理システム(手段)によってモデル化したもの」であると語ります。
しかし、このように形成されたモデルは「いったい誰のためのモデルなのか」という疑問が生まれると語ります。
メンタルモデルとは
次にメンタルモデルを説明するにあたり、左右という観念が上下のスイッチ操作に対応づけられているスーパーカブのウィンカーの例を挙げました。『 誰のためのデザイン?』( D.A.ノーマン) では、道具から適切なメンタルモデルを構成するには「可視性」「 よい概念モデル」「 よい対応づけ」「 フィードバック」が重要であるとします。さらにアラン・ケイの論文『コンピュータソフトウェア』から、コンピュータの操作は粘土と違ってあまりに間接的でメンタルモデルを構築しづらいことを示します。また、D.A.ノーマンとアラン・ケイを対比させながらそうしたギャップを埋めるための「ユーザーイリュージョン」の重要性を説明しました。
MVCとは
そして、既存のコンピュータプログラムにあるようなユーザーとシステムの間にあるギャップに注目しました。こうしたギャップは、ユーザーのメンタルモデルとコンピュータが表現しているドメインモデルの間に差があることから発生するものだと指摘します。MVCモデルにおいては「Controller」と「View」がそうしたギャップを埋めるための「ツール」であり、ユーザーのメンタルモデルを反映したコンピュータモデルとその背後にドメインモデルが存在すると説明しました。また、人間が仕事を楽しむためには、システムによって業務を強制されず、システムをコントロールしているという実感をもつことが必要であることも強調しました。
最後に、天重さんは「プログラマも『そのデザインは、いったい誰に力を与えるものなのか』を問うべきである」と結びました。
東口和暉さん「知見のない技術スタックをプロダクション導入するエンジニアの導入戦略」
BASEの東口和暉さんは、「 知見のない技術スタックをプロダクション導入するエンジニアの導入戦略」というタイトルで発表しました(発表資料 ) 。
資金調達サービス「YELL BANK」は約5ヶ月の開発期間ののち、2018年12月にリリースしました。このとき、既存サービスで運用経験のなかったプログラミング言語(Go)を用いたシステム開発を行ったそうです。今回はその開発における戦略について話しました。
東口さん(撮影:杉本展将)
知見のない技術スタックを扱う不安にどう取り組むか
エンジニアリングを行うなかで技術選定という作業は欠かせません。東口さんは、技術選定をする際にさまざまな観点から技術選定をすることになると言い、たとえば学習コスト、メンテナンス性、パフォーマンス、チームでの運用実績などなど多岐に渡ると語ります。その判断軸に関して次のように述べました。
「判断軸は、要件によってどの観点が重視されるかで異なります。結果的に、運用実績がない技術のほうがマッチしそうなケースもあることでしょう。しかし、運用実績のない言語やフレームワークは意思決定において、『 未知への不安』が重くのしかかります。未知への不安、知見がない故に尻込みしてしまいます。結果的にフラットな意思決定から遠ざかってしまうのです。
この不安をさらに深掘りすると見えてくるのは、将来の成果物の品質に対する不安となってくるようです。この品質の不安にどう立ち向かうか。個人で学んだところで、業務で開発しないと分からない壁はあります。いわゆる『開発・運用の知見』と呼ばれるものです。これらはやりながら知見を得てプロダクトに反映していくしかないことになります。いかに多く学び、すぐに反映するか。これが重要になってきます」( 東口さん)
実際に不安の要因に対してどう取り組んでいくか
いかに現場の知見を得るかという観点では、無戦略でなんとなくやっていても得られるものは少なく、多くの知見を得てサービスに反映させるための導入戦略を考える必要があります。そのためには、「 情報収集や体験といった『具体』 、抽象化・モデル化・パターンの発見といった『抽象』 、実践や検証といった『応用』 、これらのサイクルを回し、多く学びすぐ反映させることが重要となってくる」と説明しました。
テスト・コード検査・監視を武器に立ち向かう
テストは欠陥を防ぐ用途に向きがちですが、それだけではなくテストコードを設計道具として使うことで設計に対するフィードバックを得ることができます。つまり、テストコードを書くことでコード設計の良し悪しを体験できます。その体験から、当該技術において内部品質のより高いコード設計を目指す気づきが得られることを紹介しました。
また、安定運用への懸念事項として動かし続けないと分からないことがあります。リリースと同時、あるいは直前から動かし始めるのでは、気がつけない落とし穴があるかもしれません。そのためにもプロジェクトを早期からデプロイしておくことで稼働状態を監視し続けられるとし、BASEではアプリケーションからデータベースへの疎通確認が突然途切れたことがあり、アプリケーションの設定の不足を発見したことを取り上げていました。
最後に、東口さんは今回発表した「知見のない、つまり運用実績のないことが技術選定の意思決定において重しになりうること」「 運用実績のないものをいかにスピーディーに学び品質を上げるか」について、その重要性をまとめて締くくりました。
吉政忠志さん、徳丸浩さん「徳丸先生による徳丸試験例題解説とPHP7初級書籍贈呈キャンペーンと市場動向」
PHP技術者認定機構の吉政忠志さんが、PHPの市場動向や、実施しているPHP試験や通称徳丸試験などを紹介しました。徳丸試験の解説のために、徳丸浩さんも登壇しました。
吉政さん(撮影:Shunsuke Hiranoさん)
PHPの市場動向
吉政さんははじめに、PHPの市場動向を取り上げました。W3techsによる2019年の調査では、世界中のWebアプリケーションの78.9%がPHPで作られていると言い、PHPエンジニアの求人率も増えていることを紹介しました。また、Webアプリケーションの中でもWordPressのシェアは大きいことも取り上げました。
各試験の紹介
WordPressはカスタマイズ性に優れていますが、大きくカスタマイズをすることによって重たくなりがちです。これを解決するためにWordPress用にチューニングされた実行環境「KUSANAGI」があり、そして来春にはKUSANAGI for WordPress試験を開催予定であることを紹介しました。
PHP技術者認定試験についても紹介しました。上級者の試験の合格率は9.8%となっているそうです。現在、「 受験宣言をすることでPHP初級本をもらおうというキャンペーン」が行っていることを取り上げ、このキャンペーンに参加してもらえるPHP初級本でも学んで試験に臨めると宣伝しました。
徳丸浩さんは、通称「徳丸試験」と呼ばれるによるWebセキュリティ試験を紹介しました。その基礎試験の主教材は『体系的に学ぶ安全なWebアプリケーションの作り方』だと言及し、いくつかの試験問題例を取り上げ、解説を行いました。
基礎試験ではPHPなどの特定言語に依存しないそうです。とても基礎的な問題ですが、それでも意外に点数がばらけてしまっていると述べていました。こういった試験を活用して自身にセキュリティに関する漏れがないかを確認してほししいと発表を締めくくりました。