- 音楽ソフトウェア開発PM
- インターンシップ
- 広報・SNS担当スタッフ
- Other occupations (18)
- Development
- Business
- Other
こんにちは、クリプトンの寺田です。
当社は創業以来、社内にノウハウを蓄積させるため自社内製によるサービス展開をポリシーとして、多くのサービスを開発してきました。そのなかで、WEBサイトはプログラミング言語をPHPに統一して開発を行っています。
本日は、当社がPHPを採用している理由をシステムチーム・マネージャーの林さんに語っていただきました。
WEB開発においてPHPが魅力的な理由
PHPは、入力と出力がシンプルで主にWeb開発に特化した言語で、使用人口が多く、技術情報が豊富です。日本国内でよく導入されているブログシステムのWordPressや、ECサイトの構築に使用されるEC-Cubeでも、PHPが用いられています。PHPそのものの開発には多くの有志の方々が携わっていることも大きな利点です。開発コミュニティが活発であれば、今現在は不便に感じる部分があっても、将来的に改善・洗練される可能性を持った言語だと考えています。
開発言語としてPHPを採用した決め手
当初はJavaをメインの開発言語として採用し、ベンダー製のWEBサーバを利用してECサイトを運用していました。しかしベンダーが提供するWebアプリケーション・サーバーのサポートが切れたり、一部ライブラリの年数問題でWebアプリケーションが正常に動かなくなる問題が発生したりしました。
そのような問題に対応するため、PHPのオブジェクト指向化が進んだことを契機にPHPへの置き換えを進めていくことになりました。
PHPというと、コンパクトなスクリプトを手早く作るには便利な反面、大規模で堅牢なシステム開発にはあまり向いていないという印象がありました。メジャーバージョン5の後半あたりから最新のトレンドを取り入れたアップデートが行われるようになり、利便性や信頼性がかなり改善されたことが、統一言語として採用する要因になりました。
例えば、名前空間やラムダ式(アロー関数)、Mix-inへの解答としてのTraitなど、その時々に他の言語で見られた流行りや利点を積極的に素早く取り入れている点も大きなポイントです。中でも動的型付け言語特有の型付けの弱さ、型の不整合については、アップデートの度にタイプヒンティングやドキュメンテーションコメントの強化がされています。今ではIDEあるいはPHPStanのような静的解析を使っていれば、実行時の型の異常を事前にかなり検出できるようになったので、バグの少ないシステムを開発できるようになりました。
「Laravel」によって強化された開発効率
開発言語はPHPに統一されていたものの、プロジェクトごとに採用するフレームワークがSymfony、Codeigniterなど、バラバラという状態が数年前までありました。社内全体でのノウハウを蓄積するために、メインとして利用するフレームワークを統一することになり、Laravelを採用しました。
Laravelは大規模な開発にも耐え、機能が豊富なことが大きな要因ですが、日本語のドキュメントが豊富で学習しやすく、トラブルがあった時も解決方法を見つけやすいと感じています。また、他のフレームワークより優れていると感じるのが、疎結合を強く意識しながら高い拡張性を持っているという部分です。
特徴としてよく挙げられる点にはありますが、Laravelの心臓部自体がサービスプロバイダを基調として制御され、サービスコンテナによって依存性を解決する構成になっています。
疎結合の設計思想は他の機能にも徹底されていて、契約(Contracts)やMiddlewareといった考え方にもクラス間の依存を排除しようという意図が見て取れます。
拡張性については、ユーザーが独自クラスをコンテナにバインドできるのはもちろんですが、例えば試験時のTestResponseのようなクラスは、インスタンスがLaravelコアクラスの内部で生成されて返却されるため、直接に継承やTraitを利用した拡張ができません。こうした問題にもMacroableという仕組みがきちんと提供されており感心しました。
コンセプトが明確かつ一貫しているからこそ、利用する側も迷いなく美しい構成のアプリケーションを開発することができるのだと思います。
社内で利用するフレームワークをLaravelに一本化したことにより、社内でのノウハウの共有が容易になりました。
プログラミング初学者にもPHPは最適
前述の通り、PHPは入力と出力がシンプルな言語のため、プログラミングの初学者がとっかかりとして覚えるには最適な言語と考えています。様々な面で使用されているPHPを学習することで、WordPressやEC-Cubのeプラグイン開発やシステム拡張をすることができるようにもなります。本ストーリーでPHPに興味を持っていただける方が増えればと思います!
いかがでしたでしょうか。今回は当社の開発環境に関わるお話をお届けしました。
PHPはプログラミング初学者にも最適ということですので、PHPに興味を持った方は是非挑戦してみてはいかがでしょうか?すでにPHPを取得している方で当社にご興味を持っていただけた方のエントリーもお待ちしております。カジュアル面談も対応可能です!