Thử thách thiết kế MSA thực tiễn trong 4 tuần cùng với phần review code của một lập trình viên có 15 năm kinh nghiệm
Mỗi tuần có 1 buổi học trực tiếp, thông qua các bài tập thực hành và phản hồi, bạn sẽ thiết kế ranh giới và mô hình của miền đơn hàng theo DDD. Trong 3 tuần, bạn sẽ hoàn thiện một dự án mẫu áp dụng kiến trúc Hexagonal và Clean, cùng CQRS, Event-Driven và ACL.
Ngoài ra, bạn cũng sẽ thực hành cấu trúc giao tiếp giữa các module thông qua Kafka và gRPC — tổng cộng có thể xem đây là 4 tuần thực chiến!
Khởi nghiệp (Startup) phát triển nhiều dịch vụ đa dạng,
Dẫn dắt lập trình để thúc đẩy sự phát triển của đội ngũ và dự án.
Tôi sẽ hướng dẫn bạn về phát triển tập trung vào thực tiễn phù hợp với các xu hướng hiện nay.
Cùng thiết kế chiến lược sự nghiệp thực tế với những người không chuyên, những người đang tìm việc và những người đang cân nhắc chuyển đổi nghề nghiệp.
Thêm
Bạn càng chuẩn bị cho sự nghiệp tiếp theo, những gì được yêu cầu ở một nhà phát triển backend không chỉ dừng lại ở kinh nghiệm triển khai..
ÔXX집 Thông báo tuyển dụng nhà phát triển backend
당X tin tuyển dụng nhà phát triển backend quảng cáo
Thông báo tuyển dụng nhà phát triển backend tại Woowahan
Trong các tin tuyển dụng của những nền tảng ngày càng phát triển , bạn có thể thấy những trường hợp yêu cầu cả kinh nghiệm thiết kế và vận hành kiến trúc MSA .
Vậy nếu học MSA, liệu chúng ta có thể thiết kế được không?
Hiểu khái niệm và ví dụ về các pattern khác hoàn toàn với việc quyết định cấu trúc khi đứng trước một dịch vụ thực tế.
Trong ví dụ có đáp án, nhưng dịch vụ của tôi thì không có đáp án.
Đơn hàng và thanh toán, nên gộp thành một dịch vụ hay tách ra...?
Dịch vụ nào nên chịu trách nhiệm về dữ liệu này?
So với quy mô hiện tại của dịch vụ này, liệu có phải là overengineering không?
Nên gọi trực tiếp hay kết nối bằng sự kiện?
Điều cần thiết cho việc thiết kế không phải là số lượng các mẫu thiết kế, mà là cơ sở để lựa chọn, quá trình lựa chọn và giải thích lý do.
Trong 4 tuần, đừng chỉ dừng lại ở việc xem và hiểu, hãy trực tiếp thiết kế và trải nghiệm cả việc review code.
01 DIRECT
Tự mình phân chia ranh giới dịch vụ.
02 CHECK
Xem xét dựa trên trách nhiệm, quyền sở hữu dữ liệu, ranh giới và luồng giao tiếp.
03 CHANGE
Thử thay đổi cấu trúc sang một kiến trúc khác.
04 ĐÁNH GIÁ大小规律
Rà soát thiết kế và mã nguồn do chính bạn tạo rồi chuyển sang bước tiếp theo.
DDD dựa trên Springboot, cho đến thiết kế Hexagonal, hãy nhận review code trực tiếp từ một nhà phát triển có 15 năm kinh nghiệm thực tế.
Kinh nghiệm làm việc thực tế 15 năm trong lĩnh vực backend
Kinh nghiệm làm trưởng nhóm phát triển tại nhiều quy mô tổ chức khác nhau, từ các công ty Series A đến các công ty đã niêm yết trên Nasdaq
Những người như thế này khi tham gia có thể đạt được hiệu suất 120%!
Đang vận hành dịch vụ nguyên khối và chuẩn bị tách miền/chuyển đổi sang MSA Các nhà phát triển backend có 3–7 năm kinh nghiệm
Lập trình viên backend không có người hướng dẫn giàu kinh nghiệm để review thiết kế trong tổ chức.
Nhà phát triển cần chứng minh năng lực thiết kế để chuẩn bị chuyển việc sang một dịch vụ quy mô lớn hơn
Nếu không có kiến thức nền tảng về backend, bạn có thể gặp khó khăn khi theo kịp thử thách.
(JPA, REST API, Java, springboot)
Xin chào, tôi là lập trình viên backend với 15 năm kinh nghiệm Park Jin-woo của Chamnalgae.
Tôi đã thực sự học được một điều qua nhiều lần đảm nhiệm vai trò lãnh đạo phát triển tại các startup quy mô nhỏ rất đa dạng, các công ty niêm yết trên sàn NASDAQ và cả các công ty nước ngoài 5–6 lần chỉ với vai trò trưởng nhóm phát triển cũng như khi dẫn dắt các đội ngũ phát triển thuê ngoài làm việc cùng những người mới mỗi lần .
Phát triển mà không lấy thiết kế làm tiền đề sẽ dẫn đến nợ kỹ thuật vô tận và các vấn đề trong giao tiếp, cũng như làm thêm giờ.
Trong các startup và doanh nghiệp vừa và nhỏ thiếu người hướng dẫn lẫn nhân lực nếu không làm việc dựa trên nền tảng thiết kế
thì không chỉ việc giao tiếp với đồng nghiệp mà cả cơ hội phát triển sự nghiệp cũng không được giải quyết.
Cho đến nay, khi giảng dạy hơn 50 buổi kèm lập trình và các khóa học chuyên sâu về backend trên Inflearn, Programmers và Soomgo, tôi đã luôn trăn trở về cách truyền đạt hiệu quả thiết kế DDD (Domain-driven Design)
.
Phỏng vấn học viên khóa chuyên sâu ngắn hạn Backend khóa 5 của Programmers Devcourse
Bài giảng thiết kế framework Spring kết hợp kinh nghiệm xử lý lưu lượng truy cập lớn
Thực hành nhập môn Spring Boot Kafka Producer/Consumer
Spring Batch ứng dụng ngay trong công việc thực tế
Thực chiến Spring Boot DDD: Học thiết kế miền qua hệ thống đặt hàng
Là một nhà phát triển backend trong một tổ chức nhỏ, tôi hiểu rõ hơn bất kỳ ai về những điểm nghẽn mà có lẽ bạn đang gặp khó khăn nhất. Khao khát những kinh nghiệm mà AI không thể giải quyết. Chúng tôi sẽ cung cấp cho bạn một framework để đưa ra quyết định.
Trong 4 tuần, tôi sẽ đồng hành với bạn với tư cách là người hướng dẫn từ thiết kế Monolith đến MSA, cũng như hỗ trợ mọi thứ, từ review code đến phản hồi.
Hãy mang tất cả những trăn trở của bạn đến đây. Hẹn gặp bạn trong challenge!
Lịch trình chi tiết của challenge
Trong 4 tuần, mỗi tuần bạn sẽ thiết kế và nhận phản hồi đánh giá.
Học bài giảng → Bài tập cá nhân → Phản hồi trực tiếp vào thứ Ba
TUẦN 01
Xây dựng hệ thống đặt hàng thực tế (cấu trúc cơ bản)
Tham gia khóa học
Bài tập cá nhân Tự thiết kế ranh giới dịch vụ MSA cho domain đơn hàng
Buổi feedback trực tiếp tuần 1
Thứ Ba 20:00–22:00 · 15 tháng 9
Buổi học trực tiếp 1: Đánh giá và phản hồi về thiết kế ranh giới dịch vụ cá nhân
Dựa trên phương án phân chia ranh giới dịch vụ của miền đơn hàng do mỗi người 작성, chúng ta sẽ kiểm tra cơ sở thiết kế.
• Xác nhận trách nhiệm theo từng chức năng và quyền sở hữu dữ liệu • Xem xét ranh giới dịch vụ có quá lớn hoặc bị chia quá nhỏ hay không • Phản hồi về các lệnh gọi đồng bộ và luồng sự kiện • Đánh giá các trường hợp thiết kế tiêu biểu • Định hướng cải thiện bài tập cá nhân và giải đáp thắc mắc
TUẦN 02
Cải thiện cấu trúc bằng kiến trúc Hexagonal
Tham gia khóa học
Bài tập cá nhân Refactor mã nguyên khối sang kiến trúc Hexagonal
Phát trực tiếp phản hồi tuần 2 Thứ Ba 20:00–22:00 · 22 tháng 9
Phát trực tiếp 2: Đánh giá mã refactoring kiến trúc hexagonal
TUẦN 03
Thiết kế hệ thống phân tán: CQRS·Event-Driven·ACL
Tham gia học bài giảng
Bài tập cá nhân Nộp tài liệu thiết kế cuối cùng về CQRS·Event-Driven·ACL
Phát trực tiếp phản hồi tuần 3 Thứ Tư 20:00–22:00 · 29 tháng 9
Phát trực tiếp 3: Đánh giá thiết kế hệ thống phân tán cuối cùng và Q&A
TUẦN 04
Kafka, gRPC (giao tiếp nội bộ)
Tham gia khóa học
Buổi học trực tiếp bế giảng tuần 4 Thứ Ba 20:00–22:00 · Ngày 6 tháng 10
Tài liệu thiết kế cá nhân tóm tắt trách nhiệm và bounded context của miền đơn hàng
Dự án ví dụ có thể kiểm thử áp dụng DDD và kiến trúc Hexagonal
Tài liệu thiết kế mở rộng DDD áp dụng CQRS·Event-Driven·ACL
Mã nguồn thực hành giao tiếp giữa các mô-đun, bao gồm cả giao tiếp Kafka và gRpc.
Khuyến nghị cho những người này
Khóa học này dành cho ai?
Lập trình viên backend muốn cải thiện cấu trúc dịch vụ ngày càng phức tạp
Nhà phát triển biết khái niệm DDD nhưng lúng túng về tiêu chí áp dụng trong thực tế
Lập trình viên backend đang trăn trở về cách phân chia ranh giới và trách nhiệm của các domain
Lập trình viên backend đã quen với việc phát triển cơ bản nhưng muốn học thêm các công nghệ và mẫu thiết kế nâng cao hơn.
Cần biết trước khi bắt đầu?
Cú pháp cơ bản của Java hoặc các ngôn ngữ hướng đối tượng tương tự
Hiểu biết cơ bản về thiết kế hướng đối tượng và kiểm thử đơn vị
Hỏi đáp thường gặp
Vâng. Nếu bạn nắm được kiến thức cơ bản về Java, Spring Boot và thiết kế hướng đối tượng thì có thể tham gia. Ngay cả khi chưa có kinh nghiệm về DDD, khóa học vẫn tiến hành theo thứ tự từ khái niệm đến thực hành.
Có. Bạn có thể tự mình thực hiện nhiệm vụ dựa trên ví dụ về miền đơn hàng được sử dụng trong thử thách. Nếu có dự án cá nhân, bạn cũng có thể áp dụng cho phù hợp với miền đó.
Khuyến khích tham dự buổi học trực tiếp, nhưng nếu bất đắc dĩ không thể tham gia thì bạn vẫn có thể xem video và thực hiện nhiệm vụ. Vui lòng kiểm tra thông tin về video xem lại và phạm vi cung cấp phản hồi đã được thông báo.
Tôi review tập trung vào trách nhiệm và ranh giới của domain, hướng phụ thuộc, cũng như cơ sở áp dụng CQRS, luồng sự kiện và ACL. Thay vì đưa ra đáp án, tôi giúp bạn tự giải thích cơ sở thiết kế và cải thiện thiết kế đó.
Không phải. Trọng tâm là thiết kế domain và áp dụng kiến trúc dựa trên DDD. MSA sẽ được đề cập ngắn gọn như bối cảnh ứng dụng DDD, còn sản phẩm cuối cùng là tài liệu thiết kế DDD cá nhân.
Vâng. Những người mới lần đầu làm quen với Kafka cũng có thể tham gia. Các khái niệm và cách sử dụng Kafka cần thiết cho thử thách sẽ được hướng dẫn từng bước, đồng thời nội dung được thiết kế để bạn có thể học thông qua việc tự cài đặt và thực hành chạy Kafka.
취소 및 환불 규정 챌린지는 지식공유자가 설정한 수업 최소 정원이 충족되지 않을 경우, 폐강 안내가 고지되며 결제 내역이 자동취소됩니다.