3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

こういう共通ライブラリは要らない

Last updated at Posted at 2015-02-24

#はじめに

プロジェクトでアプリを開発する場合、よほど小規模でない限り「共通ライブラリ」とか「フレームワーク」とか呼ばれるものを使います。ここで言うライブラリとは、汎用的なものをそのまま使うのではなく、そのアプリケーションに合わせて作られたものです。

例えば、.NET のプロジェクトで画面は Form クラスから派生させますが、とあるプロジェクトではカスタマイズされた 「CustForm から派生させて作りなさい」みたいな感じです。

#問題になるケース

こういう共通ライブラリのできが悪いと、しばしば問題が大きくなります。例えば、

  • 共通ライブラリにバグが見つかり、デグレード確認のため再テストが必要になった。
  • まともなドキュメントがないため、アプリの開発に時間がかかり支障が出ている。
  • サンプルがない(少ない)ため、使い方がわからない。
  • 設計思想が統一されていないため、モジュールにより使い方が変わる。
  • 細々とした処理までアプリ側で書く必要がある。
  • 予定ではアプリ開発までに完成するはずであったが、まだデバッグをしている。
  • ライブラリとアプリの開発元が異なるため、得意先経由でしか問い合わせができない。
  • ライブラリ(フレームワーク)の動作要件が多すぎて、テスト環境が作れない(作りづらい)。
  • 起動に時間がかかりテストに支障が出ている。
  • 動作不良の原因がアプリ側なのか、フレームワーク側なのか判別が難しい。

#結局・・・

上の例のような共通ライブラリやフレームワークによりプロジェクトの足が引っ張られることってよくあります。結局、どうすればいいかなんてここまでくればわかるでしょうが、あえて書くなら

  • リリースまでに十分なテストを行って、高い信頼性を確保する。
  • ドキュメントやサンプルはわかりやすく、しっかり作る。
  • シンプルでコンパクトであることに心がける。
  • アプリ側のテストがしやすいように。
  • 不具合が発生したときの切り分けをどうするのか考える。

原文 ..
たまに著作権を気にする人がいるのでひと言。「この投稿と著作者は同じです。」

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?