Môi trường phân tán (Distributed Environment) nhất định phải biết do người phỏng vấn Kakao chia sẻ
Khóa học này không chỉ liệt kê các công nghệ đơn thuần mà sẽ giải quyết kiến trúc microservices và môi trường phân tán dưới "góc nhìn thiết kế" được yêu cầu trong thực tế công việc và các buổi phỏng vấn. Bắt đầu từ sự khác biệt giữa Monolithic và MSA, khóa học sẽ đi sâu vào các chiến lược chuyển đổi dần dần, Modulith (Monolithic được mô đun hóa), cho đến Clean Architecture và Hexagonal Architecture theo từng bước, đồng thời giải thích rõ ràng lý do tại sao mỗi lựa chọn lại cần thiết và những đánh đổi (trade-off) đi kèm. Ngoài ra, thông qua thực hành, bạn có thể trực tiếp kiểm chứng ý đồ của cấu trúc và học cách giải quyết các vấn đề cốt lõi tất yếu phải đối mặt trong môi trường phân tán như tính nhất quán của dữ liệu, transaction, giao tiếp giữa các dịch vụ và ứng phó sự cố thông qua các kịch bản thực tế. Được xây dựng dựa trên những câu hỏi và góc nhìn thực tế của người phỏng vấn tại Kakao, khóa học này không chỉ dừng lại ở việc tiếp thu kiến thức mà còn hướng tới mục tiêu nâng tầm tư duy của bạn về hệ thống phân tán lên một bậc mới.
Tôi là người chia sẻ kiến thức đang hoạt động với vai trò là interviewer và developer tại Kakao. Lần này, tôi đã cùng Hong chuẩn bị một khóa học giới thiệu các quan điểm đa dạng từ góc độ môi trường phân tán cũng như các pattern mà các bạn có thể tham khảo khi xây dựng dự án.
Tôi đã cố gắng tối đa hóa những quan điểm mà tôi thường đặt ra trong các buổi phỏng vấn.
Tiêu biểu như:
1. Làm thế nào để debug trong môi trường phân tán??
2. Hãy giải thích các pattern mà bạn biết.
3. Bạn tiến hành test như thế nào tùy theo kiến trúc??
Nếu các bạn tập trung vào những nội dung này thì khóa học sẽ hữu ích hơn.
Hy vọng các bạn sẽ thu được nhiều insight. Cảm ơn các bạn!
5.0
이병석
97% đã tham gia
Có lẽ không có nội dung nào tốt hơn thế này để thiết lập một chủ đề mang tính lý thuyết. Mặc dù có phần viết mã, nhưng thay vì quá tập trung vào đó, nội dung này lại rất tốt để hệ thống lại kiến thức cá nhân, và xa hơn nữa là có nhiều góc nhìn đa dạng để học hỏi thêm những điều mới.
Cảm ơn bạn, nội dung rất hay.
5.0
warna
90% đã tham gia
Tôi đã xem một bài giảng rất bổ ích. Càng suy ngẫm về nội dung thì càng thấy đây thực sự là một bài giảng hữu ích và giúp tôi hiểu được nhiều quan điểm khác nhau. Thêm vào đó, giảng viên còn tổng hợp đầy đủ cả tài liệu thực hành và tài liệu lý thuyết đa dạng, tôi thật may mắn khi có thể xem được một bài giảng tuyệt vời như thế này trên Inflearn.
Bạn sẽ nhận được điều này sau khi học.
Tầm nhìn thiết kế để hiểu rõ môi trường phân tán trong nháy mắt
Tiêu chí đánh giá rõ ràng cho việc lựa chọn cấu trúc MSA
Khả năng tự giải thích các đánh đổi về kiến trúc (architecture trade-offs)
Phương thức thiết kế kết hợp tự nhiên giữa kiểm thử và khả năng mở rộng
Kiến thức để có thể tự tin nói về thiết kế trong phỏng vấn và thực tế công việc
Phát triển · Lập trình · Backend
Biết tên các pattern nhưng không biết tại sao lại sử dụng chúng
Khi gặp câu hỏi về kiến trúc trong buổi phỏng vấn, bạn có thể gọi tên chúng. Nhưng vấn đề nảy sinh ngay sau đó, với câu hỏi: "Tại sao bạn lại chọn kiến trúc đó?". Vì đây là lĩnh vực không có đáp án duy nhất đúng, bạn cần phải trình bày được sự đánh đổi (trade-off), nhưng trước đây bạn chưa có cơ hội để luyện tập điều đó.
Mức độ Nhập môn
Cung cấp mã thực hành
Tóm tắt nội dung phỏng vấn
Chiến lược kiểm thử
Thời hạn khóa học vô hạn
Từ Monolithic đến Phân tánModular Monolith · Clean · Hexagonal · DDD · MSA pattern
Kết nối đến cả phần kiểm thửUnit · Integration · E2E · Contract(Pact)
2 nhà phát triển đang đương nhiệmNgười phỏng vấn 12 năm kinh nghiệm tại trụ sở Kakao · Phát triển máy chủ nền tảng Pangyo
Trong môi trường phân tán không có đáp án chính xác duy nhất. Bạn phải biết rõ các lựa chọn có thể chọn và cái giá phải trả của chúng thì mới có thể gọi đó là thiết kế.
Nơi bài giảng này bắt đầu
Bạn sẽ chỉ trả lời được trong phạm vi những gì mình biết
Trạng thái hiện tại
Biết về các mẫu (pattern)
Bạn có thể nói rõ tên và định nghĩa của nó. Bạn đã thấy nó nhiều lần trên blog và cũng đã từng áp dụng vào dự án rồi.
Tại sao bạn lại chọn nó
Điểm bị tắc nghẽn
Không đưa ra được cái giá phải trả
Cuộc hội thoại bị ngắt quãng ở phần các lựa chọn thay thế khác là gì, và nếu chọn cái này thì phải đánh đổi điều gì.
Đây không phải là vấn đề có thể giải quyết chỉ bằng một kỹ thuật duy nhất. Bạn cần phải biết và kết hợp nhiều chủ đề khác nhau thì mới có thể đạt được cả tính mở rộng và khả năng phục hồi. Khóa học này được thiết kế theo hướng mở rộng các lựa chọn đó.
Nơi khóa học này bắt đầu
Đây là cuộc đối thoại đã diễn ra trên thực tế
Những tiếc nuối lặp đi lặp lại trong các buổi phỏng vấn chính là điểm khởi đầu của bài giảng này.
Nó bắt nguồn từ những điều đáng tiếc lặp đi lặp lại trong các buổi phỏng vấn.
HHongBạn nghĩ sao về việc thử tìm hiểu tổng quan về môi trường phân tán một lần?
KNgười phỏng vấn Kakao (Nhà phát triển)Đột nhiên vậy? Tại sao?
HHongDạo này có nhiều người dù đậu vòng hồ sơ nhưng lại bị đánh trượt ở vòng phỏng vấn, nên mình nghĩ nếu chúng ta thảo luận về lý thuyết hoặc các quan điểm thiết kế lớn hơn thì sẽ giúp ích cho những người đang chuẩn bị.
KNgười phỏng vấn Kakao (Nhà phát triển)Tôi cũng thấy tiếc khi tham gia phỏng vấn vì dù các ứng viên có thông số kỹ thuật và kiến thức ngày càng tăng, nhưng họ lại chỉ bị mắc kẹt trong đúng những phần mà bản thân biết.
TNhà phát triển TossTôi không phải là người phỏng vấn nên không biết rõ đến mức đó, nhưng khi nhìn những người mới vào, đa số họ chỉ biết những nội dung mà ai cũng biết. Họ không thực sự hiểu rõ tại sao lại sử dụng nó, hay nó có những ưu nhược điểm gì.
KNgười phỏng vấn Kakao (Nhà phát triển)Vậy để tôi thử cùng Hong thực hiện xem sao. Vì tôi vẫn chưa từ bỏ vai trò người phỏng vấn nên có lẽ tôi có thể đưa ra nhiều góc nhìn đa dạng trong việc phỏng vấn.
HHongĐược rồi. Vậy tôi sẽ chuẩn bị tổng thể rồi báo cho bạn biết nhé.
Câu hỏi do chính người phỏng vấn tiết lộ
Ba câu hỏi thực tế thường được đặt ra trong buổi phỏng vấn
Đây là những câu hỏi mà người phỏng vấn tại Kakao, người cùng xây dựng bài giảng này, cho biết họ thường xuyên đặt ra. Cấu trúc của bài giảng cũng được thiết kế dựa trên những nội dung này.
질문 1
Bạn làm thế nào để debug trong môi trường phân tán?
Điều mà câu hỏi này muốn xác nhận là
Một yêu cầu đi qua nhiều dịch vụ khác nhau
Log nằm rải rác ở mỗi dịch vụ khác nhau
Bạn có biết cách thu hẹp phạm vi để tìm ra nơi phát sinh vấn đề không→ Resilience & Observability
Trong phần cuối cùng, chúng ta sẽ tìm hiểu về các mô hình về khả năng phục hồi và khả năng quan sát. Chúng ta sẽ hệ thống lại theo từng mô hình về việc cần xem xét những gì và cách thu hẹp phạm vi vấn đề khi có sự cố xảy ra.
질문 2
Hãy giải thích các mẫu (pattern) mà bạn biết.
Điều mà câu hỏi này muốn xác nhận
Không phải là việc bạn kể ra được bao nhiêu cái tên, mà là
Có thể nói rõ nó ra đời để giải quyết vấn đề gì hay không
Có thể giải thích nối tiếp từ ranh giới dịch vụ, phân tách, giao tiếp cho đến tổng hợp hay không→ Phần 4·5·6
Nội dung bao gồm SAGA, CQRS, phân tách dịch vụ, DDD, Aggregator, BFF, Service Discovery cùng với lý do tại sao chúng ra đời.
질문 3
Bạn thực hiện việc kiểm thử theo từng loại kiến trúc như thế nào?
Điều mà câu hỏi này muốn xác nhận
Có nhiều trường hợp chỉ nói về kiểm thử đơn vị (unit test) rồi kết thúc.
Khi các dịch vụ được chia nhỏ, ranh giới kiểm thử cũng thay đổi theo
Làm thế nào để xác minh hợp đồng giữa các dịch vụ→ Thực hành Contract(Pact)
Chúng ta sẽ thực hành Unit·Integration·E2E, và cuối cùng sẽ trực tiếp viết cả kiểm thử hợp đồng giữa các dịch vụ (contract test).
Không nhảy vọt trong một bước
Giữa Monolithic và Microservice
Chia tách không phải lúc nào cũng là đáp án đúng. Có những giai đoạn trung gian, và trên thực tế có rất nhiều dịch vụ đang dừng lại ở đó.
MonolithicTriển khai dưới dạng một khối duy nhất. Đơn giản nhưng càng lớn càng khó can thiệp
→
Modular MonolithTriển khai dưới dạng một khối duy nhất nhưng được phân chia ranh giới bên trong. Clean·Hexagonal được sử dụng ở đây
→
Microservicesđược triển khai riêng biệt. Có những thứ đạt được và cũng có những thứ phải đánh đổi tương ứng
Trong phần 2, chúng ta sẽ so sánh Monolithic với MSA và tìm hiểu về các mô hình migration. Trong phần 3, chúng ta sẽ trực tiếp thực hành với Modular Monolithic và kiến trúc Clean·Hexagonal thông qua các ví dụ thực tế.
Bạn sẽ học được gì
Theo thứ tự Cấu trúc · Ranh giới · Giao tiếp · Đánh đổi
Monolithic và MSASo sánh cả hai và các mô hình di chuyển (migration patterns) để chuyển đổi giữa chúng
Modular MonolithQuy tắc phụ thuộc và khả năng kiểm thử của kiến trúc Clean và Hexagonal. Mở ra xem thông qua thực hành.
Ranh giới dịch vụ và sự phân rãPhân tách dựa trên tiêu chuẩn kinh doanh, cơ sở dữ liệu, BFF và DDD
Đồng bộ và Bất đồng bộKhi nào nên dùng Message Broker và khi nào nên gọi trực tiếp
Mô hình hệ thốngAggregator, BFF, Service Discovery
Quản lý dữ liệuCAP, Database per Service, Polyglot, Sharding
Kiểm thử và Triển khaiTừ Unit·Integration·E2E·Contract test, các mô hình triển khai cho đến Serverless
Các mẫu hình được đề cập
Hệ thống lại những thứ mà bạn chỉ mới biết tên.
Đây là những nội dung thực tế được đề cập trong bài giảng. Chúng ta sẽ tìm hiểu xem mỗi loại được ra đời để giải quyết vấn đề gì và thậm chí là phải đánh đổi những gì.
Modular Monolith
Clean Architecture
Hexagonal Architecture
DDD
SAGA
CQRS
BFF
Aggregator
Service Discovery
CAP
Database per Service
Polyglot Persistence
Sharding
Resilience
Observability
Contract(Pact) Test
Mô hình triển khai (Deployment Patterns)
Serverless
Không phải là cái tên, mà là tiêu chuẩn phán đoán
Tổng hợp các lựa chọn có thể chọn cùng với cái giá phải trả của chúng.
Bắt đầu từ cấu trúc, đi qua ranh giới và giao tiếp, rồi kết thúc bằng sự đánh đổi và kiểm thử.
01
Giới thiệu khóa học
Giới thiệu khóa học
Gợi ý các khóa học giúp bạn tìm hiểu sâu hơn (Deep Dive) và thực hành các khái niệm đã học trong khóa học này
Tài liệu tóm tắt bài giảng phục vụ phỏng vấn
Test Code Source
02
Monolithic và MSA
Monolithic vs Microservice Architecture
Các mô hình chuyển đổi từ Monolithic sang MSA
03
Kiến trúc ứng dụng và Monolithic mô-đun hóa
Cấu trúc Monolith được mô-đun hóa (Modular Monolith)
Clean Architecture & Hexagonal Architecture
Quy tắc phụ thuộc và khả năng kiểm thử của Clean Architecture & Hexagonal Architecture
[실습] Modular Monolith 살펴보기
[Thực hành] Tìm hiểu về Clean Architecture
[Thực hành] Tìm hiểu về Hexagonal Architecture
Trắc nghiệm Phần 3
04
Ranh giới và phân tách dịch vụ
Thiết lập ranh giới dịch vụ và các mô hình kiến trúc MSA đa dạng [ SAGA, CQRS ]
Phân tách và phân rã dịch vụ [ Business, Database, BFF ]
Thiết kế hướng tên miền (DDD) và Ranh giới dịch vụ
[Thực hành] DDD - Phương pháp thể hiện các vấn đề kinh doanh phức tạp bằng phần mềm
Câu đố phần 4
05
Biểu hiện bất đồng bộ và đồng bộ
Asynchronous Communication & Message Broker
Synchronous Communication & Service Communication
Phần 5 Câu đố
06
Ngoài ra còn có nhiều mẫu hệ thống đa dạng khác
Aggregator Pattern để tổng hợp dữ liệu dịch vụ
BFF (Backend for Frontend) Pattern
Service Discovery Pattern trong môi trường phân tán
Trắc nghiệm Phần 6
07
Nhiều sự đánh đổi khác nhau dưới góc độ môi trường phân tán
Các mô hình quản lý dữ liệu [ CAP, Database per Service, Polyglot, Sharding ]
Các mô hình Resilience & Observability trong kiến trúc phân tán
Chiến lược kiểm thử trong môi trường phân tán
[실습] Unit Test & Jest Setting
[Thực hành] Integration Test & E2E Test
[Thực hành] Kiểm thử hợp đồng (Pact) giữa các dịch vụ
Các mô hình triển khai (Deployment Patterns) trong môi trường phân tán
Serverless Microservice Architecture
Câu đố phần 7
Dành cho những người như thế này
Khóa học này dành cho ai?
Những bạn là nhà phát triển không chuyên ngành nhưng tò mò về thiết kế kiến trúc dung lượng lớn
Những người đã từng nghe về MSA nhưng chưa biết phương pháp thiết kế cụ thể
Các nhà phát triển Backend đang trăn trở về việc mở rộng kiến trúc và cơ sở dữ liệu khi dịch vụ ngày càng phát triển.
Những nhà phát triển muốn vượt xa các microservice đơn thuần để thiết kế các kiến trúc phân tán phức tạp
Thị trường hiện nay
Câu chuyện về việc AI thay thế lập trình viên
Tuyển dụng mới đang giảm dần, và các doanh nghiệp chỉ muốn chọn những người đã được kiểm chứng. Đây là những bài báo xuất hiện trong vài tháng gần đây.
Krafton, công ty vừa đạt được kết quả kinh doanh cao kỷ lục, đã bắt đầu cắt giảm nhân sự. Lý do được đưa ra là để chuyển đổi thành một doanh nghiệp 'AI First'.
Các doanh nghiệp chuyên về phần mềm đang ngừng tuyển dụng lập trình viên mới. Cũng có dự báo cho rằng việc tuyển dụng lập trình viên cấp độ sơ cấp sẽ giảm mạnh tới 77%.
53% nhà thiết kế trò chơi đã trả lời rằng "AI sẽ thay thế công việc của tôi". Các trường hợp thôi việc theo đề nghị cũng đã được báo cáo.
Khi doanh nghiệp càng bất an, phía người được tuyển dụng càng phải thể hiện sự khác biệt rõ rệt hơn. Việc học cuối cùng vẫn là do bản thân tự thực hiện, nhưng tùy vào việc bạn nhìn nhận cái gì và dưới góc độ nào mà độ sâu trong cách giải thích sẽ khác nhau dù cùng bỏ ra một lượng thời gian như nhau. Bài giảng này được tạo ra để truyền tải góc nhìn đó.
Đánh giá khóa học
Chia sẻ từ những người đã học trước đó
Tôi đã trích dẫn nguyên văn từ đánh giá khóa học trên Inflearn.
"Có lẽ không có nội dung nào tốt hơn nội dung này để thiết lập các chủ đề mang tính lý thuyết. Mặc dù cũng có phần viết code, nhưng thay vì tập trung quá nhiều vào đó, khóa học này lại rất tốt để hệ thống lại kiến thức cá nhân, và xa hơn nữa là có nhiều góc nhìn đa dạng mới mẻ để học hỏi."
Lee Byung-seok · Viết sau khi hoàn thành 97% khóa học
"Tôi đã xem một bài giảng rất hữu ích. Càng suy ngẫm về nội dung, tôi càng thấy đây là một bài giảng thực sự bổ ích và giúp tôi hiểu thêm được nhiều góc nhìn đa dạng. Thêm vào đó, việc tất cả các tài liệu thực hành và lý thuyết đều được tổng hợp đầy đủ khiến tôi cảm thấy thật may mắn khi có thể tìm thấy một bài giảng tuyệt vời như thế này trên Inflearn."
warna · Viết sau khi hoàn thành 90% khóa học
Giảng viên
Hai nhà phát triển đương nhiệm đã cùng nhau tạo ra nó
Khóa học này được thực hiện bởi Choi, một nhà phát triển 12 năm kinh nghiệm đang phát triển máy chủ tại trụ sở chính của Kakao và cũng đang hoạt động với tư cách là người phỏng vấn, cùng với Hong, một nhà phát triển máy chủ nền tảng tại Pangyo.
KAKAO · BACKEND ENGINEER · 12 năm kinh nghiệm · Người phỏng vấn
Choi
Tôi là nhà phát triển Backend với 12 năm kinh nghiệm hiện đang phát triển server tại trụ sở chính của Kakao, đồng thời cũng đang hoạt động với tư cách là người phỏng vấn. Trong các buổi phỏng vấn, tôi chủ yếu xem xét khả năng thiết kế hơn là các cú pháp lập trình. Tôi đã đưa nguyên vẹn quan điểm đó vào trong bài giảng này.
"Thật đáng tiếc khi các thông số kỹ thuật (spec) ngày càng tăng lên nhưng bản thân lại bị mắc kẹt ngay tại giới hạn những gì mình biết."
Hiện là nhà phát triển server tại trụ sở Kakao · Người phỏng vấn · Chuyên ngành Khoa học máy tính
Kiến trúc phân tánLưu lượng truy cập lớnNgười phỏng vấnBackend
Người chia sẻ kiến thức · Phát triển máy chủ nền tảng tại Pangyo
Hong
Tôi đang đảm nhận việc phát triển máy chủ nền tảng (platform server) tại Pangyo. Tôi tiếp tục hoạt động với tư cách là người chia sẻ kiến thức để chia sẻ các phương pháp tự học cũng như những vấn đề và giải pháp gặp phải trong thực tế. Các bài giảng không được thực hiện một mình mà được xây dựng cùng với nhiều nhà phát triển khác đang làm việc trong ngành.
"Trong những lĩnh vực không có đáp án chính xác, lý do tại sao bạn chọn phương án đó chính là minh chứng cho năng lực của bạn."
Phát triển máy chủ nền tảngKiến trúcNhiều bài giảng Backend
Câu hỏi thường gặp
Câu hỏi thường gặp về khóa học môi trường phân tán
Hỏi:Tôi chưa từng vận hành MSA thì có học được không?
⌄
Mức độ khó được thiết lập ở mức nhập môn. Khóa học bắt đầu bằng việc so sánh giữa Monolithic và Microservices ở phần 2, và thay vì chia tách ngay lập tức, chúng ta sẽ xem xét bước trung gian gọi là Modular Monolithic trước. Ngay cả khi bạn đang xây dựng một dịch vụ triển khai dưới dạng một khối duy nhất (Monolithic), bạn vẫn có thể theo kịp khóa học này.
Q.Đây là bài giảng lý thuyết hay bài giảng thực hành?
⌄
Đây là bài giảng tập trung vào quan điểm thiết kế, xen kẽ với các phần thực hành. Chúng ta sẽ cùng xem xét mã nguồn của Modular Monolith và kiến trúc Clean·Hexagonal, thể hiện các vấn đề kinh doanh bằng DDD, và ở phần cuối, bạn sẽ trực tiếp viết các bài kiểm tra Unit, Integration, E2E và Contract test. Mã nguồn thực hành được cung cấp bằng JavaScript.
Q. Những pattern nào sẽ được đề cập?
⌄
Bao gồm Modular Monolith, kiến trúc Clean·Hexagonal, DDD, SAGA, CQRS, phân tách dịch vụ, Aggregator, BFF, Service Discovery, CAP, Database per Service, Polyglot, Sharding, khả năng phục hồi và khả năng quan sát, các mẫu triển khai (deployment patterns), cho đến Serverless. Chúng ta không chỉ dừng lại ở việc liệt kê tên gọi mà sẽ cùng xem xét mỗi loại sẽ phải đánh đổi những gì.
Q.Nội dung về kiểm thử (test) được đề cập đến mức độ nào?
⌄
Trong phần cuối cùng, chúng tôi sẽ tổng hợp các chiến lược kiểm thử trong môi trường phân tán, và tiếp nối bằng các bài thực hành từ thiết lập Jest đến kiểm thử đơn vị (Unit Test), kiểm thử tích hợp (Integration Test)·E2E Test, và cả kiểm thử hợp đồng (Contract/Pact Test) để xác minh các thỏa thuận giữa các dịch vụ.
Q.Có giúp ích cho việc chuẩn bị phỏng vấn không?
⌄
Các nhà phát triển Kakao đang hoạt động với tư cách là người phỏng vấn đã tham gia xây dựng nội dung dựa trên những câu hỏi mà họ thực sự đặt ra. Những câu hỏi đó bao gồm gỡ lỗi trong môi trường phân tán, giải thích các mẫu đã biết và kiểm thử theo kiến trúc. Tài liệu cũng bao gồm cả tệp tóm tắt dành cho chuẩn bị phỏng vấn.
Không để lại tên mà để lại tiêu chuẩn phán đoán instead of names
Trong những lĩnh vực không có đáp án chính xác, sự khác biệt nằm ở việc một người có thể giải thích được vấn đề đó hay không.
Nếu bị tắc nghẽn một mình sẽ mất rất nhiều thời gian. Có một không gian riêng để bạn có thể thoải mái chia sẻ từ những phần vướng mắc khi nghe bài giảng, những câu hỏi phát sinh khi áp dụng vào dịch vụ của chính mình, cho đến những câu chuyện về sự nghiệp và thực tế công việc.
OPEN CHAT · Cộng đồng nhà phát triển
Chúng ta chia sẻ những gì?
Chúng tôi chia sẻ về những vấn đề thực tế gặp phải trong công việc, các cấu trúc mà người khác đã lựa chọn, cũng như những câu chuyện về sự nghiệp lập trình viên. Các câu hỏi liên quan đến bài giảng cũng luôn được chào đón.
"Những chỗ bạn bị vướng mắc thường thì người khác cũng sẽ vướng mắc. Hỏi người đã đi trước là cách nhanh nhất."
Câu hỏi về bài giảngTrường hợp áp dụng thực tếCâu chuyện nghề nghiệp
Tôi bắt đầu học lập trình sau một thời gian dài lười biếng ở nhà và cảm thấy hứng thú với nó, hiện tại tôi đang đảm nhận việc phát triển máy chủ nền tảng (platform server) tại Pangyo. Tôi tiếp tục hoạt động với tư cách là người chia sẻ kiến thức vì muốn cung cấp cho các bạn phương pháp tôi đã học cũng như những vấn đề và giải pháp khác nhau mà các bạn có thể gặp phải trong thực tế.
Bài giảng không chỉ được tạo ra từ kiến thức của riêng tôi. Mọi bài giảng đều có sự đồng hành của những người cộng sự.
Có lẽ không có nội dung nào tốt hơn thế này để thiết lập một chủ đề mang tính lý thuyết. Mặc dù có phần viết mã, nhưng thay vì quá tập trung vào đó, nội dung này lại rất tốt để hệ thống lại kiến thức cá nhân, và xa hơn nữa là có nhiều góc nhìn đa dạng để học hỏi thêm những điều mới.
Cảm ơn bạn, nội dung rất hay.
Tôi đã xem một bài giảng rất bổ ích. Càng suy ngẫm về nội dung thì càng thấy đây thực sự là một bài giảng hữu ích và giúp tôi hiểu được nhiều quan điểm khác nhau. Thêm vào đó, giảng viên còn tổng hợp đầy đủ cả tài liệu thực hành và tài liệu lý thuyết đa dạng, tôi thật may mắn khi có thể xem được một bài giảng tuyệt vời như thế này trên Inflearn.
Xin chào warna, cảm ơn bạn đã để lại đánh giá như vậy. Chúng tôi sẽ cố gắng cung cấp những khóa học bổ ích hơn nữa và mở rộng tầm nhìn cho các bạn.
Chúc bạn một ngày tốt lành!
Tôi là người chia sẻ kiến thức đang hoạt động với vai trò là interviewer và developer tại Kakao. Lần này, tôi đã cùng Hong chuẩn bị một khóa học giới thiệu các quan điểm đa dạng từ góc độ môi trường phân tán cũng như các pattern mà các bạn có thể tham khảo khi xây dựng dự án.
Tôi đã cố gắng tối đa hóa những quan điểm mà tôi thường đặt ra trong các buổi phỏng vấn.
Tiêu biểu như:
1. Làm thế nào để debug trong môi trường phân tán??
2. Hãy giải thích các pattern mà bạn biết.
3. Bạn tiến hành test như thế nào tùy theo kiến trúc??
Nếu các bạn tập trung vào những nội dung này thì khóa học sẽ hữu ích hơn.
Hy vọng các bạn sẽ thu được nhiều insight. Cảm ơn các bạn!