Lập trình Web là gì? Các công nghệ trong Lập trình Web – Haravy

Lập trình Web là gì? Các công nghệ trong Lập trình Web

Lập trình Web là công việc xây dựng, phát triển và bảo trì các trang web được lưu trữ trên internet. Một trang web đơn giản có thể được viết bằng ngôn ngữ HTML, CSS và chỉ chứa vài trăm dòng lệnh. Tuy nhiên đối với trang web lớn như Facebook có thể lên đến 60 triệu dòng lệnh để phát triển hoàn chỉnh trang web.

I. Tầm quan trọng của Lập trình web

Số lượng lập trình viên web (web developer) chiếm số đông các lập trình viên hiện nay. Các ứng dụng trên máy tính hoặc điện thoại vẫn đang phát triển. Tuy nhiên các ứng dụng trên web còn được phát triển nhiều hơn.

Với hầu hết các điện thoại hoặc máy tính bảng hiện nay đều kết nối với máy tính. Thì các ứng dụng đều có thể được chạy trên các trình duyệt web.

Vì vậy, cho dù bạn có muốn trở thành lập trình viên web hay không. Thì bạn cũng cần phải học và làm quen về các công nghệ web.

II. Các ngôn ngữ lập trình thường sử dụng trong Lập trình Web (Web Development)

Các công nghệ cơ bản nhất để phát triển giao diện trang web hiện nay là: HTML, CSS và Javascript. Javascript được dùng để thao tác DOM (Document Object Model), thay cấu trúc của trang web hiển thị trên trình duyệt (browser) mà không ảnh hưởng trực tiếp đến mã code HTML hoặc CSS.

Các ngôn ngữ lập trình được sử dụng trong các trang web phổ biến nhất như Facebook, Google, Youtube, Yahoo, v.v…:

  1. PHP
  2. Python (bao gồm Django, nền tảng phát triển web bằng ngôn ngữ Python)
  3. Java
  4. .NET
  5. C++
  6. C
  7. Scala
  8. Ruby
  9. Perl
  10. C#

III. Lịch sử của Lập trình web

1. Ban đầu là các trang HTML tĩnh

Các trang web ngày xưa hầu hết là các trang HTML tĩnh. Nội dung trang web thì hầu hết là hình ảnh và các đường links. Và hoàn toàn không có ứng dụng nào trên web.

Cần phải có cách nào đó để các trang web trở nên sống động hơn, có tính tương tác hơn.

Sau đó các nhà lập trình phát triển công nghệ gọi là CGI để tạo ra nội dung HTML theo yêu cầu (queries). Các queries này được gửi tới server bằng trình duyệt

2. Xuất hiện các công nghệ và nền tảng mới như ColdFusion hoặc ASP

Từ đó xuất hiện các nền tảng phát triển web để tạo CGI và HTML động. Thí dụ như ColdFusion hoặc ASP. Các nền tảng này giúp việc phát triển web dễ dàng hơn.

Sau đó công nghệ trình duyệt ngày càng phát triển và máy tính ngày càng nhanh hơn. Ngôn ngữ lập trình Javascript xuất hiện đã mở rộng khả năng phát triển các ứng dụng web.

3. Sự ra đời của CSS

Sau đó CSS cũng được xuất hiện làm cho việc thiết kế web trở nên dễ dàng hơn. Vai trò của HTML bây giờ dùng để tạo nội dung và CSS để hoàn chỉnh bố cục.

Tuy nhiên các lập trình viên luôn tìm mọi cách để làm cho web ngày càng tốt hơn. Bởi vì đọc dữ liệu từ server chậm và các trang web không có tính mỹ thuật. Các công nghệ như AJAX (Asynchronous JavaScript và XML) được tạo ra để cho phép trang web luôn động và không phải refresh thường xuyên.

Ngày nay tất cả các ứng dụng web được xây dựng hiện nay đều mang tính động. Các ứng dụng này được gọi là SPAs (Single Page Applications).

4. Trình duyệt ngày càng gần giống với hệ điều hành

Trang web hiện nay ngày càng phát triển và càng gần giống với ứng dụng máy tính. Và trình duyệt dần dần hoạt động giống như một hệ điều hành.

Thí dụ như Google phát triển hệ điều hành Chrome OS thực tế là trình duyệt web Chrome. Một ngày nào đó tất cả mọi thứ đều sẽ được lưu trên trang web. Và trình duyệt web sẽ đủ mạnh để chạy tất cả các ứng dụng. Đây cũng là xu hướng tới công nghệ Cloud (Cloud-Based Technologies) hiện nay.

IV. Trang web hoạt động như thế nào?

Trình duyệt web được dùng để hiển thị nội dung HTML và CSS trên trang web. Đồng thời trình duyệt web thực hiện các dòng lệnh Javascript để thay đổi cấu trúc trang web.

Trình duyệt web phải gửi các yêu cầu đến web server để trang web có thể hoạt động được.

Điều này được thực hiện thông qua một giao thức gọi là HTTP (Hypertext Transfer Protocol)

Khi một yêu cầu về tài nguyên gọi là URI (Uniform Resource Identifier) được gửi tới web server. Nếu web server thấy nội dung hoặc tài nguyên đó có tồn tại. Nó sẽ gửi lại nội dung đó trở lại trình duyệt.

Trình duyệt sau đó có nhiệm vụ thể hiện nội dung đó cho người dùng nhìn thấy.

Hiển nhiên là sẽ còn nhiều thứ khác diễn ra ở đằng sau. Tuy nhiên, ý tưởng cơ bản là trình duyệt web tạo các yêu cầu và web server trả lời bằng cách phản hồi các nội dung HTML, CSS và JavaScript.

Ứng dụng web hoạt động luôn khác với ứng dụng máy tính. Trong ứng dụng web, bạn luôn phải kiểm soát các yêu cầu của từng người sử dụng ứng dụng cùng một lúc.

V. Các công nghệ chủ yếu dùng trong Lập trình web

1. HTML

HTML (Hypertext Markup Language), được dùng để tạo nội dung của trang web. HTML bao gồm các thẻ (tags) định nghĩa các cấu trúc và thành phần của một trang web.

HTML là công nghệ chủ chốt trong phát triển web. Nó giống như là các viên gạch xây dựng lên một trang web hoàn chỉnh.

Thậm chí bạn có thể xây dựng một trang web hoàn chỉnh chỉ cần dùng HTML.

Thí dụ thẻ tag <img> dùng để nhúng hình ảnh vào trang web.

2. CSS

Trước khi CSS xuất hiện, HTML được dùng để tạo cấu trúc của trang web.

Tuy nhiên nếu như mỗi lần bạn muốn thay đổi thiết kế của trang web thì phải chỉnh sửa các dòng lệnh HTML.

CSS có thể giải quyết vấn đề này bằng cách tách biệt nội dung và thiết kế giao diện của trang web.

Toàn bộ trang web có thể link tới các trang CSS cài đặt thiết kế của website.

Nếu như bạn muốn thay đổi màu sắc của một button, bạn chỉ cần chỉnh sửa một file CSS. Và tất cả các button của trang web đó sẽ thay đổi tương ứng.

Nếu bạn giỏi về CSS, bạn có thể làm rất nhiều thứ. Thí dụ bạn có thể làm cho các thành phần trang web xuất hiện, hoặc biến mất. Hoặc thay đổi vị trí của các thành phần, chỉnh sửa kích thước, thay đổi kích cỡ chữ. Hoặc bất cứ thứ gì bạn có thể tưởng tượng ra.

3. JavaScript

Javascript là một ngôn ngữ lập trình động đầy đủ chức năng có thể chạy trên trình duyệt.

Javascript làm cho các trang web trở nên động (dynamic) hơn. Nó cho phép các lập trình viên điều khiển nội dung và cấu trúc của các trang web.

Javascript có thể tương tác trực tiếp với DOM của một trang web. Dẫn đến toàn bộ cấu trúc và thiết kế của trang web có thể thay đổi bằng cách lập trình.

Trong ứng dụng web, tất cả điều này có thể diễn ra trực tiếp trên trình duyệt.

4. Server Side Rendering

Server-side rendering: các trang web và ứng dụng web được xây dựng trên cơ sở logic của server. Trong đó các trang web được lưu trữ trên server. Các dòng lệnh HTML, CSS và Javascript được gửi từ server và thể hiện trên trình duyệt web.

Ngày nay các công nghệ như ASP.NET và PHP vẫn sử dụng hình mẫu này. Mặc dù với sự xuất hiện của các Javascript framework ngày nay. Trong đó công nghệ server-side rendering có thể được sử dụng cho client-side rendering.

5. Client Side Rendering

Với sự phát triển sức mạnh các trình duyệt và các cỗ máy Javascript trong trình duyệt. Xu hướng hiện nay dần chuyển sang công nghệ client-side rendering.

Trong client-side rendering, nội dung của trang web được dựng trên trình duyệt thông qua Javascript thay vì trên server. Web server gửi các dòng lệnh Javascript đến trình duyệt, và trình duyệt sẽ thực thi các lệnh này trên trang web. Bao gồm việc điều khiển, truy xuất dữ liệu từ server.

Javascript được sử dụng để tạo ra và điều khiển các thành phần DOM của trang web. Tạo ra các thành phần HTML và CSS của trang web và các ứng dụng trên web.

Công nghệ client-side rendering khiến cho người sử dụng cảm thấy trình duyệt mượt mà hơn. Bởi vì khi này trình duyệt không cần gửi yêu cầu đến server để có thể hiện lên 1 trang web hoàn chỉnh. Mà nó chỉ cần yêu cầu thêm dữ liệu và thực thi ngay trên trang web các yêu cầu đó.

Vì vậy một vài ứng dụng client-side rendered được gọi là SPAs. Có nghĩa là chỉ có 1 trang web và nội dung của trang web đó được cập nhật liên tục.

Cả 2 công nghệ này có thể được kết hợp trên 1 ứng dụng web. Trong đó 1 vài phần của giao diện người dùng sử dụng client-side và các phần khác hoặc các trang khác sử dụng server-side.

VI. Một số công việc mới nổi liên quan đến Lập trình web

1. Thiết kế giao diện web (UX designer)

UX designer (User experience designer) là một chức danh công việc khá mới mẻ trong ngành lập trình. Công việc của UX designer liên quan đến trải nghiệm của người dùng khi sử dụng sản phẩm. Với các kỹ năng như: phân tích hành vi khách hàng, thiết kế mẫu, cấu trúc, chi tiết sản phẩm. Các công ty chú trọng đến thiết kế như Apple luôn luôn tìm kiếm các UX designers.

2. Lập trình viên ứng dụng Mobile (Mobile developer)

Lập trình viên mobile thiết kế, xây dựng website và ứng dụng web cho điện thoại, máy tính bảng…Nền công nghiệp các sản phẩm mobile đang phát triển vô cùng nhanh chóng. Vì vậy lập trình viên mobile lúc nào cũng trong tình trạng thiếu hụt.

3. Quản trị viên Website (Website administrator)

Quản trị viên website cần có kiến thức và kinh nghiệm với Internet protocols (HTTP, TCP/IP) và các công nghệ web. Họ quản lý, phát hiện, sửa chữa các vấn đề liên quan đến trang web, server, sao lưu dữ liệu, an toàn, bảo mật mạng…

4. Lập trình viên cơ sở dữ liệu (Database developer)

Phân tích dữ liệu (data analytics), đặc biệt là dữ liệu lớn (big data), đang tạo ra rất nhiều cơ hội nghề nghiệp cho các lập trình viên.

Ngày càng nhiều công ty dựa vào phân tích dữ liệu để ra các quyết định kinh doanh. Vì vậy luôn cần các chuyên gia quản lý và phân tích thông tin. Sử dụng các công cụ như Microsoft SQL Server hay Oracle, lập trình viên cơ sở dữ liệu thiết kế hệ thống back-end và cấu trúc dữ liệu cho website.