Wprowadzenie do wywiadu dotyczącego projektowania systemu Pytania i odpowiedzi
Projektowanie systemu to procedura definiowania elementów systemu, takich jak architektura, komponenty i moduły, różne interfejsy tych komponentów oraz statystyki, które przechodzą przez ten system. Poprzez zaprojektowanie logicznego i skutecznego systemu ma on spełniać określone wymagania i potrzeby firmy lub organizacji. Pociąga to za sobą zorganizowane podejście do projektowania systemu. Aby uwzględnić wszystkie powiązane zmienne w systemie, konieczne jest podejście od dołu do góry lub od dołu do góry. Języki modelowania są używane przez projektanta do przekazywania danych i wiedzy w strukturze systemu, która jest zdefiniowana przez zgodny zestaw reguł i definicji. Projekty można opisać w językach modelowania tekstowego lub graficznego.
Oto niektóre przykłady języków modelowania graficznego:
- Unified Modeling Language (UML): opisuje oprogramowanie zarówno behawioralnie, jak i strukturalnie za pomocą notacji graficznej.
- Notacja modelowania procesów biznesowych (BPMN): służy do modelowania procesów
- System Modeling Language (SysML): służy do inżynierii systemów.
- Schemat blokowy: symboliczne lub krokowe przedstawienie algorytmu.
Czego należy się spodziewać podczas wywiadu dotyczącego projektu systemu?
Taki wywiad zwykle zaczyna się od bardzo otwartego problemu, takiego jak zaprojektowanie własnej sieci społecznościowej (np. Facebook, Twitter). W trakcie dyskusji ankieter doda dodatkowe ograniczenia lub założenia w celu ograniczenia zakresu problemu.
Aby odpowiedzieć na te pytania, pomocne są ćwiczenia i podejście strukturalne.
Teraz, jeśli szukasz pracy związanej z projektowaniem systemu, musisz przygotować się na pytania dotyczące wywiadu dotyczącego projektu systemu 2019. Prawdą jest, że każda rozmowa kwalifikacyjna jest inna w zależności od profilu pracy. Tutaj przygotowaliśmy ważne pytania i odpowiedzi na temat projektu systemu, które pomogą Ci odnieść sukces w rozmowie.
W tym artykule na pytania do wywiadu na temat projektowania systemu w 2019 r. Przedstawimy 10 najważniejszych i najczęściej zadawanych pytań na temat wywiadu na temat projektu systemu. Te pytania są podzielone na dwie części:
Część 1 - Projekt systemu Wywiad Pytania (podstawowe)
Ta pierwsza część obejmuje podstawowe pytania i odpowiedzi na temat projektu systemu
Q1) Zaprojektować TinyURL lub bit.ly (usługa skracania adresów URL)?
Odpowiedź:
Wymyśl funkcje, które system powinien w pierwszej kolejności obsługiwać. Po drugie, podaj szacunkową liczbę skalowalności systemu.
Podczas projektowania usługi należy wziąć pod uwagę trzy rzeczy:
- API (REST API) - podejście klienta do komunikacji z usługą wraz z modułem równoważenia obciążenia, który jest frontonem usługi.
- Warstwa aplikacji - wątki robocze lub hosty, które pobierają URL i generują dla niego mały URL i przechowują oba z nich w warstwie trwałości.
- Warstwa trwałości - baza danych
Rzeczy do analizy:
- Generuj unikalny identyfikator dla każdego adresu URL i generuj identyfikatory w skali, ponieważ 1000 żądań skracania adresów URL przychodzi co sekundę.
- Przekierowania uchwytu usługi.
- Obsługuje niestandardowe adresy URL.
- Śledź statystyki kliknięć
- Usuń wygasłe adresy URL
2) Czy zaprojektować YouTube / Netflix (globalną usługę przesyłania strumieniowego wideo)?
Odpowiedź:
Rzeczy do analizy:
- W filmach usługa będzie przechowywać i przesyłać ogromną ilość danych, które duża liczba użytkowników może oglądać i udostępniać jednocześnie.
- Rejestruj statystyki dotyczące filmów, na przykład ogólną liczbę wyświetleń, głosów w górę / w dół itp.
- Dodawanie komentarzy do filmów w czasie rzeczywistym.
Składniki:
- OC - Chmury takie jak AWS, OpenConnect, które działają jak sieć dostarczania treści.
- Backend - baza danych
- Klient - dowolne urządzenie (stacjonarne, Android, iPhone), z którego odtwarzasz wideo na YouTube / Netflix.
Przejdźmy do następnych pytań do wywiadu projektowego.
3) Projektowanie Quora / Reddit / HackerNews (sieć społecznościowa + usługa forum dyskusyjnego)?
Odpowiedź:
Rzeczy do analizy:
Osoby korzystające z usług mogą udostępniać linki lub zamieszczać pytania. Inni użytkownicy mogą odpowiadać na pytania lub komentować udostępnione linki. Dlatego usługa powinna wykonać następujące czynności:
- Rejestruje statystyki dla każdej odpowiedzi, np. Ogólną liczbę wyświetleń, głosów w górę / w dół, itp.
- Użytkownicy powinni mieć możliwość śledzenia innych użytkowników lub tematów
- Lista najważniejszych pytań na osi czasu od wszystkich użytkowników i tematów, które śledzą (podobnie jak w przypadku generowania wiadomości).
4) Zaprojektować Facebook Messenger lub WhatsApp (globalną usługę czatu)?
Odpowiedź:
To są podstawowe pytania podczas wywiadu dotyczące projektowania systemu. Rzeczy do analizy:
- Zaprojektuj rozmowy jeden na jednego między użytkownikami.
- Rozszerzenie projektu o obsługę czatów grupowych.
- Co można zrobić, gdy użytkownik nie ma połączenia z Internetem?
- Kiedy wysyłać powiadomienia push?
- Jak zapewnić szyfrowanie całościowe?
Struktura:
Klient> Moduł równoważenia obciążenia> Węzły> Pamięć podręczna (Redis)> Baza danych (Casandra)
5) Design Search Typeahead (autouzupełnianie)?
Odpowiedź:
Rzeczy do analizy:
- Należy podać sugestie dotyczące typu.
- Kryteria wyboru sugestii.
- Czy system musi działać w czasie rzeczywistym?
- Wesprzyj personalizację za pomocą sugestii.
- Zapytania na sekundę do obsłużenia przez system.
- Ilość danych do przechowywania.
Część 2 - Pytania do wywiadu dotyczącego projektu systemu (zaawansowane)
Przyjrzyjmy się teraz zaawansowanym pytaniom podczas wywiadu dotyczącego projektowania systemu.
6) Zaprojektować Dropbox / Dysk Google / Zdjęcia Google?
Odpowiedź:
Rzeczy do analizy:
- Jak przesyłać / wyświetlać / wyszukiwać / udostępniać pliki lub zdjęcia?
- Śledź uprawnienia do udostępniania plików.
- Zezwolenie wielu użytkownikom na edycję tego samego dokumentu.
7) Zaprojektować Facebooka, Twittera lub Instagram?
Odpowiedź:
Funkcje, które należy wziąć pod uwagę:
- Niektóre funkcje Twitter / Facebook / Instagram, które mają być obsługiwane.
- Potrzebujesz obsługi odpowiedzi na tweety / grupowanie tweetów według konwersacji.
- Kontrola prywatności w każdym tweecie.
- Wspieranie popularnych tweetów
- Bezpośrednie wiadomości
- Wzmianki / Tagowanie
Rzeczy do analizy:
- Liczba użytkowników i ruch obsługiwany przez system.
- Liczba obserwujących użytkownika.
- Liczba przypadków, gdy tweet został dodany do ulubionych.
Elementy, które należy zaprojektować:
- Generowanie wiadomości
- Wykres społeczny
- Systematyczne wyszukiwanie i przechowywanie postów / tweetów.
Przejdźmy do następnych pytań do wywiadu projektowego.
8) Czy zaprojektować robota sieciowego?
Odpowiedź:
Wymagana jest skalowalna usługa, która może indeksować całą sieć i zbierać setki milionów dokumentów internetowych.
Rzeczy do analizy:
- Znajdowanie nowych stron internetowych.
- Priorytetowe strony internetowe, które zmieniają się dynamicznie.
- Zapewnienie, że przeszukiwacz nie jest bezgranicznie przyłączony do tej samej domeny.
9) Projekt Uber:
Odpowiedź:
To najczęściej zadawane pytania podczas wywiadu dotyczące projektowania systemu. Architektura: usługi monolityczne / mikro (usługa w czasie rzeczywistym, interfejs użytkownika (aplikacja) i baza danych)
- Backend obsługuje ruch telefonii komórkowej, a klienci łączą się z backendem przez komórkową transmisję danych.
- Klienci łączą się z systemem wysyłkowym, który pasuje do kierowców i jeźdźców.
- Wysyłka jest napisana prawie w całości w node.js.
- Mapy / ETA: Aby wysyłka mogła dokonać inteligentnego wyboru, ważne jest, aby uzyskać mapy i dane routingu.
- Usługi: Usługi logiki biznesowej napisane głównie w języku python.
- Bazy danych: Postgres, Redis, MySQL.
Rzeczy do analizy:
- Klient prosi o przejażdżkę i sposób ekonomicznego dopasowania ich do pobliskich kierowców.
- Przechowywanie ton geograficznych lokalizacji dla kierowców i rowerzystów, którzy są zawsze w ruchu.
- Obsługa aktualizacji lokalizacji sterowników.
10) Zaprojektować ogranicznik szybkości API (Github)?
Odpowiedź:
Rzeczy do analizy:
- Ograniczanie liczby żądań, które jednostka może wysłać do interfejsu API w oknie czasowym, na przykład dziesięć żądań na sekundę.
- Ograniczanie szybkości powinno działać w przypadku konfiguracji rozproszonej, ponieważ interfejsy API są osiągalne przez grupę serwerów.
Polecane artykuły
Jest to przewodnik po liście pytań i odpowiedzi podczas wywiadu projektowego systemu, aby kandydat mógł łatwo zlikwidować te pytania dotyczące wywiadu projektowego systemu. Tutaj w tym poście przeanalizowaliśmy najważniejsze pytania dotyczące wywiadu projektowego, często zadawane w wywiadach. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -
- Pytania do wywiadu AutoCAD
- Pytania do wywiadu w Photoshopie
- Adobe Illustrator dla początkujących
- Asystent projektanta graficznego