開発基盤部会 Blog

開発基盤部会 Blog >> 記事詳細

2019/02/08

CIを軽くdisったケド、ライブラリ開発でプラクティスを実践している件。

Tweet ThisSend to Facebook | by:nishino
 以前、CIやテスト自動化を軽くdisりましたが、よくよく考えると、ライブラリのマルチ・バージョン & クロス・プラットフォーム開発でローカライズしたプラクティスを実践していましたので、今回、チョットその辺を書いてみたいと思います。

 具体的には、ビルド & テスト スクリプトと、テスト・プログラム。あと、こんな、Git submoduleの代替処理も作っています。これらは、最近0ベースで作り上げたものではなく、ビルドシステム・エンハンスの一環で継続的にエンハンスしているものです。

 この中で、別にNUnitなどのテスティング・フレームワークを使用して、オール・グリーンなんて(、昔、一回やろうとして、頓挫したこともアリ、現状では、)、やれてませんし、Jenkins や Gitlab CI 等のCIサーバになんて、全く到達していません。

 しかし、「ビルドの自動化と、上位レイヤ(テンプレート or サンプル)との常時結合と、チョットしたテストだけでも結構強力で、費用対効果が高い。」です。また、「テスティング・フレームワーク+オール・グリーンなんてしなくても、テスト・コードとテスト結果をGitで管理して、都度、diffをチェックすればイイんじゃないか?」なんて思ったりしています。

 実際、重点的にテストしたいテスト対象は、多くの場合、それ自体も、テスト・プログラムも、インターフェイスだけでなく仕様すら安定したモノになっていないのと、別に、Webサービスみたいに、デイリーでリリースしている訳でもないので、「難易度高めのCIプラクティス」については、ペイラインに乗るのが明確に解る頃に導入の検討を開始すればイイと思います(以下の図の左側の範囲はできているケド、右側の範囲には、まだ、リーチしていない感じ)。


 要するに、何が言いたいか?と言うと
 (、良く言われている事ですが)、

 「手段の目的化はダメって事で、自分のドメインに他のドメインのベスト・プラクティスを輸入して、必要に応じてローカライズしろ。

 って事なんじゃないか?と思ったりしました。

 また、.NET Core 3.0も、EUC(End User Computing)レイヤで利用するには「まだまだ」と言う事かも知れませんが、EUCレイヤから出れば気にならないですね。ミドルウェアを、マルチ・バージョン & クロス・プラットフォームにクロス・コンパイルさせながら(、要するに.NET Frameworkとの互換性を維持しながら)、成長させていけばイイ。と言う感覚です。

<合わせて読みたい>


09:00 | 投票する | 投票数(0) | コメント(0) | ご報告