skillup

技術ブログ

PHP プロジェクト管理

CI/CDに関する取り組み

投稿日:2022年4月23日 更新日:

CI/CDに関して知識としては5年以上昔から持ってましたが、実際にプロジェクトの中に取り組むことができるようになったのはつい最近なので、取り込みが現実的なものに関してどのように取り組んでいくかといったことも。

サンプルソースは

https://github.com/umanari145/effector

コード規約チェック

phpcs(2022年4月時点でPSR12)を使用。現実的にはエディタなどでチェックが入り、すぐ気づけるようにしておき、コード時を書くときに潰せることが大前提(コミット時やプルリク時のみで見ることは現実的ではない)

トータルのチェックをCIツールやcommit時のhookでチェックするのが良いかと・・・(エラーだと失敗するようにする)

無視ルールも随時設定が必要。

静的解析

phpmdなどあるようですが、外部サービス(sonarqubeやscrutinizer)を使う方が一般的な模様。NGの場合コードをすぐに落とすよりは品質が数値化され、目に見えるのが良いと思います。

自動テスト

おそらく一番自動化が難しい。

ポイントして大量のマスタデータ(できれば1000以内)がないこと。これがあるとテストのたびにマイグレーション&seedingがはしり、時間がかかりすぎてしまうため。

あとはmocやlocalstackなどを使い外部サービスとの連携をいかにテスト化できるか、またテストコードを書くことで当然開発工数が圧迫されるので、それを許容できる文化(お金)があるか。

ある程度折り合いをつけることも必要。

自動デプロイ

ある程度の規模になるとほとんどのシステムでは複数のサーバーやインスタンスを使っているため、必然的に取り入れることが多くなる。

手動デプロイ自体ができない&コストがかかるといったケースの方が多いと思われるので逆にいうと導入しやすい。

ドキュメント作成

あまり見たことがないですが、phpDocumenterなど使い、コミット時にファイルをエクスポートできるようにするといいのでは。

-PHP, プロジェクト管理
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

開発時最低限必要かつ有用なドキュメントに関して

ウォーターフォール型の開発をかれこれ1年近くやっております。 自分がやってきた仕事とすると別職種に近いようなイメージでしたが、得ることも多かったため、ここに記しておこうと思います。 以前書いたことの記 …

no image

cakeでのJOINについて&session

Contents1 cakeでのJOIN2 cakeでのsessionについて cakeでのJOIN cakePHPでは基本、hasManyなどの修飾子を使えば、リレーションをとることができますが、検 …

no image

WordPressでのアイキャッチ画像

このブログと並行して更新しているガチンコ塾のブログですが、アイキャッチをブログ内にいれました。 画像をいれると文章の見やすさもだいぶ変わってくると思うので、アイキャッチの入れ方についてここに書いておき …

no image

コミュニケーション能力の定義

新卒でも既卒でも採用基準で非常に大きい要素といえばコミュニケーション能力かと思います。 が、この言葉、明確な定義がなく、私もいろんな会社でいろんな人と仕事をしてきましたが、明確な言語化がはっきりとでき …

no image

PHPでのリフレクション

Javaなどでは結構やりましたが、PHPでも動的にインタンス生成→メソッド呼び出しということをやれるとやれることが一気にふえるため、ちょっとメモです。 Contents1 ソース2 参考リンク ソース …

アーカイブ