Mục lục
Nếu bạn là người mới bước chân vào nghành IT thì có thể bối rối trước các thuật ngữ mà dân nghành hay nói với nhau như Front End developer, Back End developer và Full stack developer.
Ứng với mỗi chức danh trên thì các bạn sẽ có một công việc, nhiệm vụ riêng và cả một mức lương riêng. Do đó trong bài viết này chúng ta sẽ cùng nhau tìm hiểu sự khác biệt giữa các khái niệm này.
Site Render
Để hiểu rõ hơn trước tiên chúng ta sẽ tìm hiểu khái niệm site render trước khi tìm hiểu về frontend và backend là gì. Đơn giản site rendering nghĩa là tạo ra các tài liệu HTML và trả về cho trình duyệt hiển thị. Qúa trình này có thể diễn ra ở cả phía máy khách (browser) và phía máy chủ (server). Như vậy thì nếu việc sinh ra HTML được thực hiện ở máy khách thì người ta gọi là client-site rendering, còn ở phía máy chủ được gọi là server-site rendering.
Server-site rendering (backend)
Một vài năm trước đây thì server-site rendering hầu như là cách duy nhất để chúng ta có thể tạo ra các trang web HTML và xử lý hành vi của người dùng. Khi bạn vào một trang web, trình duyệt sẽ gửi yêu cầu đến server để lấy nội dung, server xử lý yêu cầu và gửi về nội dung dạng HTML tương ứng.
Trong server-site rendering, tất cả các quy trình liên quan đến việc tạo một trang HTML mà trình duyệt web của bạn có thể hiểu được đều được xử lý trên một máy chủ từ xa lưu trữ trang web hoặc ứng dụng web.
Trong khi máy chủ từ xa đang bận làm việc để xử lý yêu cầu từ trình duyệt, thì trình duyệt web của bạn không hoạt động, chờ máy chủ xử lý xong yêu cầu và gửi phản hồi. Khi nhận được phản hồi, các trình duyệt web sẽ giải thích nó và hiển thị nội dung trên màn hình.
Client-side rendering (frontend)
Ngày nay, chúng ta có thêm một mô hình mới gọi là client-site rendering, nội dung được sinh ra ngay trên trình duyệt của máy tính bạn thay vì phải gửi yêu cầu và đợi kết quả trả về từ server. Server giờ đây chỉ đảm nhận các chức năng về xử lý logic, dữ liệu, còn các tác vụ như tạo ra các trang web HTML, hiển thị nội dung và xử lý hành vi người dùng được thực hiện ở client.
Client-site rendering ngày một trở nên phổ biến cùng với sự phát triển các JavaScript framework, library hỗ trợ client-site rendering như Angular, React và Vue.
Front end developer làm gì?
Giờ đây frontend developer có thể làm việc độc lập với hệ thống để tạo ra một trang web render ở phía máy khách, xử lý hành vi người dùng và lấy các dữ liệu thô từ hệ thống backend thông qua các API mà backend cung cấp để phục vụ cho người dùng.
Mặc dù có rất nhiều công nghệ khác nhau mà một frontend developer có thể làm tuy nhiên mọi frontend developer gần như phải biết HTML, CSS và Javascript cùng với các framework, library hỗ trợ client-site rendering như React, Angular và Vue. Ngoài ra nếu làm về mảng mobile thì frontend developer có thể phải sử dụng Java, Kotlin để phát triển các ứng dụng android và objectC, Swift để làm các ứng dụng IOS. Hoặc cũng có thể sử dụng các công nghệ cross-platform để phát triển các ứng dụng đa nền tảng như React native, Flutter.
Backend developer làm gì?
Backend developer sẽ làm việc ở phía server, thứ mà người dùng sẽ không nhìn thấy được. Đây là nơi lưu trữ và xử lý dữ liệu từ frontend gửi lên. Backend là một phần không thể thiếu trong mọi trang web nó giúp các front end hoạt động ổn định bằng cách cung cấp các dữ liệu thô mà frontend cần. Ngoài ra backend còn phải đảm bảo an toàn cho database nơi lưu trữ toàn bộ dữ liệu của ứng dụng.
Vì tính đặc thù như vậy nên một backend developer có thể sử dụng các ngôn ngữ như C++, PHP, Java, Python, JavaScript, NodeJS, Go để xây dựng các hệ thống backend. Bên cạnh đó thì cũng có một số framework hỗ trợ xây dựng các hệ thống backend mạnh mẽ như Spring Boot của Java, Express của JavaScript, v.v.
Sự khác nhau giữa frontend và backend developer
Frontend và backend là 2 khía cạnh riêng biệt, nhưng chúng đều cùng là một phần của một trang web. Frontend là những gì người dùng nhìn thấy và tương tác và pbackend cách mọi thứ hoạt động.
Frontend là một phần của trang web mà người dùng có thể nhìn thấy và tương tác, chẳng hạn như giao diện người dùng đồ họa (GUI), thiết kế, menu, văn bản, hình ảnh, video, v.v. Còn backend là phần xử lý bên dưới mà người dùng không thể thấy được như xác định xem hình ảnh này người dùng có được xem hay không, kiểm tra thông tin đăng nhập của người dùng có hợp lệ hay không v.v.
Một ví dụ về frontend và backend kết hợp với nhau là về đăng ký người dùng. Frontend sẽ đảm nhận công việc tạo ra trang đăng ký cho phép người dùng nhập thông tin của họ và đó bao gồm như email, tên, số điện thoại, giới tính. Sau khi người dùng nhập xong và nhấn vào nút submit thì frontend sẽ đóng gói dữ liệu này gửi lên cho backend. Backend sẽ kiểm tra logic của dữ liệu này chẳng hạn như email đã tồn tại hay chưa, gửi email xác nhận v.v.
Nguồn
https://www.geeksforgeeks.org/frontend-vs-backend/
https://www.pluralsight.com/blog/software-development/front-end-vs-back-end