CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. CÁC CÔNG NGHỆ SỬ DỤNG Ở FRONT-END 1. ANGULAR Angular là một framework phát triển ứng dụng web front-end, được xây dựng và duy trì bởi nhóm Angular của Google. Được ra mắt lần đầu vào năm 2010 dưới tên AngularJS, sau đó được viết lại hoàn toàn và tung ra phiên bản Angular 2 vào năm 2016.
Angular là một trong những công cụ phổ biến cho việc xây dựng ứng dụng web động cao cấp. Nó sử dụng TypeScript (một dạng mở rộng của JavaScript) để xây dựng các ứng dụng với kiến trúc MVVM (Model-View-ViewModel). Angular cung cấp các tính năng như two-way data binding, dependency injection, routing, validation, và testing dễ dàng. Một số điểm nổi bật của Angular bao gồm: Components: Ứng dụng Angular được xây dựng từ các thành phần (components) độc lập, giúp tái sử dụng mã và tạo ra ứng dụng có cấu trúc rõ ràng.
Directives: Angular cung cấp các directives như ng-if, ng-for, ng-switch để thao tác trực tiếp với DOM. Routing: Cho phép xây dựng ứng dụng đơn trang (SPA - Single Page Application) thông qua routing. Dependency Injection: Angular cung cấp một hệ thống Dependency Injection mạnh mẽ giúp quản lý các thành phần và dịch vụ của ứng dụng. Testing: Bộ kiểm thử mạnh mẽ với TestBed giúp việc kiểm thử các thành phần trở nên dễ dàng hơn.
Angular không chỉ là một framework mà còn là một nền tảng phát triển toàn diện cho việc xây dựng các ứng dụng web hiện đại và phức tạp. Tuy nhiên, để sử dụng Angular hiệu quả, người lập trình cần có kiến thức vững về TypeScript, HTML, CSS và các khái niệm cơ bản về front-end development. ANT DESIGN Ant Design là một bộ công cụ giao diện người dùng (UI toolkit) được phát triển bởi Ant Design Team của Alibaba, được sử dụng rộng rãi trong việc xây dựng các ứng dụng web và mobile. Đây là một framework UI đa nền tảng (cross-platform UI framework) và cung cấp các thành phần giao diện tiêu chuẩn và tùy chỉnh cho các dự án web.
Điểm Nổi Bật của Ant Design: Thiết Kế Hướng Người Dùng: Ant Design chú trọng vào trải nghiệm người dùng (user experience) và cung cấp các thành phần giao diện hiện đại, dễ sử dụng và tương thích với nhiều thiết bị. Các Thành Phần Giao Diện Đa Dạng: Bộ công cụ này cung cấp một loạt các thành phần giao diện như button, form, modal, table, và nhiều thành phần khác, giúp phát triển ứng dụng nhanh chóng và đồng nhất. Responsive và Hỗ Trợ Di Động Tốt: Ant Design được thiết kế để đáp ứng các yêu cầu về responsive design, cho phép ứng dụng của bạn hiển thị tốt trên các thiết bị khác nhau, bao gồm cả điện thoại di động. 12 Cộng Đồng Lớn và Hỗ Trợ Tốt: Có một cộng đồng lớn và tích cực xung quanh Ant Design, cung cấp nhiều tài liệu, hướng dẫn và các ví dụ thực tế.
Tiện Ích Mở Rộng: Ant Design cung cấp các tiện ích mở rộng để tùy chỉnh và mở rộng các thành phần giao diện theo nhu cầu cụ thể của dự án. Hỗ Trợ Themeing: Bạn có thể dễ dàng tùy chỉnh giao diện thông qua hệ thống themeing, điều chỉnh màu sắc, font chữ và các thuộc tính khác để phù hợp với phong cách của ứng dụng. Ant Design đã trở thành một trong những lựa chọn phổ biến cho việc phát triển giao diện người dùng trong các dự án web và mobile, nhờ vào sự đa dạng của các thành phần, tính tương thích, và sự linh hoạt trong tùy chỉnh. CÁC CÔNG NGHỆ SỬ DỤNG Ở BACK-END 18 1.
Golang Ngôn Ngữ Lập Trình Hiện Đại: Golang được thiết kế bởi Google vào năm 2007 và ra mắt chính thức vào năm 2009. Nó được xây dựng dựa trên các nguyên tắc của các ngôn ngữ lập trình truyền thống như C và C++, nhưng với cú pháp đơn giản hơn và tính toán an toàn hơn. Hiệu Suất Caol: Golang được tối ưu hóa cho việc xử lý đồng thời và hiệu suất cao. Với việc quản lý bộ nhớ hiệu quả, nó thích hợp cho các ứng dụng đòi hỏi tốc độ và hiệu suất cao như các hệ thống phân tán và ứng dụng có lưu lượng lớn.
Đa Nhiệm và Đa Luồng: Golang hỗ trợ đa nhiệm và đa luồng một cách linh hoạt. Người lập trình có thể dễ dàng tận dụng các goroutines (luồng nhẹ) để xử lý đa nhiệm mà không làm giảm hiệu suất. Bộ Công Cụ Mạnh Mẽ: Golang đi kèm với một bộ công cụ (toolset) mạnh mẽ bao 13 Hình 1. Logo của ngôn ngữ GoLang gồm go fmt (định dạng mã nguồn), go vet (kiểm tra lỗi cú pháp), và go test (kiểm tra và testing).
Công cụ này giúp quản lý và phát triển dự án một cách hiệu quả. Hỗ Trợ Công Nghệ Web: Golang cung cấp thư viện tiêu chuẩn mạnh mẽ cho việc xây dựng các ứng dụng web với gói net/http. Nó cung cấp một cách tiếp cận đơn giản và hiệu quả cho việc xử lý HTTP requests và responses. 19 Đa Nền Tảng: Golang hỗ trợ triển khai trên nhiều nền tảng, từ máy tính cá nhân đến các máy chủ lớn và cả các thiết bị nhúng (embedded systems).
Cộng Đồng Rộng Lớn: Golang có một cộng đồng phát triển lớn, với nhiều tài liệu học tập, hướng dẫn và thư viện hữu ích. Cộng đồng này liên tục đóng góp vào việc phát triển và mở rộng sức mạnh của ngôn ngữ. Gin Gonic Gin Gonic là một framework web phổ biến được xây dựng trên nền tảng Golang (hay còn gọi là Gin framework). Đây là một trong những framework web nhanh nhất và dễ sử dụng nhất trong cộng đồng phát triển Golang.
Dưới đây là một số điểm khái quát về Gin Gonic: Hiệu Suất Cao: Gin Gonic được thiết kế để có hiệu suất cao, cung cấp tốc độ xử lý rất nhanh. Điều này làm cho nó trở thành lựa chọn phổ biến cho các ứng dụng yêu cầu xử lý nhanh như API và dịch vụ web. Dễ Học và Sử Dụng: Gin Gonic có cú pháp đơn giản và dễ hiểu, giúp người lập trình nhanh chóng làm quen và bắt đầu phát triển ứng dụng. Router Mạnh Mẽ: Nó cung cấp một hệ thống router mạnh mẽ cho việc xử lý và điều hướng các yêu cầu HTTP, cho phép người dùng dễ dàng xác định các endpoint và xử lý các route.
Middlewares Đa Dạng: Gin Gonic hỗ trợ các middlewares để xử lý các yêu cầu trước khi chúng đến đích, từ xác thực người dùng đến quản lý phiên làm việc. Hỗ Trợ JSON: Nó có khả năng tốt trong việc xử lý dữ liệu dưới dạng JSON, phục vụ cho việc xây dựng API RESTful. Phù Hợp cho Microservices: Với hiệu suất cao và khả năng xử lý đa luồng tốt, Gin Gonic thích hợp cho việc xây dựng các dịch vụ nhỏ (microservices) trong kiến trúc phần mềm phân tán. Khả Năng Mở Rộng: Framework này cho phép người dùng mở rộng bằng cách tích hợp các thư viện hoặc xây dựng middleware riêng để phù hợp với nhu cầu cụ thể của dự án.
20 Cộng Đồng Hỗ Trợ Lớn: Có một cộng đồng sáng tạo và tích cực xung quanh Gin Gonic, cung cấp tài liệu, hướng dẫn và hỗ trợ trong việc sử dụng framework này. Gin Gonic là một trong những lựa chọn phổ biến cho việc xây dựng các ứng dụng web và API trong cộng đồng phát triển Golang nhờ vào sự đơn giản, hiệu suất và khả năng mở rộng của nó. Mongodb MongoDB là một dạng phần mềm cơ sở dữ liệu sử dụng mã nguồn mở NoSQL. Nó có thể hỗ trợ trên nhiều nền tảng khác nhau và được thiết kế với mục đích hướng đến đối tượng.
MongoDB hoạt động dựa vào các khái niệm Collection và Document. Đồng thời, nó có hiệu suất cao cùng với tính khả dụng tốt và dễ dàng mở rộng. Các Collection trong MongoDB có cấu trúc cực kỳ linh hoạt. Điều này cho phép dữ liệu không cần thiết phải tuân theo bất kỳ một dạng cấu trúc nào.
Vì thế, MongoDB có thể lưu trữ những dữ liệu có cấu trúc đa dạng và phức tạp. Dữ liệu trong MongoDB được lưu bằng định dạng kiểu JSON. Khái niệm Database: Database là một nơi chứa vật lý cho các Collection. Mỗi Database lấy tập hợp các file riêng của nó trên hệ thống file.
Mỗi MongoDB Server có thể có nhiều cơ sở dữ liệu. Khái niệm Collection: Collection là một nhóm các Document trong MongoDB. Nó tương đương như một bảng trong Hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS). Do đó, một Collection tồn tại bên trong một cơ sở dữ liệu duy nhất.
Các Collection không có ràng buộc Relationship như các hệ quản trị cơ sở dữ liệu khác nên việc truy xuất rất nhanh, chính vì thế mỗi collection có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản trị mysql là các field cố định. Các Document bên trong một Collection có thể có nhiều trường khác nhau. Đặc biệt, tất cả các Document trong một Collection là tương tự nhau hoặc với cùng mục đích liên quan. Khái niệm Document: 21 Một Document trong MongoDB, có cấu trúc tương tự như kiểu dữ liệu JSON, là một tập hợp các cặp key-value.
Các Document có schema động, nghĩa là Document trong cùng một Collection không cần thiết phải có cùng một tập hợp các trường hoặc cấu trúc giống nhau, và các trường chung trong Document của một Collection có thể giữ các kiểu dữ liệu khác nhau. Nguyên tắc hoạt động: Nguyên tắc hoạt động của MongoDB là dưới một tiến trình dịch vụ ngầm và mở một cổng (mặc định là cổng 27017), để có thể tiếp nhận các yêu cầu truy vấn, thao tác; sau đó tiến hành xử lý. Mỗi bản ghi của MongoDB (document) được gắn một trường có tên “_id” nhằm xác định tính duy nhất của bản ghi. Có thể hiểu id này như tên gọi của một bản ghi và dùng phân biệt chúng với các bản ghi khác.
Đồng thời, nó còn được sử dụng cho mục 15 đích truy vấn hoặc tìm kiếm thông tin. Trường dữ liệu “_id” được tự động đánh chỉ mục (index) để đảm bảo tốc độ truy vấn đạt hiệu suất tối ưu. Mỗi truy vấn dữ liệu đều được ghi đệm lên bộ nhớ RAM nên các truy vấn sau đó sẽ diễn ra nhanh hơn. Bởi nó không cần đọc dữ liệu từ ổ cứng.
Khi thực hiện thêm, xóa hay sửa bản ghi thì MongoDB đều mất 60s để ghi các dữ liệu được thay đổi từ RAM xuống ổ cứng. Điều này nhằm mục đích đảm bảo hiệu suất mặc định của chương trình. Các tính năng: MongoDB có các tính năng sau: Truy vấn Ad-Hoc: Đây được xem là tính năng tốt nhất của MongoDB. Nó có tác dụng giúp các trường truy vấn phạm vi, kết hợp cùng việc tìm kiếm biểu thức nhằm trả về kết quả tài liệu cụ thể với kích thước nhất định.
Ngoài ra, các trường dùng trong MongoDB còn được dùng để lập chỉ mục chính, phụ.