Web back-end (2) - Tổng quan về phát triển ứng dụng web

Bài trước: Web back-end (1) - Một số khái niệm
-----
2. Tổng quan về phát triển ứng dụng web
2.1 Phát triển ứng dụng web là gì?

Phát triển ứng dụng web là quá trình tạo ra ứng dụng web. 

Như đã biết, ứng dụng web và website khá giống nhau, vì vậy chúng ta sẽ tập trung vào việc tạo ra một ứng dụng web. Khi đã biết tạo ra một ứng dụng web, thì việc tạo ra một website không có gì là khó khăn.

Tạo ra ứng dụng web cũng là quá trình tạo ra ứng dụng máy tính hay phần mềm nói chung, vì vậy nó cũng cần trải qua các giai đoạn cơ bản như:

- Lập dự án

- Xác định yêu cầu

- Phân tích

- Thiết kế

- Lập trình

- Triển khai

- Bảo trì và cập nhật

Xem hình minh họa:

Tài liệu này chỉ tập trung vào giai đoạn lập trình. Bạn nên biết lập trình ở mức căn bản, trước khi tập trung sâu vào một mảng công việc cụ thể như Lập dự án, Xác định yêu cầu, Phân tích, Thiết kế, Lập trình, Triển khai, Bảo trì và cập nhật; bán phần mềm, kiểm thử phần mềm, kỹ sư cầu nối, giáo viên, nhà nghiên cứu, chuyên gia bảo mật. Lý do là:

- Việc bạn thích hay không thích lập trình nó không còn quan trọng nữa (thích mới học là một suy nghĩ rất trẻ con, đã vào ngành này rồi thì phải học để có nghề, để kiếm sống; chuyển ngành nghề khác cũng sẽ gặp các khó khăn tương tự, không lẽ cứ chuyển ngành học mãi). Ở mức căn bản, lập trình đơn giản chỉ là sử dụng công cụ, một chút tư duy logic và chịu khó thực hành

- Biết lập trình giúp bạn có tư duy hệ thống, có cái nhìn tổng thể về hệ thống phần mềm, từ đó giúp bạn dễ dàng học, làm việc và tiếp cận các mảng công việc khác liên quan đến phần mềm, thậm chí các lĩnh vực khác trong và ngoài lĩnh vực công nghệ thông tin

- Để tạo ra một phần mềm, việc lập trình tốn nhiều thời gian, công sức do vậy cần nhiều người làm

2.2 Một số cách để tạo ra ứng dụng web

Có một số cách để tạo ra ứng dụng web (theo thứ tự từ dễ đến khó):

- Sử dụng hệ quản trị nội dung

- Sử dụng framework và thư viện hỗ trợ

- Viết thuần bằng ngôn ngữ lập trình mà không sử dụng framework và thư viện hỗ trợ

Xem hình minh họa:

Mỗi cách trên có những ưu và nhược điểm riêng, tùy theo nhu cầu thực tế để bạn lựa chọn phương pháp phù hợp. Nếu được, bạn nên học và trải nghiệm với cả 3 cách để có thể làm việc năng động, tự tin.

Chúng ta cùng tìm hiểu sơ qua từng phương pháp tạo ra ứng dụng web.

Sử dụng hệ quản trị nội dung:

Hệ quản trị nội dung (Content Management System - CMS) là một phần mềm hoặc một tập hợp các phần mềm được sử dụng để tạo, quản lý và sửa đổi nội dung trên một trang web mà không cần đến các kiến thức chuyên sâu về lập trình. Xem hình minh họa:

Ứng dụng web hay website được tạo thành từ một hoặc nhiều trang web. Giao diện của ứng dụng web chính là trang web.

Các chức năng chính của một CMS:

- Tạo và quản lý nội dung: cho phép người dùng dễ dàng tạo, chỉnh sửa, xóa và sắp xếp nội dung (văn bản, hình ảnh, video) trên trang web

- Quản lý người dùng: cho phép phân quyền truy cập và quản lý các tài khoản người dùng khác nhau, ví dụ: quản trị viên, nhân viên, biên tập viên, tác giả.

- Quản lý giao diện: cho phép tùy chỉnh giao diện của trang web thông qua các mẫu giao diện (template), các kho giao diện (theme)

- Quản lý các mô-đun, các tiện ích bổ sung: cho phép mở rộng chức năng của trang web thông qua việc cài đặt các mô-đun (module) hoặc các tiện ích bổ sung (plugin)

- Tối ưu hóa SEO: hỗ trợ các công cụ và tính năng để tối ưu hóa công cụ tìm kiếm (SEO) cho trang web, giúp trang web dễ dàng được tìm thấy trên các công cụ tìm kiếm như Google

Một số CMS:

Hiện nay đang có khá nhiều CMS, bao gồm có phí và miễn phí, mỗi CMS có thế mạnh riêng về từng lĩnh vực. Tùy theo loại ứng dụng web bạn đang hướng tới để lựa chọn CMS cho phù hợp, ví dụ:

- Thương mại điện tử/bán hàng: WordPress, Wix, Joomla, Drupal, Magento, Shopify 

- Hệ thống quản lý học tập: Moodle

- Blogs, thông tin, giới thiệu: Blogger, Wordpress

Ưu điểm của CMS:

- Dễ sử dụng, dễ quản lý, tiết kiệm thời gian

- Không cần kiến thức lập trình chuyên sâu

- Linh hoạt trong việc lựa chọn giao diện, các mô-đun chức năng

- Tối ưu SEO

- Chi phí phát triển ứng dụng thấp

Nhược điểm của CMS:

- Vấn đề bảo mật, tấn công hệ thống

- Hiệu suất, tốc độ thực thi có thể chậm nếu không được tối ưu đúng cách; mã nguồn lớn, dư thừa

- Khả năng tùy chỉnh chức năng thấp

- Phụ thuộc hạ tầng, công nghệ, chức năng vào nhà cung cấp

Sử dụng framework và thư viện hỗ trợ

Đây là giải pháp được các lập trình viên, các công ty phát triển ứng dụng web lựa chọn nhiều. Một số framework, thư viện:

- Frontend: jQuery, Bootstrap, D3, React, Angular, Vue, Svelte 

- Backend: Express.js (Nodejs), Django, Flask (Python), ASP.NET (C#), Spring Boot (Java), Laravel (PHP), Ruby on Rails (Ruby), Gin, Echo (Go, Golang)

Xem hình minh họa:

Ưu điểm khi sử dụng framework và thư viện (gọi chung là các framework)

- Tăng tốc độ phát triển

+ Tiết kiệm thời gian: framework cung cấp các thành phần và công cụ được xây dựng sẵn, giúp bạn không phải viết mã từ đầu cho các chức năng cơ bản như dẫn đường (routing), quản lý cơ sở dữ liệu, xác thực người dùng. Nhờ đó, bạn có thể tập trung vào việc phát triển các tính năng đặc thù của ứng dụng, tiết kiệm đáng kể thời gian và công sức

+ Tái sử dụng mã nguồn: framework khuyến khích việc tái sử dụng mã nguồn, giúp bạn giảm thiểu số lượng mã cần viết và tăng tính nhất quán của ứng dụng

+ Tích hợp sẵn các tính năng: framework thường tích hợp sẵn các tính năng phổ biến như bảo mật, caching, logging. Giúp bạn không phải tự mình xây dựng chúng

- Cải thiện chất lượng viết mã

+ Cấu trúc mã nguồn rõ ràng: framework thường có một cấu trúc mã nguồn rõ ràng và tuân theo các quy ước nhất định, giúp mã nguồn dễ đọc, dễ hiểu và dễ bảo trì hơn

+ Mã nguồn đã được kiểm thử: các thành phần của framework thường đã được kiểm thử kỹ lưỡng, giúp giảm thiểu lỗi và tăng độ tin cậy của ứng dụng

+ Tuân theo các tiêu chuẩn: framework thường tuân theo các tiêu chuẩn và là lựa chọn tối ưu trong phát triển web, giúp cho mã nguồn của bạn đạt chất lượng cao hơn

- Tăng cường bảo mật

+ Xử lý các lỗ hổng bảo mật: framework thường có cơ chế để xử lý các lỗ hổng bảo mật phổ biến như SQL injection, cross-site scripting (XSS)

+ Bảo vệ ứng dụng: framework giúp bảo vệ ứng dụng của bạn khỏi các tấn công từ bên ngoài

- Dễ dàng bảo trì và mở rộng

+ Viết mã dễ hiểu: cấu trúc mã nguồn rõ ràng giúp cho việc bảo trì và nâng cấp ứng dụng trở nên dễ dàng hơn

+ Khả năng mở rộng: framework thường được thiết kế để dễ dàng mở rộng và thêm các tính năng mới khi cần thiết

- Cộng đồng hỗ trợ lớn

+ Nhiều tài liệu và hướng dẫn: các framework phổ biến thường có một cộng đồng người dùng lớn, cung cấp nhiều tài liệu, hướng dẫn và ví dụ thực tế

+ Hỗ trợ từ cộng đồng: bạn có thể dễ dàng tìm kiếm sự giúp đỡ từ cộng đồng khi gặp phải vấn đề

Nhược điểm của việc sử dụng framework

- Để sử dụng một framework hiệu quả, bạn cần phải dành thời gian để học và làm quen với nó

- Một số framework có thể làm tăng kích thước của ứng dụng, các ứng dụng quá đơn giản thì không nhất thiết phải dùng framework

- Một số framework có thể hạn chế khả năng tùy chỉnh của bạn

Số lượng các framework và các thư viện rất nhiều, vì vậy bạn cần lựa chọn cho phù hợp, tùy thuộc vào:

- Quy mô, tính chất đặc thù của ứng dụng

- Môi trường làm việc tại công ty, tổ chức

- Yêu cầu của khách hàng

Viết thuần

Việc phát triển ứng dụng web bằng cách tự viết mã từ đầu (hay còn gọi là "viết thuần”, “viết tay") cũng là một cách bạn có thể sử dụng để tạo ra ứng dụng web. Bạn sẽ không sử dụng bất kì framework hay thư viện hỗ trợ nào. Các ngôn ngữ bạn sẽ sử dụng: 

- Frontend: HTML, CSS, JavaScript

- Backend: một trong các ngôn ngữ lập trình: JavaScript, Python, C#, PHP, Java, Go, Ruby

Xem hình minh họa:



Ưu điểm

- Toàn quyền kiểm soát và tùy chỉnh mã nguồn, không bị bất kì ràng buộc hay giới hạn nào

- Tối ưu hóa mã nguồn để ứng dụng chạy nhanh và hiệu quả nhất

- Hiểu rất sâu và nắm vững các ngôn ngữ lập trình, kỹ thuật lập trình, kỹ thuật bảo mật, công nghệ web

- Tư duy logic và giải quyết vấn đề tốt

Nhược điểm

- Tốn thời gian, công sức

- Khối lượng công việc rất lớn

- Yêu cần kiến thức chuyên môn cao, toàn diện

- Khó bảo trì và mở rộng

- Chi phí cao

2.3 Bài tập

Bài tập 2.1 Tìm trang (web) chủ của các CMS trong lĩnh vực phát triển ứng dụng web.

- Thương mại điện tử/bán hàng: WordPress, Wix, Joomla, Drupal, Magento, Shopify 

- Hệ thống quản lý học tập: Moodle

- Blogs, thông tin, giới thiệu: Blogger, Wordpress

Ví dụ:

Tên CMS

Trang chủ

Wordpress

https://wordpress.org/

https://wordpress.com/

Wix

https://vi.wix.com/

Joomla

Bài tập 2.2 Tìm các trang (web) chủ của các framework và thư viện hỗ trợ trong việc phát triển ứng dụng web.

- Frontend: jQuery, Bootstrap, D3, React, Angular, Vue, Svelte 

- Backend: Express.js (Nodejs), Django, Flask (Python), ASP.NET (C#), Spring Boot (Java), Laravel (PHP), Ruby on Rails (Ruby), Gin, Echo (Go, Golang).

Ví dụ:

Tên framework, thư viện

Trang chủ

 jQuery

https://jquery.com/

Bootstrap

https://getbootstrap.com/

React

https://react.dev/

D3

2.3 Có 3 cách để tạo ra một ứng dụng web? Phát biểu nào không đúng?

A. Sử dụng CMS

B. Sử dụng framework và thư viện hỗ trợ

C. Viết thuần bằng ngôn ngữ lập trình mà không sử dụng framework, thư viện hỗ trợ

D. Sử dụng trình duyệt web

2.4 Những ưu điểm khi sử dụng CMS để tạo ra ứng dụng web. Phát biểu nào không đúng?

A. Cần kiến thức lập trình chuyên sâu

B. Tối ưu SEO

C. Dễ sử dụng, dễ quản lý, tiết kiệm thời gian

D. Chi phí phát triển ứng dụng thấp

2.5 Những ưu điểm khi sử dụng framework và thư viện để tạo ra ứng dụng web. Phát biểu nào không đúng?

A. Tăng tốc độ phát triển

B. Cải thiện chất lượng viết mã

C. Giảm khả năng bảo mật

D. Dễ dàng bảo trì và mở rộng

---

Gợi ý trả lời câu hỏi?

2.3 (D), 2.4(A), 2,5(C)

----

Cập nhật: 11/2/2025

-----

Bài sau: Web back-end (3) - Web server