HEARTBEATS

はじめまして。開発事業部の田村@idubmorganです。

弊社ハートビーツは 2019/12/1(日) に開催された PHP Conference Japan 2019 (以下、phpcon2019)にシルバースポンサーとして参加させて頂きました。

当日、弊社展示ブースで開発環境に関するアンケートを実施させていただきました。

今回は、下記について書きます

  • アンケートの結果から見た PHP の開発現場の現状
  • 「弊社開発事業部の開発環境」の紹介

PHP Conference とは

  • 日本PHPユーザ会主催の今回が 20 回目(!!)の開催となった国内最大級の PHP の祭典
  • 今年の来場者数は 1,400 名超え!!
  • 世界で最初に開催された PHP のカンファレンス

アンケート/結果

グラフ_fix.jpg

アンケート結果から見た PHP の開発現場の現状

まず回答者について見てみます。

回答者: 「バックエンドエンジニア」 61 % / 「フロントエンジニア」 19 %

  • phpcon2019 にはバックエンドエンジニアが多く来場されていたようです。
  • インフラエンジニアの方からの回答は僅かでした。

上記を踏まえ、以下の回答は、バックエンドエンジニア中心のものである事を念頭に置いて見ると良いでしょう。

UnitTest: 「書いている」 69 % / 「しっかり書いてる」 は 17 %

  • 「しっかり書いている」/「部分的に書いている」を合せて、69 %のエンジニアが UnitTest を書いています
  • しかし、「しっかり書いている」は 17 %に留まり、UnitTest を導入したものの、試行錯誤中である事が多いと推測しました。

E2E のテストの自動化: 「していない」 58 % / 「部分的にしている」 32 % / 「している」 10 %

  • 私自身は E2E テスト自動化をしておりませんので、「部分的にしている」/「している」の計 42 %は予想より多く感じました
  • アンケート結果からは「部分的にしている」が「意図的に」なのか「すべての自動化を目指している途中」なのかは読み取れません。
  • E2Eのテストは導入より保守が大変、と聞きますのでこのあたりに興味が湧きます。

コード管理: ほとんどの現場が Git を採用。ホスティングサービスは GitHub がダントツ

  • ほとんどの方が Git を利用しています。
  • ホスティングサービスは GitHub がダントツでした。

開発環境: 仮想環境が多い / 「docker-compose」 54 %

  • 仮想環境で開発されている方が多いようです。
  • 「docker-compose」が 54 %と最も多く、次いで「Vagrant」が 24 %。
  • Vagrant から docker への移行が進んでいると推測しました。
  • 共有開発サーバは 16 % と少ないものの残っています。

CI(継続的インテグレーション): 「やっている」 67% / 実行環境は票が割れ、「Jenkins」 40 % / 「CircleCI」 35 %

  • 総合すると、「やっている」 67%、「やっていない」 33 % でした。
  • 実行環境は票が割れました
  • 「Jenkins」 40 % / 「CircleCI」 35 % / 「AWS CodeBuild/CodePipeline」 21 %
  • 「AWS CodeBuild/CodePipeline」 の 21 %について、クラウドベンダー提供サービスの活用が進むのはこれから、と推測しました。

CD(継続的デプロイメント): 「やっている」 64 % / 実行環境は票が割れ、「Jenkins」 37 % / 「CircleCI」 34 %

  • 総合すると、「やっている」 64%、「やっていない」 37 % でした。
  • 実行環境の割合は CI のアンケートとほぼ同じ結果でした。

弊社開発事業部の環境

開発事業部の開発環境は、UnitTest、CI/CD を強みとする渡辺@kaz29を中心に立ち上がった部署である事もあり充実しています。

UnitTest

  • バックエンドのコードのほぼ全てにテストを書いています。
  • テストデータの独立性を保つ為に sizuhiko/Fabricate を利用するなどの工夫をしています。
  • フロントエンドの UnitTest を導入しました。

E2Eテストの自動化

  • 現状は行っておりません。

コード管理

  • GitHub を採用するケースが多いです。
  • Azure DevOps の Repos を利用するケースもあります。

開発環境

  • docker-compose で本番とほぼ同じ環境で開発しています。

CI/CD実行環境

さらに今期より、開発メンバーが2名増え、フロントエンドのスペシャリストもジョインしました! より充実した開発環境、体制が整っていっています。

まとめ

  • phpcon2019 の来場者へのアンケートを実施し、PHPに関心の高いバックエンドエンジニアからの回答を中心に、開発現場の現状を考察しました。
  • UnitTest や CI/CD は実際に多くのエンジニアが実施されており、開発環境の仮想化も進んだようです。
  • 「部分的にやっている」という回答が多い事や、実行環境の票が割れている事から、現在進行形で試行錯誤されている方多いのでは?と推測しました。
  • phpcon2019 は、PHPに関心の高い多くの方々が集まり、熱気に溢れて大盛況でした!
  • 私自身は、「聴きたいセッションが同時にあって迷う!」というような楽しい一日でした!

おわりに

開発事業部では、日々、積極的に新しい取り組みを行い、(phpcon2019では弊社メンバーの登壇はありませんでしたが) 各種カンファレンス、hbSAKABA(Podcast) 等々を通じて知見を発信していきたいと思います!

株式会社ハートビーツの技術情報やイベント情報などをお届けする公式ブログです。