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
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.
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]
Back-end tập trung vào
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.
|
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ì.