Tải bản đầy đủ (.pdf) (42 trang)

Báo cáo thực tập genkin website order nhật việt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.4 MB, 42 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

THỰC TẬP TỐT NGHIỆP

ĐỀ TÀI: Genkin – Website Order Nhật – Việt

Công ty thực tập: GENKIN COMPANY LIMITED
Lớp: SE501.N21.PMCL
Sinh viên thực hiện: Nguyễn Huy Hồng – 1952153
TP. Hồ Chí Minh, ngày 15 tháng 6 năm 2023


NHẬN XÉT
(Của giảng viên)

............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................


............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................


MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP ............................................................ 7
I.

Giới thiệu chung về công ty ..................................................................................... 7

II. Cơ cấu tổ chức .......................................................................................................... 8
III. Văn hóa cơng ty ........................................................................................................ 8

CHƯƠNG 2: NỘI DUNG THỰC TẬP .............................................................................. 11
I.

Công nghệ, giải pháp và quy trình áp dụng ............................................................ 11
1. Giới thiệu về Git ................................................................................................. 11
2. Giới thiệu về VSCode ......................................................................................... 14
3. Giới thiệu về mơ hình làm việc Agile – Scrum .................................................. 16
4. Tìm hiểu về RESTful API .................................................................................. 20
5. Tìm hiểu về NodeJS ............................................................................................ 22
6. Tìm hiểu về NextJS ............................................................................................ 22
7. Tìm hiểu về ReactJS ........................................................................................... 24
8. Vịng đời ReactJS ............................................................................................... 25
9. Tìm hiểu về Redux .............................................................................................. 27
10. Shopify ................................................................................................................ 29
11. Redux Saga ......................................................................................................... 30
12. Tìm hiểu về Ant Design ...................................................................................... 32

II. Genkin – Website Order Nhật – Việt ..................................................................... 33
1. Bối cảnh ra đời của Website Genkin .................................................................. 33
2. Nhiệm vụ của sinh viên được giao ..................................................................... 33
3. Mục tiêu xây dựng Website Genkin ................................................................... 33
4. Các chức năng chính của Website Genkin version 1.0 ...................................... 33
CHƯƠNG 3: NHẬT KÝ THỰC TẬP ................................................................................. 38
CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC QUA ĐỢT THỰC TẬP ......................................... 39
I.

Kết quả thu được .................................................................................................... 39

II. Các điểm yếu của bản thân ..................................................................................... 40
III. Gợi ý cho chương trình học .................................................................................... 40

IV. Cảm nhận về cơng ty .............................................................................................. 40
DANH MỤC TÀI LIỆU THAM KHẢO .............................................................................. 42


LỜI NĨI ĐẦU
Ngành cơng nghiệp Logistics là một trong những lĩnh vực quan trọng và đóng góp
sự phát triển đáng kể cho nền kinh tế toàn cầu. Sự phát triển của công nghệ đã tác động sâu
sắc và mang lại những thay đổi tích cực trong lĩnh vực này. Cơng ty ABC, nơi tơi đã thực
tập với vị trí Javascript Intern, là một trong những công ty hàng đầu trong ngành Logistics
và cung cấp dịch vụ order, mua hộ từ Nhật về Việt Nam.
Nhận thức sớm về tầm quan trọng của việc áp dụng công nghệ trong hoạt động kinh
doanh. Sự số hóa và tự động hóa quy trình đã giúp nâng cao hiệu suất và đồng thời tối ưu
hóa chi phí. Trong thời gian thực tập, tơi đã được tham gia vào việc phát triển và cải thiện
ứng dụng web sử dụng Javascript, góp phần tạo ra những giải pháp thơng minh và tiện ích
cho việc quản lý và vận hành trong lĩnh vực Logistics.
Trên phạm vi quốc tế, ngành Logistics đóng vai trị khơng thể thiếu trong việc kết
nối các quốc gia và đáp ứng nhu cầu vận chuyển hàng hóa trên tồn cầu. Việc quản lý chuỗi
cung ứng, vận chuyển và lưu trữ hàng hóa trở nên phức tạp và yêu cầu sự chính xác và hiệu
quả cao. Tại Việt Nam, ngành Logistics cũng đang phát triển với tốc độ nhanh chóng, đáp
ứng nhu cầu ngày càng tăng của thị trường nội địa và quốc tế. Công ty Genkin đã xác định
được tầm nhìn của mình và tham vọng trở thành một trong những đơn vị hàng đầu trong
lĩnh vực này.
Tôi đã lựa chọn thực tập tại cơng ty Genkin vì nhận thấy sự chun nghiệp và tầm
nhìn xa của cơng ty trong lĩnh vực Logistics. Cơng ty Genkin đã tạo điều kiện tốt cho tôi
để áp dụng và phát triển các kỹ năng lập trình Javascript của mình trong một mơi trường
thực tế. Sự hỗ trợ và đồng hành của đội ngũ nhân viên giàu kinh nghiệm đã giúp tơi nắm
bắt nhanh chóng các quy trình và công nghệ trong ngành, đồng thời tạo điều kiện để tơi gặt
hái được những thành tựu trong q trình thực tập.



LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến Ban giám hiệu/trưởng khoa/đơn vị phụ trách
thực tập, cùng toàn thể giáo viên và các thành viên trong trường Đại học Công nghệ Thông
tin – ĐHQG – HCM. Nhờ sự hỗ trợ và cung cấp cơ hội thực tập, em đã có một trải nghiệm
thực tế quý báu trong q trình học tập.
Em muốn bày tỏ lịng biết ơn đặc biệt đến giáo viên hướng dẫn của em, người đã
tận tâm và kiên nhẫn hướng dẫn, giúp đỡ và chia sẻ kiến thức quý giá trong suốt thời gian
thực tập. Sự tận tâm và sự chỉ dạy của họ đã giúp em hiểu rõ hơn về ngành nghề và phát
triển kỹ năng cần thiết để làm việc trong môi trường chuyên nghiệp.
Em cũng muốn gửi lời cảm ơn sâu sắc tới cơng ty GENKIN COMPANY LIMITED
nơi em đã có cơ hội thực tập. Đội ngũ nhân viên tại công ty đã nhiệt tình hỗ trợ và chia sẻ
kiến thức của mình với em. Em rất biết ơn sự cung cấp môi trường làm việc chuyên nghiệp
và cơ hội tham gia vào các dự án thực tế, từ đó nâng cao kỹ năng và kiến thức của mình
trong lĩnh vực Logistic và ứng dụng công nghệ.
Cuối cùng, em xin gửi lời cảm ơn đến nhà trường, những người đã đào tạo và trang
bị cho em kiến thức nền tảng và những kỹ năng quan trọng trong suốt quãng thời gian học
tập. Sự hỗ trợ và sự tạo điều kiện tốt nhất từ nhà trường đã giúp em tự tin và sẵn sàng để
vươn tới thực tế công việc.
Một lần nữa, em xin bày tỏ lòng biết ơn sâu sắc đến Ban giám hiệu/trưởng khoa/đơn
vị phụ trách thực tập, giáo viên hướng dẫn và cơng ty GENKIN COMPANY LIMITED vì
những cơ hội quý báu và sự hỗ trợ mà em đã nhận được. Em sẽ tiếp tục nỗ lực và áp dụng
những kinh nghiệm thu được để phát triển bản thân và đóng góp vào sự phát triển của cộng
đồng và ngành nghề trong tương lai.

Nguyễn Huy Hồng
TP. Hồ Chí Minh, ngày 16 tháng 06 năm 2023


DANH MỤC CÁC CỤM TỪ VIẾT TẮT


CD

: Client Development

API : Application Programming Interface


CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

I.
-

-

Giới thiệu chung về cơng ty
Tên đơn vị: CƠNG TY TNHH GENKIN (GENKIN COMPANY LIMITED)
Lĩnh vực hoạt động: Logistic, Công nghệ Thông tin
Địa chỉ:
• Trụ sở Việt Nam: 129 Nguyễn Trãi, Bến Thành, Quận 1, Tp.HCM
• Trụ sở Nhật Bản: 598-4 Matsuishi, Satte-shi, Saitama-ken, Nhật Bản
Trang web: www.genkin.vn
Email:
Điện thoại: (+84) 93 415 3230
Thời gian làm việc: Thứ 2 đến thứ 6: 09h00 - 18h30
Slogan: “Your product We care”
Sứ mệnh: Sứ mệnh trở thành cơng ty vận chuyển Nhật – Việt hàng đầu.

Hình 1.1: Logo Công ty TNHH GENKIN

-


-

Genkin là một sản phẩm ứng dụng công nghệ để hỗ trợ tốt hơn cho người dùng Việt
(đặc biệt là các cá nhân kinh doanh) mua & nhập hàng hố một cách dễ dàng. Genkin
ln giữ trong mình niềm tin và sứ mệnh trở thành công ty vận chuyển Nhật – Việt
hàng đầu. Hướng đến tương lai hỗ trợ các nhà bán lẻ và người dùng thực hiện các
giao dịch mua bán hàng hóa xuyên biên giới một cách dễ dàng nhất.
Nắm bắt nhu cầu và thường xuyên cập nhật xu hướng trong ngành, mỗi một thành
viên của công ty luôn không ngừng nâng cao khả năng của bản thân để mang đến
giá trị tích cực cho khách hàng.


II.

Cơ cấu tổ chức

GENKIN được tổ chức theo mơ hình phẳng. Một thành viên sẽ đóng các vai trị
linh hoạt trong các nhóm tổ chức khác nhau:
• Các phịng ban liên hệ mật thiết với ban giám đốc, đảm bảo sự kết nối bền chắc
trong cơng việc
• Các thành viên trong từng phòng ban kết nối và trao đổi trực tiếp với nhau dưới sự quản
lý của Trưởng phịng ban

Hình 1.2:GENKIN Organization Chart
III. Văn hóa cơng ty
Văn hóa ở GENKIN được xây dựng theo các giá trị cốt lõi:
Genkin luôn cố gắng cung cấp dịch vụ chăm sóc khách hàng tuyệt vời bằng cách áp
dụng nguyên tắc của Omotenashi - nghệ thuật chăm sóc khách hàng đặc biệt từ Nhật Bản.
Omotenashi chắt chiu trong niềm tin rằng mỗi khách hàng là một khách mời quý giá. Với



tư duy này, GENKIN luôn nỗ lực vượt qua mong đợi và thỏa mãn kỳ vọng của khách
hàng, nhằm tạo ra những trải nghiệm đáng nhớ.
Mặc dù luôn cố gắng hồn thiện, Genkin nhận thức rằng đơi khi có thể xảy ra những
sai sót nhỏ. Một phản hồi xấu có thể lan rộng, nhưng trăm phản hồi tích cực lại khơng thể
nổi bật với số đơng. Vì vậy, Genkin ln hy vọng rằng những khách hàng thân thiết có
thể thấu hiểu và trân trọng nỗ lực của chúng tôi để cung cấp mọi dịch vụ theo cách tốt
nhất.
Bằng cách áp dụng triết lý Omotenashi, Genkin cam kết tạo ra một môi trường chân
thành, tôn trọng và quan tâm đến mọi chi tiết nhỏ nhất. GENKIN sẽ luôn lắng nghe và
đáp ứng nhanh chóng các yêu cầu và phản hồi từ khách hàng, bất kể lớn hay nhỏ. Một số
đặc trưng chính của văn hóa Omotenashi:
• Sự chào đón và thân thiện: Văn hóa Omotenashi khuyến khích người phục vụ
chào đón khách hàng một cách nhiệt tình, thân thiện và vui vẻ. Sự chào đón chân
thành và niềm vui trong việc phục vụ được coi là rất quan trọng.
• Sự tận tụy và tinh thần phục vụ: Người phục vụ trong văn hóa Omotenashi đặt
khách hàng lên hàng đầu và tận tụy trong việc đáp ứng nhu cầu của họ. Họ cố
gắng cung cấp dịch vụ tốt nhất và làm hài lịng khách hàng một cách tận tâm.
• Sự tinh tế và chú ý đến chi tiết: Văn hóa Omotenashi quan tâm đến các chi tiết
nhỏ và sự hoàn hảo trong từng khía cạnh của dịch vụ. Người phục vụ chú ý đến
những điều nhỏ nhặt như cách sắp xếp bàn, trang trí, chất lượng thức ăn và cách
phục vụ để tạo ra trải nghiệm tốt nhất cho khách hàng.
• Sự nhạy bén và đồng cảm: Người phục vụ trong văn hóa Omotenashi cố gắng
hiểu và đồng cảm với nhu cầu và mong muốn của khách hàng. Họ sẵn lòng lắng
nghe và thấu hiểu để có thể đáp ứng và vượt qua mong đợi của khách hàng.
• Sự tơn trọng và lịng biết ơn: Văn hóa Omotenashi coi trọng sự tơn trọng và lòng
biết ơn đối với khách hàng. Người phục vụ thể hiện sự tôn trọng bằng cách đối xử
công bằng, lịch sự và tử tế. Họ cũng biết ơn sự tin tưởng và lựa chọn của khách
hàng.

• Sự linh hoạt và khách hàng trọng yếu: Văn hóa Omotenashi đặt khách hàng lên
trên hết và sẵn lòng thay đổi, tùy chỉnh dịch vụ để đáp ứng nhu cầu đặc biệt của
khách


Thời gian làm việc từ thứ 2 đến thứ 6: 9h00 – 18h30.
Thời gian nghỉ trưa từ 12:00 PM đến 1:30 PM, mọi nhân viên có thể ăn trưa và ngủ
trước khi bắt đầu công việc vào buổi chiều.
Nhân viên công ty trước mỗi ngày làm việc đều phải ghi rõ các “task” sẽ thực hiện và
thời gian thực hiện các "task" của dự án, để đảm bảo rằng dự án đang được thực hiện.
Đồ ăn nhẹ, trà, cà phê miễn phí cho tất cả nhân viên vào thời gian nghỉ ngơi.


CHƯƠNG 2: NỘI DUNG THỰC TẬP

I.

Công nghệ, giải pháp và quy trình áp dụng
1. Giới thiệu về Git

Hình 2.1: Mơ hình cơng cụ Git.
Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version
Control System – DVCS) là một trong những hệ thống quản lý phiên bản phân tán phổ
biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ nhiều phiên
bản khác nhau của một mã nguồn được nhân bản (clone) từ một kho chứa mã nguồn
(repository), mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể ủy thác (commit) rồi đưa
lên máy chủ nơi đặt kho chứa chính. Và một máy tính khác (nếu họ có quyền truy cập)
cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới
nhất trên máy tính kia. Trong Git, thư mục làm việc trên máy tính gọi là Working Tree.



Hình 2.2: Sơ đồ liên hệ giữa các máy tính.
Ngồi ra, có một cách hiểu khác về Git đơn giản hơn đó là nó sẽ giúp bạn lưu lại
các phiên bản của những lần thay đổi vào mã nguồn và có thể dễ dàng khơi phục lại dễ
dàng mà khơng cần copy lại mã nguồn rồi cất vào đâu đó. Và một người khác có thể xem
các thay đổi của bạn ở từng phiên bản, họ cũng có thể đối chiếu các thay đổi của bạn rồi


gộp phiên bản của bạn vào phiên bản của họ. Cuối cùng là tất cả có thể đưa các thay đổi
vào mã nguồn của mình lên một kho chứa mã nguồn.
Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một “ảnh chụp” (snapshot) trên mỗi
tập tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử dụng lại một ảnh
chụp nào đó mà bạn có thể hiểu đó là một phiên bản. Đây cũng chính là lợi thế của Git so
với các DVCS khác khi nó khơng “lưu cứng” dữ liệu mà sẽ lưu với dạng snapshot.

Hình 2.3: Sơ đồ cơ cấu của Git.

-

Master: là nhánh chính, run trên production.

-

Dev: là nhánh replica cho nhánh master cộng với các nhánh feature đang được phát
triển.

-

Feature: được tách từ nhánh dev, chức năng sau khi được phát triển sẽ được merge
vào dev trước khi merge vào master.



Hình 2.4: Git branching.
2. Giới thiệu về VSCode

Hình 2.5: Chương trình VSCode
Visual Studio Code là sản phẩm của Microsoft, ra mắt vào tháng 4 năm 2015 ở hội nghị
Build. Đặc điểm nổi bật là đơn giản, gọn nhẹ, dễ dàng cài đặt.


Visual Studio Code có thể cài đặt được trên cả Windows, Linux và Mac OS và hỗ trợ
nhiều ngôn ngữ khác nhau.
Hình ảnh giao diện ban đầu của VSCode như sau:

Hình 2.6: Giao diện ban đầu của VSCode.
Nhìn sang thanh sidebar ta thấy 4 biểu tượng, đầu tiên là hai tờ giấy xếp chồng lên
nhau, đây là cây thư mục chứ những file mà chúng ta đang làm việc. Hình chiếc kính lúp
hỗ trợ chức năng tìm kiếm. Một điểm đặc biệt là Visual Studio Code được tính hợp ln
git, rất tiện cho việc quản lý code của chúng ta.
Biểu tượng thứ 4 là diệt con bọ, chính là chức năng hỗ trợ chúng ta fix bug. Hình
vng cuối cùng là nơi cho phép chúng ta cài thêm các phần extensions mà Microsoft và
cộng đồng viết thêm cho chúng ta, hỗ trợ quá trình code.


3. Giới thiệu về mơ hình làm việc Agile – Scrum
Tại sao cần Agile?



Sự khác nhau giữa phương pháp làm việc truyền thống-Waterfall và Agile có thể tổng

kết trong 2 từ: cứng nhắc và linh hoạt. Trong khi Waterfall là 1 process khá cứng nhắc và
nguyên tắc, thì Agile lại rất linh hoạt và không ngừng thay đổi sao cho phù hợp với thời
đại và ý kiến của khách hàng . Chi tiết hơn về sự khác nhau như sau:
-

-

Waterfall là quy trình có cấu trúc, bạn khơng thể bắt đầu công đoạn mới cho đến
khi công đoạn trước đấy được hồn thành. Agile là quy trình linh hoạt, cho phép
bạn chạy dự án theo cách mà bạn muốn. Waterfall là tuần tự, và Agile thì khơng
ép buộc vào 1 quy trình tuần tự nào.
Các dự án theo quy trình Waterfall thường cần define cụ thể yêu cầu của dự án,
trong khi các yêu cầu trong các dự án Agile có thể thay đổi và phát triển.
Trong các dự án Waterfall, bạn không thể thay đổi những thứ bạn đã làm trong
những công đoạn trước, tuy nhiên Agile rất phù hợp và có thể đáp ứng được các
thay đổi.

Hình 2.7: Mơ hình Agile và Waterfall.


Một cách tổng quát, khi một sản phẩm được xây dựng theo mơ hình Waterfall, thì các
cơng việc trong dự án được xác định theo nguyên tắc lúc ban đầu, và không tiếp thu được
ý kiến của người sử dụng trong quá trình hình thành sản phẩm. Việc giành quá nhiều thời
gian cho một sản phẩm mà không biết được rằng mức độ khả thi cũng như những điều mà
người sử dụng quan tâm sẽ gây ảnh hưởng rất nhiều đến chất lượng sản phẩm.
Trong khi đó, Agile giúp các nhà phát triển có thể nhận dạng, điều chỉnh các vấn đề và
khiếm khuyết một cách nhanh chóng. Các điểm mạnh của Agile là:
-

-


-

-

-

Thực hiện thay đổi dễ dàng: Bởi vì dự án được chia thành các phần nhỏ, riêng
biệt, không phụ thuộc lẫn nhau, nên những thay đổi được thực hiện rất dễ dàng,
ở bất kỳ giai đoạn nào của dự án.
Không cần phải nắm mọi thông tin ngay từ đầu: Phù hợp với những dự án
chưa xác định được mục tiêu cuối cùng rõ ràng, vì việc này không quá cần thiết
trong giai đoạn đầu.
Bàn giao nhanh hơn: Việc chia nhỏ dự án cho phép đội ngũ có thể tiến hành
kiểm tra theo từng phần, xác định và sửa chữa vấn đề nhanh hơn, nhờ đó việc
bàn giao công việc sẽ nhất quán và thành công hơn.
Chú ý đến phản hồi của khách hàng và người dùng: Cả khách hàng và người
dùng cuối đều có cơ hội để đóng góp các ý kiến và phản hồi, từ đó họ sẽ có ảnh
hưởng một cách mạnh mẽ và tích cực tới sản phẩm cuối cùng.
Cải tiến liên tục: Agile khuyến khích thành viên trong đội ngũ làm việc và khách
hàng cung cấp phản hồi của mình, khi đó các giai đoạn khác nhau của sản phẩm
cuối có thể được kiểm tra và cải thiện lại nhiều lần nếu cần.

Trong ngành công nghiệp phần mềm, phương thức sản xuất phần mềm có một vai trị
vơ cùng quan trọng, nó quyết định cấu trúc tổ chức, qui trình phát triển, khả năng thành
công của các dự án. Trong những năm gần đây Agile- Scrum nổi lên và thay thế mơ hình
thác nước (Waterfall) truyền thống như một phương thức tổ chức sản xuất ưu việt được
nhiều công ty phần mềm áp dụng và thành công. Quản lý dự án theo nguyên tắc Agile nổi
lên như một sự thay thế tối ưu cho bất kì dự án nào.



Hình 2.8: Quy trình Agile.



Định nghĩa mơ hình Agile.

Khái niệm Agile (viết tắt của Agile Software Development) có nghĩa là phương thức
phát triển phần mềm linh hoạt, được ứng dụng trong quy trình phát triển phần mềm với
mục tiêu là đưa sản phẩm đến tay người dùng càng nhanh càng tốt. Ngun tắc phát triển
mơ hình là phân đoạn lặp (iterative) và tăng trưởng (incremental), theo đó nhu cầu và
giải pháp tiến hóa thơng qua sự hợp tác giữa các nhóm tự quản và liên chức năng.
Rất nhiều nơi định nghĩa Agile như một phương pháp. Thực chất, Agile giống như một
phương pháp luận, một triết lý dựa trên hơn nguyên tắc phân đoạn vòng lặp (iterative) và
tăng trưởng (incremental).
Ngày nay, triết lí Agile đã vượt xa khỏi khu vực truyền thống của mình là phát triển
phần mềm để đóng góp sự thay đổi trong cách thức làm việc, quản lí, sản xuất ở các ngành
khác như sản xuất, dịch vụ, sales, marketing, giáo dục... và trở thành một phương thức quản
lý dự án phổ biến nhất hiện nay với nhiều đại diện được gọi là các phương pháp “họ Agile”.


4 tơn chỉ trong Agile


-

-

-


-

Cá nhân và sự tương hỗ quan trọng hơn quy trình và cơng cụ: Trọng tâm đặt lên
con người, xây dựng tương tác và hỗ trợ giữa các thành viên trong nhóm. Những
thành viên có năng lực, chịu tương trợ nhau trong công việc sẽ mang đến thành
công cho dự án.
Sản phẩm dùng được tốt hơn tài liệu đầy đủ: Tập trung thời gian để làm ra phần
mềm hoàn chỉnh đáp ứng hoàn hảo yêu cầu khách hàng.
Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng: Hiểu được khách
hàng cần gì để tư vấn và điều chỉnh sản phẩm thay vì chỉ dựa vào các điều khoản
trong hợp đồng.
Phản hồi thay đổi hơn là bám sát kế hoạch: Agile khuyến khích thích nghi với sự
thay đổi, đó có thể là thay đổi về cơng nghệ, nhân sự, deadline,...
12 Ngun tắc



-

Đáp ứng tồn diện nhu cầu khách hàng thơng qua việc giao hàng sớm và sản phẩm
có giá trị.
Thay đổi u cầu được chào đón, thậm chí là rất muộn trong quá trình phát triển.
Giao phần mềm chạy được cho khách hàng một cách thường xuyên.
Nhà kinh doanh và các kỹ sư phần mềm cần làm việc cùng nhau trong suốt dự án.
Xây dựng dự án xung quanh các cá nhân có động lực. Cung cấp sự hỗ trợ cần
thiết, môi trường làm việc và niềm tin để hồn thành cơng việc.
Trao đổi trực tiếp là cách truyền đạt thơng tin hiệu quả nhất.
Thước đo chính của tiến độ là phần mềm chạy tốt.
Phát triển liên tục và bền vững.
Cải tiến sự linh hoạt bằng cách quan tâm đến kỹ thuật và thiết kế.

Nghệ thuật tối đa hóa lượng công việc chưa xong - Sự đơn giản là cần thiết.
Nhóm tự tổ chức
Thích ứng thường xun với những thay đổi.
Các bước làm việc theo Agile - Scrum



Scrum định nghĩa quy tắc cho bốn sự kiện chủ chốt nhằm tạo môi trường và quy cách
hoạt động và cộng tác cho các thành viên trong dự án. Các sự kiện này diễn ra trước khi
Sprint bắt đầu (là sự kiện lập kế hoạch – Sprint Planning), trong khi Sprint diễn ra (sự kiện
Daily Scrum) và sau khi Sprint kết thúc (sự kiện Sprint Review và Sprint Retrospective).
-

Sprint Planning (Họp Kế hoạch Sprint- Iteration): Nhóm phát triển gặp gỡ với
Product Owner để lên kế hoạch làm việc cho một Sprint (xem thêm phần Sprint


-

-

-

bên dưới). Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải
phát triển, phân tích và nhận biết các công việc phải làm kèm theo các ước lượng
thời gian cần thiết để hoàn tất các tác vụ. Chia nhỏ công việc thành các backlog
(task) để có thể theo dõi tiến độ dự án dễ dàng hơn. Scrum sử dụng cách thức lập
kế hoạch từng phần và tăng dần theo thời gian, theo đó, việc lập kế hoạch khơng
diễn ra duy nhất một lần trong vịng đời của dự án mà được lặp đi lặp lại, có sự
thích nghi với các tình hình thực tiễn trong tiến trình đi đến sản phẩm.

Daily Scrum (Họp Scrum hằng ngày): Scrum Master tổ chức cho Đội sản xuất
họp hằng ngày trong khoảng 15 phút để Nhóm Phát triển chia sẻ tiến độ cơng
việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển phần mềm
suốt một Sprint.
Sprint Review (Họp Sơ kết Sprint): Cuối Sprint, nhóm phát triển cùng với
Product Owner sẽ rà soát lại các cơng việc đã hồn tất (DONE) trong Sprint vừa
qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm.
Sprint Retrospective (Họp Cải tiến Sprint): Dưới sự trợ giúp của Scrum Master,
nhóm phát triển sẽ rà sốt lại tồn diện Sprint vừa kết thúc và tìm cách cải tiến
quy trình làm việc cũng như bản thân sản phẩm.

4. Tìm hiểu về RESTful API
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo
đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác.
API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến
như JSON hay XML.
REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một
kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp
giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người
dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử
lý dữ liệu.
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web
để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ
biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau.
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử
dụng những phương thức HTTP riêng.



GET (SELECT): Trả về một Resource hoặc một danh sách Resource.

POST (CREATE): Tạo mới một Resource.





PUT (UPDATE): Cập nhật thơng tin cho Resource.
DELETE (DELETE): Xố một Resource.

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với
Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.


5. Tìm hiểu về NodeJS

Hình 2.9: Logo NodeJS
NodeJs là một nền tảng dựa vào Chrome Javascript runtime để xây dựng các ứng dụng
nhanh, có độ lớn. NodeJS sử dụng các phần phát sinh các sự kiện (event-driven), mơ hình
non-blocking I/O để tạo ra các ứng dụng nhẹ và hiệu quả cho các ứng dụng về dữ liệu thời
gian thực chạy trên các thiết bị phân tán.
NodeJs là một mã nguồn mở, đa nền tảng cho phát triển các ứng dụng phía Server và
cácCác dự án theo quy trình Waterfall thường cần define cụ thể yêu cầu của dự án, trong
khi các yêu cầu trong các dự án Agile có thể thay đổi và phát triển.
Trong các dự án Waterfall, bạn không thể thay đổi những thứ bạn đã làm trong những
công đoạn trước, tuy nhiên Agile rất phù hợp và có thể đáp ứng được các thay đổi.
/>
6.

Tìm hiểu về NextJS


Hình 2.10: Logo NextJS


Next.js là một framework phát triển ứng dụng web phía máy chủ (server-side) và phía
máy khách (client-side) được xây dựng trên nền tảng React.js. Nó cho phép phát triển
ứng dụng web đơn trang (single-page applications) và đa trang (multi-page applications)
một cách dễ dàng và hiệu quả.
Một số đặc điểm và lợi ích chính của Next.js bao gồm:
1. Server-side rendering (SSR): Next.js hỗ trợ SSR tự động, cho phép dự án của
bạn tạo ra các trang web có hiệu suất tốt và thân thiện với SEO. SSR cho phép dữ
liệu được tạo ra trên phía máy chủ trước khi được gửi đến máy khách, cung cấp
trải nghiệm tốt hơn cho người dùng cuối.
2. Pre-rendering: Next.js hỗ trợ pre-rendering, cho phép tạo ra các trang tĩnh trước
đó được xây dựng trên cơ sở dữ liệu hoặc từ nguồn dữ liệu bên ngoài. Điều này
giúp cải thiện tốc độ tải trang và tối ưu trải nghiệm người dùng.
3. Routing: Next.js cung cấp hệ thống định tuyến (routing) đơn giản và mạnh mẽ.
Bạn có thể tạo ra các đường dẫn đẹp và dễ đọc cho các trang và tùy chọn định
tuyến động.
4. Hot Module Replacement (HMR): Next.js hỗ trợ HMR, cho phép bạn chỉnh sửa
mã nguồn và nhìn thấy những thay đổi mà khơng cần tải lại trang. Điều này giúp
tăng năng suất phát triển và tiết kiệm thời gian.
5. Hỗ trợ TypeScript: Next.js hỗ trợ TypeScript một cách nền tảng, giúp bạn phát
triển ứng dụng web với kiểu dữ liệu tĩnh và cải thiện tính ổn định của mã nguồn.
6. Cơng cụ tối ưu hóa: Next.js đi kèm với các cơng cụ tối ưu hóa như mã hóa (code
splitting), tải ảnh ưu tiên (image optimization), và cache trên máy khách. Điều này
giúp giảm thiểu thời gian tải và tối ưu hiệu suất của ứng dụng.
/>

7. Tìm hiểu về ReactJS


Hình 2.11: Logo ReactJS

React.js là một thư viện Javascript đang nổi lên trong những năm gần đây với xu hướng
Single Page Application. Trong khi những framework khác cố gắng hướng đến một mơ hình
MVC hồn thiện thì React nổi bật với sự đơn giản và dễ dàng phối hợp với những thư viện
Javascript khác. Nếu như AngularJS là một Framework cho phép nhúng code javasscript
trong code html thơng qua các attribute như ng-model, ng-repeat...thì với React là một
library cho phép nhúng code html trong code javascript nhờ vào JSX, bạn có thể dễ dàng
lồng các đoạn HTML vào trong JS.Tích hợp giữa javascript và HTML vào trong JSX làm
cho các component dễ hiểu hơn.
/>

8. Vịng đời ReactJS

Hình 2.12: Vịng đời ReactJS
Một vịng đời sẽ có trạng thái như sau:


Initialization
-



Tương tự hàm khởi tạo (constructor) được gọi đến khi một thể hiện của
component được tạo ra.

Mounting
Là các hàm gắn kết, kết nối các component với nhau.
-


componentWillMount()


-

Được gọi đến trước khi hiển thị component ra ngồi trình duyệt. Q trình
này diễn ra hết sức nhanh chóng, vì vậy khơng nên làm q nhiều điều tại
đây và hàm này được thực hiện một lần duy nhất (từ phiên bản 16.3 thì hàm
này khơng được khuyến khích dùng và sẽ bị loại bỏ ở bản 17).

Render()


Được gọi khi hiển thị component ra ngồi trình duyệt.



Sẽ return về nội dung mà bạn đã viết, có thể là một component hoặc null hoặc
là false (trong trường hợp không muốn render gì cả).


×