2016-09-15 9 views
2

ここでは、自分と他の従業員がユーザーが使用していない機能のプログラミング修正に時間を費やさないようにしています。私は10年ほどの間行われてきたアプリケーションに取り組んでいますが、顧客によっては使用されない機能もたくさんあります。私はQAと顧客が決してそれらに遭遇しなかったので報告されなかった問題を解決するウサギの穴を降りて自分自身を見つける。私は重大な問題を抱えているコードに残したくないですが、そのクラスの一部が別の場所で使用されているため、単に削除することはできません。アプリケーションで使用されるロギング機能/機能

私は、ユーザーがアプリケーションを使用している間、アプリケーション内のすべての関数呼び出しまたはオブジェクト作成を追跡する、ある種のロギングアーキテクチャを提案しました。このようにして、作成したフォルダのどこかに格納されているログファイルを顧客に尋ねることができます。一定の時間(1〜2ヶ月程度)後にすべてのユーザーからすべてのログを取得すると、ログを分析し、使用されている機能と機能を正確に確認することができます。このデータは、顧客がアプリケーションをどのように使用しているかを発見する上で非常に役立つと私は信じている。また、アプリケーションで使用されていない機能や最も使用されている機能を指し示すこともできます。

このロギング機能を既存の大きなコードベースに実装するには、どのようなソリューション/アーキテクチャ、設計パターンが必要でしょうか?それとも、これは単なる悪い考えですか?

私の最初の考えは、このようなものですが、非常に大きなアプリケーションでは、これはしばらく時間がかかります。それだけでは、このようなことをするのは素晴らしいことではありませんが、それは唯一の方法でしょうか?

private void createData() 
{ 
    write.toLog("ClassName.createData"); 
    //the magic of the createData function 
} 
+1

と機能のみが閏年でうるう日に何と呼ばれている場合はどうなりますか?それを取り除くことは、「すべて一緒に悪い考え」かもしれません。 –

+0

ええ、それは可能性があります...そしておそらく、ログは機能のバグの優先順位付けに役立ちますか? @ElliottFrisch –

答えて

2

アスペクト指向プログラミングは、アイデアを実装する方法です。

あなたはこのような考えを持つ最初の人ではありません。 Analyticsはウェブページやウェブアプリケーションでは通常のことです。これは主にビジネス上の考慮に基づいています。

DevOpsコミュニティのアイデアもあります。私はすでにあなたが望むものの実装があるという良いチャンスがあると思います。これはpodcast episodeです。英語ではありませんが、リンク先ページのショーノートにはいくつかのリンクが含まれています。

特に、ご使用のソフトウェアが単一の会社でのみ使用されている場合は、プライバシーに関する問題が発生する可能性があります。

+0

JavaはAspectJのがここで建てられた、特に以来、私は本当にアスペクト指向プログラミングのアイデアなどは、私の人生はかなり簡単になるだろう! –

0

大きなシステムのすべてのメソッド呼び出しを記録するのは悪い考えです。いくつかのメソッドは何度も呼び出され、ログファイルはメソッド呼び出しログステートメントで圧倒されます。

私はロギングがDEBUGレベルや細かいにあったし、必要に応じて選択的にオンすることができ、大規模なシステムにログインし、すべてのメソッド呼び出しを見ているたびに

(およびめったになかったです)。

それは、このような等々、高レベルの要求、ユーザーが開始活動、仕事の開始、およびをログに記録するなど、ログのこの種の粗いレベルで、より戦略的であることを勧めします。

関連する問題