開発言語はPHPを使用。 フレームワークはFuelPHPを使用。
今回PHP+FuelPHPを選択した理由は、「工期が短い」・「システム規模が小さい」という2点から。
私個人としてはJavaを使ったシステム開発がメインだったため、一度はJavaでの開発も考えた。
しかしJavaは堅牢性などから考えて大規模システムには向いているが、小規模システムかつ短期案件にはあまり向かないと考え、PHPを採用した。
顧客事務所内に配置する社内専用システムだったため、自社内に同一環境を用意しやすいようLinuxコンテナ(LXD)を利用。
主流であるdockerではなく、LXDを導入した理由は「VM的な使い方をできるコンテナが必要だった」ため。
(個人的なシステム開発でもLXDを利用していた、というのも理由の一つ)
dockerを利用すればLXDと比較してスケーリングなど拡張性や保守性など優位な点が多いが、
本システムは小規模な社内用システムなので拡張性は不要と判断。
また、dockerはアプリケーションコンテナであるため、ある程度コンテナ設計も必要だが、
LXDはシステムコンテナであるためほぼVMと同じような感覚で利用できる。
(設計が必要ないわけではないが、通常のサーバ構築と同じ考え方で設計できる)
そもそも小規模ならコンテナも不要ではという考えもあるが、顧客事務所内にしか環境が無いのは保守や今後の開発を考える上で問題である。
そのため、LXDを使用し自社内の開発用サーバ・顧客事務所内のサーバで同一のコンテナを稼働させ、同一の環境を用意した。
本案件は工期が短く、テストを十分に行う時間がなかった。そのため、PHPUnitコードを積極的に記述し、単体コードレベルでの品質担保を行った。
その結果、テストケースを画面レイアウトなどUnitテストでは行えない部分に抑えることができ、短工期ではあったが十分な品質のシステム開発を行うことができた。
本案件で初めてPHPを使用し開発を行ったが、Javaと比較し早く開発できると実感できた。
Javaとは異なり戸惑うことも多々あったが、「システム規模に応じた開発言語選択」など、今までと違った考えかたもできるようになり、
自分自身のスキルアップにも繋がったと感じている。