ÁP DỤNG REDUX ĐỂ QUẢN LÝ STATE

Một phần của tài liệu Xây dựng website xem phim trực tuyến (Trang 136)

6. Bố cục báo cáo

5.6.1ÁP DỤNG REDUX ĐỂ QUẢN LÝ STATE

Do yêu cầu cho các ứng dụng single-page sử dụng Javascript ngày càng trở lên phức tạp thì code của chúng em phải quản lý nhiều state hơn. Với Redux, State của ứng dụng được giữ trong một nơi gọi là Store và mỗi Component đều có thể truy cập

136 bất kỳ state nào mà chúng muốn từ Store thông qua các lệnh setState của Reducer nên việc quản lý State trở nên dễ dàng hơn.

137 5.6.2 ÁP DỤNG REDUX-SAGA ĐỂ XỬ LÝ BẤT ĐỒNG BỘ

- Vấn đề : tất cả những xử lý ở REDUCER đều phải là synchronous và pure tức chỉ là xử lý đồng bộ. Nhưng trong ứng dụng thực tế thì cần nhiều hơn vậy ví dụ như asynchronous (thực hiện một số việc như gọi một hàm AJAX để fetch dữ liệu về nhưng cần đợi kết quả chứ kết quả không trả về ngay được) hoặc là impure (thực hiện lưu, đọc dữ liệu ra bên ngoài như lưu dữ liệu ra ổ cứng hay đọc cookie từ trình duyệt… đều cần đợi kết quả). - Giải pháp : Sử dụng redux-thunk hoặc redux-saga để giải quyết vấn đề.

Nhóm chúng em chọn redux-saga vì nó không cần phải đối mặt với 1 lượng lớn promise hoặc callback nếu có mà đơn giản chỉ cần track theo try/catch block để theo dõi dòng code, bên cạnh đó còn có hàm để giúp track các action một cách dễ dàng.

138 - Công dụng : Bằng cách tạo ra các generator function, trong generator function này có yield và mỗi khi yield ta sẽ trả về một plain object. Object trả về đó được gọi Effect object. Effect object này đơn giản chỉ là một object bình thường nhưng chứa thông tin đặc biệt dùng để chỉ dẫn middleware của Redux thực thi các hoạt động khác ví dụ như gọi một hàm async khác hay put một action tới store.

Hình 5.7: Ví dụ về generator function - Áp dụng :

139 CHƯƠNG 6: KIỂM THỬ PHẦN MỀM

6.1KẾ HOẠCH KIỂM THỬ VÀ QUY TRÌNH KIỂM THỬ

Trưởng nhóm test sẽ thực hiện viết test plan cho toàn bộ hệ thống gồm các phần sau:

 Định nghĩa phạm vi kiểm thử

 Định nghĩa các chiến lược kiểm thử

 Nhận dạng các rủi ro và yếu tố bất ngờ

 Nhận dạng các hoạt động kiểm thử và xây dựng lịch kiểm thử

 Nhận dạng môi trường kiểm thử

 Hiểu chỉnh trong suốt chu kỳ kiểm thử để phản ánh các thay đổi nếu cần thiết Sau đó mỗi thành viên được giao đảm nhiệm một vài modules trong dự án sẽ tiến hành viết Testcase cho từng modules, thực hiện việc kiểm thử, sau đó dựa vào kế hoạch kiểm thử nhóm xác định lỗi bắt nguồn từ đâu và cách thức tiến hành khắc phục như thế nào. Tất cả quá trình kiểm thử bao gồm: xây dựng testplant, phân tích và thiết kế testcase, thi hành kiểm thử, báo cáo kết quả dựa vào các mẫu sau.

140 Hình 6.2: Mẫu TestCase Cover

141 Hình 6.4: Mẫu báo cáo của TestCase

Dựa trên kết quả kiểm thử thu được, nhóm sẽ xác định nguồn gốc phát sinh lỗi và phân chia lỗi ở các cấp độ nghiêm trọng nhất định và phân chia công việc cho các thành viên tiến hành sửa lỗi. Các lỗi nghiệm trọng sẽ được ưu tiên sửa trước. Và quá trình sẽ lặp đi lặp lại cho đến khi chương trình hoàn thiện, không còn các lỗi.

6.2QUY TRÌNH THIẾT KẾ KIỂM THỬ

Hình 6.5: Quy trình kiểm thử

Trong quy trình này TestManager sẽ thực hiện các xây dựng kế hoạch ban đầu về kiểm thử, thông qua các phân tích và đánh giá về: phạm vi, chiến lược, rủi ro có thể xảy ra, các dạng kiểm thử, môi trường kiểm thử…

142 Dựa trên cơ sở đó Test Analysis sẽ tiến hành viết các testcase cho mỗi chức năng trong mỗi module một cách kỹ lưỡng và tỉ mỉ nhất với mục tiêu chính là tìm ra lỗi trong mỗi module và lỗi của cả dự án.

Sau đó các TestCase sẽ được tiến hành thực thi trên các module cụ thể bởi từng Tester cụ thể. Trong giai đoạn chuẩn bị, Tester sẽ dùng mẫu prototype, use case, các đặc tả chức năng để viết test case theo trình tự từng bước một.

Tester phải liên tục duy trì tạo các báo cáo lỗi trong quá trình thực hiện, sau đó báo cáo kết quả kiểm thử cho TestManager. TestManager tạo bảng tổng kết đánh giá hoạt động kiểm lỗi, xác định xem đã đạt tiêu chí thành công và hoàn thành kiểm thử chưa.

6.3QUY TRÌNH CHẠY BỘ KIỂM THỬ

Hình 6.6: Quy trình chạy các bộ kiểm thử.

Tester sẽ được bố trí công việc bởi Test Leader để thi hành kiểm thử theo quy trình cụ thể sau:

 Thi hành kiểm thử theo từng testcase cho từng module cụ thể.

 Chạy lại các case bị failed trước đó để xác nhận là case đó đã được sửa.

 So sách kết quả ghi nhận được khi thực thi với kết quả mong đợi. (adsbygoogle = window.adsbygoogle || []).push({});

 Đánh giá kết quả kiểm thử (Passed/Failed) cho các trường hợp kiểm thử. Viết báo cáo lỗi cho những trường hợp kết quả ghi nhận được và kết quả mong đợi không giống nhau.

143 KẾT LUẬN

1. NHỮNG KẾT QUẢ ĐẠT ĐƯỢC

- Xây dựng thành công Website trong lĩnh vực giải trí cụ thể là xem phim

- Vận dụng thành công các loại công nghệ phần mềm, công nghệ Website mới, hiện đại: React, Redux, Spring RESTFULL API CRUD, Spring JPA và Spring Security - Tìm hiểu và vận dụng cơ sở dữ liệu mới, tiên tiến, hiệu suất cao

- Cách hoạt động nhóm hiệu quả, linh hoạt các vị trí trong lĩnh vực công nghệ thông tin.

- Xây dựng website giải trí cho mọi người bằng hình thức xem phim trực tuyến. Cụ thể có các chức năng sau:

o Đăng nhập/ đăng kí với email, password hoặc Facebook, Google. o Xem phim.

o Bình luận o Tìm kiếm phim.

o Quản lý danh mục phim, quản lý phim, quản lý người dùng. o Xem hồ sơ cá nhân và nâng cấp VIP.

o Có đám mây lưu trữ phim 2. ƯU ĐIỂM

- Giao diện đơn giản bắt mắt, thu hút người dùng với nhiều thể loại, nhiều phim khác nhau

- Người dùng có thể vừa xem vừa làm việc khác và có thể dừng bất cứ lúc nào - Tích hợp nhiều bài viết đánh giá hữu ích

- Cho phép xem lưu danh sách phim yêu thích để người dùng có thể xem lại bất cứ lúc nào

- Phần mềm Website có cấu trúc khá hoàn thiện, có khả năng bảo trì và nâng cấp - Sử dụng các công nghệ Website hiện đại, có chia cấu trúc Frontend – Backend

rõ ràng. Front-end sử dụng React giúp cải thiện tốc độ duyệt trang. Back-end sử dụng Spring Framework tăng tốc độ xử lý và dễ dàng quản lý các đối tượng. - Hệ quản trị cơ sở dữ liệu MySQL kết hợp với công nghệ Spring JPA tiên tiến,

hiệu năng cao 3. NHƯỢC ĐIỂM

144 - Chưa có nhiều phim thích hợp cho từng lứa tuổi

- Đám mây lưu trữ phim còn hạn chế về dung lượng và lưu lượng - Chưa có chức năng thống kê

- Chưa đưa website vào thực tế

- Ở 1 số trang còn có hiện tượng nhấp nháy do tốc độ xử lý nhanh dẫn đến trang bị render 2 lần ở thời điểm chưa nhận dữ liệu và đã nhận dữ liệu

4. HƯỚNG PHÁT TRIỂN

- Tiếp tục phát triển website với nhiều thể loại, nhiều phim đa dạng

- Đưa Website vào thực tế, giám sát quá trình hoạt động, phát triển bộ phận SEO. - Tiếp tục nghiên cứu sâu về các loại công nghệ hiện đại và hiệu quả hơn, tích hợp vào phần mềm.

- Tìm kiếm các đám mây lưu trữ phim với dung lượng và lưu lượng truyền lớn hơn

- Khắc phục tình trạng trang bị nhấp nháy bằng cách nghiên cứu giải pháp xử lý bất đồng bộ tốt hơn

Một phần của tài liệu Xây dựng website xem phim trực tuyến (Trang 136)