Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Flutter & Dart: SOLID Principles and Top Design Patterns

Flutter & Dart: Nguyên Lý SOLID và Các Mẫu Thiết Kế Hàng Đầu

Flutter & Dart: Nguyên Lý SOLID và Các Mẫu Thiết Kế Hàng Đầu

Học cách cải thiện code Flutter & Dart của bạn thông qua việc nắm vững các nguyên lý S.O.L.I.D và các Mẫu Thiết Kế GoF hàng đầu.

4.7
(761 đánh giá)
5,958 học viên
Giảng viên
Piotr Paweska
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
4.0 giờ video
48 bài giảng
8 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

*Thành thạo* các mẫu thiết kế quan trọng và cơ bản nhất trong Kỹ thuật Phần mềm hiện đại, áp dụng trong framework *Flutter* bằng ngôn ngữ *Dart*.
Học và áp dụng nhuần nhuyễn các nguyên lý thiết kế S.O.L.I.D như cách các *Lập Trình Viên Cấp Cao* thực hiện.
Hiểu sâu về MẶT NÀO, TẠI SAO, và CÁCH THỨC áp dụng của những *Mẫu Thiết Kế Cơ Bản* này.
Nhận được phần trình bày chi tiết về Kiến trúc (kèm UML) cho từng mẫu thiết kế, cùng với các tình huống *thực tế* và ví dụ code minh họa cụ thể.
Thực hành và hoàn thành các bài tập dựa trên Dart sẽ đưa hiểu biết của bạn về các mẫu thiết kế này lên mức sâu và vững chắc hơn.
Học cách *nhận diện* *mẫu thiết kế tốt nhất* cho một thách thức Kiến trúc cụ thể.

Yêu cầu

Khóa học giả định bạn đã có kiến thức cơ bản về Flutter và Dart. Chỉ cần kinh nghiệm cơ bản là đủ.
Bạn cần có khả năng chạy code Dart được cung cấp trong khóa học. Chúng tôi sẽ dùng Visual Studio Code làm IDE, nhưng bạn có thể dùng bất kỳ IDE nào bạn thích.
Có máy tính. Hệ điều hành Mac, Windows, hay Linux đều được. Tất cả công cụ đều độc lập với hệ điều hành.
Bạn nên có thiết bị di động, nhưng điều này không bắt buộc vì chúng ta sẽ phát triển code trên trình giả lập (emulator/simulator) trước.

Đối tượng phù hợp

Dành cho nhà phát triển *Flutter & Dart* muốn học cách Thiết kế, Kiến trúc, và cuối cùng là phát triển *code tốt hơn*.
Dành cho nhà phát triển muốn hiểu sâu điều gì tạo nên một *Kiến trúc Phần mềm* TUYỆT VỜI.

Nội dung khóa học

11 phần • 48 bài giảng
1 Mẫu Thiết kế là gì và tại sao chúng ta cần chúng?
2 Các Mẫu Thiết kế được đề cập trong khóa học này.
3 LÝ DO của Kiến trúc Phần mềm.
4 Tại sao sử dụng UML?
5 Code có tổ chức vs. Code không có tổ chức.
6 *TÙY CHỌN*: Ôn tập UML.
1 Dấu hiệu của Kiến trúc Tốt.
2 Nguyên lý Thiết kế S.O.L.I.D.
3 *Buổi Thực hành* SOLID - Nguyên lý Trách nhiệm Đơn lẻ (SRP)
4 *Buổi Thực hành* SOLID - Nguyên lý Đóng/Mở (OCP)
5 *Buổi Thực hành* SOLID - Nguyên lý Thay thế Liskov (LSP)
6 *Buổi Thực hành* SOLID - Nguyên lý Phân tách Giao diện (ISP)
7 *Buổi Thực hành* SOLID - Nguyên lý Đảo ngược Phụ thuộc (DIP)
1 Hiểu về Mẫu Singleton
2 Cân nhắc Kiến trúc cho Mẫu Singleton
3 Code Mẫu Singleton trong Dart
4 Bài tập Code Mẫu Singleton
5 Lời giải Bài tập Code #1
6 Lời giải Bài tập Code #2
1 Hiểu về Mẫu Factory Method
2 Cân nhắc Kiến trúc cho Mẫu Factory Method
3 Code Mẫu Factory Method trong Dart
4 Bài tập Code Mẫu Factory Method
1 Hiểu về Mẫu Thiết kế Builder
2 Cân nhắc Kiến trúc cho Mẫu Thiết kế Builder
3 Code Mẫu Builder trong Dart
4 Bài tập Code Mẫu Thiết kế Builder
1 Hiểu về Mẫu Thiết kế Adapter
2 Cân nhắc Kiến trúc cho Mẫu Adapter
3 Code Mẫu Adapter trong Dart
4 Bài tập Code Mẫu Thiết kế Adapter
1 Hiểu về Mẫu Thiết kế Strategy
2 Cân nhắc Kiến trúc cho Mẫu Thiết kế Strategy
3 Code Mẫu Thiết kế Strategy
4 Bài tập Code Mẫu Thiết kế Strategy
1 Hiểu về Mẫu Thiết kế Observer
2 Cân nhắc Kiến trúc cho Mẫu Thiết kế Observer
3 Code với Mẫu Thiết kế Observer Phần 1 - setState()
4 Code với Mẫu Thiết kế Observer Phần 2 - Streams
5 Bài tập Code Mẫu Thiết kế Observer
1 Hiểu về Mẫu Thiết kế State
2 Cân nhắc Kiến trúc cho Mẫu Thiết kế State
3 Code Mẫu Thiết kế State
4 Bài tập Code Mẫu Thiết kế State
1 Về Mô phỏng Trò chơi Cuộc sống của John Conway
2 Một vài lời về Kiến trúc "Game of Life"
1 Bạn sẽ đi tiếp như thế nào từ đây?
2 Cảm ơn bạn!

Giới thiệu khóa học

We all want to become better software developers and be able to call ourselves "Software Engineers" or "Software Architects", but to do that you first have to master a number of design patterns.

This course will put you on a track to that destination.

We will teach you how to recognize when to use specific design patterns to build complex systems in a divide-and-conquer manner so that complexity is reduced and abstracted.

But rather than learning all the design patterns out there, we have curated the most important, the top fundamental GoF Design Patterns for you.


All of that in the context of the Flutter Framework using Dart.


We start with full understanding of the S.O.L.I.D Design Principles and how they in turn relate to those design patterns. We eplain everything in the context of real-wprld problems as well as specific code examples.

At the end of the course you will get to Architect a solution by coding John Conway's Game of Life simulation which will run on your mobile device.


Complex software systems are plagued with three major issues:

  1. Timelines are stretched as requirements change.

  2. Multiple developers have a hard time coordinating their efforts.

  3. Code redundancy.

This in turn creates issues with maintenance and overall flexibility for adding new features. In general this means poorly designed systems that are hard to maintain and are not adaptable.

One answer to all the above problems is having a proper design and architecture. Think of a skyscraper being built. There is always a high-level blueprint. This blueprint is used to show everybody involved (from architects to supply chain to construction workers to machinery scheduling etc…) what is being worked on.


Everybody understands and follows the same vision.


A blueprint has a number of commonly understood elements which repeat themselves across many projects. For example all buildings need electrical wiring and plumbing, they might need elevators, and cooling systems, and underground parking lots, and of course stairs. They also usually are connected to the electrical grid and water supply as well as… roads.

All these common elements follow certain standards that have been improved over many many years and across many many projects. They are well understood and can be used almost like recipes.

In Software Engineering we also have a set of elements that repeat themselves across many projects. For example all software applications need to create objects, they need to communicate state change across those objects, they need to be able traverse over collections of those objects. In other words, if you want to be a better developer then you need to become proficient in those elements that have been time-tested. In the Software Engineering world these elements are known as “Design Patterns”


This course will teach students how to recognize when to use specific design patterns to build complex systems in a divide-and-conquer manner so that complexity is reduced and abstracted.

This will help you to design projects in an Architectural manner before any major development happens and can be used to shorten development time and reduce maintenance costs.


Design patterns are important because they are time-tested recipes or solutions to well-known software engineering problems. When creating software applications certain problems recur in a pretty predictable fashion so rather than ‘reinvent’ the wheel we will have an assortment of, if you will, wheels to choose from.

We will teach you this in a slightly different manner than you probably have been taught before. We will take a practical approach (i.e. specific examples) but the power of Design Patterns comes from their ‘concept’ and we will teach you the concept of those design patterns so that you are fully able to change them and modify them to your needs. In addition we will look at how to combine all those patterns into something greater: an architecture.


A well designed Architecture is this magical thing where the whole is greater than the sum of its parts.

This is what we will strive to teach you.


Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Dart
Hiển thị tất cả khoá học Flutter
Hiển thị tất cả khoá học Mobile Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊