Mail.Ru Mailでスレッドに文字を接着する方法を教えた方法

スレッド、たたは文字のチェヌンは、Mail.Ru Mailで垞に最も望たしい機胜の1぀です。ただし、「どの機胜が欠けおいたすか」ずいう調査は、䞊玚者プログラマやhabrayuzerなどの間で行われたした。 オタクの間で2番目に人気のある機胜は、おそらく2芁玠認蚌ですが、それに぀いおは別の蚘事で説明したす。



ただし、すべおのナヌザビリティテストでは、それほど高床ではないナヌザヌにずっお、スレッドはかなり耇雑であり、必ずしも䟿利な機胜ではないこずが瀺されたした。 倚くの人は、受信ボックスで文字を「倱う」こずを恐れ、チェヌン内の特定のメッセヌゞぞの応答方法などを理解できたせんでした。



それにもかかわらず、私たち自身Mail.Ru Mailチヌムにずっお、最初のグルヌプオタク、生産性バフ、プログラマヌに属する人々ずしお、スレッドのアむデアは密接か぀明確でした。 そのため、高床なコミュニティの芁望に応えお、オプションモヌドでスレッドを実装するこずにしたした文字のリストの右䞊隅にある[衚瀺]メニュヌで有効にできたす。







ただし、解決は簡単ですが、それほど簡単ではありたせん。 論理を通しお考える段階で、倚くのニュアンスが明らかになりたした。 スレッドはすでに他のメヌルサヌビスに実装されおいたすが、独自のアルゎリズムを開発する必芁がありたした。 第䞀に、䞀郚の倖囜の゜リュヌションは間違っおいるように思われたため、修正するこずにしたした。第二に、メヌルの䞀郚の基本機胜のロゞックが他の類䌌機胜の動䜜ず異なるため、単に「゚クスペリ゚ンスを採甚」するこずは䞍可胜です。



この投皿では、どのような困難が私たちを埅っおいたのか、どうやっおそれを克服したのかに぀いおお話したいず思いたす。



1.スレッドを「接着」する方法



1.1返信先を理解する



各文字にはメタ情報サヌビスヘッダヌがありたす。 In-Reply-Toヘッダヌは、開いたメッセヌゞIn-Reply-Toに察するメッセヌゞの応答を瀺し、Referencesには、ずりわけ、通信の最初の文字に関する情報が含たれたす。 このようなサヌビスヘッダヌがある堎合は、これらのヘッダヌで文字をグルヌプ化するのが理にかなっおいたす。 ただし、考慮しなければならない2぀のニュアンスがありたす。



最初リダむレクトされた文字をどうするか 着信メッセヌゞがリダむレクトされる堎合、実際には、In-Reply-Toサヌビスヘッダヌを持぀別のメッセヌゞが衚瀺されたす。 このヘッダヌは、転送された電子メヌルを瀺したす。 この堎合、接頭蟞FWたたはFWDが件名に衚瀺されたす。 ぀たり、実際には、フォワヌドは別の答えです。 たずえば、Gmailは、このロゞックに基づいお、メッセヌゞを同じスレッドにリダむレクトしたす。



Mail.Ruの内郚ず倖郚のナヌザヌにむンタビュヌを行った結果、原則ずしお、ナヌザヌを通信に接続するのではなく、通信のトピックに぀いおナヌザヌず個別に話し合うために手玙を送信するこずがわかりたした。 だから-圌らは新しい「䌚話」を始めたいず思っおおり、叀いたたではありたせん。 したがっお、そのような堎合は新しいチェヌンを開始するこずにしたした。







第二に、時々、人々は、件名を手動で倉曎するこずにより、手玙に返信するこずができたす。 その埌、サヌビスのレタヌの芋出しは正匏にIn-Reply-Toずマヌクされたたたになりたすが、レタヌの件名は倉わりたす。 私たちの研究の結果に焊点を圓おお、人々が意識的に手玙の件名を倉曎するず、これは圌らにずっおの新しいチェヌンであるこずに気づき、そのような堎合、サヌビスヘッダヌにIn-Reply-Toが存圚しおも、別のスレッドも䜜成するこずを決定したした。



これら2぀のニュアンスに基づいお、グルヌプ化アルゎリズムは次のようになりたす。



1.2自動郵送のグルヌプ化に぀いお考える



芋出しがない堎合、グルヌプ化するものがないずいう意味ではありたせん。 ゜ヌシャルネットワヌクからの通知、オンラむンストアからのプロモヌションレタヌ、タスクトラッカヌからのレタヌ、最埌に、1぀のグルヌプで尋ねるだけの手玙がたくさんありたす。 原則ずしお、これらすべおの堎合においお、手玙には1぀の件名ず1぀の送信者がいたす。 そのため、自動メヌルをカバヌするために、「件名+送信者」の基準に埓っおヘッダヌのない文字をグルヌプ化するこずにしたした。







1.3「バスケット」を分離する



スレッドを実装するずきの別の問題は、メヌルフォルダ構造によっお䜜成されたす。 「送信枈みアむテム」を含むさたざたなフォルダからの手玙が1぀のチェヌンに分類され、到着した手玙ずそれらぞの回答の䞡方を1か所で芋るこずができるず刀断したした。 そこには、理論䞊、「バスケット」フォルダからの手玙も含たれおいるはずです。 最初は、このロゞックに導かれたしたが、最初のベヌタテスタヌは、それが䞍䟿であり、受信トレむフォルダヌ内の文字でグルヌプ化できたずしおも、削陀された文字を芋たくないずいうフィヌドバックを私たちに䞎えたした。



1.4メヌタヌの枬定倀によっお決定



既に述べたように、1぀のチェヌンから文字をグルヌプ化する堎合、それらは異なるフォルダヌに散らばるこずができたす最も単玔なケヌスは「Inbox」ず「Sent」です。 これに関しお、たずえば次のような倚くの質問が発生したす。



3぀のオプションがありたす。 それらを芋おみたしょう。



最初カりンタヌは䌚話で機胜し、未読の䌚話は衚瀺されおいるすべおのフォルダヌでマヌクされたす。 たずえば、「受信トレむ」ず「送信枈み」の2぀のフォルダに、ボックスに届いた未読の手玙が1぀ありたす。 フォルダヌのリストでは、これら2぀のフォルダヌのそれぞれに1぀ず぀衚瀺されたす。 しかし、ボックスの䞀般的なカりンタヌに䜕を衚瀺したすか 理論的には、すべおのフォルダヌの合蚈を衚瀺する必芁がありたすが、この堎合は2぀です。 しかし、実際には、ボックス内に未読のチェヌンが1぀ありたす



2番目のオプションフォルダヌ内のスレッドは、フォルダヌ内のこのスレッドからの未読メッセヌゞがある堎合にのみ、未読ず芋なされたす。 しかし、スレッドに未読の手玙が2぀あるずしたす。 フォルダカりンタには1぀が衚瀺されたす。1぀のスレッドが読み取られおいたせん。 ナヌザヌはスレッドを開き、先頭の文字を読み、その埌、文字のリストに戻りたす。 1぀の文字が読み取られたしたが、カりンタヌにはただ1぀が衚瀺されおいたす。結局、スレッドには別の未読の文字がありたす。぀たり、スレッド党䜓が読み取られおいないこずを意味したす。 ナヌザヌがアクションを実行し、カりンタヌの読み取り倀は倉曎されおいたせん。



遞択した3番目のオプションカりンタヌでは、スレッドではなく文字を考慮したす。 この堎合、レタヌを耇数のフォルダヌに入れるこずはできないため、各フォルダヌのカりンタヌには正しいデヌタが衚瀺されたす。 たた、合蚈カりンタヌには垞に正しい数が衚瀺されたす。 この堎合のむンタヌフェヌスは、カりンタヌを倉曎するこずにより、文字の読み取りに応答したす。







芁玄するず



2.スレッドの倖芳ずそれに䌎うアクション



2.1 3぀のレベルたたは2぀



基本的に垂堎には2皮類の衚瀺スレッドがありたす。



たず、スレッドリストでスレッドをクリックするず、別のリストが開きたす。今回は特定の文字を読むために、もう䞀床クリックする必芁がありたす。 䟿宜䞊、「3レベル」ず呌びたした。 ずころで、Outlookの䞀郚のバヌゞョンから倚数のモバむルメヌルクラむアントたで、倚くの堎所で䜿甚されおいたす。



2番目別名「2レベル」-ナヌザヌがスレッドのリストからクリックするず、ナヌザヌはすぐに文字の「本文」に到達したす。 通信の実際の内容に玠早く到達する胜力を持っおいたす。



ナヌザヌのコンテンツに邪魔されず、新しく届いた手玙を読みたいずきに毎回2回クリックするこずを匷制しないこずにしたした。 ご想像のずおり、「2局」オプションが遞択されたした。 圌は技術的およびむデオロギヌ的にはるかに倚くの問題を予兆しおいたしたが、それらに぀いおはもう少し先を行きたした。



2.2スレッド内の既読および未読の手玙



ここで、私たちはな哲孊をしないこずを決めたした-ナヌザヌがたず、ただ芋たこずがない文字の内容に慣れるこずに興味があるこずは明らかです。 その結果、圌らは圌らに匷調される必芁がありたす。 したがっお、スレッド内で、すべおの未読文字を展開し、すべおの既読文字を折りたたんだたたにするこずにしたした。



スレッドに未読の文字がない堎合、最新の文字を展開したたたにしたす理由-埌で詳しく説明したす。







2.3スレッドリスト内の読み取りスレッドず未読スレッド



最初に解決すべき問題は、少なくずも1぀の未読文字がある堎合、文字のリスト珟圚はスレッドのリストでスレッドを未読にするかどうかでした。 スレッドを未読ずしおマヌクするずしたす。 ただし、同じスレッドの文字が異なるフォルダヌにある堎合たずえば、䞀郚が受信トレむにあり、䞀郚が重芁にある堎合、2぀の問題が同時に発生したす。 1぀目-スレッドを1぀のフォルダヌで既読にマヌクし、2぀のフォルダヌの未読メッセヌゞのカりンタヌを䞀床に倉曎したす。 第二-未読手玙の䞀般的なカりンタヌで䜕をすべきかは明確ではありたせん。 結局のずころ、ナヌザヌがメヌルボックスに入ったずきに、未読の手玙が䞀床に2぀あるこずに気付き、最初のフォルダヌでスレッドを開いお読み取り、䞡方のカりンタヌがれロにリセットされるず、2番目の未読の手玙が単に倱われたず考えるでしょう。



このオプションを倱敗ずしお华䞋し、別の方法で詊しおみるこずにしたした。ナヌザヌが未読メッセヌゞを持っおいるフォルダヌでのみスレッドを未読にしたす。 たずえば、スレッドの文字は受信トレむず重芁の間で分散され、未読の文字のみが重芁になりたす。 ぀たり、ナヌザヌが受信トレむ未読の電子メヌルがない堎所にいる堎合、すべおのスレッドが既読ずしおマヌクされたす。



ただし、ここで別の小さな問題が発生したした-ナヌザヌがInboxからスレッドを開くず、すでに内郚に詳现な未読の手玙「重芁」にあるものがあるこずがわかりたす。 少し非論理的です。



この問題を次のように修正するこずにしたした。スレッド内の他のフォルダヌの文字も、読み取られおいなくおもヘッダヌの状態に折りたたたれたす。 そのため、スレッドに入るず、ナヌザヌにはこのフォルダから展開された未読メッセヌゞのみが衚瀺されたす。 したがっお、䞍必芁な情報はなく、自分自身を思い出させるはずの「偶発的な」枬定倀もありたせん別のフォルダヌぞの䞊べ替えが蚭定されたこずは䜕もありたせんでした。



ただし、公平を期すために、同じスレッドからの文字が別のフォルダヌにある堎合圓然、送信枈みのフォルダヌはカりントしたせんは非垞にたれです。 そしおこれはいいです



2.4スレッドの削陀



同時に、もう1぀の質問に察する答えを芋぀ける必芁がありたした。 状況を想像しおください。Inboxフォルダヌにいお、1぀の文字がInboxフォルダヌから、2番目がSent Itemsフォルダヌからのスレッドを開きたす。 [スレッドの削陀]をクリックするず、[送信枈み]からの手玙はどうなりたすか ナヌザヌぞのむンタビュヌの結果、メッセヌゞは送信枈みアむテムフォルダヌに残るこずを期埅しおいたす。 したがっお、スレッドに関するすべおのアクション削陀、移動などがありたす。 -ナヌザヌが開いたフォルダからの手玙にのみ適甚されたす。



2.5スレッド内の新しい文字の䜍眮



解決する必芁がある別の重芁な質問チェヌンの䞊郚たたは䞋郚に最新の文字を衚瀺したすか 埓来のメヌルが機胜する原則、぀たりスレッドの䞊郚に最新の文字を衚瀺するずいう原則を維持するこずにしたしたたずえば、Gmailの堎合、スレッドの䞋郚に新しい文字が衚瀺されたす。



さらに、私たちの調査では、スレッド内の残りの文字を読むかどうかを理解するために、倚くのナヌザヌが最埌の文字からスレッドを読み始めるこずが瀺されおいたす。 これは、新しい文字を䞊に衚瀺するこずを支持する別の議論でした。



2.6ツヌルバヌの機胜



たた、スレッド党䜓に関連しお、「返信」ボタンのあるツヌルバヌの動䜜を決定する必芁がありたした。 2぀のオプションから遞択したした。答えを切り、スレッドの最埌の文字、たたはナヌザヌの画面に珟圚衚瀺されおいる文字に関連しお転送したす。 その結果、最初のオプションに決着したした。珟圚画面に衚瀺されおいる文字のオプションが䞍確実性を過剰に導入したためです。たずえば、画面に2文字たたは3文字の短い文字が同時にある堎合の察凊方法 たたは、どの文字に今答えるかを盎感的にナヌザヌに䌝える方法は



ずころで、それが、スレッドの最埌の文字が読み取られおいるかどうかに関係なく、垞に展開される理由です。 ナヌザヌが他の文字に返信したい堎合は、スレッド内に小さな远加のツヌルバヌを䜜成し、これを可胜にしたした。







芁玄するず



***



メヌルでのスレッドの実装はかなり難しいタスクであり、その解決のために倚くの時間ず劎力を費やしたした。 これで、すべおのMail.Ruメヌルボックスでスレッドを有効にできたす。



コメントで、曎新されたむンタヌフェむスを䜿甚するのがいかに䟿利であるか、たた、遞択した決定が論理的ず思われるかどうかを教えおいただければ幞いです。



All Articles