2010-03-19 29 views
5

Tôi làm việc tại một công ty cung cấp phần mềm giống như 'CRM' được tùy chỉnh. Chúng tôi hiện đang thiết kế lại/tái phát triển phần mềm với hy vọng rằng nó sẽ trông hiện đại hơn và dễ dàng hơn để phát triển và tùy chỉnh cho các khách hàng trong tương lai. Hiện tại, phải mất một thời gian dài để tùy chỉnh từng ứng dụng mới.Việc triển khai MVC 'thuần túy' hữu ích như thế nào?

Có một giả định rằng lý do mất nhiều thời gian là do số lượng logic nghiệp vụ hiện diện trong lớp 'chế độ xem'. Ở một mức độ nào đó, tôi có thể xác minh điều này là đúng, nhưng các triệu chứng không phải lúc nào cũng chỉ ra một nguyên nhân đáng tin cậy. Có một gợi ý rằng nếu chúng ta chỉ chuyển logic nghiệp vụ sang lớp điều khiển và sử dụng chế độ xem thuần túy (chúng tôi sử dụng java J2EE và struts) như trong việc triển khai thẻ struts thay vì gọi lớp bean và lặp các đối tượng ngay trên jsp - v.v.

Trước khi tôi bắt đầu ủng hộ, chúng tôi tiếp tục với điều này, tôi muốn có cảm giác về những gì người khác nghĩ. Việc thực hiện "thuần túy" của MVC (đặc biệt là nhấn mạnh vào việc tách bộ điều khiển và khung nhìn) cung cấp một cơ sở mã nguồn sạch hơn, dễ dàng hơn để phát triển và thay đổi?

Thank tất cả các bạn cho đầu vào - mà đã giúp rất nhiều

+0

Bạn có thể giải thích kiến ​​trúc hiện tại của mình một chút không? – Padmarag

Trả lời

10

Mục tiêu của bạn là để có được logic kinh doanh của bạn ở một nơi. Theo kinh nghiệm của tôi, nếu bạn có thể làm điều đó, cơ sở mã của bạn sẽ dễ phát triển, duy trì và thay đổi.

Mô hình chế độ xem-bộ điều khiển là một cách để đến thời điểm đó, mặc dù trong MVC cổ điển, logic doanh nghiệp nằm trong mô hình (miền), trong khi logic ứng dụng nằm trong bộ điều khiển.

Logic ứng dụng: nếu ngày kiểm tra tiếp theo của người dùng trong vòng một tuần (hoặc quá hạn), hiển thị màn hình 'kiểm tra lịch biểu', nếu không hiển thị màn hình 'lịch sử kiểm tra'.

Business Logic: nhà hàng mà trước đây đã thất bại kiểm tra cần phải được kiểm tra mỗi sáu tháng, nhà hàng hải sản phải được kiểm tra hàng năm, và tất cả các nhà hàng khác phải được kiểm tra mỗi hai năm. Với lần kiểm tra cuối cùng của nhà hàng này, khi nào thì lần kiểm tra tiếp theo của họ?

+0

Điều này có ý nghĩa. Cảm ơn bạn đã nhập –

3

tách luôn luôn làm điều đó. Không quan trọng, MVC hay không, các khớp nối ít có trong hệ thống, dễ dàng hơn để duy trì và thay đổi. MVC là mô hình tốt cho Web, đơn giản hóa việc tách riêng, đó là tất cả.

1

Có người nói điều này:

"Bất kỳ vấn đề trong khoa học máy tính có thể được giải quyết với một lớp về mình"

Nhưng tôi không nhớ ai là tác giả của câu nói này. Có ai biết không?

+2

Đó là David Wheeler. – RibaldEddie

+3

Sử dụng tuyệt đối của sự hướng dẫn để có được tên của tác giả. Bravo! – jeffa00

+0

ngoại trừ vấn đề của quá nhiều lớp vô hướng – irreputable

2

MVC gợi ý rằng trí thông minh phải được phân tách một cách thích hợp. Điều đó ngụ ý, quan điểm và mô hình sẽ là loại câm và bộ điều khiển là anh chàng thông minh thực sự. Hàm ý này cho phép chúng ta tạo ra những thay đổi câm và kẻ thông minh theo một cách mượt mà. Những lợi ích này được gặt hái rất nhiều khi các yêu cầu/sửa mã có hiệu quả. Các trừu tượng được thêm vào là một nỗi đau cho đến khi người ta nắm bắt được các mẫu được sử dụng. Đây là MVC ở phía máy chủ. Điều gì về MVC trên mã kết thúc của khách hàng?

Đôi khi, các mô hình xem có thông tin tình báo khác nhau được tích hợp vào chúng và được mã hóa thành các đại biểu kinh doanh. Tuy nhiên, cách tiếp cận tốt hơn là sử dụng thẻ tùy chỉnh. Điều khó chịu nhất về các trang jsp cho tôi xảy ra khi họ trộn javascript với mã, Mã thông minh này thực sự cố gắng thao tác DOM và tạo ra các thẻ chưa khớp trong mã jsp tĩnh.

Khi bạn có sự sang trọng để bắt đầu từ đầu. Cuộc sống sẽ đơn giản hơn nếu mọi người sử dụng javascript không rõ ràng (một ngôn ngữ khác với java và dễ hơn so với shit mà tôi đã thấy trong mã sản xuất) và các thẻ tùy chỉnh (không khó). Điểm đau khác không có HTML/css tuân thủ W3C. Một trình tiết kiệm sự cố lớn với các vấn đề trình duyệt, nếu bạn là những gì họ đang có.

Tái bút: xin lỗi của cho rant dài :)

+0

Tôi nghĩ rằng tôi có thể đã ấn tượng sai, chúng tôi không bắt đầu từ đầu - trong trường hợp này chúng tôi đang tìm cách tái cấu trúc 'mã cơ sở' để chúng ta có thể đạt được lợi nhuận –

1

Tôi làm việc tại một công ty mà sau MVC khá chặt chẽ và chúng tôi đã có rất nhiều thành công với nó. Chúng tôi đã có thể phát triển các dịch vụ cốt lõi sống trong bộ điều khiển và tái sử dụng các dịch vụ đó trên nhiều dự án. Có lớp điều khiển cũng tạo điều kiện kiểm tra đơn vị và sử dụng lại mã.

Các vấn đề liên quan