bạn thiết kế công cụ Front end khi bạn thiết kế các hệ thống tương tác với máy khách của hệ thống của bạn. Lưu ý ở đây, ứng dụng khách khá lớn nhưng về cơ bản có nghĩa là bạn đang làm việc ở mặt trước khi bạn đang cung cấp giao diện cho thế giới bên ngoài.
Hầu hết các trang web chỉ là giao diện người dùng, đó là họ cung cấp thông tin cho thế giới bên ngoài và hầu hết các thông tin này có thể được lưu trữ khá đơn giản dưới dạng văn bản trong các tệp HTML.
Bạn thiết kế back end khi bạn cần cung cấp dịch vụ và đóng gói chức năng mà giao diện người dùng của bạn sẽ tiêu thụ. Điều này cho phép thay thế một số khối lượng công việc từ máy khách (front-end) đến máy chủ (back-end). Bạn sẽ làm điều này trong các trường hợp khi bạn cần phối hợp thông tin từ các khách hàng khác nhau có thể truy cập hệ thống của bạn đồng thời. Hoặc nếu bạn cần sử dụng kho lưu trữ dữ liệu trung tâm để đối chiếu dữ liệu động hoặc một lần nữa nếu bạn cần một số yêu cầu bảo mật cụ thể. Danh sách này không có nghĩa là đầy đủ, chỉ là ví dụ nhanh chóng.
Vì vậy, để ngắn gọn, Front-end (client) sẽ trình bày thông tin ra thế giới bên ngoài. Thông thường đây là con người thông qua một số loại GUI hoặc HTML hoặc cách khác.
Back end sẽ cung cấp phương tiện để tập trung hóa các dịch vụ cho giao diện người dùng của bạn sử dụng. Sử dụng back-end là không bắt buộc và làm tăng thêm độ phức tạp cho hệ thống, nhưng nó cho phép quản lý tốt hơn sự phức tạp vốn có của hệ thống mà bạn đang cố gắng xây dựng.
Ví dụ, có thể cung cấp một dịch vụ như wiki chỉ thông qua giao diện người dùng nhưng sẽ có nhiều hạn chế khi sử dụng back-end để lưu trữ dữ liệu và phục vụ cho giao diện người dùng sẽ giải quyết theo cách tự nhiên hơn.