inflearn logo

Bước đầu thiết kế hệ thống: Thiết kế kiến trúc Backend nổi bật trong buổi phỏng vấn

Vượt ra ngoài những kiến thức cơ bản như thiết kế API, triển khai CRUD và xác thực JWT để tiến đến thiết kế kiến trúc Backend! Đây là khóa học nhập môn thiết kế hệ thống giúp bạn tạo ra 'kiến trúc Backend của riêng mình', để bạn có thể tự tin nói về kinh nghiệm thiết kế trong các buổi phỏng vấn.

(4.9) 39 đánh giá

554 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Architecture
Architecture
backend
backend
software-design
software-design
system-design
system-design
Interview
Interview
Architecture
Architecture
backend
backend
software-design
software-design
system-design
system-design
Interview
Interview

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

4.9

5.0

홍ㅇ

100% đã tham gia

Là một junior fullstack developer, tôi đang băn khoăn về cách phát triển năng lực backend, và đây là một bài giảng rất bổ ích giúp tôi hiểu được mục tiêu đại cương và hướng tiến hành. Cảm ơn bài giảng hay~~

5.0

jinseok

100% đã tham gia

Đây là một bài giảng nhập môn tuyệt vời giúp tôi hiểu được nên tiếp cận từ góc độ nào khi thực hiện thiết kế hệ thống. Tài liệu và lời giải thích cũng được trình bày sao cho ai cũng có thể hiểu được nên rất tốt.

5.0

gonagi

100% đã tham gia

Trong quá trình tiến hành dự án, tôi cảm nhận được tầm quan trọng của thiết kế có xem xét đến tính ổn định và khả năng mở rộng nên đã tự học một mình, nhưng nội dung rộng lớn và trừu tượng khiến tôi cảm thấy bối rối. Khóa học này đã giúp tôi rất nhiều trong việc định hướng giữa sự mơ hồ đó. Thay vì chỉ đơn giản giới thiệu có những công nghệ gì, khóa học trước tiên đưa ra những tình huống vấn đề có thể gặp phải trong thực tế, sau đó giải thích tập trung vào các khái niệm để giải quyết chúng, rồi chỉ ra các công nghệ phù hợp cùng với ưu nhược điểm và những điểm cần cân nhắc của từng công nghệ, nhờ cách tiếp cận này mà những khái niệm mơ hồ đã trở nên rõ ràng. Trong quá trình này, tôi hiểu được trước tiên 'tại sao cần công nghệ này', 'đây là lựa chọn để giải quyết vấn đề gì' hơn là bản thân công nghệ, nên có thể rèn luyện khả năng suy nghĩ về bản chất của thiết kế thay vì bị ràng buộc vào một công nghệ cụ thể. Dù là thời gian ngắn, nhưng đây là khoảng thời gian quý báu giúp tôi có thể định hướng phù hợp với dự án của mình và thiết lập tiêu chuẩn để tự mình đánh giá và thiết kế. Tôi rất muốn giới thiệu khóa học này đến những ai cảm thấy thiết kế mơ hồ, hoặc muốn học tư duy thiết kế tập trung vào giải quyết vấn đề chứ không phải chỉ đơn thuần tiếp thu công nghệ.

Bạn sẽ nhận được điều này sau khi học.

  • Thiết kế hệ thống Backend

  • Kiến trúc hệ thống

  • Đánh đổi trong thiết kế hệ thống quy mô lớn

  • Cách để thực hiện một dự án nổi bật trong buổi phỏng vấn

Bước đầu tiên trong thiết kế hệ thống🚶🏻‍♀️

Khởi đầu để trưởng thành thành một nhà phát triển backend biết thiết kế, thay vì chỉ dừng lại ở việc triển khai tính năng.


"Rõ ràng là đã làm dự án rồi, nhưng tại sao khi phỏng vấn lại chẳng có gì để nói nhỉ?🤔"

Nhiều bạn đang chuẩn bị xin việc ở vị trí Backend khi kể về kinh nghiệm dự án thường tập trung giải thích vào việc triển khai tính năng xoay quanh thiết kế API hoặc CRUD.
Tuy nhiên, điều mà người phỏng vấn thực sự tò mò
không phải là "bạn đã triển khai như thế nào" mà là sự cân nhắc và trăn trở của riêng bạn về việc "tại sao bạn lại thiết kế như vậy".


Khóa học này được chuẩn bị dành cho những bạn đang chuẩn bị xin việc chưa có kinh nghiệm thiết kế kiến trúc backend.
Chúng tôi sẽ hướng dẫn từng bước về toàn bộ quy trình thiết kế, từ việc nên đặt ra mục tiêu gì khi thiết kế hệ thống quy mô lớn, hệ thống bao gồm những thành phần (component) nào,
cho đến việc có thể phát triển thực tế với kiến trúc nào.

Thông qua bài giảng này, hãy cùng nhau hoàn thành dự án chứa đựng thiết kế của riêng bạn,
thứ mà bạn có thể tự tin giải thích trong các buổi phỏng vấn.


#Thiết kế hệ thống #Thiết kế kiến trúc #Backend

🌟 Đặc điểm của bài giảng

📌 Để ngay cả người mới bắt đầu cũng có thể dễ dàng thấu hiểu!

  • Từ 4 mục tiêu cốt lõi của thiết kế hệ thống đến các thành phần chính cấu thành nên hệ thống backend và các khái niệm kiến trúc,
    chúng tôi sẽ giải thích phù hợp với trình độ của người mới bắt đầu để bạn có thể nhanh chóng nắm bắt được tư duy thiết kế hệ thống.

📌 Kỹ năng để có thể trả lời câu hỏi ‘Tại sao lại chọn công nghệ này!’

  • Không chỉ dừng lại ở việc triển khai các tính năng đơn thuần, bạn sẽ được học quá trình lựa chọn công nghệ và thiết kế kiến trúc có cân nhắc đến sự đánh đổi (trade-off).
    Hãy cùng tạo ra những căn cứ thiết kế để bạn có thể tự tin giải thích trong các buổi phỏng vấn.

📌 Cảm quan thiết kế có thể áp dụng vào dự án thực tế!

  • Cách thực hiện dự án nổi bật trong buổi phỏng vấn sẽ được giới thiệu trong Chương 16, và bằng cách thực hiện các nhiệm vụ thực tế được cung cấp trong mỗi phần, bạn có thể tự mình suy nghĩ và thiết kế kiến trúc backend phù hợp cho dự án của riêng mình.

🙋 Đối tượng đề xuất

Tôi muốn nhanh chóng nắm bắt các kiến thức cơ bản về thiết kế hệ thống.


Những ai muốn
nhanh chóng hệ thống lại các khái niệm và phác thảo bức tranh tổng quan về thiết kế hệ thống backend

Tôi muốn thực hiện một dự án có thể thể hiện được chiều sâu kỹ thuật để phục vụ cho việc tìm việc.


Những người muốn tạo ra một dự án không chỉ dừng lại ở việc triển khai các tính năng đơn thuần,
mà còn có thể giải thích được lý do thiết kế và quá trình lựa chọn công nghệ.

Tôi là lập trình viên mới vào nghề nhưng vẫn chưa có kinh nghiệm thiết kế hệ thống.


Những người muốn hiểu rõ mục tiêu và các thành phần của thiết kế hệ thống, đồng thời muốn nuôi dưỡng khả năng tự mình thiết kế kiến trúc.



📖 Sau khi hoàn thành khóa học

  • Bạn sẽ hiểu được 4 mục tiêu cốt lõi của thiết kế hệ thống backend quy mô lớn.

  • Server, DB, cache, message queue, bộ cân bằng tải, service registry, xử lý batch & streaming, v.v.
    Bạn sẽ hiểu được vai trò và sự cần thiết của các thành phần cốt lõi cấu thành nên kiến trúc backend.


  • Học về các khái niệm cơ bản và các đánh đổi chính (ví dụ: tính nhất quán và tính khả dụng) cần cân nhắc khi thiết kế hệ thống.

  • Bạn có thể học về các phong cách kiến trúc backend chính và phương pháp thiết kế kiến trúc thông qua các dự án ví dụ.

  • Các bạn đang chuẩn bị xin việc và đang thực hiện dự án phát triển backend có thể dựa trên nội dung bài giảng và các nhiệm vụ thực tế để thiết kế kiến trúc của riêng mình.

Bạn sẽ học được những nội dung này

Phần 1. Tại sao phải học thiết kế hệ thống?


Chúng ta sẽ cùng tìm hiểu thiết kế hệ thống là gì, và tại sao nó lại trở nên đặc biệt quan trọng đối với các nhà phát triển backend dạo gần đây.

Bắt đầu bước chân đầu tiên để phát triển thành một nhà phát triển có thể trình bày rõ ràng lý do thiết kế và phán đoán kỹ thuật thay vì chỉ triển khai đơn thuần.

Phần 2. 4 mục tiêu cốt lõi của thiết kế hệ thống


4 mục tiêu cốt lõi của thiết kế hệ thống (độ tin cậy, hiệu suất, tính khả dụng, khả năng mở rộng) và học cách áp dụng chúng vào thiết kế dự án thực tế.



Phần 3. Các thành phần hệ thống chính và sự đánh đổi (Trade-off)


Giới thiệu các thành phần chính thường được sử dụng để xây dựng hệ thống backend quy mô lớn, đồng thời giải thích các trường hợp sử dụng thông qua các ví dụ thực tế.

Không chỉ dừng lại ở việc giới thiệu các thành phần, khóa học còn đề cập đến những vấn đề cần cân nhắc khi áp dụng từng thành phần cũng như các đánh đổi (trade-off).

Phần 4. Thiết kế và giải thích kiến trúc của riêng bạn


Cách thực hiện dự án backend giúp bạn nổi bật trong buổi phỏng vấn sẽ được giải thích theo từng bước. Chúng tôi sẽ giải thích cụ thể từng giai đoạn từ cách lập kế hoạch, triển khai cho đến hoàn thiện dự án.

Học hỏi về các phong cách kiến trúc backend đa dạng, đồng thời tìm hiểu về ưu nhược điểm cũng như cách lựa chọn từng phong cách phù hợp.

Chúng ta sẽ cùng nhau thiết kế một dự án ví dụ về cộng đồng hỏi đáp dành cho nhà phát triển và tìm hiểu cách cải thiện kiến trúc một cách dần dần.

Lưu ý trước khi khóa học bắt đầu

Tài liệu học tập

  • Cung cấp slide bài giảng dưới dạng file pdf. (Khoảng 350 trang)

Kiến thức tiên quyết và lưu ý

  • Nếu bạn đã có kinh nghiệm phát triển backend cơ bản, bạn sẽ có thể theo kịp bài giảng một cách dễ dàng hơn.
    Ví dụ, sẽ rất hữu ích nếu bạn đã từng tiếp xúc với các công nghệ như dưới đây:

    • Kinh nghiệm phát triển API server sử dụng web framework

    • Lưu trữ dữ liệu sử dụng cơ sở dữ liệu quan hệ (RDB) hoặc NoSQL DB

    • Hiểu biết về các khái niệm cơ bản của HTTP và mạng

  • Khóa học này là khóa học tập trung vào lý thuyết để học về các khái niệm và luồng thiết kế hệ thống.
    Do đó, khóa học sẽ không bao gồm việc cài đặt, cách sử dụng các công nghệ cụ thể như Redis, Kafka, Spring, Nginx, v.v.
    hay thực hành triển khai mã nguồn.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Sinh viên mới tốt nghiệp đang tìm việc làm backend, người đã từng triển khai các chức năng cơ bản nhưng chưa từng có kinh nghiệm thiết kế kiến trúc hệ thống.

  • Những người đang tìm việc muốn nâng cao khả năng cạnh tranh tuyển dụng thông qua các dự án cân nhắc về sự đánh đổi (trade-off) trong các hệ thống quy mô lớn.

  • Nhân viên phát triển backend mới vào nghề, người lần đầu tiên phải thiết kế kiến trúc hệ thống tại công ty.

Cần biết trước khi bắt đầu?

  • Sẽ rất tốt nếu bạn có hiểu biết cơ bản về HTTP và RESTful API.

  • Sẽ rất hữu ích cho việc học nếu bạn đã từng có kinh nghiệm tạo một máy chủ CRUD đơn giản bằng các web framework (Spring, Express ...).

  • Nếu bạn có kiến thức liên quan đến DB như SQL và cơ sở dữ liệu quan hệ (RDB), bạn sẽ có thể theo kịp bài giảng tốt hơn.

Xin chào
Đây là mindlantern

554

Học viên

39

Đánh giá

6

Trả lời

4.9

Xếp hạng

1

Khóa học

Xin chào, tôi là nhà phát triển Seongjang Lantern.
Tôi đang làm việc tại một tập đoàn IT lớn trong nước và luôn mơ về một thế giới nơi bất kỳ ai cũng có thể trở thành nhà phát triển và tự tay tạo ra những gì mình tưởng tượng.

Tôi muốn truyền đạt những trăn trở trong công việc thực tế và các kỹ thuật đang được sử dụng sao cho ngay cả những người mới bắt đầu cũng có thể dễ dàng thấu hiểu.
Là một người yêu thích quá trình học hỏi và trưởng thành, tôi hy vọng những người tham gia bài giảng của mình cũng có thể cảm nhận được niềm vui cùng nhau phát triển.

 

Email: mindlantern.studio@gmail.com

Thêm

Chương trình giảng dạy

Tất cả

24 bài giảng ∙ (4giờ 59phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

39 đánh giá

4.9

39 đánh giá

  • dt100027440님의 프로필 이미지
    dt100027440

    Đánh giá 3

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    100% đã tham gia

    Đây là lần đầu tiên tôi viết đánh giá khóa học. Với tư cách là người đang chuẩn bị tìm việc, tôi nghĩ rằng với sự phát triển của AI gần đây, việc triển khai mã code đã chuyển sang một lĩnh vực mà có thể được giải quyết ở một mức độ nào đó. Vậy, trong lúc băn khoăn điều gì là quan trọng, tôi chợt nhận ra rằng "À, bây giờ việc thiết kế hệ thống tốt là quan trọng, việc giao tiếp thiết kế hệ thống là quan trọng." Vì vậy, khi đọc phần "Kiến thức cơ bản về thiết kế hệ thống quy mô lớn 1" được giới thiệu trong khóa học, tôi chợt nghĩ rằng sẽ thật tuyệt nếu có một khóa học giải thích từ góc độ của người làm thực tế, và ngay lập tức tôi tìm thấy và mua khóa học này. Cá nhân tôi thấy khóa học thực sự hữu ích trong việc nắm bắt bức tranh lớn. Ngay cả đối với những công nghệ mà tôi chưa từng sử dụng hoặc chỉ nghe qua, tôi cũng có thể mở rộng kiến thức nền của mình bằng cách nghĩ "À, cái này có thể được sử dụng trong tình huống này," và tôi đã học được rất nhiều về những điều cần xem xét trong giai đoạn đầu của một dự án thực tế. Sao bây giờ bạn mới xuất hiện…. Không chỉ vậy, tôi còn học được cách trình bày dự án của mình trong các buổi phỏng vấn với tư cách là một nhà phát triển backend. Tôi thực sự rất ngại việc làm tài liệu, nhưng từ giờ tôi sẽ cố gắng ghi lại các nội dung khắc phục sự cố đã thực hiện. Cảm ơn vì một khóa học thực sự tuyệt vời. Tài liệu ppt cũng rất dễ đọc, và thiết kế giáo trình cũng rất đẹp, tôi rất hài lòng! Tôi không biết bạn đang lên kế hoạch cho khóa học nào tiếp theo, nhưng tôi sẽ tin tưởng và đăng ký học :>

    • mindlantern
      Giảng viên

      dt10002, xin chân thành cảm ơn bạn đã để lại một bài đánh giá khóa học tâm huyết! Tôi đã tạo ra khóa học này với suy nghĩ rằng những kinh nghiệm mình tích lũy được trong quá trình phát triển có thể giúp ích cho ai đó. Khi đọc những phản hồi cho thấy khóa học thực sự hữu ích như thế này, tôi cảm thấy rất tự hào và tràn đầy năng lượng 😆. Trong tương lai, tôi sẽ tiếp tục phát triển khóa học này để nó có thể mang lại lợi ích thực tế cho nhiều người hơn nữa. Tôi xin chân thành ủng hộ hành trình tìm việc và thiết kế hệ thống sắp tới của dt10002! Nếu bạn có bất kỳ câu hỏi nào trong quá trình học, đừng ngần ngại đặt câu hỏi bất cứ lúc nào. Xin cảm ơn!

  • kordokrip님의 프로필 이미지
    kordokrip

    Đánh giá 21

    Đánh giá trung bình 3.7

    Đã chỉnh sửa

    5

    70% đã tham gia

    Tôi đã làm việc với vai trò kiến trúc sư được khoảng 3 năm rồi. Do tiến hành theo domain (dịch vụ sản xuất) nên có vẻ như tôi luôn thực hiện thiết kế hệ thống với góc nhìn tương tự, vì vậy tôi đang xem với tâm thế trở về ban đầu. Đặc biệt là tôi chưa từng thiết kế kiến trúc dựa trên dịch vụ như ecommerce, fulfillment, nên việc thầy giải thích tương tự đã giúp ích rất nhiều cho tôi. Nếu thầy có thể tạo thêm khóa học bổ sung về phần xử lý thời gian thực tích hợp dữ liệu đa dạng (multithreading, tăng tốc GPU, v.v.) vì gần đây ngành sản xuất (năng lượng) cũng đang sử dụng nhiều, thì sẽ rất tốt. Và nếu có cơ hội, thầy có thể upload phần thiết kế về vector database mà gần đây mọi người đều quan tâm thì sẽ giúp ích rất nhiều cho các bạn chuẩn bị tìm việc. Gần đây thực sự là các tập đoàn SI dựa trên ngành sản xuất cũng yêu cầu những ứng viên mới tốt nghiệp nhưng không giống như sinh viên mới tốt nghiệp thông thường. Cảm ơn thầy.

    • mindlantern
      Giảng viên

      sungho kang님, cảm ơn bạn đã để lại đánh giá tốt về khóa học. Mặc dù bạn đã có kinh nghiệm thiết kế với tư cách là architect nhưng khóa học vẫn có ích thì thật may mắn😊! Chủ đề xử lý thời gian thực tích hợp dữ liệu đa dạng mà bạn đề cập thực sự rất hay, nhưng có vẻ hơi khó để đưa vào khóa học nhập môn này, nên tôi sẽ xem xét đưa vào khóa học tiếp theo với nội dung chuyên sâu hơn. Thiết kế kiến trúc bao gồm vector database và AI model có vẻ là phần mà các bạn đang chuẩn bị việc làm thường trải qua nhiều trong các dự án, nên tôi sẽ tạo thêm khóa học về chủ đề này! Cảm ơn bạn rất nhiều vì đã dành thời gian để lại phản hồi tốt.

  • cksgnl744190님의 프로필 이미지
    cksgnl744190

    Đánh giá 15

    Đánh giá trung bình 5.0

    5

    60% đã tham gia

    • quasar2yh님의 프로필 이미지
      quasar2yh

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • azurealstn332885님의 프로필 이미지
        azurealstn332885

        Đánh giá 71

        Đánh giá trung bình 4.9

        5

        95% đã tham gia

        Đây là một khóa học tuyệt vời cung cấp định hướng để thiết kế hệ thống backend. Trước đây tôi chỉ phát triển theo cách monolithic thông thường nên không suy nghĩ nhiều, nhưng tôi sẽ áp dụng từng phần trong các side project của mình. Cảm ơn vì khóa học hay!

        Khóa học tương tự

        Khám phá các khóa học khác trong cùng lĩnh vực!

        Ưu đãi có thời hạn

        24 ₫

        29%

        922.787 ₫