Có phải thuật ngữ 'Front-End' đồng nghĩa với 'Phía khách hàng' không? Nếu vậy, điều này luôn luôn là trường hợp?


18

Là một nhà phát triển web tương đối mới (tự học), tôi đã nghe các thuật ngữ front-end , phía khách hàng , back-endphía máy chủ khá thường xuyên. Đối với tôi, front-end và back-end luôn đồng nghĩa với phía máy khách và phía máy chủ, tương ứng.

Tuy nhiên, khi tôi bắt đầu làm việc với các khung MVC như CodeIgniter, tôi đã bắt gặp một vài trường hợp về giao diện người dùng về cơ bản mọi thứ mà người dùng cuối nhìn thấy (bao gồm cả mã phía máy chủ), trong khi back-end đã đề cập đến bất cứ điều gì người dùng cuối không nhìn thấy (bao gồm cả CMS). Đối với phía khách hàng và phía máy chủ, đối với tôi, cụ thể hơn nhiều về ý nghĩa của chúng; họ có một dòng rất riêng biệt ngăn cách chúng. Mặt trước và mặt sau, mặt khác, không.

Trong một cuộc trò chuyện mà tôi nhớ có với một nhà phát triển web khác, anh ta đã gọi CodeIgniter (toàn bộ) như một giao diện người dùng và điều này đã ném tôi vào một vòng lặp. Tôi không chắc có nên sửa anh ta hay không và nói rằng CodeIgniter là back-end của tôi, hoặc nếu định nghĩa của tôi về hai thuật ngữ là hoàn toàn sai.

Tìm kiếm các định nghĩa về mặt trước và mặt sau làm tôi bối rối hơn một chút về một số khía cạnh, mặc dù họ đã làm rõ một số điều. Tôi chỉ muốn biết các dòng được vẽ ở đâu giữa bốn thuật ngữ này và cách chúng kết hợp với nhau trong bối cảnh phát triển web (cụ thể là trên ngăn xếp LAMP).


1
Tôi đã làm việc với một anh chàng đã sử dụng "mặt trước" và "mặt sau" có nghĩa là "mặt trước" và "mặt sau". Liệu anh ta có "đúng" hay không là một câu hỏi khác.
user16764

Thay vào đó, chúng ta nên sử dụng từ "hậu thế". Đùa. Tôi ước có một cụm từ khác cho nó. Từ đồng nghĩa với "Back end" không đáng khích lệ.
Erik Aronesty

Câu trả lời:


16

Tôi không tin rằng có một định nghĩa chính thức cho các điều khoản đó và như bạn đã lưu ý rằng có sự trùng lặp trong một số trường hợp.

front-endclient-sidechồng chéo.
server-sideback-endcũng chồng chéo.

Nếu tôi chia tóc, tôi sẽ đưa ra những ranh giới thô ráp này:

  • client-sidelà một ứng dụng chạy trên máy tính của người dùng. Nó có thể là một ứng dụng độc lập (thường xuyên hơn) hoặc có thể đề cập đến giao diện dựa trên trình duyệt web (ít khả năng hơn).
  • front-endcũng phải đối mặt với người dùng cuối và thường chạy trong giao diện dựa trên trình duyệt web. Tôi chưa nghe nói về các khách hàng dày được gọi là a front-end.
  • back-endđề cập đến các quy trình và dịch vụ đang chạy trên máy chủ khác hoặc trong nền của máy tính của người dùng. Thường xuyên hơn không, nó đề cập đến các quy trình không có trên máy tính của người dùng cuối. Nhưng điều quan trọng, như bạn đã đề cập, là người dùng cuối không nhất thiết phải biết về các quy trình đang chạy.
  • server-sidelà một phần mở rộng back-endnhưng củng cố rõ ràng thực tế rằng các quy trình đang chạy ở một nơi khác chứ không phải trên máy tính của người dùng cuối.

Bằng cách ví dụ và để làm nổi bật sự nhầm lẫn giữa các điều khoản, tôi sẽ sử dụng Minecraft làm ví dụ.

Minecraft có một

  • client-side ứng dụng khi bạn chạy các tệp jar cục bộ bằng JVM của riêng bạn.
  • front-end nếu bạn chọn chạy ứng dụng khách trong trình duyệt web của mình
  • back-end quá trình có thể chạy cục bộ trên máy của bạn nếu bạn ở chế độ độc lập
  • server-side xử lý nếu bạn chọn đăng nhập vào máy chủ lưu trữ ứng dụng máy chủ Minecraft.

Nếu bạn tìm hiểu một số thống kê của Minecraft, bạn sẽ thấy rằng họ chỉ cần chỉ định một clientserverthành phần cho trò chơi; họ không nhất thiết phải quan tâm nơi những thành phần đó được chạy.


Để trực tiếp trả lời câu hỏi của bạn:

Có phải thuật ngữ 'Front-End' đồng nghĩa với 'Phía khách hàng' không?

Sắp xếp, nhưng không thực sự. Có một sắc thái giữa các điều khoản nếu bạn đang thảo luận về những điều bên ngoài thế giới dựa trên web. Nếu bạn nghiêm túc trong thế giới dựa trên web, thì có, chúng đồng nghĩa về mặt chức năng.

Nếu vậy, điều này luôn luôn là trường hợp?

Trong thế giới web, tôi sẽ nói có. Trong các lĩnh vực khác, tôi sẽ nói không như được giải thích trong các định nghĩa sơ bộ mà tôi đưa ra.


Đó là về những gì tôi nghĩ. Cảm ơn đã giúp tôi làm rõ điều này trong đầu.
DC_

2
Phần cuối thường được sử dụng để chỉ phần quản trị phía máy khách của trang web / ứng dụng.
Florian Margaine

16

Phía máy chủ chạy trên máy chủ. Phía khách hàng chạy trên máy khách. Back-end là dữ liệu giòn. Front-end đang hiển thị nó.

Nhìn vào trang web này. Kéo tất cả các ý kiến ​​từ cơ sở dữ liệu là công việc phía máy chủ, back-end. Đặt dữ liệu đó ra trong một mẫu là công việc phía trước, phía máy chủ. Các tiện ích bỏ phiếu AJAX và hộp nhập văn bản ưa thích ở phía trước, phía máy khách.


3
+1 để chỉ ra tính trực giao giữa khái niệm front-end / back-end và khái niệm phía máy khách / phía máy chủ
Francesco Feelrinelli 14/12/13

1

Tôi thường thấy việc sử dụng phía máy khách và phía máy chủ để mô tả sự phát triển / nhà phát triển là ít mơ hồ. Phần đó của phía máy khách nơi chúng tôi sắp xếp dữ liệu / định dạng dữ liệu có thể được coi là một thành phần phụ trợ. Mặt khác, tất cả các khuôn mẫu có xu hướng xảy ra ở mặt sau là "cho mặt trước" có xu hướng dẫn đến việc mọi người nói về chúng như là sự phát triển Java hoặc C # mặt trước. Nó hiếm, nhưng tôi đã thấy nó trong các mô tả công việc.

Nhưng vâng, nói chung, mặt trước là phần mà sự tương tác xảy ra. Phần cuối là phần mà tất cả sự tương tác đó được biến thành thứ gì đó hữu ích.


0

Câu hỏi này có phần cũ hơn nhưng hãy để tôi thêm 2c của mình:

Trong quá trình phát triển web của riêng tôi, tôi đã sử dụng thuật ngữ "frontend" có nghĩa là mã - hoặc các tài nguyên khác - được xử lý trong trình duyệt một thời gian. Bây giờ, tôi sử dụng thuật ngữ "khách hàng", bởi vì nó có thể gây nhầm lẫn. khi làm các ứng dụng web. (Ứng dụng trang đơn)

Đơn giản là vì về phía phụ trợ, cũng có một "frontend", có nghĩa là nói chung là một phần của ứng dụng chịu trách nhiệm đầu ra (cho trình duyệt). Vì vậy, "frontend" thực sự có thể có nghĩa là hai điều khác nhau. Tuy nhiên, thuật ngữ "máy khách" là mô tả rõ ràng hơn một cái gì đó có liên quan đến máy khách thực tế (trong trường hợp này là trình duyệt).

PS: Chà, có lẽ tôi cũng nên đổi biệt hiệu của mình thành "client_dev" ngay bây giờ;)

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.