CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. CÔNG NGHỆ SỬ DỤNG 1. Golang là gì ? Golang, hay Go, là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Google. Được ra mắt vào năm 2009, Go kết hợp hiệu suất cao của ngôn ngữ C với tính tiện dụng của các ngôn ngữ lập trình hiện đại.
Một trong những đặc điểm nổi bật của Go là khả năng xử lý đồng thời mạnh mẽ, nhờ vào thiết kế goroutines và channels, giúp việc xây dựng các ứng dụng đa luồng trở nên dễ dàng và hiệu quả hơn. Minh họa Golang Go có cú pháp đơn giản và rõ ràng, giúp các lập trình viên dễ dàng học và sử dụng. Nó cũng đi kèm với một bộ công cụ phát triển mạnh mẽ, bao gồm trình biên dịch nhanh, gói tiêu chuẩn phong phú và các công cụ quản lý phụ thuộc. Golang đặc biệt thích hợp cho việc phát triển các ứng dụng web, dịch vụ microservices và hệ thống phân tán, với nhiều công ty lớn như Google, Uber và Dropbox đang sử dụng Go trong các sản phẩm của mình.
Gin Gonic KHÓA LUẬN TỐT NGHIỆP 3 Hình 2. Minh họa Gin Gonic Gin là một framework phát triển ứng dụng web dựa trên ngôn ngữ lập trình Go (Golang). Được thiết kế để đơn giản hóa việc xây dựng các ứng dụng web nhanh chóng và hiệu quả, Gin cung cấp nhiều tính năng phổ biến như routing, middleware, xử lý JSON, xử lý lỗi và nhiều công cụ hỗ trợ phát triển khác. Một trong những ưu điểm lớn của Gin là hiệu suất cao, nhờ vào việc được viết bằng Go, một ngôn ngữ lập trình tối ưu hóa cho hiệu suất xử lý.
Gin sử dụng cấu trúc router nhanh và cơ chế pooling để quản lý các goroutine, giúp xử lý các yêu cầu một cách hiệu quả. Điều này làm cho Gin trở thành lựa chọn lý tưởng cho các ứng dụng web cần xử lý lượng lớn yêu cầu đồng thời mà không làm giảm hiệu suất. Bên cạnh đó, Gin cũng hỗ trợ việc xây dựng các ứng dụng web RESTful thông qua việc hỗ trợ đầy đủ các HTTP methods như GET, POST, PUT, DELETE. Ngoài ra, Gin cung cấp các cơ chế xử lý lỗi, xác thực và phân quyền, giúp xây dựng các ứng dụng web an toàn và hiệu năng cao.
Nhìn chung, Gin là một lựa chọn tuyệt vời cho việc phát triển các ứng dụng web trong Go, mang lại sự đơn giản, hiệu quả và hiệu suất cao cho các nhà phát triển. ReactJS KHÓA LUẬN TỐT NGHIỆP 4 React (còn được biết đến với tên gọi React.js hoặc ReactJS) là một thư viện JavaScript mã nguồn mở, miễn phí, được phát triển bởi Facebook Inc. và hiện được bảo trì bởi Meta (trước đây là Facebook) cùng với một cộng đồng các nhà phát triển và công ty cá nhân. React được thiết kế để xây dựng các giao diện người dùng dựa trên các thành phần (components).
React có thể được sử dụng để phát triển các ứng dụng đơn trang (single-page), ứng dụng di động, hoặc các ứng dụng render trên server với sự hỗ trợ của các framework như Next. Do React chỉ tập trung vào giao diện người dùng và việc render các thành phần lên DOM, các ứng dụng React thường dựa vào các thư viện khác cho việc định tuyến và các chức năng phía client khác. Một lợi thế quan trọng của React là nó chỉ render lại những phần của trang đã thay đổi, tránh việc render lại không cần thiết các phần tử DOM không thay đổi. MySQL MySQL là một hệ quản trị cơ sở dữ liệu (DBMS) phổ biến và mã nguồn mở.
Nó được sử dụng rộng rãi trong phát triển ứng dụng web và nhiều hệ thống thông tin do tính ổn định, hiệu suất cao, và tính linh hoạt của nó. MySQL hỗ trợ nhiều ngôn ngữ lập trình và cung cấp các tính năng mạnh mẽ để quản lý cơ sở dữ liệu. MỘT SỐ THƯ VIỆN VÀ ỨNG DỤNG HỖ TRỢ KHÁC 1. TypeScript TypeScript là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Microsoft.
Được xây dựng trên nền tảng JavaScript, TypeScript thêm vào các tính năng như kiểm tra kiểu tĩnh (static typing), các lớp (classes), và các giao diện (interfaces). Điều này giúp việc phát triển và bảo trì các dự án lớn trở nên dễ dàng hơn và giảm thiểu lỗi. Điểm khác biệt chính giữa TypeScript và JavaScript là TypeScript cho phép các developers xác định kiểu dữ liệu cho biến, hàm và các thực thể khác. Điều này giúp phát hiện sớm các lỗi liên quan đến kiểu dữ liệu trong quá trình phát triển, thay vì chờ đến lúc chạy chương trình.
Bên cạnh đó, TypeScript cũng hỗ trợ các tính năng hiện đại của JavaScript và các tính năng lập trình hướng đối tượng như kế thừa, đóng gói, và đa hình. KHÓA LUẬN TỐT NGHIỆP 5 Hình 3. Minh họa TypeScript Các đặc điểm nổi bật của TypeScript bao gồm: ● Kiểm tra kiểu tĩnh (Static Typing): Giúp phát hiện lỗi sớm trong quá trình phát triển. ● Hỗ trợ các tính năng mới của JavaScript: TypeScript liên tục cập nhật và hỗ trợ các tính năng mới của JavaScript.
● Tương thích với JavaScript: Mã TypeScript được chuyển đổi (transpile) thành JavaScript để chạy trên bất kỳ môi trường nào hỗ trợ JavaScript. ● Cải thiện khả năng bảo trì và mở rộng: Các tính năng như classes và interfaces giúp việc xây dựng các ứng dụng lớn trở nên dễ dàng và có cấu trúc hơn. ● Hỗ trợ các công cụ phát triển: TypeScript tích hợp tốt với các IDE và công cụ như Visual Studio Code, cung cấp tính năng tự động hoàn thành mã, gợi ý mã, và kiểm tra lỗi trong thời gian thực. Redux Redux là một thư viện quản lý trạng thái cho các ứng dụng JavaScript, thường được sử dụng cùng với các thư viện hoặc framework như React hoặc Angular để quản lý trạng thái ứng dụng một cách nhất quán và dễ dàng.
Được tạo ra bởi Dan Abramov KHÓA LUẬN TỐT NGHIỆP 6 và Andrew Clark, Redux giúp quản lý trạng thái của ứng dụng một cách trung tâm, giúp tránh các vấn đề phức tạp liên quan đến truyền dữ liệu giữa các thành phần. Minh họa Redux Cách Redux hoạt động: ● Action: Người dùng hoặc hệ thống thực hiện một hành động (action), ví dụ: thêm một mục vào giỏ hàng. ● Reducer: Action được gửi đến một reducer, nơi trạng thái mới của ứng dụng được tính toán dựa trên action đó. ● Store: Trạng thái mới được lưu trữ trong store trung tâm.
● View: Các thành phần giao diện người dùng được cập nhật để phản ánh trạng thái mới. Docker Docker là một nền tảng mã nguồn mở cho phép các nhà phát triển xây dựng, triển khai, chạy, cập nhật và quản lý các container. Docker được viết bằng ngôn ngữ lập trình Go và tận dụng nhiều tính năng của Kernel Linux. Docker sử dụng một công nghệ gọi là namespaces để cung cấp “vùng hoạt động” gọi là container.
Khi bạn chạy một container, Docker tạo ra một tập hợp các namespaces cho container đó. Containers là các thành phần thực thi tiêu chuẩn hóa, kết hợp mã nguồn của ứng KHÓA LUẬN TỐT NGHIỆP 7 dụng với các thư viện và các phụ thuộc của hệ điều hành (OS) cần thiết để chạy mã đó trong bất kỳ môi trường nào. Công nghệ container cung cấp tất cả các chức năng và lợi ích của máy ảo (VMs) – bao gồm cách ly ứng dụng và khả năng mở rộng hiệu quả về chi phí, cùng với nhiều ưu điểm khác: ● Nhẹ hơn: Không giống như VMs, containers không mang theo toàn bộ hệ điều hành và hypervisor. Chúng chỉ bao gồm các quy trình và phụ thuộc của hệ điều hành cần thiết để chạy mã.
Kích thước của container được đo bằng megabyte (so với gigabyte của một số VMs), sử dụng tốt hơn dung lượng phần cứng và có thời gian khởi động nhanh hơn. ● Năng suất cải thiện: Các ứng dụng container hóa có thể được viết một lần và chạy ở bất kỳ đâu. So với VMs, containers triển khai, cung cấp và khởi động lại nhanh chóng và dễ dàng hơn. ● Hiệu quả cao hơn: Với containers, các nhà phát triển có thể chạy nhiều bản sao của một ứng dụng trên cùng một phần cứng hơn so với khi sử dụng VMs.
Hiệu quả này có thể giảm chi phí sử dụng dịch vụ đám mây. Docker giúp đơn giản hóa quá trình phát triển và triển khai ứng dụng bằng cách cho phép các developers đóng gói ứng dụng và các phụ thuộc của nó vào một container duy nhất có thể chạy nhất quán trên các môi trường khác nhau, từ máy phát triển cá nhân đến các máy chủ trong trung tâm dữ liệu hoặc đám mây. Redis Redis là một hệ thống cơ sở dữ liệu mã nguồn mở, được thiết kế để lưu trữ và xử lý dữ liệu trong bộ nhớ (in-memory data structure store). Nó hỗ trợ nhiều loại dữ liệu cấu trúc như chuỗi, băm (hashes), danh sách, tập hợp và các kiểu dữ liệu khác.
Redis nổi bật với tốc độ truy xuất nhanh và khả năng mở rộng tốt, làm cho nó trở thành một giải pháp phổ biến cho các ứng dụng yêu cầu hiệu suất cao và độ phản hồi nhanh. Các chức năng chính của Redis bao gồm: ● Lưu trữ dữ liệu cấu trúc: Redis hỗ trợ nhiều loại dữ liệu phức tạp như chuỗi, băm, danh sách, tập hợp, đồng thời cung cấp các thao tác phù hợp để thao tác với từng loại dữ liệu này. ● Caching: Redis thường được sử dụng làm lớp cache để lưu trữ dữ liệu tạm KHÓA LUẬN TỐT NGHIỆP 8 thời trong bộ nhớ, giúp cải thiện tốc độ truy xuất dữ liệu từ hệ thống lưu trữ chính. ● Message Broker: Redis hỗ trợ các cấu trúc dữ liệu như hàng đợi (queue) và kênh thông báo (pub/sub) để xử lý các thông báo và sự kiện trong hệ thống.
● Đa luồng và bảo mật: Redis hỗ trợ các thao tác đa luồng và cơ chế bảo mật, cho phép quản lý truy cập dữ liệu và giới hạn các thao tác trên cơ sở dữ liệu. ● Replication và High Availability: Redis cung cấp khả năng sao chép dữ liệu (replication) và các cơ chế để đảm bảo sẵn sàng cao (high availability) của hệ thống. Redis được sử dụng rộng rãi trong các ứng dụng web, điện toán đám mây và các hệ thống phân phối nơi nhu cầu về hiệu suất và khả năng mở rộng cao. KHÓA LUẬN TỐT NGHIỆP 9 CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ ĐẶC TẢ YÊU CẦU PHẦN MỀM 2.
KHẢO SÁT HIỆN TRẠNG 2. Jira Website: https://www.com/software/jira Hình 5. Trang web Jira Jira là một nền tảng quản lý dự án và theo dõi công việc nổi tiếng, được sử dụng rộng rãi trên toàn cầu. Jira được thiết kế để hỗ trợ các nhóm Agile Scrum và Kanban trong việc lập kế hoạch, theo dõi và quản lý các dự án phần mềm phức tạp.