Model View Controller (MVC) và các biến thể của nó

Trong các nền tảng lập trình hiện đại như .NET, khi mà các công cụ và kĩ thuật hỗ trợ lập trình giao diện người dùng (UI) ngày càng trở nên mạnh mẽ và tiện dụng thì chúng ta thường có xu hướng đưa nhiều xử lý bên ngoài vào các lớp UI. Kết quả … Continue reading Model View Controller (MVC) và các biến thể của nó

Kiến trúc Model-View-Presenter

Trong bài viết trước, chúng ta đã khảo sát mô hình kiến trúc Model-View-Controller, Kiến trúc MVP chúng ta sẽ bàn dưới đây cũng dựa trên tư tưởng cơ bản của MVC nhưng với cách tiếp cận khác nhằm mục đích khắc phục các khuyết điểm đã có. 1. Mẫu kiến trúc Dolphin Smalltalk Model-View-Presenter Tổng … Continue reading Kiến trúc Model-View-Presenter

Kiến trúc Model-View-Controller

Ở bài viết trước, chúng ta đã nêu ra các vấn đề cơ bản được đặt ra cho các hệ thống tương tác (interactive system). Để giải quyết chúng, một số giải pháp được đề ra trong đó phổ biến nhất là mẫu kiến trúc MVC (Model-View-Controller). Trong bài viết này, chúng ta sẽ khảo … Continue reading Kiến trúc Model-View-Controller

Book review: Clean Architecture by Robert C. Martin (2017)

Là 1 fan của ông, tác giả của SOLID, Clean Code, Agile Software Development, Principles, Patterns, and Practices và gần đây nhất là cuốn Clean Architecture: A Craftsman's Guide to Software Structure and Design. Nghe tựa rất kêu vì cuốn Clean Code ảnh hưởng rất lớn đến mình và bản thân đã không cưỡng lại … Continue reading Book review: Clean Architecture by Robert C. Martin (2017)

Kiến trúc phân lớp (đọc thêm)

Khác nhau giữa kiến trúc phân lớp (layered) và kiến trúc n-tier HM thấy trên mạng có một số người hỏi về kiến trúc phân lớp (layered) và kiến trúc n-tier. Cũng như nhiều khái niệm khác, nếu tỉ mỉ đi vào chi tiết thì chắc không có định nghĩa thống nhất, tuy nhiên nếu để … Continue reading Kiến trúc phân lớp (đọc thêm)

Kiến trúc phân lớp (Layered Architecture)

Là dạng kiến trúc rất phổ biến ngày nay, chắc chắn ai cũng đã từng nghe qua về kiến trúc 3 lớp, MVC, MVVM,... Tất cả đều có chung một mục đích là tổ chức, phân rã mã nguồn theo nhiều chức năng và nhiệm vụ khác nhau trong hệ thống. Trong các hệ thống … Continue reading Kiến trúc phân lớp (Layered Architecture)

Low Coupling và High Cohesion là gì?

Low coupling và high cohesion là 2 thuộc tính đi cùng với nhau như là mục tiêu cần đạt được trong thiết kế, trong bài viết này, cùng tìm hiểu xem chúng là gì, làm sao để đạt được và tránh các lỗi liên quan đến coupling và cohesion khi thiết kế phần mềm. Coupling … Continue reading Low Coupling và High Cohesion là gì?

Enterprise Application definition

Let’s first understand what we call an enterprise application. As per Gartner: Enterprise application software includes content, communication, and collaboration software; CRM software; digital and content creation software, ERP software; office suites; project and portfolio management; and SCM software. Typical enterprise applications like CRM, ERP, Accounting & Banking apps are multi-user, multi-machine, multi-component, multi-screen and … Continue reading Enterprise Application definition

Managing Your Dependencies with JDepend

As a developer and architect, I'm always on the lookout for tools that will quickly provide feedback on the quality of software architectures and designs. The problem is that most measures of architectural and design quality tend to be vague qualities — scalability, reliability, maintainability, flexibility, modularity, etc. — that are difficult to measure in … Continue reading Managing Your Dependencies with JDepend