강의

멘토링

커뮤니티

BEST
Programming

/

Back-end

Toby's Clean Spring - Mô hình Domain Model và Kiến trúc Hexagonal Part 1

Đây là bài giảng đầu tiên của Clean Spring, một chuỗi bài giảng cho phép đội ngũ phát triển startup ảo trải nghiệm quá trình phát triển nhanh, ổn định, linh hoạt và dễ bảo trì, bằng cách từng bước tuân theo Clean Code và nguyên tắc phát triển Spring, theo phương pháp gần với thực tế công việc. Sử dụng Domain Model Pattern và Hexagonal Architecture, bạn có thể nắm vững các kỹ thuật và chiến lược phát triển cần thiết trong giai đoạn phát triển ban đầu tập trung vào Domain.

(5.0) 213 đánh giá

2,020 học viên

  • tobyilee
실습 중심
백엔드이해하기
클린코드
Java
Spring
Spring Boot
JPA
hexagonal-architecture

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

Dịch cái này sang tiếng Việt

  • Chiến lược thiết kế và phát triển tập trung vào mô hình miền

  • Thiết kế hướng miền (DDD): Mẫu và thực tiễn đa dạng

  • Đặc điểm và hiệu quả của Kiến trúc lục giác, cách áp dụng nó dễ dàng và đơn giản.

  • Cách sử dụng các kỹ thuật kiểm thử đa dạng và công cụ kiểm thử kiến trúc

  • Cách tạo mô hình miền tinh gọn từ các thực thể JPA bằng AI

  • Kỹ thuật xử lý ngoại lệ Spring Web mới nhất và cách dùng công cụ kiểm thử

  • Cấu hình mô-đun dùng 애그리거트

Trở thành một đội với Toby
Hoàn thành nghi lễ mùa xuân.

<Toby's Clean Spring> là khóa học nơi bạn có thể trải nghiệm toàn bộ quá trình, từ lập kế hoạch đến thiết kế, triển khai và tái cấu trúc, như thể đang diễn ra ngoài đời thực, trong khi phát triển dịch vụ giáo dục trực tuyến ảo 'Splearn'.

Bạn sẽ hợp tác với Toby và cùng nhau hoàn thành một dịch vụ duy nhất . Từ khâu lập kế hoạch đến triển khai và tái cấu trúc , bạn sẽ làm việc với Toby để cân nhắc một cách thực tế những gì cần xem xét và những quyết định cần đưa ra ở mỗi giai đoạn. Thông qua quá trình này, bạn sẽ phát triển khả năng hiểu được bối cảnh "khi nào và tại sao" một công nghệ là cần thiết và "tại sao một kiến trúc cụ thể được thiết kế".

Lộ trình Mùa xuân sạch của Toby
Chuỗi bài giảng này sẽ hướng dẫn bạn về mã sạch và các nguyên tắc phát triển Spring. Chuỗi bài giảng bao gồm quy trình phát triển ứng dụng Spring, từ mô hình hóa miền đến MSA và khả năng quan sát, trong bảy khóa học. ( Xem lộ trình >>)

336073_1

Lựa chọn cho Mã bền vững
Mùa xuân sạch

Clean Spring là một chiến lược thực tế áp dụng các nguyên tắc của "mã sạch" vào phát triển Spring . Mục tiêu của nó không chỉ đơn thuần là tạo ra mã nguồn đẹp mắt, mà còn cải thiện năng suất làm việc của nhóm và chất lượng mã nguồn lâu dài. Câu nói của Kent Beck, "Mã sạch hiệu quả", là một minh chứng rõ ràng cho triết lý cốt lõi này.

Khả năng bảo trì và năng suất bổ trợ lẫn nhau. Mã dễ thay đổi giúp bảo trì dễ dàng hơn, và những thay đổi nhanh chóng cũng giúp tăng năng suất. Tái cấu trúc là điều cần thiết để đạt được cấu trúc này, và mã kiểm thử là điều kiện tiên quyết.

Bài giảng này sẽ hướng dẫn bạn quy trình tái cấu trúc và viết các bài kiểm tra nhiều lần khi bạn thêm tính năng hoặc cấu trúc lại mã của mình.

Những hoạt động này được chúng tôi gọi là chiến lược Clean Spring và chúng sẽ giúp bạn suy nghĩ theo cách tạo ra mã có khả năng chống chịu với sự thay đổi.

(Bạn có thể xem câu chuyện chi tiết về Clean Spring trong video thuyết trình Infocon 2024. 👉 )

Bộ sách Mùa xuân sạch của Toby, đầu tiên

Mô hình miền và
Kiến trúc lục giác

Quá trình phát triển Clean Spring bắt đầu bằng việc hiểu sâu sắc vấn đề (miền) mà dịch vụ đang cố gắng giải quyết. Sự hiểu biết này sau đó được phản ánh trong mã nguồn, và các chiến lược cốt lõi để thiết kế cho sự phát triển ổn định ngay cả khi chức năng mở rộng là mô hình miền và kiến trúc lục giác.

Khóa học này sẽ khám phá ứng dụng thực tế của mô hình miền và kiến trúc lục giác, tận dụng các công nghệ Spring, web và JPA mới nhất . Chúng tôi cũng sẽ giải quyết các thách thức quan trọng trong giai đoạn đầu, chẳng hạn như cấu trúc dự án, phân tách mô-đun, phương pháp cộng tác và chiến lược kiểm thử. Thông qua quá trình này, bạn sẽ trải nghiệm quá trình tái cấu trúc và phát triển mô hình miền .

<Mô hình miền và kiến trúc lục giác> bao gồm hai bài giảng, Phần 1 và Phần 2.

Phần 1. Tập trung vào các hàm thành viên, chúng ta sẽ xây dựng mô hình miền và khung kiến trúc, thực hành thiết kế logic cốt lõi, cấu trúc và kiểm tra phát triển dựa trên mã. *Khóa học này

Phần 2. Thiết kế lại mô hình để giải quyết các yêu cầu phức tạp, áp dụng thiết kế chuyên sâu, nhiều kỹ thuật tái cấu trúc khác nhau và các công cụ hỗ trợ thử nghiệm cần thiết cho mục đích sử dụng thực tế.

Mô hình miền và kiến trúc lục giác Phần 1.

Nội dung học tập

Chiến lược phát triển tập trung vào mô hình miền

Để phản ánh chính xác các khái niệm và mối quan hệ trong một miền, cần có một mô hình miền trừu tượng. Thiết kế hướng miền (DDD) là một phương pháp giải quyết hiệu quả các vấn đề phức tạp bằng cách hợp tác với các chuyên gia trong lĩnh vực và nhóm phát triển để thiết lập và phát triển mô hình.

Trong khóa học này, chúng ta sẽ áp dụng các nguyên tắc và mô hình cốt lõi của DDD vào phát triển dịch vụ thực tế, ngay cả trong các lĩnh vực ít phức tạp hơn. Chúng ta cũng sẽ học cách tích hợp liền mạch các mô hình miền vào mã và phát triển chúng thông qua tích hợp liên tục.

Cách viết tài liệu mô hình miền cho giao tiếp

Để phát triển theo mô hình miền có hiệu quả, tất cả thành viên nhóm phát triển phải có khả năng tạo và truyền đạt các mô hình với các chuyên gia trong lĩnh vực đó.

Để đạt được điều này, điều quan trọng là phải sử dụng nhất quán một từ vựng duy nhất hoặc một ngôn ngữ phổ biến trong mọi hình thức giao tiếp, bao gồm tài liệu, mã và cuộc họp.

Trong bài giảng này, chúng tôi sẽ giới thiệu cách ghi lại mô hình ngôn ngữ và miền chung này trong một dự án dưới dạng tài liệu Markdown và chúng tôi cũng sẽ khám phá cách mô hình phát triển khi mã thay đổi.

Sự thật và quan niệm sai lầm về kiến trúc lục giác

Kiến trúc lục giác thường bị hiểu lầm, nhưng các nhà phát triển tuân theo các nguyên tắc cốt lõi của Spring có thể đã gặt hái được một số giá trị của nó.

Trong bài giảng này, bạn sẽ khám phá các khái niệm cốt lõi của kiến trúc lục giác, hệ thống phân cấp của nó, cách cấu trúc giao diện và tìm hiểu cách tận dụng hiệu quả các lợi ích mà nó mang lại.

Bằng cách tuân theo các nguyên tắc đơn giản, bạn có thể tập trung vào logic miền của mình và đặc biệt, bạn sẽ thực hành và áp dụng cách cấu trúc các bài kiểm tra độc lập với môi trường.

Áp dụng các quy tắc phụ thuộc giữa các lớp

Việc áp dụng kiến trúc lục giác và mô hình miền kết hợp tạo nên một cấu trúc có tính gắn kết cao và dễ bảo trì. Tuy nhiên, để tận dụng tối đa cấu trúc này, bạn phải tuân thủ các quy tắc phụ thuộc của kiến trúc phân cấp.

Bài giảng này đi sâu vào các khía cạnh thường bị bỏ qua của thiết kế phân cấp, tập trung vào cách sắp xếp các chức năng và cấu trúc mã theo trách nhiệm của từng lớp.

Thiết kế kết cấu mô-đun sử dụng cốt liệu

Tổng hợp, được giới thiệu trong thiết kế theo miền, giúp duy trì tính nhất quán của các thay đổi bằng cách thiết kế đơn vị thay đổi dữ liệu.

Chúng ta sẽ khám phá cách phát hiện và xử lý các bất biến phải được đáp ứng trong một tập hợp, cách sử dụng các gốc tập hợp và cách sử dụng mẫu kho lưu trữ trong các dự án Spring Data hỗ trợ nó, đồng thời áp dụng mẫu tập hợp.

Chúng tôi cũng giải thích cách sử dụng kiến trúc tổng hợp và kiến trúc lục giác cùng nhau để xây dựng các mô-đun chi tiết.

Tạo các đối tượng miền sạch với các thực thể JPA

Chúng tôi sẽ xem xét các tính năng và mục đích của công nghệ JPA và giới thiệu cách sử dụng các thực thể JPA như một công nghệ để tạo các đối tượng miền hiệu quả.

Chúng tôi cũng trình bày một phương pháp tiêu chuẩn để giải quyết vấn đề chú thích JPA quá mức xen lẫn với logic miền, bằng cách sử dụng công nghệ AI.

Chúng tôi cũng thảo luận về trường hợp đặc biệt khi các thực thể JPA được sử dụng riêng biệt với miền.

Kiểm thử kiến trúc, xác minh mã và chiến lược kiểm thử

Chúng tôi tạo mã kiểm thử để xác minh các chức năng được cung cấp cho bên ngoài trong mã ứng dụng đã viết là chính xác. Chúng tôi cũng áp dụng các phương pháp xác minh mã sử dụng các công cụ phân tích tĩnh, vốn khó xác minh trực tiếp thông qua các bài kiểm thử nhưng có khả năng gây ra sự cố trong môi trường sản xuất. Chúng tôi cũng tìm hiểu cách cải thiện tính ổn định và nhất quán của mã.

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

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

  • Người muốn biết cách phát triển thực tế với Spring dùng Web và DB.

  • Những ai mong muốn phát triển hệ thống có khả năng bảo trì vượt trội và năng suất cao thông qua việc áp dụng nguyên tắc Clean Code.

  • Junior Developer muốn trở thành Developer cấp trung trở lên dẫn dắt phát triển dịch vụ.

  • Senior developer muốn dẫn dắt các lập trình viên mới và junior thành thạo kiến trúc, kỹ thuật phát triển mới nhất và khởi nghiệp với nhiều kỳ vọng.

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

  • Ngôn ngữ Java

  • Hiểu nguyên lý cơ bản của Spring

  • Kinh nghiệm phát triển ứng dụng Spring sử dụng Web API và JPA

Xin chào
Đây là

14,661

Học viên

884

Đánh giá

404

Trả lời

5.0

Xếp hạng

8

Các khóa học

호주에 살고 있는 소프트웨어 개발자입니다. 30년간 다양한 분야의 시스템과 서비스를 개발해본 경험이 있습니다. 

스프링 프레임워크와 관련 기술을 좋아하고 JVM 기반 언어를 주로 사용합니다.

한국스프링사용자모임(KSUG)을 설립하고 활동했고, 토비의 스프링이라는 책을 쓰기도 했습니다.

개발과 관련된 다양한 주제에 관해 이야기하는 것을 좋아합니다. 

 

 

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

Tất cả

43 bài giảng ∙ (14giờ 31phú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ả

213 đánh giá

5.0

213 đánh giá

  • zin님의 프로필 이미지
    zin

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    29% đã tham gia

    Khi lần đầu làm phát triển cùng Toby님, tôi đã mong các đồng nghiệp phát triển khác cũng được trải nghiệm những khoảng thời gian đó. Vì vậy, tôi đã đưa ra ý tưởng về lộ trình mang tên <토비의 클린 스프링>. Buổi học đầu tiên của lộ trình đó đã bắt đầu, tôi cảm thấy hồi hộp! Với buổi học này, tôi mong mọi người sẽ cùng nhau suy nghĩ về business, áp dụng vào phát triển, học hỏi, thử áp dụng vào thực tế.. và học một cách thú vị theo cách riêng của mình. Tôi cũng sẽ chăm chỉ học và dần dần lấp đầy những phần còn thiếu sót. Ai muốn tham gia cùng không~?🥰

    • tobyilee
      Giảng viên

      Khóa học lần này tuy ngắn ngủi nhưng tôi đã chuẩn bị nó trong lúc hồi tưởng lại những kỷ niệm cùng Zin phát triển và học tập. Những ví dụ đơn giản mà chúng tôi đã tạo ra lúc đó, cấu trúc kiến trúc có mục đích, cách xử lý logic miền, việc viết và refactor code test tốt, tất cả đã được tái tạo thành bài giảng. Cảm ơn bạn vì đã giúp đỡ rất nhiều trong suốt quá trình phát triển cùng nhau tại hiện trường, và cả sau đó khi lên kế hoạch, chuẩn bị và công bố bài giảng. Dù bận rộn, xin hãy xem lại bài giảng và nhất định để lại cảm nhận của bạn về lần này. Tôi sẽ chờ đợi. Cảm ơn bạn.

  • choicore님의 프로필 이미지
    choicore

    Đánh giá 2

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    100% đã tham gia

    Nghe tin khóa học đã ra mắt, tôi quyết tâm sẽ xem vào cuối tuần và vừa hoàn thành nó. Đây là một khoảng thời gian quý giá để có thể trải nghiệm gián tiếp phong cách làm việc và bí quyết của bậc thầy Spring Hàn Quốc. Mặc dù độ khó được phân loại là sơ cấp, nhưng tôi nghĩ rằng phong cách làm việc và tư duy của các nhà phát triển khác không phải là điều dễ dàng tìm thấy ở bất cứ đâu, bất kể độ khó. Khi thiết kế model, quá trình thay đổi code dần dần, bao gồm các vai trò cần có, trạng thái cần thiết cho vai trò, v.v., và đôi khi họ cũng thể hiện sự "con người" (lỗi chính tả, thiếu sót) mà có thể được xác định bằng test code. Tôi cảm thấy rằng những phần có thể xảy ra vô số lần trong cuộc sống hàng ngày thực sự cho thấy giá trị của test code nhiều hơn. Có rất nhiều bí quyết về testing như việc sử dụng Fixture, Mock (Stub), v.v., việc xác định đối tượng, hành vi, mục đích cần kiểm tra, hay sự phân biệt giữa unit, integration, v.v.! junit-platform.properties thật tuyệt vời MockMvcTester thật tuyệt vời Đặc biệt, phần "Sự thật và những hiểu lầm về kiến trúc Hexagonal" rất ấn tượng. Vì tôi chỉ biết lỏm bỏm, nên việc họ chỉ ra rõ ràng cách mà những người sáng lập như Eric Evans và Alistair Cockburn đã diễn giải và những phần cốt lõi họ đã nói dường như đã giúp sắp xếp lại những phần tôi cảm thấy khó khăn. Khóa học này có thể hữu ích cho những người sau: Các nhà phát triển cấp cao cần dẫn dắt thiết kế Những người đã học và có kinh nghiệm với dự án kiến trúc Hexagonal nhưng cảm thấy thiếu hiểu biết sâu sắc Những người muốn tìm hiểu đúng cách về Domain Model Pattern, Transaction Script Pattern, Hexagonal Architecture Những người muốn biết bậc thầy Spring phát triển như thế nào Tôi đã học được về Clean Spring và cách cấu hình đã đạt được nhiều lợi ích nhờ tích hợp với Spring. Xin cảm ơn. Không có Spring thì không phát triển. Spring là POJO!!!

    • tobyilee
      Giảng viên

      À, là Jaehyung đây rồi, người luôn để lại những đánh giá khóa học chi tiết. Tôi đã cố gắng lồng ghép giới thiệu không chỉ các mẫu và nguyên tắc mà còn cả các công nghệ Spring mới nhất tại thời điểm hiện tại, và cảm ơn bạn đã nắm bắt được điều đó rất tốt. Tôi mong bạn sẽ tiếp tục phát triển thành một nhà phát triển giỏi. Cảm ơn bạn.

  • arawn님의 프로필 이미지
    arawn

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Tôi chuyển cảm nhận hoàn thành khóa học đã để lại trên LinkedIn sang Inflearn. https://www.linkedin.com/posts/arawn_%EA%B8%B0%EB%8B%A4%EB%A6%AC%EB%8D%98-%EC%9D%B4%EC%9D%BC%EB%AF%BC%EB%8B%98%EC%9D%98-%EC%8B%9C%EB%A6%AC%EC%A6%88-%EA%B0%95%EC%9D%98-%EB%A1%9C%EB%93%9C%EB%A7%B5-%ED%86%A0%EB%B9%84%EC%9D%98-%ED%81%B4%EB%A6%B0-%EC%8A%A4%ED%94%84%EB%A7%81%EC%9D%98-%EC%B2%AB-%EC%A3%BC%EC%A0%9C%EC%9D%B8-activity-7352614457123987456-pleA?utm_source=share&utm_medium=member_desktop&rcm=ACoAABvezLwBBEWVnGUkIY_xxm2aE3-sGtVHt0g -- Bài giảng của 이일민님lần này cũng không làm tôi thất vọng. Không chỉ có phong cách giải thích sâu sắc và tử tế đặc trưng của anh ấy, mà cách triển khai dòng suy nghĩ một cách bình tĩnh thông qua live coding đặc biệt tuyệt vời. Cách anh ấy chỉ ra từng điểm một về việc đang nghĩ gì, với ý định gì khi viết code thật đáng kinh ngạc. Khi theo dõi bài giảng, tôi có thể cảm nhận được sự đắm chìm như thể trở thành chính giảng viên và trải nghiệm trực tiếp quá trình tư duy, qua đó tự nhiên hiểu được cách áp dụng Domain Model Pattern và Hexagonal Architecture khi phát triển ứng dụng với Java và Spring. Độ sâu kỹ thuật rất xuất sắc, nhưng điều đặc biệt ấn tượng trong bài giảng này là việc thể hiện 'thái độ đối với công nghệ' và 'phương pháp học tập' như một chuyên gia. Thứ nhất, đưa ra cách tiếp cận đúng đắn về việc học công nghệ một cách rõ ràng. Khi giải thích về Hexagonal Architecture, anh ấy triển khai nội dung dựa trên bài viết gốc và quan điểm cốt lõi của Alistair Cockburn - người đầu tiên đề xuất kiến trúc này. Điều này có vẻ quá đương nhiên, nhưng thực tế nhiều người tiếp cận công nghệ thông qua nội dung đã được gia công lần 2, lần 3 thay vì tài liệu gốc. Tài liệu đã gia công có thể hữu ích trong việc hỗ trợ hiểu biết, nhưng cũng tồn tại nguy cơ ý định của tác giả gốc bị pha loãng hoặc bóp méo. Điều này giúp tôi nhắc nhở lại rằng để hiểu bản chất của công nghệ, cần tiếp cận tài liệu nguồn gốc càng nhiều càng tốt. Thứ hai, tôi có thể cảm nhận được tầm quan trọng của tư duy có logic riêng. Ví dụ trong bài "Entity vs DTO", anh ấy đã chứng minh từng cái một cách logic về quan điểm của mình về việc tại sao sử dụng entity ở presentation layer không phải là vấn đề. Khi một developer đưa ra quyết định kỹ thuật nào đó, họ phải có thể giải thích lý do bằng logic của chính mình chứ không phụ thuộc vào thẩm quyền bên ngoài. Đây là điều đương nhiên nhưng thực tế không dễ thực hiện, và 이일민님 đã trực tiếp cho thấy cách thực hiện điều đương nhiên đó. Bài giảng này không chỉ dừng lại ở việc dạy công nghệ đơn thuần, mà còn truyền đạt cả tư duy và thái độ cần có của một developer, thật sự là một trải nghiệm quý giá. Tôi rất khuyến khích cho những ai muốn nghiêm túc trong việc phát triển phần mềm.

    • tobyilee
      Giảng viên

      Bạn đã tóm tắt rất tốt những gì tôi muốn truyền tải qua bài giảng. Cảm ơn bạn.

  • maskunflower23707님의 프로필 이미지
    maskunflower23707

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    79% đã tham gia

    Tại nơi đầy hỗn loạn và vô trật tự, Toby-nim đã phán 'Hãy có ánh sáng', và ánh sáng đã xuất hiện, thiết lập lại trật tự. Tôi có cảm giác như đang đọc được một lý thuyết chuẩn mực về Domain Model Pattern và Hexagonal Architecture, những điều tôi đã trăn trở rất nhiều. Xin giới thiệu.

    • tobyilee
      Giảng viên

      Ối.. Tôi không phải là người có khả năng phi thường như vậy đâu. Chỉ là, tôi nhớ những điều đáng tiếc khi thấy một số người gặp chút bối rối hoặc không khai thác được giá trị của công nghệ, nên tôi đã cố gắng hết sức để giải thích dựa trên những gì mình đã học và xác nhận. Mặc dù vậy, tôi cũng có thể có những chỗ sai sót. Vì nhiều người đang đóng góp ý kiến, tôi sẽ học hỏi và chuẩn bị thêm để tiếp tục chia sẻ trong các bài giảng tiếp theo.

  • sooragenius6352님의 프로필 이미지
    sooragenius6352

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    98% đã tham gia

    Tôi đã mua khóa học và muốn xem ngay lập tức để viết đánh giá, nhưng thời gian trôi qua và giờ tôi mới có thể để lại phản hồi. Nước mắt.. 😢 Một lần nữa tôi có thể cảm nhận được rằng câu nói 'khóa học của thầy Toby luôn đáng tin cậy' không phải là nói suông!!! Gần đây, nhiều developer ngày càng quan tâm đến kiến trúc hexagonal và có rất nhiều cuộc thảo luận xung quanh chủ đề này. Tuy nhiên, cũng có không ít hiểu lầm về khái niệm này. Nhưng trong khóa học này, để giải tỏa những hiểu lầm đó, thầy đã từng bước chỉ ra từ định nghĩa kiến trúc, và giải thích một cách logic tại sao cần có cấu trúc như vậy, điều này thực sự ấn tượng. Đặc biệt, không chỉ dừng lại ở lý thuyết mà còn giải thích kèm với các ví dụ thực tế nên tôi hiểu rõ hơn rất nhiều. Ngoài ra, nhiều người thắc mắc và đôi khi bối rối về việc các annotation JPA như @Entity, @Column xâm nhập vào domain model. Trong khóa học này, thầy đã chia sẻ những suy nghĩ sâu sắc về vấn đề đó và đưa ra hướng giải quyết thực tế, điều này thực sự tuyệt vời. Cách tiếp cận trực diện những băn khoăn thường gặp trong thực tế, từng bước phân tích và giải thích về trade-off phù hợp thực sự ấn tượng! Tuyệt vời nhất. Và khi phát triển, độ phức tạp ngày càng tăng, và thường thì chúng ta sẽ mất dấu flow của chính hệ thống mình tạo ra. Nhưng trong khóa học, thầy đã hệ thống hóa cách xử lý độ phức tạp đó, tầm quan trọng của việc sắp xếp độ phức tạp, và cách tiếp cận phát triển dựa trên nền tảng đó thực sự ấn tượng. Những phần này chứa đựng nội dung thực tế khó thấy ở các khóa học khác. Tôi cảm thấy như được làm cùng team với thầy Toby trong một dự án thực tế, mức độ몰입 rất cao. Và điều tuyệt vời nhất là, thay vì vội vàng đưa ra đáp án, thầy cùng suy nghĩ và từng bước cải thiện. Cách này rất giống với môi trường phát triển thực tế, nên không chỉ đơn thuần tiếp nhận kiến thức mà còn có thể tự nhiên nắm bắt được quan điểm nhìn nhận vấn đề trong thực tế. Thực sự là trải nghiệm thú vị khi nghe khóa học. Khi xem khóa học, những ngày phát triển trong quá khứ lướt qua và tạo ra dopamine, khiến tôi nhớ thời đó. Thực sự mong chờ khóa học tiếp theo! Thực sự quá quá quá quá thú vị! Cảm ơn thầy rất nhiều vì đã cho ra mắt khóa học quý báu như thế này!

    2.535.711 ₫

    Khóa học khác của tobyilee

    Hãy khám phá các khóa học khác của giảng viên!

    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!