Back end là gì

Trong kỹ thuật phần mềm, các thuật ngữ front-end [đầu trước] và back-end [đầu sau] đề cập đến sự tách biệt các mối quan tâm giữa tầng trình diễn [giao diện người dùng] và tầng truy cập dữ liệu [kết thúc sau] của một phần mềm, hoặc cơ sở hạ tầng vật lý hoặc phần cứng. Trong mô hình khách -- chủ, máy khách thường được coi là front end và máy chủ thường được coi là back end, ngay cả khi một số công việc trình bày thực sự được thực hiện trên chính máy chủ.

Trong kiến trúc phần mềm, có thể có nhiều lớp giữa phần cứng và người dùng cuối. Front-end là một sự trừu tượng hóa, đơn giản hóa thành phần bên dưới bằng cách cung cấp giao diện thân thiện với người dùng, trong khi back-end thường xử lý lưu trữ dữ liệu và logic nghiệp vụ.

Trong viễn thông, front có thể được coi là một thiết bị hoặc dịch vụ, còn back là cơ sở hạ tầng hỗ trợ cung cấp dịch vụ.

Một quy tắc chung là client-side [phía khách] là bất kỳ thành phần nào do người dùng thao tác. Server-side [phía chủ] thường nằm trên máy chủ, thường bị xóa khá xa về mặt vật lý với người dùng

  • Trong hệ thống quản lý nội dung, các thuật ngữ front end và back end có thể đề cập đến chế độ xem CMS và chế độ xem quản trị đối với người dùng cuối tương ứng.[1]
  • Trong tổng hợp giọng nói, giao diện người dùng đề cập đến một phần của hệ thống tổng hợp chuyển đổi văn bản đầu vào thành biểu thị ngữ âm tượng trưng và giao diện cuối chuyển đổi biểu thị ngữ âm biểu tượng thành âm thanh thực tế.[2]
  • Đối với các hệ thống con chính của máy tính, trình quản lý tệp đồ họa là giao diện người dùng cho hệ thống tệp của máy tính và giao diện shell với hệ điều hành. Front-end đối diện với người dùng và bank-end khởi chạy các chương trình của hệ điều hành để đáp ứng.[cần dẫn nguồn]
  • Trong trình biên dịch, front-end chuyển mã nguồn lập trình máy tính thành một biểu diễn trung gian và back-end làm việc với biểu diễn trung gian để tạo ra mã bằng ngôn ngữ đầu ra của máy tính. Back-end thường tối ưu hóa để tạo ra mã chạy nhanh hơn. Sự phân biệt front-end / back-end có thể tách biệt phần phân tích cú pháp xử lý mã nguồn và phần cuối tạo mã và tối ưu hóa. Một số thiết kế, chẳng hạn như GCC, cung cấp các lựa chọn giữa nhiều front-end [phân tích các ngôn ngữ nguồn khác nhau] hoặc back-end [tạo mã cho các bộ xử lý mục tiêu khác nhau].[3]
  • Sử dụng giao diện dòng lệnh [CLI] yêu cầu thu thập các thuật ngữ đặc biệt và ghi nhớ các lệnh, do đó, giao diện đồ họa người dùng [GUI] hoạt động như một môi trường máy tính front-end để bàn.

Một lập trình viên full-stack[4] là người có thể phát triển phần mềm cho cả người dùng và nhà cung cấp dịch vụ. Nói một cách dễ hiểu, một lập trình viên Full-Stack có kiến thức về toàn bộ công nghệ tạo nên một trang web. Họ có thể làm việc trong cả hai ngôn ngữ front-end và back-end. Họ chủ yếu tập trung vào phát triển web ở cả hai đầu.

Hầu hết vị trí này không phải là lập trình viên toàn diện ngay từ đầu. Họ thường làm việc ở nhiều vai trò trước khi chuyển sang full-stack. Họ cũng có xu hướng thoải mái với cả logic kinh doanh và trải nghiệm người dùng. Nói cách khác, họ có đủ kiến thức về kinh doanh để đưa ra lời khuyên cho người khác.

  • Các ngôn ngữ đánh dấu và ngôn ngữ web như HTML, CSS, JavaScript và các thư viện phụ trợ thường được sử dụng trong các ngôn ngữ đó như Sass hoặc jQuery
  • Xử lý yêu cầu bất đồng bộ và AJAX
  • Các ứng dụng một trang [với các khung phần mềm như React, AngularJS hoặc Vue.js]
  • Hiệu năng web [First Meaningful Paint hay hình ảnh có ý nghĩa đầu tiên, thời gian để tương tác, hoạt ảnh và tương tác 60 FPS, sử dụng bộ nhớ, v.v.]
  • Thiết kế web đáp ứng
  • Các vấn đề về khả năng tương thích trên nhiều trình duyệt và cách giải quyết
  • Kiểm thử đầu cuối với trình duyệt Headless Browser là một trình duyệt web không có giao diện đồ họa người dùng
  • Tự động hóa xây dựng để chuyển đổi và đóng gói các tệp JavaScript, giảm kích thước hình ảnh ... bằng các công cụ như Webpack hoặc Gulp.js
  • Tối ưu hóa công cụ tìm kiếm
  • Mối quan tâm về khả năng tiếp cận
  • Cách sử dụng cơ bản các công cụ chỉnh sửa hình ảnh như GIMP hoặc Photoshop
  • Giao diện người dùng

Back-end tập trung vào

  • Các ngôn ngữ kịch bản như PHP, Python, Ruby, Perl, Node.js hoặc các ngôn ngữ biên dịch như C #, Java hoặc Go
  • Mô hình kiểm thử tự động cho ngôn ngữ đang được sử dụng
  • Quyền truy cập dữ liệu ứng dụng
  • Logic kinh doanh ứng dụng
  • Quản trị cơ sở dữ liệu
  • Khả năng mở rộng
  • Độ sẵn sàng cao
  • Mối quan tâm về bảo mật, xác thực và ủy quyền
  • Kiến trúc phần mềm
  • Chuyển đổi dữ liệu
  • Phương pháp và phần mềm sao lưu

Lưu ý rằng cả hai vị trí, mặc dù có thể làm việc trên một sản phẩm, nhưng có một bộ kỹ năng rất khác biệt.

Trong máy tính mạng, front-end có thể đề cập đến bất kỳ phần cứng nào tối ưu hóa hoặc bảo vệ lưu lượng mạng.[5] Nó được gọi là phần cứng front-end của ứng dụng vì nó được đặt trên front end hoặc DMZ – là đơn vị lưu lượng Internet riêng rẽ từ mạng cục bộ. Lưu lượng mạng đi qua phần cứng front-end trước khi vào mạng.

Trong thiết kế bộ xử lý, thiết kế front end sẽ là mô tả ban đầu về hoạt động của mạch bằng ngôn ngữ mô tả phần cứng như Verilog, trong khi thiết kế back end sẽ là một phép toán liên kết từng phần tử của một tập hợp nhất định [miền] với một hoặc nhiều phần tử của tập hợp thứ hai [phạm vi] hành vi đó tới các transistor vật lý trên một khuôn[6]

  1. ^ Thapliyal, Vimal. “Difference Between Frontend and Backend MVC – Joomlatuts”. joomlatuts.net. Bản gốc lưu trữ ngày 30 tháng 12 năm 2016. Truy cập ngày 30 tháng 12 năm 2016.
  2. ^ Gutierrez--Osuna, Ricardo. “L18: Speech synthesis [back end]” [PDF]. tamu.edu. Texas A&M University. Bản gốc [PDF] lưu trữ ngày 14 tháng 2 năm 2019. Truy cập ngày 29 tháng 12 năm 2016.
  3. ^ Bin Muhammad, Rashid. “Operating Systems Notes”. www.personal.kent.edu. Đại học Tiểu bang Kent. Truy cập ngày 30 tháng 12 năm 2016.
  4. ^ “Top 25 Full Stack Developer Interview Questions and Answers -”. 30 tháng 5 năm 2020. Truy cập ngày 21 tháng 12 năm 2020.
  5. ^ O'Dell, Mike. “Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM”. cacm.acm.org. Truy cập ngày 30 tháng 12 năm 2016.
  6. ^ “Front-End Design | Online Documentation for Altium Products”. techdocs.altium.com. Truy cập ngày 30 tháng 12 năm 2016.

Bài viết này vẫn còn sơ khai. Bạn có thể giúp Wikipedia mở rộng nội dung để bài được hoàn chỉnh hơn.

  • x
  • t
  • s

Lấy từ “//vi.wikipedia.org/w/index.php?title=Front-end_và_back-end&oldid=66645282”

BackEnd là gì? Một câu hỏi được đặt ra khi các bạn đang bắt đầu tìm hiểu về lập trình và nhất là lập trình phát triển các Website. Các ứng dụng phần mềm giống như những tảng băng trôi.

Có một phần của ứng dụng mà người dùng nhìn thấy và sau đó, trong hầu hết các trường hợp, thì phần lớn nhất của ứng dụng vẫn là cái không nhìn thấy được. Đây là phần backend huyền bí.

BackEnd là gì?

Backend thường bao gồm ba phần: máy chủ, ứng dụng và cơ sở dữ liệu. Nếu bạn đặt chuyến bay hoặc mua vé buổi hòa nhạc, bạn thường mở một trang web và tương tác với frontend. Khi bạn đã nhập thông tin đó, ứng dụng sẽ lưu nó vào cơ sở dữ liệu được tạo trên máy chủ. Để dễ dàng, chỉ cần nghĩ về cơ sở dữ liệu như một bảng tính Excel khổng lồ trên máy tính của bạn, nhưng máy tính [máy chủ] của bạn nằm ở đâu đó ở Arizona.

Tất cả thông tin đó vẫn còn trên máy chủ, vì vậy khi bạn đăng nhập lại vào ứng dụng để in vé, tất cả thông tin vẫn còn đó trong tài khoản của bạn.

Chúng tôi gọi một người xây dựng tất cả công nghệ này để cùng làm việc với nhau là lập trình viên backend.  Các công nghệ backend thường bao gồm các ngôn ngữ như PHP, Ruby, Python, v.v. Để làm cho dễ sử dụng hơn, chúng thường được cải tiến bởi các framework như Ruby on Rails , Cake PHP và Code Igniter, tất cả giúp phát triển nhanh hơn và dễ dàng hơn để cộng tác .

Nhiều chuyên gia web mới tham gia vào lĩnh vực này có thể đã nghe rất nhiều người nói về WordPress. WordPress là một ví dụ điển hình về frontend và backend hoạt động cùng nhau vì WordPress là một framework nguồn mở được xây dựng trên PHP mà bạn phải cài đặt trên máy chủ của mình với cơ sở dữ liệu. Sau đó, các nhà thiết kế tùy chỉnh giao diện và chức năng của các trang web WordPress bằng CSS, jQuery và JavaScript.

Dữ liệu cần phải được lưu trữ và truy xuất, logic kinh doanh và các quy tắc cần phải được tuân theo và kết quả cần phải được tính toán. Tất cả điều này xảy ra đằng sau hậu trường.

Chính xác thì phát triển Backend là gì?

Tôi sẽ coi phát triển backend là bất kỳ loại phát triển nào không liên quan đến việc tạo code giao diện người dùng.

Điều này có thể bao gồm phát triển web backend, nhưng nó cũng có thể liên quan đến việc viết API, tạo thư viện hoặc làm việc với các thành phần của hệ thống không có giao diện người dùng hoặc thậm chí hệ thống lập trình khoa học.

Trong thực tế, mặc dù sự phát triển của frontend phổ biến hơn, nhưng hầu hết các code tồn tại trong thế giới đều được cho là hữu ích nhất nằm ở phía backend.

Nói một cách đơn giản: phát triển backend chỉ đơn giản là viết code mà không được nhìn thấy trực tiếp.

Các lập trình viên Backend làm gì?

Những gì các lập trình viên backend làm có thể khác nhau rất nhiều, tùy thuộc vào kích thước và phạm vi của ứng dụng mà họ đang làm việc.

Tôi đã từng đảm nhận nhiều công việc trong đó tôi là một lập trình viên backend, làm việc dựa trên logic kinh doanh trong một ứng dụng cung cấp và truy xuất dữ liệu từ giao diện người dùng.

Trong thế giới phát triển web, hầu hết các lập trình viên backend quan tâm đến việc xây dựng logic thực sự đằng sau ứng dụng mà họ đang làm việc.

Thông thường, các lập trình viên frontend sẽ xây dựng giao diện người dùng và các lập trình viên backend sẽ viết code khiến tất cả hoạt động.

Ví dụ: lập trình viên frontend có thể tạo màn hình trong ứng dụng bằng nút bấm để lấy dữ liệu của khách hàng.

Lập trình viên backend có thể viết code làm cho nút đó hoạt động bằng cách tìm ra dữ liệu nào cần lấy từ cơ sở dữ liệu cho khách hàng phù hợp và đưa nó trở lại giao diện người dùng, nơi cuối cùng nó được hiển thị.

Một lập trình viên backend cũng có thể tham gia nhiều vào kiến ​​trúc của một hệ thống, quyết định cách tổ chức logic của hệ thống để có thể duy trì và chạy đúng cách.

Anh ta có thể tham gia xây dựng các framework hoặc kiến ​​trúc của một hệ thống để dễ lập trình hơn.

Các lập trình viên backend có xu hướng dành nhiều thời gian hơn để thực hiện các thuật toán và giải quyết các vấn đề so với các lập trình viên frontend.

Tôi luôn thích công việc phát triển backend bởi vì nó cảm thấy giống như một thách thức hơn.

Điều đó không có nghĩa là các lập trình viên frontend không bao giờ giải quyết các vấn đề khó khăn, nhưng công việc phát triển frontend thường liên quan đến việc tạo giao diện người dùng và gắn kết chúng hơn là triển khai logic kinh doanh thực tế khiến ứng dụng hoạt động như đã đề cập trên các blog backend.

Các công nghệ và kỹ năng chính trong phát triển Backend

Mặc dù các lập trình viên frontend cần biết một bộ công cụ được sử dụng để tạo giao diện người dùng, nhưng các lập trình viên backend thường có một bộ công cụ và kỹ năng hoàn toàn khác nhau được yêu cầu để thực hiện công việc của họ một cách hiệu quả.

Một kỹ năng quan trọng mà các lập trình viên backend cần có liên quan đến SQL và cơ sở dữ liệu – Backend là gì

Hầu hết các hệ thống backend được kết nối với một số loại cơ sở dữ liệu lưu trữ dữ liệu cho ứng dụng.

Công việc của lập trình viên backend là viết, đọc và xử lý dữ liệu từ cơ sở dữ liệu hoặc nguồn dữ liệu khác, vì vậy việc có các kỹ năng như SQL có thể cực kỳ quan trọng.

Các lập trình viên backend, ít nhất là để phát triển web, cũng cần phải tốt với các ngôn ngữ phía máy chủ cho công nghệ mà họ đang sử dụng.

Ví dụ: trong khi lập trình viên web frontend có thể tập trung vào HTML, CSS và JavaScript, lập trình viên backend có thể cần biết thêm về các framework web PHP, Ruby on Rails, ASP.NET MVC hoặc bất kỳ framework web nào đang được sử dụng để xây dựng ứng dụng.

Cuối cùng, tôi muốn nói rằng một lập trình viên backend cần biết nhiều hơn về kiến ​​trúc ứng dụng vì phần lớn, chính lập trình viên backend sẽ xây dựng kiến ​​trúc và thiết kế bên trong của ứng dụng.

Một lập trình viên backend giỏi sẽ biết cách sử dụng các framework và thư viện khác nhau, cách tích hợp chúng vào một ứng dụng và cách cấu trúc code và logic nghiệp vụ theo cách giúp hệ thống dễ bảo trì hơn.

Nếu bạn thích thiết kế cơ sở hạ tầng của một ứng dụng, triển khai các thuật toán và logic và làm việc với dữ liệu, có lẽ bạn sẽ thích làm việc như một lập trình viên backend và từ đó bạn sẽ trả lời được câu hỏi backend là gì.

Video liên quan

Chủ Đề