Đề cương khóa học
Từ kỹ năng ngôn ngữ đến thiết kế giải pháp
- Các tính năng nâng cao của C# và ý nghĩa thiết kế của chúng.
- Khai thác ý định thiết kế từ mã nguồn hiện có.
Phân tích yêu cầu và Mô hình hóa miền nghiệp vụ
- Use cases, user stories và tiêu chí chấp nhận (acceptance criteria).
- Mô hình miền (Domain models) và ngôn ngữ phổ quát (ubiquitous language).
Nguyên tắc Thiết kế Phần mềm
- Áp dụng nguyên tắc SOLID vào các giải pháp .NET.
- Tính ghép nối (coupling), độ gắn kết (cohesion) và hướng phụ thuộc.
Mẫu Thiết kế cho Ứng dụng .NET
- Lựa chọn mẫu tạo dựng (creational), cấu trúc (structural) và hành vi (behavioral).
- Mẫu thiết kế (patterns) và mẫu lỗi (anti-patterns) trong mã nguồn hiện có.
Phong cách Kiến trúc và Ra quyết định Kỹ thuật
- So sánh kiến trúc phân tầng (layered), lục giác (hexagonal) và kiến trúc sạch (clean architecture).
- Ghi chép quyết định kiến trúc (ADR) và phân tích đánh đổi (trade-off analysis).
Lập kế hoạch Cấu trúc Giải pháp
- Tổ chức solution và project cho các codebase lớn.
- Đơn nhất module hóa (modular monolith) so với ranh giới hướng dịch vụ (service-oriented boundaries).
C# Hiện đại cho Mã nguồn Bền vững
- Pattern matching, records và kiểu tham chiếu rỗng (nullable reference types).
- Generics, LINQ và tổ hợp hàm (functional composition).
Xử lý Ngoại lệ, Nhật ký và Quan sát hệ thống
- Chiến lược ngoại lệ và hợp đồng lỗi (error contracts).
- Ghi nhật ký có cấu trúc (structured logging), tương quan (correlation) và kiểm tra sức khỏe (health checks).
Reflection, Thuộc tính và Lập trình siêu (Metaprogramming)
- Thiết kế dựa trên thuộc tính (attribute-driven design) và các trường hợp sử dụng reflection.
- Source generators và sinh mã thời điểm biên dịch (compile-time code generation).
Nền tảng ASP.NET Core
- Mô hình hosting, tiêm phụ thuộc (dependency injection) và cấu hình.
- Pipeline yêu cầu, middleware và bộ lọc (filters).
Thiết kế REST API
- Mô hình hóa tài nguyên và ngữ nghĩa HTTP.
- Phiên bản hóa (versioning), xác thực (validation) và phản hồi lỗi.
- Hợp đồng API với OpenAPI.
Bảo mật Ứng dụng .NET
- Xác thực (authentication) và phân quyền (authorization) với OpenID Connect.
- Phân quyền dựa trên chính sách (policy-based authorization) và quản lý bí mật (secrets management).
Mô hình hóa Mối đe dọa và Thiết kế An toàn
- Mô hình STRIDE và ranh giới tin cậy (trust boundaries).
- Rà soát thiết kế an toàn trước khi triển khai.
Truy cập Dữ liệu với Entity Framework Core
- Mô hình hóa thực thể (entities) và mối quan hệ.
- Vòng đời của DbContext và chiến lược di chuyển dữ liệu (migration strategy).
Hiệu năng Truy vấn và Kiến trúc Dữ liệu
- Các chiến lược nạp dữ liệu (loading strategies) và bẫy của việc nạp trước (eager loading pitfalls).
- Giao dịch (transactions), token đồng thời (concurrency tokens) và cách vượt qua EF khi cần thiết.
Tính Đồng thời và Lập trình Bất đồng bộ
- Tasks, TPL và các bẫy của async/await.
- Đồng bộ hóa (synchronization), hủy bỏ (cancellation) và an toàn luồng (thread safety).
Tối ưu Hiệu năng
- Hồ sơ (profiling) và chuẩn đoán (benchmarking) với BenchmarkDotNet.
- Bộ nhớ, cấp phát (allocations) và thu gom rác (garbage collection).
- Chiến lược bộ nhớ đệm (caching) và kiểm thử tải (load testing).
Chiến lược Kiểm thử xuyên suốt các Tầng
- Ranh giới giữa kiểm thử đơn vị (unit), tích hợp (integration) và đầu-cuối (end-to-end).
- Thiết kế kiến trúc kiểm thử được (testable architecture) và giả lập kiểm thử (test doubles).
Triển khai và Sẵn sàng Vận hành
- Container, cấu hình và đường ống CI/CD.
- Chẩn đoán sản xuất (production diagnostics) và an toàn phát hành (release safety).
Hoàn thiện: Rà soát Thiết kế và Triển khai
- Rà soát kiến trúc của một ứng dụng mẫu.
- Triển khai và tái cấu trúc (refactoring) một lát cắt tính năng (feature slice).
Yêu cầu
- Kinh nghiệm lập trình bằng C#
- Hiểu biết thực tế về lập trình hướng đối tượng
- Knowledge cơ bản về SQL và cơ sở dữ liệu quan hệ
Đối tượng tham gia
- Lập trình viên .NET
- Kỹ sư phần mềm và các vị trí quản lý kỹ thuật (technical leads)
- Lập trình viên đang chuyển sang vai trò thiết kế ứng dụng
Đánh giá (4)
Đó là khóa huấn luyện 1-1 nên đã được chuyên môn hóa cho nhu cầu cụ thể của tôi. Shane đã nhấn mạnh các yếu tố của WPF/C# có thể mang lại lợi ích cho các dự án phát triển của tôi.
Warren Nolan - Northrop Grumman
Khóa học - Programming in WPF
Dịch thuật bằng máy
Kiến thức, sự tham gia và mối quan hệ của người hướng dẫn
Adam Kuklewski - GE Medical Systems Polska
Khóa học - Technical Architecture and Patterns
Dịch thuật bằng máy
Các giải thích và tính tương tác của giảng viên thực sự đã làm cho chủ đề trở nên sinh động; mặc dù tôi có thể chưa đủ kinh nghiệm, nhưng tôi vẫn học được rất nhiều từ khóa học này!
Pieter Bruynseels - Spot Buy Center BV
Khóa học - Design Patterns
Dịch thuật bằng máy
Thân thiện và dễ mến. Rất am hiểu. Sẽ giới thiệu Shane cho người khác.
Joshua - California State University Bakersfield
Khóa học - Programming in C# with Visual Studio 2022
Dịch thuật bằng máy