केवल कुछ चुनिंदा उपयोगकर्ताओं के लिए एक सुविधा कैसे रोल करें


11

फेसबुक के नए टाइमलाइन फीचर के बारे में मैं जो भी पूछना चाह रहा हूं उसका एक अच्छा उदाहरण है। शुरुआत में, कुछ चुनिंदा लोगों को ही टाइमलाइन तक पहुंचने की अनुमति थी। चूंकि यह कैसे काम कर रहा था, इस फीचर को और अधिक ठोस बनाया गया और इसमें बग्स को ठीक किया गया, अतिरिक्त उपयोगकर्ताओं को इस सुविधा तक पहुंचने की अनुमति दी गई। बाद की तारीख में, उपयोगकर्ताओं के एक बड़े समूह को इस सुविधा तक पहुंच की अनुमति दी गई थी और अब, सभी उपयोगकर्ताओं के लिए एक सामान्य सुविधा है। एक विकास टीम इस प्रकार के फीचर रोल आउट का प्रबंधन कैसे करती है?

मैंने कॉन्फ़िगरेशन सेटिंग्स का उपयोग करने के विचार के साथ चयन करने के लिए पहुंच को नियंत्रित किया है यदि कुछ परीक्षण में या कॉन्फ़िगरेशन फ़ाइल के माध्यम से उत्पादन में है तो कोड में बयान। अब जबकि साधारण सुविधाओं के लिए यह ठीक है, मेरा मानना ​​है कि अगर हमने इसे एक बड़े फीचर में लागू करने की कोशिश की तो यह असहनीय हो जाएगा।

इस तरीके से फीचर रोल आउट को प्रबंधित करने का सबसे अच्छा तरीका क्या होगा?


3
ACL & RBAC दो (बहुत समान) तरीके हैं जो आप देख रहे हैं।
यानिस

@YannisRizos: दी, यह एक छोटा / छोटा उत्तर है, लेकिन मुझे लगता है कि यह वैध रूप से उपयोगी है। आपको इसे उत्तर के रूप में पोस्ट करना चाहिए।
स्टीवन एवर्स

क्या यह मूल रूप से सभी विशेषताओं के लिए एक समान नहीं है? क्रेडेंशियल के आधार पर उपयोगकर्ता के पास विकल्पों की x राशि तक पहुंच होती है? उदाहरण के लिए व्यवस्थापक स्तर सेटिंग्स बदल सकता है और ग्रन्ट स्तर केवल डेटा में टाइप कर सकता है?
पीटर बी

जवाबों:


2

एक विकास टीम इस प्रकार के फीचर रोल आउट का प्रबंधन कैसे करती है?

यह एक आसान अनुमान है कि फेसबुक जैसी प्रणाली को बड़े पैमाने पर डेटाबेस द्वारा संचालित किया जाता है। सभी उपयोगकर्ता डेटा स्पष्ट रूप से डेटाबेस में संग्रहीत होते हैं, और इस संभावना में उपयोगकर्ता के डेटा को कैसे प्रस्तुत करना है, इसके बारे में जानकारी शामिल है। यह जानना असंभव है कि फेसबुक का डेटाबेस कैसे सेट किया गया है, लेकिन यह ऐसा होना चाहिए कि समय-समय पर डेटाबेस में उपयोगकर्ताओं को समय-समय पर डेटाबेस में कुछ मापदंडों के आधार पर चुनकर, और मान बदलकर (जैसे) समय-समय पर उपयोगकर्ताओं को रोल आउट किया जाए। कुछ क्षेत्र के हैं।

उदाहरण के लिए, शायद वे उपयोगकर्ता तालिका में एक क्षेत्र की तरह है timeline_statusकि इस तरह के रूप में मान होते हैं not offered, offered, preview, और public। उस अकेले के आधार पर, फेसबुक की प्रणाली यह तय कर सकती थी कि उपयोगकर्ता के जानकारी पृष्ठ को कैसे प्रस्तुत किया जाए। FB टीम तब उपयोगकर्ताओं के कुछ समूह का चयन करके और उस फ़ील्ड के मान को बदलकर समयरेखा सुविधा को आज़मा सकती है।

व्यवहार में, मुझे यकीन है कि यह उससे थोड़ा अधिक जटिल है, लेकिन मुख्य विचार यह है कि एक उपयोगकर्ता खाता सिर्फ डेटा है, और उस डेटा में से कुछ यह निर्धारित कर सकते हैं कि कौन सी सुविधाएँ उपलब्ध हैं। एक नई सुविधा को रोल आउट करना तब डेटाबेस में उपयोगकर्ता रिकॉर्ड को अपडेट करने का बस एक मामला है।


9

... और सशर्त यदि कोड में बयान।

हाँ, यह गलत तरीका है। जो भी सुविधा X है अगर वह कॉन्फ़िगर करने योग्य है तो उसे कुछ का विस्तार या प्रतिस्थापित करना होगा। कोड में ऐसा करें। उदाहरण के लिए, FB चीज़ में ऐसा कुछ हो सकता है:

class UserPageView;
class HatedTimelineView : UserPageView;
class OldViewEveryoneLikes : UserPageView;

फिर आप एक ऐसी फैक्ट्री का निर्माण करेंगे, जो कॉन्फ़िगरेशन के आधार पर उपयोगकर्ता पृष्ठ पर जाकर यूजरपेज ऑब्जेक्ट बनाती है। आप उस दृश्य को सक्रिय कर देंगे। कोई मूर्ख शाखा नहीं।

आप इसे इस तरह से करना चाहते हैं क्योंकि अगर कोई आपसे इसे एक बार बदलने के लिए कह रहा है, तो वे फिर से इसके लिए कहेंगे। इसके अलावा वे एक और बात बदलने के लिए कहेंगे। विशेष मामलों के साथ अपनी वास्तुकला को फिर से बनाएं और यदि आप सभी जगह हैं और आपके पास एक सुविधा संपन्न, परिपक्व उत्पाद के बजाय अचूक, फफूंदयुक्त स्पेगेटी का एक विशाल कटोरा होगा।


यदि आप स्टेटमेंट का उपयोग करते हैं तो आपको सशर्त का उपयोग करने की आवश्यकता है। अन्यथा आपके कारखाने को कैसे पता चलता है कि कौन सा UserPageView वापस लौटना है? उस ने कहा, मैं इस बात से सहमत हूं कि यदि कोड के माध्यम से सभी कथन गलत हैं, तो आप उन्हें केंद्रीकृत करना चाहते हैं।
briddums

1

सुविधा के बारे में उसी तरह से सोचें जैसा आप किसी प्रशासन सुविधा के बारे में सोचते हैं।

जब पृष्ठ लोड हो रहा है तो जांच लें कि क्या उपयोगकर्ता के पास सुविधा के लिए सही विशेषाधिकार हैं यदि वह इसे लोड करता है।

लगता है कि फेसबुक नई सुविधाओं के लिए स्थान आधारित दृष्टिकोण का उपयोग कर रहा है। यह उपयोगकर्ताओं के आईपी पते को देखने के लिए उतना आसान हो सकता है जितना कि उनका स्थान खोजने के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.