Sự khác biệt giữa logic kinh doanh và ứng dụng là gì? [đóng cửa]


11

Xin lưu ý rằng tôi đã hỏi cùng một câu hỏi trên stackoverflow nhưng họ đã hướng dẫn tôi hỏi ở đây.

Trong khi tôi đang cố gắng phân biệt sự khác biệt giữa logic ứng dụng và logic kinh doanh, tôi đã tìm thấy tập hợp các bài viết nhưng không may có một mâu thuẫn giữa chúng.

Ở đây họ nói rằng họ giống nhau nhưng câu trả lời ở đây là hoàn toàn khác nhau.

Đối với tôi, tôi hiểu nó theo cách sau:

Nếu chúng tôi tìm định nghĩa của Logictừ trong Google, chúng tôi sẽ nhận được

hệ thống hoặc tập hợp các nguyên tắc làm cơ sở cho việc sắp xếp các thành phần trong máy tính hoặc thiết bị điện tử để thực hiện một tác vụ được chỉ định.

Vì vậy, nếu logic là logic set of principles underlying the arrangements of elementsthì nên kinh doanh set of principles underlying the arrangements of the business rules, nói cách khác, nó có nghĩa là các quy tắc nên được tuân theo để có được một hệ thống phản ánh nhu cầu kinh doanh của bạn.

Và đối với tôi, logic ứng dụng là the principles that the application based on, nói cách khác, làm thế nào để áp dụng các quy tắc này để có được một hệ thống phản ánh nhu cầu kinh doanh của bạn, ví dụ tôi nên sử dụng MVC hay tôi không nên sử dụng?, Tôi nên sử dụng SQL hay MSSQl?.

Vì vậy, xin vui lòng bất cứ ai có thể giúp tôi thoát khỏi sự nhầm lẫn về sự khác biệt giữa ứng dụng và logic kinh doanh.


3
Các câu trả lời bên dưới liên kết SO thứ hai ( stackoverflow.com/questions/1456425/ cấp ) mà bạn đưa ra là chính xác và toàn diện. Nói tóm lại, họ nói "Logic nghiệp vụ" là một tập hợp con của "Logic ứng dụng".
Doc Brown

2
... Và liên kết bách khoa toàn thư2 mà bạn đã nói với IMHO giống nhau, vậy vấn đề của bạn là ở đâu?
Doc Brown

1
... và vì bạn đã quyết định không thêm bất kỳ thông tin làm rõ nào, tôi sẽ bỏ phiếu để đóng là "không rõ bạn đang hỏi gì":
Doc Brown

@DocBrown, tôi đã chỉnh sửa tiêu đề của câu hỏi và đoạn cuối cùng trong câu hỏi, nhưng tôi nghĩ rằng đó là rõ ràng những gì tôi muốn và tôi đã có câu trả lời !! bạn đã đọc câu hỏi chưa ??
Mo Haidar

Câu trả lời:


13

Tôi đồng ý với LoztInSpace của SO rằng đây là câu trả lời khá quan tâm và mọi người có thể có các định nghĩa hơi khác nhau. Đặc biệt là nếu ảnh hưởng lịch sử có liên quan. Đây là cách tôi sẽ xác định các điều khoản:

Logic kinh doanh là logic, được tạo ra với sự hợp tác và thỏa thuận với các chuyên gia kinh doanh. Nếu chuyên gia kinh doanh nói rằng "Khách hàng không thể rút nhiều tiền hơn tài khoản của mình." Thì đây là quy tắc kinh doanh. Trong thế giới lý tưởng, logic này sẽ có trong một loại thư viện hoặc dịch vụ nào đó, vì vậy nó có thể được sử dụng lại trên nhiều ứng dụng hoặc thay đổi trong tất cả các ứng dụng có liên quan cùng một lúc.

Logic ứng dụng đơn giản là mọi thứ khác. Ví dụ có thể là "nhấp vào nút này mở cửa sổ để thêm khách hàng mới". Nó không liên quan gì đến kinh doanh, nhưng nó vẫn là logic cần được thực hiện. Trong thế giới lý tưởng, logic ứng dụng sẽ sử dụng thư viện hoặc dịch vụ, đó là thực hiện các quy tắc kinh doanh. Nhiều ứng dụng, mỗi ứng dụng có logic ứng dụng khác nhau, có thể sử dụng lại một logic nghiệp vụ. Tưởng tượng ứng dụng web, dịch vụ web và ứng dụng di động đều hoạt động bằng một logic nghiệp vụ, nhưng mỗi ứng dụng rõ ràng cần các logic ứng dụng khác nhau.

Lý do tại sao tôi nghĩ rằng hai người đó bị lẫn lộn, là việc giữ chúng tách biệt là vô cùng khó khăn. Ngay cả khi bạn cố gắng hết sức để tách chúng ra, hãy sử dụng các trường hợp bề mặt mà bạn phải trộn chúng lại. Nếu ví dụ bạn có tất cả logic kinh doanh của mình trong dịch vụ, thì nó sẽ tách biệt nó. Nhưng có một số logic nghiệp vụ trong ứng dụng cục bộ đang sử dụng dịch vụ có thể làm tăng khả năng phản hồi hoặc sự thoải mái của người dùng, vì ứng dụng cục bộ không cần phải gọi dịch vụ cho mỗi thay đổi nhỏ.

Một lý do khác khiến chúng được trộn lẫn với nhau là vì nhiều người không có kỹ thuật. UI là "ứng dụng", vì vậy mọi thứ được phản ánh trong UI đều quan trọng. Trong trường hợp "logic kinh doanh" lý tưởng, không có UI. Có lẽ sẽ có bộ kiểm tra tự động để xác minh logic, nhưng không có gì có thể hiển thị cho người kinh doanh. Vì vậy, đối với những người kinh doanh, mọi thứ đều giống như "logic". IMO.


1
"Logic ứng dụng đơn giản là mọi thứ khác" - thật đáng tiếc, tôi sẽ nói "nó bao gồm logic kinh doanh và mọi thứ khác" (nhưng có lẽ nó phụ thuộc vào người bạn nói chuyện với ai)
Doc Brown

3

Như những người khác đã chỉ ra, những thuật ngữ này không có một ý nghĩa được chấp nhận phổ biến. Tôi sẽ mô tả các định nghĩa tôi đã gặp thường xuyên hơn, tức là trong một số dự án với các công ty khác nhau.

Các business logic định nghĩa một chuẩn hóa, mô hình có mục đích chung của lĩnh vực kinh doanh mà một ứng dụng được viết, ví dụ:

  • Lớp học thích Customer, Order, OrderLine, và các hiệp hội như customer-order, và vân vân.
  • Hoạt động đa năng như registerCustomer,cancelOrder

Rất thường mô hình lớp này được ánh xạ tới mô hình cơ sở dữ liệu và ánh xạ được thực hiện bằng ORM. Các hoạt động thường được thực hiện mỗi trong giao dịch của riêng họ và cung cấp API cơ bản để sửa đổi cơ sở dữ liệu, tức là trạng thái liên tục của ứng dụng.

Các logic ứng dụng là một lớp được xây dựng trên đầu trang của logic kinh doanh và phục vụ để thực hiện các trường hợp sử dụng cụ thể. Các mô-đun logic ứng dụng có thể sử dụng biểu diễn dữ liệu đặc biệt, ví dụ: lớp CustomerSummary mà không có bất kỳ liên kết nào Ordernếu bạn chỉ muốn liệt kê khách hàng. Biểu diễn dữ liệu đặc biệt như vậy phải được ánh xạ tới biểu diễn chuẩn hóa cơ bản được cung cấp bởi mô hình kinh doanh. Ví dụ: CustomerSummarycó thể được định nghĩa là chế độ xem trên đầu trang Customer.

Lưu ý rằng ranh giới giữa hai lớp có thể không được xác định rõ ràng. Ví dụ, sau khi triển khai một số trường hợp sử dụng, người ta có thể nhận thấy các cấu trúc dữ liệu tương tự trong logic ứng dụng và quyết định thống nhất (chuẩn hóa) chúng và chuyển chúng sang logic nghiệp vụ.


3

Mỗi hệ thống hoặc ứng dụng sẽ có định nghĩa riêng về logic kinh doanh là gì và logic ứng dụng là gì. Nó sẽ rõ ràng hoặc ẩn.

Theo kinh nghiệm của tôi, các ứng dụng điều khiển dữ liệu (ví dụ DB, v.v.) có xu hướng có định nghĩa chính thức hơn về logic nghiệp vụ là gì.

Logic ứng dụng có xu hướng tập trung vào việc lấy thông tin từ điểm A đến điểm B, logic nghiệp vụ xoay quanh thông tin là gì - và ngôn ngữ của logic nghiệp vụ thường là miền cụ thể. Nói cách khác, logic ứng dụng tập trung vào câu hỏi "nó hoạt động như thế nào?", Logic kinh doanh về "nó làm gì?" - một lần nữa, sự khác biệt có thể rất mờ nhạt và thường không phải là miền cụ thể.


1

Na, chúng chỉ là các thuật ngữ khác nhau cho cùng một thứ - "tầng giữa" của mã chương trình thực hiện những điều bạn muốn chương trình của mình thực hiện. Giống như nhiều thứ trong phần mềm, không có thuật ngữ khó và nhanh cho các phần của hệ thống, vì không có định nghĩa chính thức nào cho việc xây dựng hệ thống.

Vì vậy, đôi khi mọi người sẽ gọi nó là logic kinh doanh, logic ứng dụng khác, những người khác sẽ gọi nó là logic chương trình, tất cả là rất nhiều. Đừng bận tâm đến việc xác định điều này một cách cứng nhắc, gần như mọi hệ thống đều khác nhau về cách thức xây dựng nên rất vui vì chỉ có mức độ mơ hồ nhỏ trong thuật ngữ này!

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.