Lec-22 : HLD vs LLD in System Design
All Gate Smashers transcripts →
Summary
This video explains the difference between high-level and low-level design in system design, using the Indian Railways (IRCTC) booking system as an example. High-level design focuses on the overall system architecture and components, while low-level design delves into the specifics of individual components, including classes, methods, and design patterns.
Key points- High-level design considers the entire system, while low-level design focuses on specific components in detail.
- In system design interviews, understanding both high-level and low-level design is crucial.
- High-level design for IRCTC involves components like authentication, search, seat booking, payment, and notifications.
- Low-level design involves defining classes (e.g., User, Train, PNR), objects, methods, variables, and choosing design patterns.
- Key considerations for low-level design include business logic, database schemas, and handling specific scenarios like cancellations or waitlists.
Chapters
Notable quotes (4)
“अब देखो हाई लेवल डिजाइन की बात करें तो मतलब एक बड़ी पिक्चर की एंटायर सिस्टम की हम लोग बात करते हैं”
“और जब हम लो लेवल डिजाइन करते हैं तो मतलब उसका एक कॉम्पोनेंट है।”
“वो एक बड़ी पिक्चर हो गई और उस एक बड़ी पिक्चर में एक छोटे कॉम्पोनेंट्स को अगर हम बहुत अच्छे से डिटेल में कर रहे हैं।”
“ईच एंड एवरीथिंग आपको जो है वो लो लेवल में प्रॉपर्ली डिजाइन करना पड़ेगा।”
0:00डियर स्टूडेंट्स, वेलकम टू GS. आज की इस वीडियो में बहुत ही इंपॉर्टेंट कॉन्सेप्ट एक्सप्लेन करने जा रहा हूं। और यह कॉन्सेप्ट है हाई लेवल डिज़ाइन वर्सेस लो लेवल डिज़ाइन इन द सिस्टम डिज़ाइन। अब देखो सिस्टम डिज़ाइन की जब भी हम बात करते हैं किसी भी कंपनी का किसी भी एप्लीकेशन का सिस्टम डिज़ाइन के अंदर आपको बहुत ज्यादा क्वेश्चन पूछे जाते हैं और रिसेंटली मैं मेटा के एक एंप्लई का इंटरव्यू पढ़ रहा था जिसमें वो क्लियर कट बोल रहा था कि यार आज के टाइम पे इस चीज के बारे में स्टूडेंट्स को पता होना बहुत ज्यादा जरूरी है। किसी भी एप्लीकेशन का हाई लेवल डिज़ाइन क्या
0:32होता है? क्या-क्या कॉम्पोनेंट्स आते हैं? और लो लेवल डिज़ाइन क्या होता है? और उसके अंदर क्या-क्या कॉम्पोनेंट्स आते हैं? ये चीज बहुत ज्यादा पूछी जाती है। अब देखो हाई लेवल डिजाइन की बात करें तो मतलब एक बड़ी पिक्चर की एंटायर सिस्टम की हम लोग बात करते हैं और जब हम लो लेवल डिजाइन करते हैं तो मतलब उसका एक कॉम्पोनेंट है।
0:50उसी एक कॉम्पोनेंट के अंदर क्या-क्या मेरे मॉड्यूल्स होंगे, क्या-क्या चीजें होंगी? कोडिंग के पॉइंट ऑफ व्यू से भी आप बोल सकते हो। जैसे एग्जांपल के तौर पे इंडियन रेलवेेज का एग्जांपल लेते हैं। अब पूरे इंडियन रेलवेेज का जो एंटायर सिस्टम है, जो पूरी एप्लीकेशन है, इसको मैं बोल सकता हूं हाई लेवल डिज़ाइन। लेकिन उसके अंदर लेट्स सपोज मैंने सिर्फ बुकिंग वाला जो सिस्टम है सिर्फ सीट बुकिंग वाले सिस्टम को मैंने अगर कोड करना है या उसको प्रॉपर डिजाइन करना है उस चीज के लिए हम लोग बोल सकते हैं कि वो एक लो लेवल डिज़ाइन है एक पर्टिकुलर चीज का तो है ऑब्वियसली आपस में रिलेटेड ही है। ये कोई ऐसा नहीं है कि ये
1:23अलग चीज है वो अलग चीज है। वो एक बड़ी पिक्चर हो गई और उस एक बड़ी पिक्चर में एक छोटे कॉम्पोनेंट्स को अगर हम बहुत अच्छे से डिटेल में कर रहे हैं। दैट इज़ अ लो लेवल डिज़ाइन। अब यहां पे भाई iआरसीटीc वाला एग्जांपल बात करें तो हाई लेवल डिजाइन में क्या-क्या चीजें आ सकती हैं? देखो सबसे पहले यूजर होगा कोई ना कोई वेब एप्लीकेशन आईआरसीटीc की या फिर मोबाइल एप्लीकेशन को ओपन करेगा और उसके बाद आपको सबसे पहले क्या करना पड़ेगा? अपना ऑथेंटिकेशन। तो यहां पे हाई लेवल डिज़ाइन में सबसे पहले हमें क्या रखना पड़ेगा? एक ऑथेंटिकेशन सर्विस को रखना पड़ेगा कि बंदा जो है वो साइन इन कर सके और साइन इन करने
1:56के लिए हम लोग जो है वो उसको अलग-अलग प्रोविजन दे सकते हैं कि भैया वो ईमेल आईडी से वो मैसेज के थ्रू या वो अपने नंबर के थ्रू Google आईडी के थ्रू एप्पल आईडी के थ्रू देयर आर वेरियस थिंग्स कि हम उसको कैसे ऑथोराइज कर रहे हैं। अब उसके बाद लेट्स सपोज जब वो ऑथेंटिकेट हो गया प्रॉपर्ली अब उसके बाद क्या करेगा वो सर्च करेगा। क्या सर्च करेगा? मल्टीपल चीजें सर्च कर सकता है कि भैया मेरे को कोई पर्टिकुलर ट्रेन के लिए कोई टिकट करवानी है तो मुझे ट्रेन की सर्चिंग करनी है।
2:23मुझे टाइम की सर्च करनी है। मुझे रूट की सर्च करनी पड़ सकती है। तो यहां पे मल्टीपल माइक्रो सर्विसेस होंगी। एक होगी ऑथेंटिकेशन के लिए एक होगी आपकी सर्च के लिए। उसके बाद जब सर्चिंग हो गई उसको पता लग गया कि मुझे ये वाली ट्रेन के अंदर करवानी है टिकट। तो फिर यहां पे ऑब्वियसली सीट बुकिंग वाला जो है वो एक अलग से आपको सर्विस बनानी पड़ेगी कि भैया बंदा जो है वो सीट के ऊपर सिलेक्ट करे कि मेरे को इस कोच के अंदर इस सीट के अंदर जो है वो मेरे को बुकिंग करवानी है। ये डेट है ये सारी चीजें और फिर उसके बाद जो है वो जो उसके
2:53अंदर जो किया वो सारा फिर ऑब्वियसली पेमेंट वगैरह करेगा और उसके बाद उसको एक नोटिफिकेशन आएगा कि भैया जो आपने सीट करवाई है वो आपकी बुकिंग हो चुकी है। लेकिन क्या इतना ही है सिर्फ नहीं। इसके अलावा बहुत सारी अलग से भी चीजें हैं कि भैया हो सकता है कि उसको चेंज करवाना पड़ जाए। मतलब अपनी टिकट्स को अपडेट करना है।
3:11मतलब उसको कोई लेट्स सपोज कोई काम हो गया तो उसको डेट चेंज करनी है या टिकट का लेट्स सपोज सीट चेंज करनी है। ये सारी चीजें सीट नहीं मिल रही तो तत्काल की सर्विस है। तो इतना कुछ जो है वो मल्टीपल सर्विसेज जो है वो यहां पे रखनी पड़ती है। तब जाके एक एंटायर सिस्टम को बनाया जाता है। और इसके अलावा जैसे Red Ch ऑब्वियसली कुछ इंफॉर्मेशन ऐसी होती है जो उसको फटाफट से हमें देनी है। कुछ चीजें ऐसी है। अब मेरा डेटाबेस है सीक्वल डेटाबेस नो सीक्वल डेटाबेस कौन-कौन से टेबल्स होंगे यहां पे उन टेबल्स को कैसे हम स्टोर करेंगे इवन यहां पे एक आपका क्यूज आपको पता है कि जब
3:45उसकी टिकट हो गई या फिर उसकी टिकट कैंसिल हो गई कुछ भी हुआ तो मुझे उसको एक एसएमएस के थ्रू या मेल के थ्रू एक नोटिफिकेशन देना जरूरी है। ये सारी चीजें कहीं ना कहीं एक बड़े आर्किटेक्चर के अंदर आ जाती हैं। यही जब हम एक छोटे आर्किटेक्चर की बात करते हैं लो लेवल डिज़ाइन तो वहां पे स्पेशली आ जाती है आपकी क्लासेस। जैसे आपको पता है कौन-कौन से ऑब्जेक्ट होंगे आईआरसीटीसी में। यूजर हो गया सबसे पहले।
4:08ट्रेंस हो गई वहां पे, पीएनआर हो गया वहां पे, कोच हो गया, सीट हो गई। तो मतलब इतने सारे रेलवे स्टेशंस हो गए। ये कहीं ना कहीं जो है वो क्लासेस आती हैं। उसके अंदर क्या ऑब्जेक्ट्स हैं? क्या क्लासेस के अंदर हम लोग मेथड्स देने वाले हैं? वो सारे मेथड्स क्या होंगे? और उसके अलावा क्या वेरिएबल्स होंगे? ये कहीं ना कहीं डिसाइड करना पड़ता है। इंटरफेससेस कौन-कौन से होंगे? डिजाइन पैटर्न हम लोग सिंगल टर्न रखेंगे कि भैया मेरे को एक बंदे के साथ कनेक्शन करना है या फैक्ट्री कनेक्शन रखेंगे। हो सकता है कि एक पेमेंट के लिए मुझे यूपीआई का भी देना पड़े। मुझे कार्ड
4:40भी देना पड़े या मुझे लेट्स सपोज डेबिट कार्ड, क्रेडिट कार्ड मल्टीपल जो है वो कहीं ना कहीं मेथड्स हो सकते हैं। तो मुझे डिज़ाइन पैटर्न्स को इसके हिसाब से जो है वो बनाना पड़ेगा। इवन तत्काल के अंदर फेयर बहुत ज्यादा हाई, बहुत ज्यादा लो ये कहीं ना कहीं या फिर आने वाले टाइम में आपको पता है कि कोई लेट्स सपोज छठ पूजा आ रही है तो उस टाइम पे आपको पता है कि बहुत ज्यादा बुकिंग रहेगी। तो इस चीज को कैसे मैनेज किया जाएगा? ये सारी चीजें बिजनेस लॉजिक डेटाबेस स्कीमा कौन-कौन से टेबल ईच एंड एवरीथिंग आपको जो है वो लो लेवल में प्रॉपर्ली डिजाइन करना पड़ेगा। ये चीज मैं
5:11आपको इसीलिए बोल रहा हूं बार-बार कि इंटरव्यूज के अंदर बहुत सारी चीजें ऐसी पूछी जाती हैं। एग्जांपल के तौर पे मैं कुछ क्वेश्चंस भी लेके आया हूं जो कि आप लोगों ने सॉल्व करने हैं और आप लोगों ने प्रॉपर डिजाइन भी करना है। मैं स्पून फीड नहीं करना चाहता। क्रमिंग नहीं करवाना चाहता क्योंकि ये बड़ा ब्रेन स्टॉर्मिंग टॉपिक है। इसके ऊपर जब आप खुद से थोड़ा म्था मारोगे, थोड़ा सा मेहनत करोगे तब आपको और ज्यादा क्लेरिटी आएगी सिस्टम की कि कैसे-कैसे चीजें जो है वो काम करती है और आप बेटर आंसर दे सकोगे। तो ये सारे क्वेश्चंस के आंसर आपने निकालने हैं।
5:41प्रॉपर एक डिज़ाइन बनाना है। जब हो जाए तो भैया कमेंट सेक्शन में ओके जरूर लिख देना। डन लिख देना जो आपके दिल में आए ताकि मेरे को भी तसल्ली होगी कि भैया आपने वाकई में कुछ नया सीखा है। तो हाउ टू प्रिवेंट द डबल बुकिंग? वेरीेंट कैसे लॉकिंग सिस्टम के थ्रू हम लोग डबल बुकिंग को एक ही सीट को रुकवा सकते हैं कि भैया ऐसा ना हो दो बंदों ने कर दिया और वहां पे जाके एक दूसरे को मार रहे हैं कि तू खड़ा हो भैया ये मेरी सीट है हाउ टू हैंडल द तत्काल स्पाइक एकदम से स्पाइक आ गया तो कैसे उसको कंट्रोल किया जाए सर्च सर्विस को कैसे
6:11डिज़ाइन पेमेंट्स रोल बैक कैसे करनी है कोई पेमेंट फेल हो गई कैसे रोल सीक्वल को यूज़ करना है नो सीक्वल को बेटर कौन सा होगा व्हाई यूज़ रेडिसज व्हाई यूज़ काफ का ये सारी चीजें आपको पता होनी चाहिए डिजाइन करना है आपको लो लेवल में भैया ट्रेन की क्लास को डिजाइन करना है। बुकिंग की क्लास को कैंसिलेशन कैसे वर्क करेगा? इसके अंदर भी आपको रूल देना पड़ेगा कि 2 दिन पहले अगर बुकिंग कराते हो तो इतने परसेंट कटेंगे। दो घंटे पहले कराते हो तो इतने कटेंगे? ये सारे बिज़नेस लॉजिक आपको डिसाइड करके डालने पड़ेंगे। व्हिच डिज़ाइन पैटर्न विल यू यूज़? हाउ डू यू मॉडल द वेट लिस्ट?
6:41कैसे मॉडल करोगे? हाउ विल यू डिज़ाइन द पीएआर जनरेशन? यह क्वेश्चंस बहुत ज्यादा पॉपुलर है। जब यह आपको आ गए इसके कंपैरिजन में कोई बस बुकिंग का आ जाए, कोई एरोप्लेन बुकिंग का आ जाए। जब एक चीज आ गई तो यार आप 10 अपने आप उसके बाद सीख लोगे। बस सीखना जरूरी है। इसीलिए आपको बोल रहा हूं कि अच्छे से पढ़ो। इन क्वेश्चंस के टेक्निकल आंसर्स आपको पता होने चाहिए।
7:04डिज़ाइन आपको पता होना चाहिए। जब आप ये बना लो तो कमेंट सेक्शन में ओके या डन जरूर लिख देना। मेरे को तसल्ली हो जाएगी। थैंक यू।
Works on any YouTube video.
Swap youtube.com for 2outube.com in the address bar — or paste a link.
Read another video