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

Master the Art of Writing Clean Code in C#

Thành thạo nghệ thuật viết code sạch trong C#

Thành thạo nghệ thuật viết code sạch trong C#

Học cách viết code sạch và dễ bảo trì trong C# theo di huấn của Uncle Bob. Học cách thực hiện tái cấu trúc code trong C#.

4.3
(1,203 đánh giá)
6,926 học viên
Giảng viên
Engineer Spock
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
7.0 giờ video
88 bài giảng
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ì

Đặt tên tối ưu cho hàm, biến và các thành phần API khác
Hiểu và vận dụng các nguyên tắc lập trình như DRY, YAGNI, KISS và các nguyên tắc khác
Viết hàm sạch
Phát hiện các lỗi kiến trúc phổ biến và tái cấu trúc để khắc phục
Áp dụng nguyên tắc lập trình hàm
Áp dụng Dependency Injection và tránh các lỗi liên quan đến DI
Viết unit test sạch
Thực hành Phát triển Hướng Kiểm thử (TDD)

Yêu cầu

Bạn cần có kiến thức cơ bản về C#

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

Dành cho lập trình viên C# cấp độ mới bắt đầu và trung cấp

Nội dung khóa học

9 phần • 88 bài giảng
1 Cách Đặt Câu Hỏi
2 Tải Mã Nguồn
3 Tham Gia Cộng Đồng .NET của Học Viên
4 Động lực viết code sạch
1 Tổng quan
2 DRY - Đừng lặp lại chính mình
3 KISS - Giữ mọi thứ đơn giản
4 YAGNI - Bạn sẽ không cần nó đâu
5 Tách biệt mối quan tâm (SoC)
6 Nguyên tắc tách biệt Lệnh và Truy vấn (CQS)
7 Nguyên tắc ít bất ngờ nhất
8 Đóng gói và ẩn thông tin
9 Kết luận
1 Tổng quan
2 Nguyên tắc chung về đặt tên
3 Bàn thêm về việc đặt tên
4 Quy ước đặt tên trong .NET
5 Kết luận
1 Tổng quan
2 Khai báo biến ở đầu
3 Số ma thuật (Magic Numbers)
4 Lỗi kiểu "Stringly" Typed
5 Thuộc tính VS Phương thức
6 Triển khai tham số
7 Quá nhiều tham số
8 Phương thức quá dài
9 Mẫu tạo đối tượng VS Hàm tạo
10 Tái cấu trúc "Trích xuất phương thức"
11 Đơn giản hóa logic phức tạp
12 Thứ tự đối số
13 Mệnh đề bảo vệ và trả về sớm
14 Mệnh đề điều kiện kém
15 Tham số đầu ra
16 Chú thích
17 Ưu tiên câu lệnh if tích cực
18 Kết luận
1 Tổng quan
2 Ám ảnh kiểu nguyên thủy
3 Vi phạm Luật Demeter
4 Ghép cặp thời gian
5 Tái cấu trúc thành mẫu thiết kế "Template Method"
6 Tái cấu trúc thành mẫu thiết kế "Strategy"
7 Tái cấu trúc thành mẫu thiết kế "State"
8 Kết luận
1 Tổng quan
2 Các mô hình lập trình
3 Định nghĩa lập trình hàm
4 Hàm, hàm và lại hàm
5 Tại sao nên dùng lập trình hàm?
6 Tính bất biến. Giới thiệu
7 Tính bất biến của cấu trúc
8 Ghép cặp thời gian và tính bất biến
9 Xử lý đường ống (Pipelining)
10 Mở rộng IDisposable
11 Mở rộng tổng quát
12 Mở rộng StringBuilder
13 Lạm dụng phương thức mở rộng
14 Mẫu thiết kế Builder. Tính bất biến và khả năng kiểm thử
15 Lỗi và lập trình hàm
16 Xử lý lỗi: Xử lý đường ống bằng chuỗi phương thức
17 Kết luận
1 Tổng quan
2 Kiểm soát quá mức (Control Freak)
3 Phụ thuộc ẩn và Service Locator
4 Ghép cặp thời gian và Constructor Injection
5 Constructor Injection quá mức
6 Ngữ cảnh toàn cục (Ambient Context)
7 Dịch vụ mặt tiền (Facade Service)
8 Property Injection có nghĩa là Bastard Injection?
9 Phụ thuộc vòng
10 Kết luận
1 Tổng quan
2 Singletons và lớp tĩnh
3 Quá nhiều interface
4 Loại bỏ interface
5 Kiểm thử code tầm thường
6 Kiểm thử một mối quan tâm duy nhất
7 Thêm các thực hành tốt nhất về unit test
8 Kết luận
1 Tổng quan
2 TDD là gì?
3 Đỏ / Xanh / Tái cấu trúc
4 Ba quy tắc của TDD
5 Đọc số La Mã
6 Kiểm thử liên tục
7 Trò chơi Tic-Tac-Toe (Cờ Caro)
8 Kết luận
9 BÀI GIẢNG BỔ SUNG

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

Learn how to design and implement types in C# so that the other developers won't hate you when using one of the types developed by you. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.

Improve your knowledge in object-oriented programming in the context of clean coding and building types of high quality.

  • Learn how to give the best names for API members 
  • Learn all the tricks related to writing clean functions
  • Avoid common architectural smells. Get rid of unpleasant smells
  • Apply principles of functional programming: achieve immutability, remove side effects, extend types
  • Avoid smells related to dependency injection
  • Write cleaner unit tests
  • Practice Test-Driven Development

Foundations of building object-oriented infrastructures

Despite the fact that C# is a very rich on features language, it's very common to see poorly designed and implemented types in a real world. In fact, C# is one of the richest on features language among object-oriented languages in the world nowadays. But with great power comes great responsibility. It's challenging  to use all those features in a right way.

You probably have already heard the following well-known statement: most code sucks. Well, this course is all about how to produce code which doesn't suck.

Owning skills of producing a well-designed and well-implemented types is the prerequisite for the other developers to treat you as a real professional.

Content and Overview

This course is aimed at all the C# developers, from beginners to seniors. Topics which are covered in the course are relevant for all kinds of C# developers since all developers design and implement APIs. The topics complexity is very different. There are plenty of very simple topics, and at the same time, there are topics which require from you a solid C# background. There are plenty of code examples throughout this course, so you will learn both theoretical and practical material.

The course covers the following topics:

  • Meta Principles: DRY, KISS, YAGNI, SoC, CQS, PoLA, Encapsulation
  • How to give better names for API members and what naming conventions exist in the .NET platform and suited for C#
  • Common problems encountered by C# developers in the process of designing and implementing APIs: classes vs structures, creational patterns vs constructors,  poor naming, excessively long methods, output parameters and so on.
  • Common Architectural Design Smells such as Primitive Obsession, Hidden Dependencies, Violation of Law of Demeter and other.
  • Functional Programming: immutability, temporal coupling, pipelining, extending IDisposable, Builder Design Pattern, abusing extension methods, dealing with errors
  • DI-related anti-patterns: control freak, hidden dependencies, temporal coupling, ambient context, facade service, bastard injection, cyclic dependencies
  • Clean Unit Tests: singletons and static classes, excessive number of interfaces, testing trivial code, testing of a single concern, different best practices
  • Practicing TDD: definition, 3 laws, parsing roman numerals, continuous testing, implementing Tic-Tac-Toe

The list is far from being complete. The course covers a great number of topics. Enroll and start Mastering the Art of Writing Clean Code in C#!

------------------------------------------------------------

Keywords related to the course:

  • C# Clean Code
  • C# Best Practices
  • API in C#
  • Building API in C#
  • Clean Code in C# tutorial
  • Refactoring

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 C Sharp
Hiển thị tất cả khoá học Dotnet
Clean Code

Clean Code

Academind by Maximilian Schwarzmüller

4.6 (26435)
118,068
50.000đ -88%
Hiển thị tất cả khoá học Programming Fundamentals
Clean Code

Clean Code

Academind by Maximilian Schwarzmüller

4.6 (26435)
118,068
50.000đ -88%
Hiển thị tất cả khoá học Software Engineering
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊