Cần giải thích về kiến ​​trúc lục giác


8

Tôi đang đọc về Kiến trúc lục giác của Alistair Cockburn với sự thích thú.

Một yêu cầu anh đưa ra là:

Cuối cùng, các kiểm tra hồi quy chức năng tự động phát hiện bất kỳ vi phạm nào về lời hứa để giữ logic nghiệp vụ ra khỏi lớp trình bày. Tổ chức có thể phát hiện, và sau đó sửa lỗi rò rỉ logic.

Tôi không hiểu điểm này. Có phải anh ta nói rằng vì bài kiểm tra là không đầu, nên các cuộc gọi đến lớp UI sẽ ném ngoại lệ? Đó dường như không phải là một bài kiểm tra âm thanh!

Câu trả lời:


14

Quan điểm của ông là có một bộ các bài kiểm tra tự động thực hiện tất cả logic nghiệp vụ mà không có UI sẽ làm cho nó rõ ràng nếu bạn có bất kỳ logic kinh doanh nào trong UI.

Để tạo một bộ kiểm tra như vậy, về cơ bản, bạn phải tạo ra một giao diện "không dành cho người dùng" chỉ kiểm tra rất mỏng để cung cấp dữ liệu và kiểm tra kết quả. Nếu bất kỳ logic kinh doanh nào của bạn thực sự nằm trong UI, bạn sẽ thấy mình sao chép logic đó trong giao diện thử nghiệm này và nhận ra lỗi của mình.


Tôi thấy. Nhưng điều gì xảy ra nếu nhà phát triển tăng API đã xuất bản bằng cách giới thiệu logic nghiệp vụ trong lớp trình bày? Điều đó sẽ không được chọn, đúng không?
Victor Grazi

1
Không có gì có thể bảo vệ khỏi một nhà phát triển giả mạo thêm những thứ mà họ không thuộc về mà không cần kiểm tra.
Don Roby

Vì vậy, mô hình bảo vệ chống lại ai đó đủ ngu ngốc để chuyển logic kinh doanh sang tầng trình bày, nhưng không chống lại ai đó ngu ngốc đến mức họ sẽ giới thiệu API doanh nghiệp mới trong mã trình bày của họ.
Victor Grazi

"Bạn sẽ thấy mình sao chép logic đó trong giao diện thử nghiệm này" hoặc bạn có thể viết các thử nghiệm của mình để sử dụng logic UI, phải không?
Daniel Kaplan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.