1台のコンピューターのみを構成する必要がある場合は、10 Gbをまったくダウンロードしたくないため、DriverPack Onlineが作成されました。 彼には欠陥があり、新しいリリースで修正しようとしました。 それでは、最も興味深い開発ポイントについて詳しく見ていきましょう。
ゼロから
DriverPack Onlineをゼロから書き直してリバースエンジニアリングすることが決定されました。 私たちの目標は、フルバージョンの機能をユーザーに提供する簡単でシンプルなアプリケーションを作成することでした。
同じ技術スタックを使用しました 。 HTAが嫌いな人がいることは知っています。 しかし、友人、これはユーザーが必要とする方法で機能します。
少なくとも1回VBScriptスクリプトを作成したり、「名刺サイト」をリベットした管理者は、DriverPackを問題なく「ファイリング」できます。 編集は不要で、HTMLとJavaScriptだけで、学生でも理解できます。
そして、はい、node-webkitで実験しました-それは私たちには合いませんでした。
分析
Webには多くの標準ソリューションがあり、それらをデスクトップに転送することができました。 Statistics.jsスクリプトを使用して、イベントがアプリケーションからGoogleアナリティクスとYandex.Metricaに送信されます。
Statistics.jsでできること:
- GAへのイベントの送信(カテゴリ、アクション、ラベル)の操作。
- ディメンション(statistics.configの設定)をサポートします。
- サイトからのProbros ClientID。
- 転送されていない場合の生成ClientID。
- 測定プロトコルを介して送信する正しいURLを生成します。
- Yandex.Metricaへのイベントの送信(yaCounter.hit()経由)。
イベントをディスパッチするための構文は非常に簡単です。
statistics.event(
{
category: 'desktop',
action: 'opened',
label: '16.1.1'
}
);
これにより、問題を分析し、ユーザーがそれを記述する前であっても、失敗または互換性のないドライバーと構成を見つけることができます...そして最終的に、製品自体がユーザーにとってどれほど便利で理解できるかを理解する必要があります。
DriverPackから送信されるイベントのマップは次のようになります。
Google AnalyticsとClientID
Googleアナリティクスでは、外部イベントはMeasurement Protocolプロトコルを介して送信されるため、その統合は問題を引き起こしませんでした。 しかし、さらに進んで、サイトからClientIDをアプリケーションに直接投げる方法を学びました! これは、ユーザーが最初にどこから来たのか、どの検索フレーズでそれを理解し、これをユーザーがアプリケーション内で行っていることと関連付けるために必要です。
サイトからアプリケーションに、ClientIDは次のようにファイル名を介して転送されます。
download.drp.su/online/DriverPack-Online_2089238336.1403776545.exe
設定がいかに簡単かについては詳しく説明できますが、別の投稿で、誰かが興味を持っている場合は。
Yandex.Metrica
Google Analyticsは優れていますが、2つのツールの方が優れているため、Metricaを使用しました。 Google Analyticsの大きなマイナス点は「サンプリング」です。これは、トラフィックの多いリソースに含まれます。 それはデータを非常に激しく打ち、あなたはもはやそのような統計を信じることができません。 Yandex.Metricaは、Googleアナリティクスのデータに関する結論を検証/確認するのに役立ちます。
Metricにはイベントを送信するためのREST APIがないため、Metricをいじる必要がありました。 しかし、HTAを使用して、通常のJavaScriptトラッキングコードで友達を作ることができました。
ユーザーアクション(ヒット)に関するイベントを "Metric"に送信することにより、コンピューターの構成に関する情報を含むJSONオブジェクトも送信します。
メトリクスインターフェースを使用すると、このデータを操作して非常に興味深いインサイダーを見つけることができます。以下は、2つのグループのユーザーのコンピューターでアプリケーションを使用するための障害インジケーターのある画面です。RAM容量は1 Gbまたは2 Gb以上です。
この図から、1 GbのRAMを搭載したコンピューターのユーザーは、より多くのメモリを搭載したコンピューターのユーザーよりも1.5倍の障害率があると結論付けることができます。 これはかなり単純な結論ですが、時には非常に明白なことがあります。
自動テスト
HTA-Internet Explorerエンジンで実行されるため、DriverPackは完全に異なる環境で正しく動作し、異なるエンジンで実行されるはずです。 「Window 8.1 x IE6」という形式の不可能な組み合わせを無視すると、オプションの数はデカルト製品[Windows ver] x [IE ver]であると言えます。これはユーザーのコンピューター上のウイルス対策動物園に何が起こるかは言うまでもありません。
これをすべてテストするために、次のことを行います。
1.一連のvirtualoksを作成します。
2.アプリケーションの最新バージョンは、Dropboxを通じて展開されます。
3.単体テストは、スケジューラを介して毎分起動されます。
4.マシンからのレポートは1つのDropboxフォルダーに収集されます。
したがって、テストプロセスのコストを大幅に削減しました。
ドライバーテスト
アプリケーションコードを自動テストでカバーします。 ただし、仮想マシンで910,000個のドライバーをテストすることはできません。 そのため、Habréで説明されている「Remote Driver Testing Laboratory」を作成しました。
これらすべては、私たちの意見では、新しいミニマルなデザインです。
最後に
DriverPackをオンラインでダウンロード: http : //drp.su/ru/
GitHubページ: https : //github.com/DriverPackSolution/DriverPack-Solution/tree/DriverPack-16
変更ログ: https : //github.com/DriverPackSolution/DriverPack-Solution/commits/DriverPack-16?page=1
新しいバージョンの変更ログ、慎重に!
PS 以前の出版物のいずれかに回答してくれた人々に感謝します。
DriverPackを少し改善するのを本当に助けてくれました。高速で信頼性が高く、同時にすべてのユーザーが簡単に理解できるようにします。
アプリケーションの設計については、 Denis Sedchenkoに感謝します。