Tôi muốn nhận thông tin mới nhất từ Aptech      
 
   
 
CHƯƠNG TRÌNH ĐÀO TẠO

LTV QUỐC TẾ ACCP
CHỈ CÓ TẠI CNC
CÁC KHÓA NGẮN HẠN

KHÁI NIỆM FULL STACK DEVELOPER LÀ GÌ?

Full Stack Developer là một nghề mới trong lĩnh vực công nghệ và ngày càng giữ vai trò quan trọng. Vậy Full Stack Developer là gì?

Ngày nay, các deverloper cần phải biết nhiều hơn một ngôn ngữ lập trình và các công nghệ trên nhiều nền tảng mới có thể làm tốt được công việc của mình. Hãy cùng CNC Aptech tìm hiểu về Full Stack Developer. 

Full Stack Developer là gì?

Thuật ngữ Full Stack Developer (lập trình viên Full Stack) thực ra không phải quá mới. Full Stack có nghĩa là những nhà phát triển cảm thấy làm việc thoải mái với cả hai công nghệ back-end và front-end.

Khái niệm Full Stack Developer là gì?

Để cụ thể hơn, nó có nghĩa là các nhà phát triển có thể làm việc với cơ sở dữ liệu, PHP, HTML, CSS, JavaScript và tất cả mọi thứ ở giữa, và có thể cả những công việc như chuyển thiết kế Photoshop thành code front-end.  

Một lập trình viên Full Stack không cần phải tinh thông tất cả các lĩnh vực công nghệ mà anh ta cần phải làm việc trên đó, bởi vì điều đó gần như là không thể, anh ta chỉ cần cảm thấy thoải mái khi làm việc với những công nghệ đó, và đó cũng là nhiều rồi.

Các yêu cầu hiện nay cho một Full Stack Developer là gì?

1. Quản trị hệ thống

  • Linux và shell scripting cơ bản
  • Cloud computing: Amazon, Rackspace, v.v...
  • Background processing: Gearman, Redis
  • Search: Elasticsearch, Sphinx, Solr
  • Caching: Varnish, Memcached, APC / OpCache
  • Monitoring: Nagios

Linux có mặt khắp nơi trong thế giới Internet, đó là một hệ điều hành chiếm vai trò quan trọng trong phát triển web. Ngoài ra, một lập trình viên full-stack nên biết về cloud hosting, Amazon/Rackspace hoặc các nhà cung cấp khác và các API của nó làm việc như thế nào.

Tìm kiếm là một phần không thể thiếu của hầu hết các trang web - một nhà phát triển web nên biết làm thế nào để thiết lập và sử dụng các máy chủ tìm kiếm như Sphinx hay Elasticsearch.

Caching cũng rất quan trọng, Varnish, reverse proxy, Memcached và opcode caching. Anh ta cần phải biết những công nghệ này là gì và làm thế nào để sử dụng nó.

2. Các công cụ phát triển web

  • Version control: Git, Mercurial, SVN
  • Ảo hóa: VirtualBox, Vagrant, Docker

Ngày nay, sẽ là không thể chấp nhận được nếu không sử dụng kiểm soát phiên bản (version control), thậm chí nếu bạn là một nhà phát triển đơn độc.

Với các công cụ ảo hóa, việc có các môi trường phát triển tách biệt cho mỗi dự án cơ bản thực sự cần thiết, và dễ dàng thiết lập với ít nhất là dùng VirtualBox và Vagrant.

Nếu bạn muốn làm việc với Vagrant bạn cũng cần phải biết cú pháp cơ bản của Ruby và shell script.

3. Công nghệ back-end

  • Web servers: Apache, Nginx
  • Ngôn ngữ lập trình: PHP, NodeJS, Ruby
  • Cơ sở dữ liệu: MySQL, MongoDB, Cassandra, Redis, SQL/JSON nói chung

Apache và Nginx là các tiêu chuẩn trong phát triển web. Một lập trình viên full-stack nên biết làm thế nào để cài đặt, thiết lập các ứng dụng này và phục vụ cho nội dung trang web của mình.

PHP là ngôn ngữ cần phải tinh thông ở một mức độ cao, NodeJS, Ruby nếu biết thêm thì cũng tốt.

Ngoài máy chủ web và các ngôn ngữ lập trình, quản lý cơ sở dữ liệu cũng là một yêu cầu cho một nhà phát triển full-stack.

Các cơ sở dữ liệu quan hệ (như MySQL, PostgreSQL) vs cơ sở dữ liệu phi quan hệ (như MongoDB, Redis hoặc Cassandra) là những khác biệt mà các lập trình viên full-stack cần biết, đồng thời phải biết cú pháp của XML/JSON.

4. Công nghệ front-end

  • HTML / HTML5: Semantic web
  • CSS / CSS3: LESS, SASS, Media Queries
  • JavaScript: jQuery, AngularJS, Knockout, v.v...
  • Tương thích giữa các trình duyệt
  • Responsive design
  • AJAX, JSON, XML, WebSocket

Ở đây có một điều khá thú vị. Nếu bạn muốn hiển thị trang web của mình, bạn nên biết những kiến thức này và tất cả các thủ thuật của chúng.

JavaScript là một câu chuyện vui vào những ngày đầu, nhưng giờ đây nó đã phát triển thành một trong những ngôn ngữ lập trình phổ biến và mạnh mẽ nhất hiện nay. Các phương pháp phát triển và framework mới xuất hiện mỗi ngày, MVC, MVVM, MVP, Angular, Knockout, Ember, v.v…

Cùng với HTML, CSS, Javascript, một lập trình viên full-stack cũng nên biết về responsive design và làm thế nào để làm việc với các media queries và các bộ tiền xử lý CSS như LESS và SASS.

Họ cũng nên biết cách làm thế nào để giao tiếp với phần back-end thông qua AJAX hoặc WebSockets.

5. Thiết kế

  • Chuyển đổi thiết kế website thành code front-end
  • UI
  • UX

Ngoài các công nghệ front-end, một lập trình viên full-stack cũng phải hiểu những gì là có thể và những gì là không thể bởi những ràng buộc của HTML / CSS / Javascript và chuyển đổi thiết kế (các file Photoshop/Illustrator) cho phù hợp.

Với rất nhiều các công nghệ đã nêu, một nhà phát triển có thể sẽ cần biết thêm về Ruby hay các thư viện JavaScript riêng, nhưng tất cả chúng sẽ được kết nối với nhau theo cách này hay cách khác.

6. Công nghệ di động

Đây là một ngành công nghiệp rất năng động và liên quan chặt chẽ với phát triển web:

  • Android
  • iOS
  • Hybrid: PhoneGap, Appcelerator

Một trong những sự khác biệt lớn nhất hiện nay là giữa web và phát triển trên thiết bị di động, nhưng khoảng cách giữa chúng đang được thu hẹp nhanh chóng.

Một Full Stack Develooper nên biết về tất cả các công nghệ đó.

Tóm tại

Full Stack Dev là có một sự hiểu biết trong từng lĩnh vực nêu trên, để giao tiếp một cách thông minh giữa các thành viên trong nhóm.

Nguồn: techmaster