Frontend và backend giải thích cho dân không trong nghề lập trình

Submitted by superthin on 25/07/2018 - 06:03:35
Giao diện frontend

Gần đây Thin nhận được một vài email, tin nhắn thắc mắc về vấn đề liên quan đến trang web. Khi đọc lướt qua, Thin tin rằng những người hỏi dường như bị nhiễu loạn bởi tìm kiếm trên mạng và đọc nhiều bài khác nhau nên cảm thấy hoang mang. Hôm nay, xin giải thích hai khái niệm trên cho những người không làm trong lĩnh vực thiết kế phần mềm hiểu theo ngôn ngữ bình dân.

Chú ý: frontend và backend dùng trong nhiều lĩnh vực khác nhau, không riêng gì trong lĩnh vực phát triển phần mềm, và cũng không chỉ phát triển phần mềm trên nền web (còn gọi là ứng dụng web). Tuy vậy, Thin lấy một đại diện là ứng dụng web để minh họa, và từ đó bạn sẽ suy ra ở nơi khác cũng gần gần như vậy.

Tra qua nghĩa của từ xem sao?

Khi tra một từ điển trực tuyến khá uy tín hiện nay, chúng ta thấy như sau:

Thành tố của frontend
Frontend - đầu vào, ngoại vi

Thành tố của frontend
Backend - cuối mùa thu

Rất dễ thấy: front-end (tức frontend) có nghĩa khá chính xác, ta có thể hiểu được, nhưng back-end (tức backend) xem ra trớt quớt.

Cách dễ hiểu hơn chút coi

Giả sử bạn đi xem biểu diễn văn nghệ nhé, những gì bạn đang thấy người ta trình diễn trên sân khấu: phục trang của người biểu diễn, màn biểu diễn, các thứ đạo cụ trên sân khấu đó là frontend. Còn những thứ bạn không thấy được "sau cánh gà" hoặc những luyện tập khổ sở trước đó chính là backend.

Vậy thì nếu không phải là dân trong nghề, gần như bạn chỉ quan tâm frontend mà thôi, còn backend chỉ nghe người ta kể là thú vị rồi, chứ cũng không nhất thiết phải chứng kiến vì nó khiến bạn cảm thấy mệt hơn là thưởng thức được điều gì có vẻ hay ho.

Ngắn gọn: frontend chính là tiền cảnh; backend chính là hậu trường.

Trong lĩnh vực phần mềm/ ứng dụng web

Dù bạn là người dùng web thông thường hay bạn là một lập trình viên, frontend chính là những thứ bạn thấy trên màn hình khi truy cập vào một trang web: bố cục trang, màu sắc, nghệ thuật trình bày chữ, hình ảnh, hoạt hình, video clip, các form để nhập dữ liệu, thông báo,... Còn những thứ bạn không thể thấy được bằng mắt mà chỉ có thể đoán hoặc phải lập trình chính là backend: dữ liệu nhập vào sẽ được xử lý như thế nào, lưu vào đâu, hoặc khi nhập vào từ khóa được truy tìm như thế nào để hiển thị ra, khi click vào một liên kết, chuyện gì xảy ra phía sau nó.

Tất nhiên, nếu đào sâu thêm, bạn có thể lý luận rằng có những lúc ranh giới giữa frontend và backend gần như trộn lẫn vào nhau hoặc gắn khít đến mức không thể chỉ ra cái đó đang thuộc về frontend hay backend hoặc trong tình huống cụ thể có thể thực hiện việc xử lý ở phía frontend sẽ hiệu quả hơn, lúc khác buộc phải backend mới đảm bảo được các yêu cầu đặt ra.

Trực quan hơn chút xíu

Khi bạn nghe người ta nói tùm lum tá lả, nhưng bạn hỏi họ xem họ đang nói về những "thuật ngữ" nào, nếu những từ họ nói ra, nằm trong những từ sau đây:

Thành tố của frontend

thì chính là liên quan đến frontend, phần việc thuộc về frontend. Những từ khác còn có thể là UI (giao diện người dùng), UX (trải nghiệm người dùng), Usability (thích hợp cho việc sử dụng) cũng chính là đang đề cập đến frontend.

Vậy thì, backend là những gì?

Quá phong phú, kể tên thôi cũng đã mệt, thiếu sót là cái chắc. Nhưng dù sao ta cũng tổng quan gồm có các từ:

+ Ngôn ngữ lập trình và hoặc/ công nghệ: Java, JavaScript, C sharp, PHP, Python, Ruby,...;

+ Framework (từ này cũng xuất hiện ở phần frontend) như: Spring, NodeJS, .NET, Laravel, Ruby on Rails,...;

+ Cơ sở dữ liệu như SQLite, MySQL, SQL Server, Oracle, DB2,...;

+ Toolkit (bộ công cụ cho lập trình viên): IDE, text editor, version control, môi trường phát triển (dev environment), ảo hóa, máy chủ,...

Kết luận:

JavaScript là một kẻ phá bĩnh có mặt trong cả frontend lẫn backend. Ngày trước người mới học làm web hay được thầy giáo giới thiệu đến JavaScript (viết tắt: JS) để thực hiện vài thứ vui mắt như hiển thị đồng hồ, chạy dòng chữ trên thanh tiêu đề của trang, hiển thị thông báo khi click vào nút bấm, hình ảnh hoặc làm vài hiệu ứng "bay nhảy" gì đó mang tính "vui là chính". Ở thời điểm hiện tại, khi bạn nghe đến ECMAScript 5, 6 (ES5, ES6) - chính là JavaScript hiện đại - rất thông dụng, phổ biến, mạnh mẽ như một công cụ vạn năng để lập trình ứng dụng chạy trên web lẫn không trên web, mạnh mẽ cho cả máy tính và trong thế giới thiết bị di động.

Như vậy, nếu bạn không biết bạn nên đi theo frontend hay backend mà lại không có khiếu về thiết kế đồ họa, mỹ thuật, chỉ muốn lập trình, hãy chọn JavaScript để học vì đàng nào rồi người ta cũng dùng tới nó. Không phải bây giờ Thin mới đưa ra lời khuyên theo kiểu này. Dù là không phải dân CNTT, cách đây bảy năm, Thin đã đề cập (xem phần thảo luận của thành viên superthin) đến JavaScript./.