1 LỜI CẢM ƠN Trong quá trình học tập, nghiên cứu và phát triển đề tài “Tìm hiểu về React Native và xây dựng 1 ứng dụng bán giày” em đã nhận được sự giúp đỡ, chỉ bảo của cô để hoàn
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Võ Thời Đại 19521307
Trương Thàng Quang 19520884
TP HỒ CHÍ MINH, 2022
Trang 21
LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu và phát triển đề tài “Tìm hiểu về
React Native và xây dựng 1 ứng dụng bán giày” em đã nhận được sự giúp
đỡ, chỉ bảo của cô để hoàn thành đồ án này
Nhóm em xin chân thành gửi lời cảm ơn đến cô Huỳnh Hồ Thị Mộng
Trinh – Giảng viên Trường Đại học Công nghệ thông tin, Đại học Quốc
gia Thành phố Hồ Chí Minh – giảng viên dạy hướng dẫn môn Đồ án 2, đã
tận tình hướng dẫn và giúp đỡ về kiến thức, phương pháp cho chúng em
trong suốt quá trình thực hiện và hoàn thành đồ án
Hi vọng với sự chỉ bảo và góp ý từ cô, nhóm đề tài có thể tiếp tục phát
triển để ứng dụng ngày càng được mở rộng và phục vụ được tốt hơn cho
người dùng
Mặc dù đã có nhiều cố gắng trong suốt quá trình thực hiện đề tài, song
không thể tránh khỏi những hạn chế, thiếu sót Em mong rằng sẽ nhận
được những đóng góp và nhận xét chân thành từ thầy, các bạn sinh viên
và người dùng trong quá trình sử dụng phần mềm để phần mềm ngày càng
hoàn thiện hơn nữa Mọi đóng góp xin vui lòng gửi về địa chỉ email:
19521307@gm.uit.edu.vn
Mỗi ý kiến đóng góp của cô và các bạn sẽ là một nguồn động lực to lớn
đối với chúng em để chúng em có thể cải thiện phần mềm tốt hơn và xây
dựng những phần mềm hữu ích đối với người dùng hơn nữa
Chúng em xin trân trọng cảm ơn
Thành phố Hồ Chí Minh, ngày 22 tháng 12 năm 2022
Trang 32
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 4
3
MỤC LỤC
Chương 1 GIỚI THIỆU 6
1.1 Đặt vấn đề 6
1.2 Giải pháp 6
1.3 Mục tiêu 6
Chương 2 TỔNG QUAN 7
2.1 Tổng quan về đồ án 7
2.1.1 Tên đồ án: 7
2.1.2 Link github quản lý source code 7
2.2 Cơ sở lý thuyết 7
2.2.1 Nền tảng Cross Platform 7
2.3 Công nghệ sử dụng 10
2.3.1 Ngôn ngữ C# 10
2.3.2 Ngôn ngữ lập trình Java-scripts 12
2.3.3 React-Native 14
2.3.4 .NET core 21
2.3.5 SQL server 22
2.3.6 Phàn mềm lập trình VSCode 23
2.3.7 Dịch vụ Github 26
Chương 3 ỨNG DỤNG MINH HỌA 26
3.1 Cơ sở dữ liệu 26
3.1.1 Bảng Product 28
3.1.2 Bảng Color 28
3.1.3 Bảng Size 28
Trang 54
3.1.4 Bảng Category 28
3.1.5 Bảng Collection 29
3.1.6 Bảng Recipe 29
3.1.7 Bảng RecipeItem 29
3.1.8 Bảng Address 30
3.1.9 Bảng User 30
3.2 Product Requirement Document 30
3.2.1 Objective 30
3.2.2 Release 32
3.2.3 Features 33
3.2.4 Analytics – Phân tích 38
3.2.5 Future work – Hướng phát triển 40
3.3 Các màn hình minh họa 41
3.3.1 Màn hình giới thiệu ứng dụng 41
3.3.2 Màn hình trang chủ 42
3.3.3 Màn hình đăng nhập 43
3.3.4 Màn hình sản phẩm 44
3.3.5 Màn hình chi tiết sản phẩm 45
3.3.6 Màn hình giỏ hàng và thanh toán 47
3.3.7 Thanh điều hướng các loại sản phẩm 49
3.3.8 Màn hình các sản phẩm yêu thích 50
3.3.9 Màn hình ưu đãi 51
3.3.10 Màn hình lịch sử giao dịch 52
Chương 4 KIẾN TRÚC HỆ THỐNG 53
Trang 65 Chương 5 KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 55 Chương 6 TÀI LIỆU THAM KHẢO 56
Trang 71.2 Giải pháp
Nhận thấy tình hình trên, nhóm em đã lên ý tưởng xây dựng một ứng dụng hỗ trợ công tác quản lý, bán hàng và mua hàng trực tuyến “Xây dựng 1 ứng dụng bán giày” ra đời nhằm đáp ứng nhu cầu hiện đại hóa hệ thống quản lý và bán hàng, đưa hệ thống phần mềm vào để thay thế công tác quản lý thủ công, nâng cao trải nghiệm mua hàng trực tuyến cho người dùng
1.3 Mục tiêu
Xây dựng một phần mềm hỗ trợ cửa hàng thực hiện công tác quản lý sản phẩm và trạng thái đơn hàng, cung cấp một ứng dụng mua sắm đáp ứng các nhu cầu của khách hàng, cụ thể là trong kinh doanh thời trang Xây dựng giao diện phần mềm một cách trực quan, sinh động, dễ sử dụng, thẩm mỹ Dùng animation xử lý thành phần hoạt động một cách mượt mà để mang đến trải nghiệm thú vị và tiện ích cho người dùng
Trang 98
Cross Platform
Cross platform hay Multi Platform là một nền tảng đa ứng dụng Hiểu đơn giản hơn là chỉ với một bản code, bạn có thể phiên dịch và sử dụng nó trên nhiều nền tảng ứng dụng
khác nhau, giúp bạn tiết kiệm được công sức và thời gian đáng kể
Chính vì lợi thế đó mà Cross platform được ưa chuộng bởi rất nhiều lập trình viên hiện nay Ngoài ra, khi lập trình, bạn cần phải lựa chọn tuỳ theo
ưu, nhược điểm của một Framework bởi Cross platform sử dụng Framework
Trang 109
Ba framework phát triển mobile phổ biến
Sự xuất hiện các frameworks nói trên đã hình thành các trường phái và
cộng đồng phát triển app, kèm theo là những tranh luận về việc đánh giá xếp hạng cho các frameworks này
2.2.1.2 Ưu điểm, hạn chế của Cross Platform
Ưu điểm:
• Có thể sử dụng một bản code trên nhiều phiên bản khác nhau
• Sử dụng Cross platform sẽ giúp tiết kiệm được lượng lớn chi phí và công sức viết code
• Cross platform thích hợp với những dự án lớn, đòi hỏi tính linh hoạt và
đa dạng
Nhược điểm:
• Chưa có khả năng khai thác thư viện của những nền tảng lớn như Android hoặc iOS dù nó tiết kiệm được chi phí và có tính linh hoạt cao
• Quá trình cấp phép cho công nghệ của ứng dụng Cross platform gặp nhiều khó khăn và phức tạp
Trang 11Hejlsberg và Scott Wiltamuth
C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm
Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau
C# với sự hỗ trợ mạnh mẽ của NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), trở nên rất dễ dàng
2.3.1.2 Ưu điểm
C# là ngôn ngữ đơn giản
Như ta đã biết thì ngôn ngữ C# dựng trên nền tảng C++ và Java nên ngôn ngữ C# khá đơn giản Nếu chúng ta thân thiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và
những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn Một vài trong các sự cải tiến
là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi
Trang 1211
C# là ngôn ngữ hiện đại
Một vài khái niệm khá mới mẻ khá mơ hồ với các bạn vừa mới học lập trình, như xử lý ngoại lệ, những kiểu dữ liệu mở rộng, bảo mật mã nguồn v v Đây là những đặc tính được cho là của một ngôn ngữ hiện đại cần có Và C# chứa tất cả các đặt tính ta vừa nêu trên Các bạn sẽ dần tìm hiểu được các đặt tính trên qua các bài học trong series này
C# là một ngôn ngữ lập trình thuần hướng đối tượng
Lập trình hướng đối tượng(tiếng Anh: Object-oriented programming, viết tắt: OOP) là một phương pháp lập trình có 4 tính chất Đó là tính trừu tượng
(abstraction), tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance) C# hỗ trợ cho chúng ta tất cả những đặc tính trên
Và để hiểu rõ hơn thì chúng ta sẽ có một chương trình bày về phần này
C# là một ngôn ngữ ít từ khóa
C# được mô tả là ngôn ngữ sử dụng giới hạn những từ khóa (gồm khoảng 80 từ khóa và mười mấy kiểu dữ liệu xây dựng sẵn) Nếu bạn nghĩ rằng ngôn ngữ có càng nhiều từ khóa thì sẽ càng mạnh mẽ hơn Điều này không phải sự thật, lấy
ví dụ ngôn ngữ C# làm điển hình nhé Nếu bạn học sâu về C# bạn sẽ thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào
Ngoài những đặc điểm trên thì còn một số ưu điểm nổi bật của C#:
C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dể dàng tiếp cận và học nhanh với C#
C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau
C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó
C# là một phần của NET Framework nên được sự chống lưng khá lớn đến từ
bộ phận này
Trang 1312
C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ
2.3.2 Ngôn ngữ lập trình Java-scripts
JavaScript là ngôn ngữ lập trình phổ biến nhất trên thế giới trong suốt 20 năm qua Nó cũng là một trong số 3 ngôn ngữ chính của lập trình web:
• HTML: Giúp bạn thêm nội dung cho trang web
• CSS: Định dạng thiết kế, bố cục, phong cách, canh lề của trang web
• JavaScript: Cải thiện cách hoạt động của trang web
JavaScript có thể học nhanh và dễ dàng áp dụng cho nhiều mục đích khác nhau, từ việc cải thiện tính năng của website đến việc chạy game và tạo phần mềm nền web Hơn nữa, có hàng ngàn mẫu template JavaScript và ứng dụng ngoài kia, nhờ vào sự cống hiến của cộng đồng, đặc biệt là Github
Ngôn ngữ Javascript
2.3.2.1 Lịch sử hình thành Java-scripts
JavaScript được tạo trong mười ngày bởi Brandan Eich, một nhân viên của Netscape, vào tháng 9 năm 1995 Được đặt tên đầu tiên là Mocha, tên của nó được đổi thành Mona rồi LiveScript trước khi thật sự trở thành JavaScript nổi tiếng như bây giờ Phiên bản đầu tiên của ngôn ngữ này bị giới hạn độc quyền bởi Netscape và chỉ có các tính năng hạn chế, nhưng nó
Trang 14JavaScript liên tục phát triển kể từ đó, có lục đạt đến 92% website đang sử dụng JavaScript vào năm 2016 Chỉ trong 20 năm, nó từ một ngôn ngữ lập trình riêng trở thành công cụ quan trọng nhất trên bộ công cụ của các chuyên viên lập trình web Nếu bạn đang dùng internet, vậy chắc chắn bạn đã từng
sử dụng JavaScript rồi
2.3.2.2 Ưu, nhược điểm của Java-script
Ưu điểm của Javascript:
• Javascript giúp thao tác với người dùng ở phía client và tách biệt giữa các client Ví dụ 2 người đang truy cập vào 2 trình duyệt khác nhau thì cả hai đều có những phiên xử lý Javascript khác nhau, không ảnh hưởng lẫn nhau
• Javascript có thể hoạt động trên nhiều nền tảng khác nhau, từ Windows, macOS cho đến các hệ điều hành trên mobile
• Javascript là một ngôn ngữ dễ tiếp cận, bạn sẽ dễ dàng học nó mà
không cần phải cài đặt quá nhiều phần mềm
Nhược điểm của Javascript:
• Vì là một ngôn ngữ rất dễ dàng bị lộ code nên dễ bị khai thác Hacker có thể nhập một đoạn code bất kì vào khung console của trình duyệt, lúc này trình duyệt sẽ hiểu rằng đoạn code đó là chính thống, nên hacker có thể gửi nhửng request lên server một cách dễ
dàng
Trang 1514
2.3.2.3 JavaScripts framework
Javascript Framework là một bộ thư viện được xây dựng dựa vào ngôn ngữ lập trình Javascript Mỗi framework thường được tạo ra để phục vụ cho một lĩnh vực nào đó Ví dụ với Angular và React thì chuyên xử lý frontend, NodeJS thì chuyên xử lý backend, jQuery là một thư viện rất mạnh khi xử lý DOM HTML và CSS
Sức mạnh của Javascript là không thể chối cãi, bằng chứng là hiện nay có rất nhiều libraries và framework được viết bằng Javascript ra đời như:
• Angular: Một thư viện dùng để xây dựng ứng dụng Single Page
• NodeJS: Một thư viện được phát triển phía Server dùng để xây dựng ứng dụng realtime
• Sencha Touch: Một Framework dùng để xây dựng ứng dụng Mobile • ExtJS: Một Framework dùng xây dựng ứng dụng quản
lý (Web Applications) • jQuery: Một thư viện rất mạnh về hiệu ứng
• ReactJS: Một thư viện viết ứng dụng web
• Và còn nhiều thư viện khác
2.3.3 React-Native
2.3.3.1 Tổng quan về React-Native
Được phát triển bởi Facebook, React Native là một framework hướng đến phát triển ứng dụng di động đa nền tảng Với sự trợ giúp của React Native, lập trình viên (developer) có thể sử dụng JavaScript để tạo ra mobile apps (ứng dụng di động) hỗ trợ cho cả nền tảng Android và iOS Instagram,
Facebook, Skype,… là những ứng dụng nổi bật sử dụng React Native
Trang 1615
Framework React Native
React Native chính thức trở thành mã nguồn mở vào tháng 3 năm 2015 Cho đến nay, React Native được áp dụng trong nhiều ứng dụng của ta và cả nước ngoài
2.3.3.2 Các cách thức hoạt động của React-Native
React Native hoạt động được nhờ tích hợp 2 thread là Main Thread và JS Thread cho ứng dụng mobile Trong đó:
• Main Thread: cập nhật giao diện người dùng(UI) và xử lý tương tác người dùng
• JS Thread: thực thi và xử lý code Javascript
Trang 1716
State:
• Nếu props dùng để hứng dữ liệu từ component cha thì state được dùng để lưu dữ liệu của chính component đó với giá trị có thể thay đổi phụ thuộc vào logic bên trong component đó
• Tuy nhiên, khi sử dụng thao tác cập nhật giá trị của state, lập trình viên phải chú ý nguyên tắc mỗi khi state thay đổi, component sẽ được render lại Do đó, cần cân nhắc trong việc thay đổi giá trị state nhằm tránh việc render liên tục, giảm hiệu suất ứng dụng
2.3.3.4 Component Lifecycle
Mỗi component có các method lifecycle cho phép bạn có thể override để chạy code hiển thị lên màn hình mobile Lifecycle thường được chia làm 3 phần chính:
Trang 18Các hook phổ biến được sử dụng nhiều: useState, useEffect, useRef
useState: cập nhật giá trị của state, trong class component để thay đổi
state phải dùng cú pháp this.state Tuy nhiên với cú pháp này sẽ bị nhập nhằng con trỏ this, do đó, hook useState ra đời để giảm bớt sự nhập
nhằng trên Để thay đổi state trong functional component chỉ cần dùng hàm setState()
useEffect: là nơi thích hợp để xử lý các side effect như gọi api lấy dữ
liệu từ server, các thao tác liên quan đến DOM cũng như các vấn đề liên quan đến setInterval, network request Một useEffect sẽ gồm 3 thành phần: side effect, dependencies và cleanup:
• Side Effect: những ảnh hưởng từ bên ngoài vd gọi API, tương tác dom hay setInterval
• Cleanup: Là nơi xử lý các tác vụ liên quan đến hỷ network request, các biến thời gian Một ví dụ điển hình cho phần clean up: nếu có timeInterval mà ko clear sau khi unmount component thì khi
Trang 19- Không truyền dependencies vào thì use effect chạy lại sau khi
hàm render được gọi
- Nếu truyền vào mảng rỗng [] thì sẽ giống với hàm componentDidMount, use effect chỉ chạy 1 lần, side effect chạy
sau render lần đầu và clean up chỉ chạy khi component unmount
- Truyền filter vào mảng dependencies: chỉ chạy use effect khi filter thay đổi Ví dụ thanh search, gọi api theo filter của thanh search, filter thay đổi thì sẽ gọi api (chạy lại use effect), còn filter
ko đổi thì ko gọi api (ko chạy use effect)
useRef: dùng để lưu trữ giá trị của một biến qua các lần render Sau
mỗi lần render, giá trị của một số biến trong component sẽ quay lại giá trị ban đầu, sử dụng useRef để lưu trữ các giá trị này
2.3.3.6 React Redux - Redux toolkit
Redux toolkit bao gồm các thành phần:
Trang 2019
Store: Là nơi lưu trạng thái của ứng dụng và là duy nhất, có thể lưu trữ,
truy xuất hoặc cập nhật giá trị state trong store thông qua các action
Action: Là các event, các event này bao gồm type (để reducer biết đây
là loại action gì, từ đó thực hiện các hành động cập nhật state thích hợp) và payload (chứa thông tin state mới)
Reducer: Là các pure function, các hàm này lấy state hiện tại, kết hợp
với loại action, state mới và logic được khai báo trong reducer để cho một state có giá trị khác state ban đầu
Slice: Với redux, khi định nghĩa action và reducer phải tách ra thành
các file khác nhau, trong khi đó đối với slice, reducer và action được kết hợp lại trong cùng 1 file
2.3.3.7 Redux Thunk
Đối với Redux, Action chỉ nhận vào POJO rồi chuyển qua cho reducer Tuy nhiên, 1 số trường hợp action cần truyền vào function (Async Action) cho các tác vụ bất đồng bộ (như gọi api, settimeout)
Trang 2120
Redux Thunk là một Middleware cho phép bạn viết các Action trả về một function thay vì một plain javascript object bằng cách trì hoãn việc đưa action đến reducer
Redux Thunk được sử dụng để xử lý các logic bất đồng bộ phức tạp cần truy cập đến Store hoặc đơn giản là việc lấy dữ liệu như Ajax request
2.3.3.8 Ưu điểm của React-Native
Có thể tái sử dụng code
React Native cho phép các developer có thể tái sử dụng code trong khi phát triển các ứng dụng đa nền tảng Đặc biệt, developer có thể tái sử dụng hầu như 80-90% các đoạn code thay vì phải viết và tạo các ứng dụng riêng biệt cho các nền tảng khác nhau Ưu điểm này giúp người dùng:
• Tiết kiệm thời gian và giảm chi phí phát triển của một ứng dụng
• Tận dụng nguồn nhân lực tốt hơn
• Duy trì ít code hơn, ít bugs hơn
• Các tính năng trong cả 2 platforms cũng tương tự nhau
• Mã React Native giúp đơn giản hóa quá trình xử lý dữ liệu
• Đội ngũ phát triển ứng dụng không quá lớn
• Xây dựng ứng dụng ít native code nhất cho nhiều hệ điều hành khác nhau
• Trải nghiệm người dùng tốt hơn khi so sánh với ứng dụng Hybrid
Trang 2221
2.3.3.9 Nhược điểm của React-Native
• Yêu cầu Native code
• Hiệu năng kém hơn so với Native App
• Bảo mật chưa thật sự tốt do dùng JavaScript Do sử dụng
JavaScript, người dùng cũng sẽ bị ảnh hưởng bởi những đặc
điểm của JavaScript: dễ làm dễ sai, dẫn đến khó duy trì về
sau
• Quản lý bộ nhớ
• Tùy biến chưa thật sự tốt ở một số module
• Không thích hợp cho các app cần năng lực tính toán cao
(hash, crypto, etc)
2.3.4 .NET core
2.3.4.1 Tổng quan về NET core 6
.NET core là một framework được phát hành bởi Microsoft vào năm 2016 để xây dựng ứng dụng trên đa nền tảng (window, linux và macOS)
Có thể xây dựng ứng dụng Desktop (WPF, Winform), website, mobile, game, IOT và cả AI
Các phiên bản của NET Core: (từ net 5 (2020) microsoft đã bỏ chữ core và gọi chung là NET), khuyến khích dùng các phiên bản LTS (Long term support) được MS hỗ trợ lâu dài
.NET core là mã nguồn mở (open source) và source code được public trên github, các lập trình viên có thể vào để đóng góp phát triển giúp mã nguồn tốt hơn
2.3.4.2 Ưu điểm
.NET Core hỗ trợ xây dựng ứng dụng đa nền tảng (window, linux, MacOS), NET Framework chỉ hỗ trợ trên window
Trang 2322
.NET Core ra đời sau nên Microsoft ra đời các phiên bản mới liên tục, cập nhật theo từng năm (tương lai), NET Framework ra đời lâu và Microsoft ngừng cập nhật phiên bản(lớn) mới
.NET Core có nhanh và nhẹ hơn NET Framework
.NET Core không cần tải toàn bộ framework, chỉ cần cài bộ SDK và khi cần package nào thfi tải xuống nên nhẹ hơn .NET Framework phải cài toàn bộ framework đầy đủ thư viện lên window nên rất nặng
.NET Core là mã nguồn mở nên các nhà phát triển (developers) có thể đóng góp
để gúp mã nguồn tốt hơn
2.3.5 SQL server
2.3.5.1 Tổng quan về SQL Server
Là phần mềm được Microsoft phát triển dựa trên RDBMS
Là hệ quản trị cơ sở dữ liệu quan hệ đối tượng
Là một nền tảng độc lập
Phần mềm sử dụng cả giao diện dòng lệnh và giao diện GUI
2.3.5.2 Mục đích
Tạo cơ sở dữ liệu
Duy trì cơ sở dữ liệu
Phân tích dữ liệu bằng SSAS - SQL Server Analysis Services
Tạo báo cáo bằng SSRS - SQL Server Reporting Services
Thực hiện quá trình ETL (Extract-Transform-Load) bằng SSIS SQL Server
Integration Services
2.3.5.3 Ưu điểm
Có thể cài đặt nhiều phiên bản MS SQL cho một máy chủ
Trang 2423
Duy trì riêng biệt các môi trường (sản xuất, phát triển và thử nghiệm)
Giảm vấn đề tạm thời trên cơ sở dữ liệu
Tách biệt những đặc quyền bảo mật
ưu điểm vượt trội khiến VS Code ngày càng được ứng dụng rộng rãi
Phần mềm lập trình VSCode
Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và macOS, Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kết hợp hoàn hảo giữa IDE và Code Editor
Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay
Trang 2524
đổi theme, phím tắt, và các tùy chọn khác
2.3.6.2 Ưu điểm của VSCode
Hỗ trợ nhiều ngôn ngữ lập trình
Visual Studio Code hỗ trợ nhiều ngôn ngữ lập trình như C/C++, C#, F#, Visual Basic, HTML, CSS, JavaScript, … Vì vậy, nó dễ dàng phát hiện và đưa ra thông báo nếu chương chương trình có lỗi
Hỗ trợ đa nền tảng
Các trình viết code thông thường chỉ được sử dụng hoặc cho Windows hoặc Linux hoặc Mac Systems Nhưng Visual Studio Code có thể hoạt động tốt trên cả ba nền tảng trên
Cung cấp kho tiện ích mở rộng
Trong trường hợp lập trình viên muốn sử dụng một ngôn ngữ lập trình không nằm trong số các ngôn ngữ Visual Studio hỗ trợ, họ có thể tải xuống tiện ích mở rộng Điều này vẫn sẽ không làm giảm hiệu năng của phần mềm, bởi vì phần mở rộng này hoạt động như một chương trình độc lập
Kho lưu trữ an toàn
Đi kèm với sự phát triển của lập trình là nhu cầu về lưu trữ an toàn Với Visual Studio Code, người dùng có thể hoàn toàn yên tâm vì nó dễ dàng kết nối với Git hoặc bất kỳ kho lưu trữ hiện có nào
Hỗ trợ web
Visual Studio Code hỗ trợ nhiều ứng dụng web Ngoài ra, nó cũng có một trình soạn thảo và thiết kế website
Lưu trữ dữ liệu dạng phân cấp
Phần lớn tệp lưu trữ đoạn mã đều được đặt trong các thư mục tương tự nhau Ngoài ra, Visual Studio Code còn cung cấp các thư mục cho một số tệp
Trang 26Hỗ trợ thiết bị đầu cuối
Visual Studio Code có tích hợp thiết bị đầu cuối, giúp người dùng khỏi phải chuyển đổi giữa hai màn hình hoặc trở về thư mục gốc khi thực hiện các thao tác
Hỗ trợ Git
Visual Studio Code hỗ trợ kéo hoặc sao chép mã trực tiếp từ GitHub Mã này sau đó có thể được thay đổi và lưu lại trên phần mềm
Trang 2726
2.3.6.3 Nhược điểm của VSCode
• Tương tự như tất cả các ứng dụng electron khác, bộ nhớ và mức
sử dụng pin của VSCode khá tệ
• Không có git merge, điều mà nhiều người mong đợi, vì ST3 và
Atom có khả năng làm điều đó
• Các phím tắt mặc định không có ý nghĩa và người dùng phải cấu
hình lại gần như tất cả chúng
2.3.7 Dịch vụ Github
GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa trên nền tảng web cho các dự án phát triển phần mềm GitHub cung cấp cả phiên bản trả tiền lẫn miễn phí cho các tài khoản Các dự án mã nguồn mở sẽ được cung cấp kho lưu trữ miễn phí Tính đến tháng 4 năm 2016, GitHub có hơn
14 triệu người sử dụng với hơn 35 triệu kho mã nguồn, làm cho nó trở thành máy chủ chứa mã nguồn lớn trên thế giới
Github đã trở thành một yếu tố có sức ảnh hưởng trong cộng đồng phát triển mã nguồn mở Thậm chí nhiều nhà phát triển đã bắt đầu xem nó là một
sự thay thế cho sơ yếu lý lịch và một số nhà tuyển dụng yêu cầu các ứng viên cung cấp một liên kết đến tài khoản Github để đánh giá ứng viên
Dịch vụ github có thể truy cập và thao tác sử dụng một giao diện dòng lệnh và làm việc với tất cả cá lệnh Git tiêu chuẩn Github cũng cho phép người dùng đăng ký và không đăng ký để duyệt kho công cộng trên trang web Github cũng tạo nhiều client và plugin cho máy tính để bàn
3.1 Cơ sở dữ liệu
Trang 2827
Ứng dụng sử dụng cở sở dữ liệu noSQL và SQL Server để lưu trữ các thông tin Cụ thể, với các mục như: các bộ sưu tập , các sản phẩm, các chủ đề,… đều được lưu trữ dưới dạng JSON và được lưu trữ local ( do đặc trưng của chương trình chỉ là bản demo nên dữ liệu về các sản phẩm, ngành hàng sẽ được tạo tự động ) Các thông tin liên quan tới giỏ hàng, thông tin đăng nhập người dùng sẽ được lưu trữ trên cơ sở dữ liệu thời gian thực (Firebase) nhằm đảm bảo khả năng lưu trữ và tốc độ truy suất dữ liệu nhanh nhất Ngoài ra, để đảm bảo tính liên tục của các phiên đăng nhập, các hành động của người dùng
sẽ được lưu trữ trong bộ nhớ cache của ứng dụng (AsyncStorage)