Skip to main content

როგორ გავიაროთ System Design ინტერვიუ: senior ინჟინრის სახელმძღვანელო

System design რჩევების უმეტესობა თეორიული ხმაურია. ეს არის გამეორებადი ფრეიმვორკი, რომელსაც კანდიდატების შესაფასებლად ვიყენებ — და რომელიც შეგიძლიათ გამოიყენოთ ნებისმიერი system design ინტერვიუს mid ან senior დონეზე გასავლელად.

როგორ გავიაროთ System Design ინტერვიუ: senior ინჟინრის სახელმძღვანელო

System design ინტერვიუები აშინებს დეველოპერების უმეტესობას, რადგან პრობლემა შეუზღუდავია. „დააპროექტე Twitter”. „დააპროექტე URL-shortener”. „დააპროექტე distributed cache”. საიდან დავიწყოთ?

100+ ტექნიკური ინტერვიუს ჩატარებისა და FAANG/MAANG-ისთვის ინჟინრების მენტორობის შემდეგ პროცესი გამეორებად ფრეიმვორკში დავიყვანე. აი ის.

6-საფეხურიანი ფრეიმვორკი

ნაბიჯი 1: დააზუსტეთ მოთხოვნები (5 წუთი)

არასოდეს დაიწყოთ დიზაინი ამ კითხვების გარეშე:

  • მასშტაბი: რამდენი მომხმარებელი? Read-heavy თუ write-heavy? მოსალოდნელი QPS?
  • Consistency vs availability: ნორმალურია ცოტა ძველი მონაცემების მიწოდება? შეიძლება დავკარგოთ write?
  • გეოგრაფია: ერთი რეგიონი თუ გლობალური?
  • SLA: რა latency-ია მისაღები? Uptime მოთხოვნა?

კანდიდატების უმეტესობა ამას გამოტოვებს და კვადრატებს იწყებს. ინტერვიუერები ხედავენ. Senior ჯერ კითხვებს სვამს.

ნაბიჯი 2: განსაზღვრეთ API კონტრაქტი

ნებისმიერ ინფრასტრუქტურამდე — რას გასცემს სისტემა გარეთ:

POST /urls
Body: { "long_url": "https://example.com/very-long-path" }
Response: { "short_code": "abc123", "short_url": "https://short.ly/abc123" }

GET /{short_code}
Response: 301 Redirect to long_url

ეს გაიძულებთ იფიქროთ მომხმარებლის კონტრაქტზე იმპლემენტაციის დეტალებამდე.

ნაბიჯი 3: შეაფასეთ მასშტაბი (back-of-envelope)

ხმამაღლა ითვალეთ:

  • „100M URL დღეში = ~1 200 write/წმ”
  • „read/write 10:1 = 12 000 read/წმ”
  • „საშუალო URL ~500 byte, 100M/დღე × 365 × 500 = ~18ТБ/წელი”

ზუსტი რიცხვები არ გჭირდებათ. გჭირდებათ აჩვენოთ, რომ სიდიდის რიგებში ფიქრობთ.

ნაბიჯი 4: დააპროექტეთ data model

SQL vs NoSQL — თითქმის ყოველთვის პირველი რეალური გადაწყვეტილება:

ფაქტორიSQL-ის სასარგებლოდNoSQL-ის სასარგებლოდ
Strong consistency საჭიროა
რთული join-ები / ანგარიშები
ჰორიზონტალური მასშტაბი 100M+რთული
Schema სტაბილურინებისმიერი
Access pattern — key-valueნებისმიერი

URL-shortener-ისთვის მარტივი key-value (Redis ან DynamoDB) lookup-ისთვის სწორი არჩევანია. მეტამონაცემები (შექმნის დრო, click ანალიტიკა) — PostgreSQL-ში.

ნაბიჯი 5: სისტემის კომპონენტები

დახაზეთ კვადრატები და ახსენით თითოეული:

Client → CDN/Load Balancer → API Servers (stateless)
                           → Redis (short_code → long_url cache)
                           → PostgreSQL (მეტამონაცემები, ანალიტიკა)

შემდეგ რთული:

  • short_code-ის გენერაცია: Base62 auto-increment ID-დან, ან hash + collision handling
  • Cache invalidation: TTL Redis ჩანაწერებზე, write-through შექმნისას
  • Rate limiting: per-IP, token bucket ალგორითმი

ნაბიჯი 6: Bottlenecks და trade-offs

აქ senior mid-ისგან გამოირჩევა. პროაქტიულად განიხილეთ:

  • Single points of failure: „DB არის SPOF; დავამატოთ read-replicas და primary failover”
  • ცხელი partitions: „თუ short URL ვირუსულია, ერთი Redis node იტვირთება; consistent hashing ანაწილებს”
  • ღირებულება vs წარმადობა: „CDN cache 90% origin hit-ს ზოგავს, მაგრამ ამატებს stale redirect-ის რისკს წაშლილი URL-ებისთვის”

რას აფასებენ ინტერვიუერები რეალურად

  1. კომუნიკაცია: შეგიძლიათ თქვენი ფიქრი ხმამაღლა ახსნათ?
  2. სისტემური დეკომპოზიცია: ანაწილებთ პრობლემას ნაწილებად?
  3. Trade-off awareness: ხედავთ, რომ სრულყოფილი პასუხი არ არსებობს?
  4. Production-mindset: ფიქრობთ failure modes-ზე, არა მხოლოდ happy path-ზე?

არ ამოწმებენ, ხსოვს თუ არა არქიტექტურული დიაგრამები. ამოწმებენ, როგორ ფიქრობთ.

ერთადერთი პრაქტიკული სავარჯიშო, რომელიც მუშაობს

აიღეთ ნებისმიერი აპი, რომელსაც ყოველდღე იყენებთ (Slack, Netflix, თქვენი ბანკის მობილური). 20 წუთის განმავლობაში ქაღალდზე ჩაატარეთ:

  • რა ძირითადი არსებები?
  • რა read/write თანაფარდობა?
  • სად არის bottlenecks?
  • როგორ მასშტაბირდება 10x ამჟამინდელ დატვირთვაზე?

გააკეთეთ ეს 20-ჯერ. თეთრი დაფა შიშის გარეშე.


System design აზროვნებას განვიხილავთ კურსში Backend Architecture Foundations — სადაც გასწავლით senior-ად ფიქრს, სანამ senior გახდებით.

გაზიარება
X LinkedIn
შემდეგი ნაბიჯი

დაამყარეთ ეს თემა კურსზე

სტრუქტურირებული გზა თეორიიდან production-კოდამდე — პროექტებითა და code review-ით.

საშუალო 6 კვირა

Backend არქიტექტურის საფუძვლები

პრაქტიკული კურსი backend არქიტექტურული აზროვნებისთვის. ისწავლით მასშტაბირებადი სისტემების დიზაინს, მონოლითსა და მიკროსერვისებს შორის არჩევანს, სუფთა API-ების შექმნას და production აზროვნებას.

მეტის ნახვა →
დამწყები 6 კვირა

შესავალი ASP.NET Core-ში

ისწავლეთ ASP.NET Core-ის საფუძვლები: თანამედროვე backend დეველოპმენტი, DI, როუტინგი, კონტროლერები, REST API და გაშვება.

მეტის ნახვა →
მოწინავე 1 კვირა

1:1 Backend და არქიტექტურის განხილვა

პირადი 1:1 სესია არქიტექტურაზე ფოკუსით: რისკების გამოვლენა, trade-off-ების განხილვა და კონკრეტული შემდეგი ნაბიჯების განსაზღვრა. განვიხილავთ backend არქიტექტურას, კოდს და production მზადყოფნას.

მეტის ნახვა →
Oleksii Anzhiiak

სტატიის ავტორი

Oleksii Anzhiiak

სოფტვეარ არქიტექტორი, უფროსი .NET ინჟინერი და თანადამფუძნებელი

ოლექსი ანჟიაკი — სოფტვეარ არქიტექტორი, უფროსი .NET ინჟინერი და ToyCRM.com-ისა და ProfectusLab-ის თანადამფუძნებელი. 15+ წლიანი გამოცდილებით, ის სპეციალიზირდება განაწილებულ სისტემებში, cloud ინფრასტრუქტურაში, მაღალი დატვირთვის backend-ში და იდენტობის პლატფორმებში. ქმნის უსაფრთხო ავტენტიფიკაციის სისტემებს, არქიტექტურულ გადაწყვეტებს და თანამედროვე საგანმანათლებლო პროგრამებს, რომლებიც სტუდენტებს კარიერულ წინსვლაში ეხმარება.

LinkedIn →

რეკომენდებული საყურებელი

შერჩეული გარე ვიდეოები თემაზე. იხსნება YouTube-ზე.

~8:00:00
საშუალო AI Engineer (AI Engineer World's Fair)

AI Engineer World's Fair 2024 — კეინოუტი და CodeGen ტრეკი

2024 წლის უდიდესი ტექნიკური AI-კონფერენციის კეინოუტი. AI-ინჟინერიის სურათი — რა გამოვიდა, რა იმუშავა, რა არა — გუნდებისგან, რომლებიც ამას აშენებენ.

~1:56:00
გაწაფული Andrej Karpathy

GPT-ის შექმნა ნულიდან

იშვიათი პრაქტიკული ახსნა GPT-ის შიდა არქიტექტურის შესახებ — თეორიიდან რეალურ კოდამდე.

~27:00
საშუალო 3Blue1Brown

Transformer-ები — LLM-ების ტექნოლოგია (Deep Learning, თავი 5)

3Blue1Brown-ის ფირმოვანი ვიზუალური ახსნა transformer-ის არქიტექტურის. საუკეთესო 30-წუთიანი შესავალი ინჟინრებისთვის — ჯერ ინტუიცია, შემდეგ მათემატიკა.

დაგვიკავშირდით