Tình hình là đọc thông tin lung tung, học hành không đúng quy trình nên giờ em bị tẩu hỏa nhập ma khái niệm giữa 3-Tier và 3-Layer. Nhiều lúc cữ nghĩ nó là một? Có ai hiểu rõ và giải thích cặn kẽ 2 khái niệm kia với.
Tình hình là đọc thông tin lung tung, học hành không đúng quy trình nên giờ em bị tẩu hỏa nhập ma khái niệm giữa 3-Tier và 3-Layer. Nhiều lúc cữ nghĩ nó là một? Có ai hiểu rõ và giải thích cặn kẽ 2 khái niệm kia với.
3 tier: Dùng cho mô hình client-server, mỗi tier thường là 1 platform riêng biệt.
3 layer: Thường cùng 1 platform, nó giống cách tổ chức mã lệnh một cách rạch ròi.
Điểm khác biệt dễ nhận thấy:
Mô hình 3 tier có dạng tuyến tính
Mô hình MVC có hình tam giác ^.^
tất nhiên 2 mô hình này có những điểm tương đồng, nhưng nó 0 phải là 1.
Nhiều article hay dùng chung khái niệm Tier và Layer nên tùy theo ngữ cảnh để hiểu được vấn đề cụ thể. Tuy nhiên, về cơ bản có thể hiểu Tier là việc triển khai hình thức vật lý. Mỗi tier chạy trên một máy/cụm máy cụ thể. Còn mỗi layer là một thành phần phần mềm được thiết kế để làm một công việc chuyên biệt.
Vậy 3-layers với MVC có giống nhau không các bác ? :|
3-Tier là mô hình 3 tầng có nghĩa là nó gồm những tầng sau: Tầng thứ nhất là tầng DAO tầng thứ 2 là tầng SERVER tầng thứ 3 là tầng Client.
Trong đó tâng DAO là cơ sở dữ liệu của bạn, tầng SERVER là tầng có chứa mô hình 3-Layer
Còn mô hình 3-Layer là mô hình 3 lớp nó gồm những lớp sau: lớp thứ nhất là lớp DataAccess lớp thứ 2 là lớp Bussiness và lớp thứ 3 là lớp GUI, và những lớp này nằm trong tầng SERVER của mô hình 3-Tier...
Trong đó DataAccess là lớp truy suất đến cơ sở dữ liệu, Còn lớp Bussiness là lớp trung gian để giao tiếp giữa lớp GUI với lớp DA.
^^!
Bạn giải thích rất chính xác, tổng quát hơn:
N-Tier is more about where the code / processes run (physical location), and N-Layer is more about how the code is logically grouped
N-Tier là sự phân nhóm dựa trên việc code chạy ở đâu.
Còn N-Layer là sự phân nhóm dựa trên chức năng của code.
MVC là 1 trong nhiều cách phân nhóm khác, ở MVC thì business logic có thể nằm trong cả M và C, tùy vào việc việc business logic nằm ít hay nhiều ở C mà có thể còn có những thứ phân loại phức tạp hơn như fat Model, thin Controller ... Ngoài ra còn cả những mô hình như SOA nữa.
Nói chung là cứ code đi , code web thật nhiều rồi hãy nghĩ đến mấy cái mô hình , phải cái là ở ĐH thì tỷ lệ lý thuyết / thực hành có vẻ hơi ko ổn (ai học ĐH vào confirm cái). Đáng sợ nhất là những khi chưa bao giờ code, hoặc thậm chí chưa bao giờ nhìn thấy code, nhưng lại phải học cách phân loại chúng
Được sửa bởi zmt264 lúc 02:00 ngày 11-03-2010
Thông tin + clip: http://youtube.com/hoctudau
Thông tin + clip: http://youtube.com/hoctudau
Học tất cả, nhưng mà bác có sách nào nói theo kiểu tổng quát thì giới thiệu giúp em nhé. Vì em đã học và làm theo kiến trúc MVC theo kiểu chi tiết rồi nhưng mà lại ko biết mấy về tổng quát của nó và kiến trúc n-layer nữa. có những cái khác thì càng tốt bác nhé. Nói chung là em đã đi vào chi tiết nhưng mà lại thiếu tổng quát giờ em muốn tìm lại tổng quát để học cho nó kỹ.
Thank bác nhé.
Vậy thì không có sách đâu bạn.
Cái này là khái niệm thôi, bạn thích tìm hiểu thì Gu Gồ là được.
Sẽ ra mấy bài đại khái như: http://codebetter.com/davidhayden/20...er-vs-n-layer/
Nhưng (hình như ngay ở bài trên cũng nói), cẩn thận ko thì sẽ thành người "quá kỹ thuật" (over-engineering, over-architecting), cố giữ được tỉ lệ: nói 1, đọc 10, làm 100; hoặc ít ra thì cũng là nói: nói 1, đọc 1.1, làm 1.2. Làm sao thời gian bạn code nhiều hơn thời gian bạn đọc thì tốt.
Thông tin + clip: http://youtube.com/hoctudau
Bookmarks