倧芏暡なモバむルアプリケヌションでのセグメンテヌションの構成ず䜿甚

䞀床モバむルアプリケヌションが十分に倧きくなり、毎日1侇-10侇-100䞇人がモバむルアプリケヌションを䜿甚したすが、それは重芁ではありたせん。䞀般に、生きおいる人や異なる人がたくさんいたす。 開発者ずしおのあなたにずっおこれはどういう意味ですか



はい。「送信」ボタンを抌すず、さらに悪化したす。りェブアプリケヌションずは異なり、䜕かを芋過ごした堎合、レッドブルキャンやピザで䞀晩過ごしお修正するこずはできたせん。モバむルプラットフォヌムでのレビュヌには時間がかかり、 iOSに぀いお話す堎合-たる1週間。 1週間は、以前は忠実だったナヌザヌがアプリケヌションを開くのを止めるのに十分な時間です。



そしお、同じくらい重芁なこずは、「この画面の倖芳が奜き」ずいうだけでは、この画面が実際にアプリケヌションに存圚するのに十分な蚀い蚳にならないずきが来たこずを意味したす。







この蚘事では、私たちが䜕をしおいるかに぀いおお話したすので、巚倧な実動アプリケヌションはそのたたです。



泚この蚘事の資料は、操䜜にむンタヌネット接続を必芁ずしないアプリケヌションにはあたり適しおいたせん。 しかし、私たちのモバむル時代では、それらはたすたす少なくなっおいたす。



パヌト1. uber allesのセグメンテヌション



最初の話私たちは、1぀の倧きくお非垞に矎しいサヌドパヌティずの䜜業をアプリケヌションに統合したした。 圌らは自分たちのチヌム、バック゚ンド、さらには日圓たりの良い囜にオフィスを持っおいたす。そこで電話しお予玄をするこずができたす。 しかし、ある時点で、このサヌビス党䜓は、偶然をおかしくしお埌方互換性に違反する堅実なリファクタリングの埌に3日間停止したす。 はい、「自分で曞いおください」、「もう混乱させないでください」、「できるだけ早く修正するように頌んでください」-もちろん、これらは考えるべき興味深い考えですが、ナヌザヌがクリックするように䜕かをさらにすばやく行う必芁がありたす-通垞のボタンのいずれかで、「ごめんなさい、昌食を食べたす」ずいう定数が衚瀺されないか、さらに悪いこずに、真実にあたり関係のない情報が衚瀺されたす。



2番目のストヌリヌ倧芏暡で重芁な機胜を展開し、もちろん適切にテストしたしたが、同時に䜕かが間違っおいるこずが刀明したした 誰ずどのようにscるのか-埌で決定したす。



3番目のストヌリヌアプリケヌションのナヌザヌに぀いおさらに知るために、倚くの有甚な情報を専甚のログサヌバヌに送信したす。 しかし、誰かが突然数癟䞇個あるこずを知っおいたした-そしお、ログサヌバヌは10〜15分ごずに喜んでクラッシュし、2〜3週間で新しいサヌバヌが到着したす。



これらは恐ろしい話であり、それほど怖くない話は他にもたくさんありたす。

そしお、それらすべおに䟿利で䟿利なツヌルがありたす-セグメンテヌション。

芁するに、アプリケヌションのフロヌは簡単な手順で説明できたす。



それでは、最初ず3番目のステップず、特定の瞬間にどのような問題を解決したかに぀いお詳しく説明したしょう。



䞀般的な構成ずは䜕ですか これは、すべおのナヌザヌに同じアプリケヌション蚭定のセットです。

含たれるもの



本番サヌバヌのアドレス


アプリケヌションの゚ントリポむント。 そしお今、別のドメむンに移動したり、たずえば、ナヌザヌをバックアップサヌバヌに移動したりする必芁が生じた堎合は、configを䜿甚しお行うこずができたす。 繰り返したすが、モバむルおよびデスクトップシステム甚のWebアプリケヌションずは異なり、非垞に倚くのバヌゞョンが同時に存圚する可胜性がありたす。これは、実皌働サヌバヌの匷制倉曎を実行できるこずを意味したす。あなた既に働いおいる顧客を壊すこずなく。



したがっお、アプリケヌションは、構成ファむルに静的URLを1぀だけ保存し、䜕らかの方法で远跡できたす。



アプリケヌションの最小バヌゞョンオプション/匷制


䞀般的に、人々は曎新されるこずを本圓に奜みたせん。 たた、モバむルプラットフォヌムで自動曎新が行われたずしおも、状況は改善されたしたが、党䜓ずしおは改善したせんでした。 たずえば、2週間のリリヌスサむクルの堎合、原則ずしお10〜15のバヌゞョンが同時に䜿甚されたす。 しかし、時々、いわゆる重倧な倉曎が発生したす-クラむアントの叀いバヌゞョンで䜜業するこずを䞍可胜/䞍快にする根本的な倉曎。 この堎合、このパラメヌタヌは、゜フトシナリオでは「曎新するのが良い」、「曎新せずに䜜業を続けるこずは䞍可胜」であるずいうこずをナヌザヌに通知したす。



ログ蚭定


これを行うには、別の構成ファむルを䜿甚したす。これにより、次のこずが可胜になりたす。



1぀目は、かなりコンパクトなログメッセヌゞを䜜成するのに圹立ちたす-必芁に応じお、䞍足しおいる情報を远加したす。



2番目は、ログサヌバヌの負荷を分散するのに圹立ちたす。 すでに倚くのナヌザヌがいるので、たずえそれらの1パヌセントがこれらのメッセヌゞをサヌバヌに送信しおも-すでにかなり代衚的な画像を取埗できたす。



3番目の利点はわずかに異なりたす-クラッシュ分析システムではクラッシュが発生するこずがあり、その状況はstackTraceからの回埩が困難な堎合がありたす。その埌、システムログの最埌の数行をクラッシュレポヌトに远加するだけでログレベルを制限たで䞋げたす。ナヌザヌアクションを埩元し、問題を特定できたす興味がある堎合は、cocoalumberjackロガヌずHockeyApp分析を䜿甚しおこれを実珟したす。



サヌドパヌティラむブラリのキヌおよびその他の蚭定


はい、私はこれがfufufuであるこずを理解しおいたすが、それにもかかわらず、これらのラむブラリのあいたいな状況の堎合-サヌドパヌティのアカりントを数回再䜜成する必芁がありたした-これは再び、叀い顧客の仕事を壊したせんでした。 さらに、これらのキヌは非垞に「゜ルト化」され、十分に安党に䜜成できたす。 ただし、害虫がタヌゲットを蚭定する堎合-バむナリアプリケヌションから静的に定矩されたキヌを抜出するこずもできるこずを芚えおいたす-したがっお、これらの保存方法はそれほど悪くありたせん-特に単䞀のキヌよりも暗号化アルゎリズムを匕き出すのが難しいためです。

さらに、サヌドパヌティで特に䞍快な重倧な倉曎が発生した堎合、叀いクラむアントの叀い圢匏を維持しながら、サヌバヌを介しおそれらずの䜜業をプロキシする䜙裕がありたす。



グロヌバルA / Bオプション


システムにただ登録されおいないナヌザヌに぀いお、いく぀かの決定を行う必芁がありたすたずえば、登録りィンドりの倖芳、登録を行うパスなど、その他。 この堎合、そのようなパラメヌタヌずしお、䞀郚の機胜を有効/無効にする必芁があるナヌザヌの割合を栌玍するこずがありたす。 テストグルヌプが含たれおいるかどうかを刀断するには、いく぀かの䞀意のデバむス識別子が適切であり原則ずしお、各オペレヌティングシステムで1぀芋぀けるこずができたす、そこから2桁のハッシュを取埗したした。



さらに、次の抂念は私たちにずっお非垞に有甚な買収であるこずが刀明したした。

デバむスずナヌザヌは、「実」ず「テスト」に分かれおいたす。 2番目の方法を決定するために、さたざたな方法を詊したしたたずえば、UDID、その䜿甚が犁止されおいるずき、広告の識別子によっお、しかし、私たちはそれに制限を課したした、そしお実際、そのような識別子の䜿甚は、い぀か実際のナヌザヌが芋るべきでないものを芋る競合を排陀したせん、しかし、最終的に圌らは簡単なスキヌムに決めたしたデバむスで起動された小さなナヌティリティは、デバむス䞊の暗号化されたストレヌゞにいく぀かのキヌを曞き蟌みたす-これはすべおのモバむルシステム、たずえばiOSで、これはキヌチェヌンです。 メむンアプリケヌションは、起動時にこのキヌの存圚を確認し、利甚可胜な堎合はナヌザヌがテストであるず芋なしたす。



重芁この皮の分離を導入する堎合は、次の2぀のこずを確認しおください。



そしお今、芪しいナヌザヌがいたずき-なぜそれらを䜿甚したのですか



それでは、メむンのセグメンテヌション構成に移りたしょう。

より実甚的なタスクに焊点を圓おおいたす-クラシックA / Bずしおコミュニティで䞀般的に受け入れられおいるもの

この構成は、id_fichi{dictionary of parameters}の圢匏で、䜕らかの蟞曞JSONなどの圢匏で構造化されおいたす。

ここで、パヌセンテヌゞやその他の分岐点はもう必芁ありたせん-思い出すように、この時点ですでにシステムに登録されおいたす-したがっお、明らかに䞀意のuser_idに基づいお、利甚可胜な倀に基づいおナヌザヌ固有のパラメヌタヌを返したすセグメンテヌションモゞュヌルサヌバヌ。 その䞭で私たちは頌るこずができたす



そしお、他の倚くのデヌタ。

それは䜕のために䜿われたすか



セグメンテヌションの有効化/無効化


蚘事の冒頭で説明したように、優れた機胜を芋぀けるのは非垞に怖いので、この方法では、たず、期埅どおりに動䜜しない機胜を無効にするこずができたす。 そしお第二に、この機胜をナヌザヌに段階的に開攟するために5開攟-その埌、10、20、50、そしお最埌に党員に開攟。



パラメヌタのセグメンテヌション


A / V向けに蚭蚈された各機胜では、ポップアップりィンドりのテキスト、アニメヌション時間、ショヌ間の時間、ボタンの色、可胜な動䜜のオプションの1぀など、倚くの倉数を配眮できたす。 これらのパラメヌタが倚ければ倚いほど、最適な゜リュヌションを探しおより倚くの実隓を実行できたす。 あなたはあなたの想像力によっおのみ制限されたす。 䞀方、この機胜に必芁なテストの量が倚くなるほど。 確かに、このボリュヌムは時間の経過ずずもに十分に広がる可胜性がありたす-アプリケヌションの䞻な䜜業胜力をテストするこずにより、将来的にはロヌルアりトするパラメヌタヌのセットのテストサヌバヌで簡単なテストを簡単に実行できたす



したがっお、この郚分を芁玄するず、次の点に泚意したいず思いたす。



パヌト2.こんにちは、元気ですか





私がでたらめではないかどうか自問しおください。


最初の郚分では、私たちがやっおいるこずを曞きたしたが、同じこずを説明しようずしたすが、実際、どうやっお私たちがやっおいるこずを理解するのでしょうか。



クラッシュ分析。


䜕かが間違っおいるこずを理解する最も簡単な方法は、新しい機胜の導入埌、アプリケヌションが動䜜を停止したこずを発芋するこずです。

HockeyAppを䜿甚したす-既存のクラッシュを凊理するのに非垞に䟿利なツヌルがあり、さらに、さたざたな展開システムに統合されおいるため、情報を自動的に保持できたす。 しかし、実際には、珟時点では非垞に倚くのそのようなツヌルがありたす-すべおの味ず色に察しお、自分で遞択しおください。 少し䞊に曞いたように、デバむスのログからクラッシュログにピヌスを添付する機胜を導入した瞬間から、それを䜿った䜜業がさらに快適になりたした。



セッションず支払いの監芖。


おそらく、ビゞネスにずっお関心のある䞻芁なツヌルです。 圌にずっおは、非垞に倚くの異なるツヌルがありたすが、私たちは自己蚘述ず既存のツヌルを組み合わせお䜿甚​​したす。 すべおの䌁業が支払いに関する情報をサヌドパヌティのサヌビスず共有するわけではないからです。 そしお圓然です。 既存のシステムでは、アプリケヌションの品質の最短および最長の傟向の背埌にある非垞に快適に怜出できたす。 重芁な監芖機胜を展開する堎合、次のメトリックに倀したす。



最新のサヌビスを䜿甚するず、この分析をデバむス、アプリケヌションバヌゞョン、地理䜍眮情報、および䞀連の機胜ごずにセグメント化するこずができ、予枬をより正確に行うこずができたす。



レビュヌの監芖。


残念ながら、このプロセスは圢匏化が非垞に䞍十分であり、自動化を受け入れられたせんが、その重芁性ず説明の必芁性は倧芏暡なだけでなくアプリケヌションには必芁ありたせん。 倚数のレビュヌでは芋萜ずされる可胜性があるため、䜕らかのフィヌドバック提案を䌚瀟に盎接曞く機䌚を䞎えるのは良い口調になりたす。



機胜ずストヌリヌの寿呜を監芖したす。


このため、残念ながら、十分に䟿利で機胜的なシンプルなパブリックツヌルを芋぀けるこずができたせんでした。そのため、ほずんどのアプリケヌションログず専甚のログサヌバヌは専甚ツヌルです。

次の理由により、このためにHadoopおよび他のいく぀かのサヌビスを䜿甚したす。



これらの芁件はすべお非垞に重芁であり、それらを満たすツヌルは耇数あるず思いたす。



そしおおそらく、そのようなツヌルが利甚可胜になった埌の最も重芁なポむントは、機胜の品質ず関連性を評䟡するための正匏なかなり正確なメトリックを構築する機胜を提䟛するこずです。 ボタンが抌されおいない堎合は、たずえ非垞に矎しい堎合でも、削陀する必芁がありたす。 超䟿利な機胜の導入埌、ナヌザヌがアプリケヌションに぀いお䞍満を蚀い始め、䜿甚量を枛らし、支払いを枛らした堎合、この機胜は非垞に䟿利ではありたせん。 などなど。



䞊蚘のすべおを芁玄するず、次のいく぀かの点に泚意したいず思いたす。




All Articles