Nếu bạn là một lập trình viên, một nhà phát triển thì chắc hẳn đã từng nghe đến những cụm từ như Front-end, back-end hay Full Stack. Tất cả đều là 3 kiểu của 3 con người lập trình khác nhau, vậy nó là gì? Hãy cùng tìm hiểu trong bài viết dưới đây.
1 Front-end
Phần Front-end là phần tương tác với người dùng. Tất cả mọi thứ bạn thấy trên trang web chính là Front-end, từ các font chữ, màu sắc cho tới các thành phần bố cục tạo lên trang web, nó là một sự kết hợp của HTML, CSS, JavaScript được điều khiển và hiển thị bởi trình duyệt của bạn.
Các kỹ năng và công cụ
Các lập trình viên Front-end chịu trách nhiệm cho giao diện của một tràn web và kiến trúc những trải nghiệm của người dùng. Để thực hiện đươc điều đó, họ phải tinh thông 3 ngôn ngữ chính: HTML, CSS, và JavaScript. Ngoài thông thạo các ngôn ngữ đó, các lập trình viên Front-end phải làm quen với các Framework như Bootstrap, Foundation, Backbone, Angular JS, và Ember JS, để đảm bảo nội dung luôn hiển thị tốt trên mọi thiết bị khác nhau, và các thư viện như jQuery và LESS, đóng gói code vào tròn một hình thức giúp tiết kiệm thời gian và hữu dụng hơn. Rất nhiều công việc dành cho lập trình viên Front-end cũng yêu cầu kinh nghiệm với Ajax, một kỹ thuật được sử dụng rộng rãi bằng cách dùng JavaScript để cho phép các trang load một cách tự động bằng cách tải dữ liệu máy chủ ở phần background.
Sử dụng những công cụ này, các lập trình viên front-end làm việc chặt chẽ với các designer hoặc nhà phân tích trải nghiệm người dùng để biến những mockup, hoặc wireframe, từ phát triển tới sản phẩm thực tế. Các lập trình viên front-end giỏi cũng có thể xác định chính xác các vấn đề cụ thể trong trải nghiệm của người dùng, cung cấp các khuyến nghị và giải pháp hệ thống hóa để ảnh hưởng đến thiết kế đó. Một điều quan trọng là họ có khả năng hợp tác với những nhóm khác trong công ty để hiểu rõ mục đích cụ thể, nhu cầu và cơ hội, và sau đó thực hiện theo những chỉ dẫn đó.
Nói chung, một lập trình viên front-end chịu trách nhiệm cho thiết kế nội thất của một ngôi nhà đã được xây dựng bởi một lập trình viên back-end. Các hương vị và phong cách trang trí được quyết định bởi chủ nhà.
>>> Tham khảo các khóa học Frontend, Backend và FullStack tại t3h.edu.vn
2 Back-end
Một trang web động, muốn chạy được thì bắt buộc phải có phần back-end
Back-end bao gồm một máy chủ, một ứng dụng, và một cơ sở dữ liệu. Một lập trình viên back-end xây dựng và duy trì công nghệ mà sức mạnh của những thành phần đó, cho phép phần giao diện người dùng của trang web có thể tồn tại được.
Các kỹ năng và công cụ
Để khiến cho máy chủ, ứng dụng, và cơ sở dữ liệu có thể giao tiếp được với nhau, các lập trình viên back-end sử dụng các ngôn ngữ server-side như PHP, Java, và .NET để xây dựng một ứng dụng, và các công cụ như MySQL, Oracle, và SQL Server để tìm kiếm, lưu trữ, hoặc thay đổi dữ liệu và phục vụ trở lại tới người dùng trong phần front-end. Các công việc tuyển dụng lập trình viên back-end cũng thường yêu cầu kinh nghiệm về các framework PHP như Zend, Symfony, và CakePHP; có kinh nghiệm với các phần mềm quản lý phiên bản như SVN, CVS, hoặc Git; và kinh nghiệm với Linux trong việc phát triển và triển khai hệ thống.
Các lập trình viên back-end sử dụng những công cụ này để tạo ra hoặc đóng góp vào các ứng dụng web với code sạch, portable, và được viết tài liệu chu đáo. Nhưng trước khi viết code, họ cần phối hợp với bên liên quan về nghiệp vụ để hiểu những nhu cầu cụ thể, sau đó chuyển thành những yêu cầu kỹ thuật và đưa ra các giải pháp hiệu quả nhất cho việc kiến trúc công nghệ.
3 Full Stack
Full Stack = Back End + Front End (là lập trình viên thành thạo Front-end và Back-end)
Thường thì không có một sự phân biêt rõ ràng đen trằn giữa phát triển Front-end và Back-end. “Các lập trình viên Front-end thường cần phải tìm hiểu thêm những kỹ năng back-end và ngược lại”, Matranga nói. “Các lập trình viên cần phải có nhiều kỹ năng khác nhau và có kiến thức tổng hợp.”
Xu thế ngày nay, các lập trình viên thường là kết hợp cả 2 kỹ năng này. Với lập tình viên Web họ sẽ là người tương tác trải nghiệm người dùng cho tới việc thiết kế hệ thống tương tác. Xây dựng chương trình liên kết với Database để làm ra một phần mềm tốt nhất. Từ tính thẩm mĩ cho tới tốc độ, hiệu năng 1 lập trình viên Full Stack đều sẽ trách nhiệm hết.
Các kỹ năng và công cụ
Các lập trình viên full stack làm việc giống như các lập trình viên back-end ở phía máy chủ của lập trình web, nhưng họ có thể cũng thành thạo các ngôn ngữ front-end để điều khiển nội dung trông như thế nào ở phía giao diện của trang web. Họ là những người đa năng.
Để minh họa sự phức tạp ngày càng tăng của phát triển full stack, sau đây là một ví dụ về những yêu cầu mà một full stack phải có trong vài năm về trước, và so sánh với yêu cầu hiện nay
Bất kể là sử dụng công cụ xác định nào, tùy thuộc vào dự án và khách hàng, các lập trình viên full stack nên có kiến thức ở mọi cấp độ về cách web hoạt động: cài đặt và cấu hình các máy chủ Linux, viết các API server-side, nhảy vào phần JavaScript client-side của một ứng dụng, và cũng cần có "con mắt thẩm mỹ" với CSS.
Sử dụng những công cụ này, các lập trình viên full stack cần có khả năng ngay lập tức xác định trách nhiệm của client-side hay server-side, và trình bày rõ ràng về mặt ưu nhược điểm của các giải pháp khác nhau.
Kết: Qua bài viết này các bạn đã hiểu được thế nào là Front-end, Back-end và Full Stack. Phát triển web có rất nhiều mặt khác nhau. Nhưng không quan trọng về kiểu phát triển nào mà bạn đang theo đuổi, các kỹ năng mềm như chú ý đến chi tiết, khả năng học hỏi nhanh, khả năng giải quyết vấn đề một cách hiệu quả, khả năng giao tiếp sẽ luôn giúp ích rất nhiều cho những kỹ năng cứng nêu trên.
Thật hạnh phúc khi tại thời điểm này, nghề IT đang là một nghề hot và khát nhân lực. Cơ hội việc làm luôn ngập tràn. Việc của các bạn là hãy học hỏi thật nhiều, bạn có thể tham khảo tại T3H, trang bị cho mình những kiến thức vững chắc để bắt tay vào công việc.