2015-01-09 16 views
18

Có nguồn thông tin nào về các mẫu kiến ​​trúc doanh nghiệp (a la Fowler's), có thể với các ví dụ và trường hợp sử dụng và một lượng thông tin thực tế? Ví dụ, tôi đã thấy nhiều mẫu thiết kế của GoF tất cả được giải thích ngắn gọn trong một số bài viết SO và các trang web khác, cũng như thông tin thực tế liên quan đến chúng. Tôi đang yêu cầu một nguồn tương tự từ một mô hình chức năng hơn được định hướng cho các ứng dụng doanh nghiệp.Các mẫu doanh nghiệp có lập trình chức năng

Cảm ơn.

+7

Tôi nghĩ rằng các mẫu là "mùi ngôn ngữ" - nếu bạn có một ngôn ngữ biểu cảm đủ, bạn có thể giới thiệu sự trừu tượng trong câu hỏi và biến nó thành "một thứ" thay vì "điều bạn làm". – Cactus

+3

Bạn có thể muốn thanh toán http://fsharpforfunandprofit.com. Nó có một số tài liệu tốt về FP với F # trong thế giới doanh nghiệp. –

Trả lời

73

Tôi yêu cầu một nguồn tương tự từ mô hình chức năng hơn được định hướng cho các ứng dụng doanh nghiệp.

Không có tài nguyên mà tôi biết. Việc sử dụng doanh nghiệp quy mô lớn của FP hiện đại thường là < 10 năm tuổi, vì vậy tài nguyên có xu hướng ở dạng internet. Ngoài ra, rất nhiều người tránh GoF là phần lớn không liên quan đến FP.

SO vẫn là cược tốt nhất của bạn (đây là ví dụ: https://stackoverflow.com/a/3077912/83805). Có một thị trường cho một cuốn sách FP kiến ​​trúc mặc dù, đó là chắc chắn.


Biên tập

Theo kinh nghiệm của tôi, hầu hết các thiết kế rơi vào 'biên dịch' hoặc mẫu 'phiên dịch', sử dụng một mô hình dữ liệu và các chức năng trên dữ liệu đó. Tức là, các miền có vấn đề được biểu diễn là cấu trúc đại số (các đối tượng như ADT với các hàm trên chúng), và các kiến ​​trúc phần mềm là về ánh xạ từ một đại số này sang đại số khác. Đây là mẫu thiết kế "lý thuyết danh mục" (!)

Loại dữ liệu đại số của chúng tôi là cách tốt nhất để chụp cấu trúc. Các hàm là cách tốt nhất để chuyển đổi các cấu trúc này hoặc ánh xạ chúng thành các kiểu cấu trúc mới. Và có rất nhiều nghiên cứu về cách viết trình biên dịch và thông dịch viên giúp việc này trở nên dễ dàng. Bạn có thể thực hiện hầu hết các hệ thống bằng cách viết trình biên dịch (hoặc trình thông dịch). Vì vậy, học cách viết trình biên dịch.

Thật đáng ngạc nhiên là có bao nhiêu thứ rơi ra như phiên dịch hoặc trình biên dịch, khi bạn bắt đầu tìm kiếm những vấn đề phần mềm "phân loại" này. Những thứ như MVC rơi ra như thông dịch viên. Rất nhiều phần mềm kinh doanh (data munging) trở thành phân tích cú pháp + phân tích + máy in đẹp - tức là một trình biên dịch. Có thể rõ ràng là các kiến ​​trúc (tức là cách dán các thành phần) thực sự là về đại số và danh mục.

Rõ ràng đây là kiến ​​trúc cấp cao. Những thứ cấp thấp hơn, như cách tốt nhất để triển khai hệ thống ghi nhật ký, hay cách tốt nhất để kết nối các thành phần đắt tiền, cách vượt qua môi trường xung quanh, phát lại/quay lại có các tóm tắt cụ thể mà bạn có thể sử dụng lại là một vấn đề khác. Thông thường monoids/monads/applicatives hoặc các khái niệm tính toán khác được chụp dưới dạng thư viện.

Một lần nữa, chúng tôi đi đến chế độ xem đại số để tìm cấu trúc nắm bắt tốt nhất miền sự cố.

+37

mơ hồ muốn viết một cuốn sách "Lý thuyết thể loại cho kiến ​​trúc sư phần mềm" –

+4

Hãy bắt đầu viết! – haroldcarr

+1

Tôi có một người bạn sẽ nói rằng đây là những gì anh ấy đang cố gắng thể hiện trong một thời gian dài, tôi nghĩ vậy. Điều gì mô tả sự tích hợp của nhiều chương trình mặc dù? Rất hiếm khi bạn có thể tương tác giữa các ranh giới chương trình ở cấp loại. – DannoHung

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