Logic nghiệp vụ (business logic) và UI logic có gì khác nhau?

57 lượt xem

profile picture

Ẩn danh

Ngày 12 Tháng 05

Mình hiện tại đang khá mơ hồ về hai khái niệm này. Em có hỏi senior BE thì đc trả lời là business logic đóng vai trò quyết định, thường được viết bằng những hàm tinh khiết (??) "pure function". Nhưng thực sự là em cũng chưa hiểu lắm. Ko biết có ai có thể giải thích cho em được ko ạ?

Đánh giá câu hỏi ngay!

Hãy ấn Up Vote với những câu hỏi cụ thể và chi tiết

Hãy ấn Down Vote với những câu hỏi chưa rõ ràng Careerly sẽ nhắc người hỏi chỉnh sửa lại.

1 câu trả lời

BEST

Ảnh đại diện của Tống Xuân Hoài

Mình có thể giải thích Business Logic (BL) & UI Logic (UL) trong ngữ cảnh câu hỏi của bạn như thế này cho dễ hiểu nhé. BL có thể được hiểu là logic nghiệp vụ, nó giống như là những đặc thù của ngành nghề mà bạn đang phát triển phần mềm. Ví dụ ngành ngân hàng, ngành vận tải... Rõ dàng là có sự khác biệt giữa các ngành về và chúng tạo ra sự khác nhau giữa logic trong triển khai phần mềm, những đoạn xử lý logic đó có thể được xem là BL. Đi sâu vào hơn một chút, nói về một tính năng cụ thể của ngân hàng như là tính năng chuyển tiền chẳng hạn. Để chuyển tiền, logic đơn giản nhất là trừ tiền người gửi và cộng tiền cho người nhận. Khi triển khai trong mã, bạn có thể viết nó thành một hàm chuyển tiền và cũng có thể gọi nó là một BL của tính năng chuyển tiền. Còn cái gọi là "hàm thuần khiết" là một kỹ thuật viết hàm đảm bảo cho việc bảo trì dễ hơn sau này. Nếu tạo ra một pure function cho chức năng chuyển tiền, bạn có thể tái sử dụng nó ở nhiều nơi, nhiều ngữ cảnh khác nhau mà không phải sợ việc liệu gọi nó ra ở đây thì có vấn đề gì không... UL đúng như tên gọi của nó thường liên quan đến logic người dùng trang web, điện thoại... Nghĩa là bạn tạo ra những đoạn mã để cho phép/hạn chế người dùng tương tác với một tính năng nào đó mà họ đang thấy. Ví dụ người dùng đang sử dụng tính năng chuyển tiền có trên web, chúng ta cho phép họ nhập số tiền muốn chuyển, nếu số tiền nhập vào lớn hơn số dư hiện có thì nút chuyển bị vô hiệu hóa và một cảnh báo lỗi hiện ra để nhắc nhở họ phải nhập một số tiền khác nhỏ hơn. Đó gọi là một UL. Mặc dù có thể không cần triển khai một đoạn logic UL như trên, vẫn cho phép người dùng thoải mái submit số tiền họ nhập vào, thì khi chạy đến đoạn logic chuyển tiền ở phía máy chủ nó cũng sẽ phải chặn yêu cầu vô lý này. Suy rộng ra, có thể bổ sung thêm nhiều UL chỉ để bổ trợ cho BL chuyển tiền, UL có thể thay đổi linh hoạt để phù hợp với tình hình hiện tại nhưng BL lại hiếm khi thay đổi bởi vì nó phải làm đúng nhiệm vụ của nó là cộng/trừ tiền cho người khác. Nói tóm lại, UL hỗ trợ cho người dùng tương tác với ứng dụng và BL xử lý logic nghiệp vụ của ứng dụng.

Đăng ký ngay bây giờ để đọc toàn bộ câu trả lời!

Cộng đồng lập trình viên sẽ giải đáp tường tận cho bạn.

Xem thêm

Đồng ý với Điều khoản dịch vụ Chính sách bảo mật của Careerly

Bạn đã có tài khoản rồi?

Đăng ký ngay bây giờ để đọc toàn bộ câu trả lời!

Cộng đồng lập trình viên sẽ giải đáp tường tận cho bạn.