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

Báo cáo thực tập vị trí thực tập business analyst và software engineer

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 (3.74 MB, 41 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP
VỊ TRÍ THỰC TẬP: BUSINESS ANALYST VÀ SOFTWARE ENGINEER

Cơng ty thực tập:

CƠNG TY TNHH TRUNG TÂM PHÁT
TRIỂN PHẦN MỀM VIỆT NAM (NICV)

Người phụ trách:
Thực tập sinh:

Long Mai Anh
Trần Bảo Ân

TP. Hồ Chí Minh, tháng 07 năm 2023

1


LỜI MỞ ĐẦU

Trong kỷ nguyên công nghệ ngày nay, ngành Cơng nghệ phần mềm nói riêng và Cơng
nghệ thơng tin nói chung ln là nhân tố đóng vai trị quan trọng trong q trình phát
triển của xã hội.
Cơng nghệ Web, hay công nghệ sản xuất phần mềm được áp dụng trong hầu hết các
lĩnh vực bao gồm tài chính ngân hàng, điện tử viễn thông, giáo dục, y học... Hiện nay
đã có đến hơn 1.5 tỷ trang web, nhưng nhu cầu tạo ra những trang web mới vẫn chưa
có dấu hiệu giảm.


Do đó, một trang web muốn được nhiều người sử dụng khơng chỉ đáp ứng được yếu tố
hình thức, nội dung mà còn tốc độ truy cập và khả năng xử lý yêu cầu khi số lượng
người dùng tăng cao. Làm thế nào để sản phẩm tạo ra đạt chất lượng cao ở các yếu tố
trên luôn làm bất kì một đội ngũ phát triển website nói riêng và phần mềm nói chung
cần đầu tư chất xám. Để thử thách bản thân trong ngành công nghiệp web, em đã lựa
chọn Business Analyst là định hướng cho việc học cũng như nghề nghiệp trong tương
lai.
Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã
học và có được trải nghiệm trong mơi trường thực tế, em đã quyết định tham gia vào CÔNG
TY TNHH TRUNG TÂM PHÁT TRIỂN PHẦN MỀM VIỆT NAM (NICV), trực thuộc Ngân
hàng Quốc gia Úc (National Australia Bank) – một môi trường lý tưởng và chuyên nghiệp để
hiện thực hóa mơ ước của mình.

2


LỜI CẢM ƠN
Sau thời gian học tập, trau dồi kiến thức trên ghế nhà trường, em đã có cơ hội thực tập
tại công ty Trung tâm phát triển phần mềm NAB – NAB Innovation Center Vietnam.
Đây là cơ hội để em áp dụng những kiến thức đã học vào thực tế và tự mình tích lũy
thêm nhiều kinh nghiệm q báu.
Em xin gửi đến quý thầy, cô giáo trong khoa Công nghệ phần mềm trường Đại học
Công nghệ thông tin lời cảm ơn chân thành nhất. Đặc biệt, em xin gửi lời cảm ơn đến
cô Trần Thị Hồng Yến, giảng viên khoa Cơng nghệ phần mềm, người đã tận tình hướng
dẫn, giúp đỡ em hoàn thành chuyên đề báo cáo thực tập này với lời cảm ơn sâu sắc nhất.
Bên cạnh đó em xin chân thành cảm ơn Ban lãnh đạo và các anh chị đồng nghiệp trong
công ty NICV, đặc biệt là các anh chị trong đơn vị Digital Access Foudation (DAF) đã
nhiệt tình giúp đỡ em trong cơng việc thực tập tại công ty. Cuối cùng em xin chân thành
cảm ơn anh Nguyễn Minh Tuấn và chị Long Mai Anh người trực tiếp hỗ trợ em trong
suốt quá trình học tập và làm việc tại NICV.

Trong khoảng thời gian thực tập tại cơng ty, em đã có nhiều kinh nghiệm hơn trong
cơng việc nhưng vì kiến thức cịn hạn chế trong q trình thực tập, khó tránh khỏi sai
sót, rất mong q thầy, cơ bỏ qua. Đồng thời trong q trình làm báo cáo có thể có nhiều
thiếu sót nên em rất mong được nhận các ý kiến đóng góp từ thầy cơ, để em có thêm
nhiều kinh nghiệm và rút ra được bài học cho mình.
Vì yêu cầu và chính sách bảo mật của quý doanh nghiệp nên các tài liệu và hình
minh hoạ ở bên dưới khơng được tiết lộ ra bên ngồi.
Lời cuối cùng em xin chân thành cảm ơn tất cả thầy cô, anh chị đã giúp đỡ em trong thời gian
qua.
Trân trọng!
TP. HCM, ngày 03 tháng 07 năm 2023

Trần Bảo Ân
3


NHẬN XÉT CỦA KHOA
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................
...................................................................................................................................................

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


4


MỤC LỤC
LỜI MỞ ĐẦU ............................................................................................................................ 2
LỜI CẢM ƠN ............................................................................................................................ 3
NHẬN XÉT CỦA KHOA ......................................................................................................... 4
MỤC LỤC ................................................................................................................................. 5
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP ................................................................ 7
1.1. Giới thiệu chung về nơi thực tập..................................................................................... 7
1.2. Sản phẩm công ty ............................................................................................................ 9
1.3. Lịch làm việc khi thực tập tại công ty........................................................................... 10
1.3.1. Vị trí cơng việc khi thực tập tại cơng ty................................................................. 10
1.3.2. Nhiệm vụ chính ...................................................................................................... 11
1.3.3. Nhật ký thực tập ..................................................................................................... 11
CHƯƠNG 2: NỘI DUNG THỰC TẬP ................................................................................... 13
2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong cơng ty ................................................ 13
2.1.1. Quy trình hoạt động, các quy định ở NICV ........................................................... 13
2.1.2. Bảo mật .................................................................................................................. 13
2.1.3. Tiện ích .................................................................................................................. 14
2.2. Nghiên cứu kỹ thuật ...................................................................................................... 17
2.2.1. ReactJS ................................................................................................................... 17
2.2.2. AWS ....................................................................................................................... 18
2.2.3. Azure ...................................................................................................................... 18
2.2.4. NAB-X ................................................................................................................... 19
2.2.5. Microservice at NAB ............................................................................................. 20
2.2.6. Kiểm thử ................................................................................................................ 21
2.2.7. Học về kỹ năng phân tích nghiệp vụ, ReactJS, thực hành Agile & Scrum, DevOps
và seminar ........................................................................................................................ 22
2.3. Thực hiện dự án cá nhân ............................................................................................... 26

2.3.1. Mô tả dự án ............................................................................................................ 26
2.3.2. Công nghệ sử dụng ................................................................................................ 32
2.3.3. Qui trình phát triển phần mềm ............................................................................... 33
2.3.3. Kết quả ................................................................................................................... 35
2.4. Tham gia dự án thực tế ................................................................................................. 38
CHƯƠNG 3: TỔNG KẾT ....................................................................................................... 39
3.1. Điểm mạnh................................................................................................................... 39
5


3.2. Điểm yếu ...................................................................................................................... 39
3.3. Chuẩn đạt được ........................................................................................................... 40
TÀI LIỆU THAM KHẢO ....................................................................................................... 41

6


CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1. Giới thiệu chung về nơi thực tập

Hình 1.1. Logo cơng ty TNHH Trung tâm phát triển phần mềm Việt Nam (National
Australian Bank Innovation Center Vietnam)

Trung tâm Sáng tạo Phần mềm NAB Việt Nam (NICV) là chi nhánh tại Việt Nam
của Ngân hàng quốc gia Úc - National Australia Bank (NAB) Technology & Enterprise
Operations, thuộc bộ phận Hoạt động Doanh nghiệp & Công nghệ của Ngân hàng Quốc
gia Úc, cung cấp công nghệ tuyệt vời giúp cải thiện trải nghiệm khách hàng cho tám
triệu khách hàng của NAB. Sứ mệnh của NICV là kết nối những nhân tài của Việt Nam
với NAB và cùng nhau cải thiện cuộc sống của những người trong cộng đồng công nghệ
Việt Nam.

Là ngân hàng kinh doanh lớn nhất của Úc, NAB tập trung vào việc mang lại những
trải nghiệm tuyệt vời cho khách hàng. Để làm được điều này, họ đã sử dụng các công
nghệ hiện đại, bên cạnh những tài năng công nghệ bao gồm các kỹ sư phần mềm hàng
đầu, các chuyên gia điện toán đám mây và kỹ sư chất lượng. NAB cung cấp đầy đủ các
dịch vụ liên quan đến lĩnh vực ngân hàng như cá nhân, ngân hàng doanh nghiệp, ngân
hàng tư nhân, ngân hàng thương mại và tổ chức.
StarCamp là chương trình cố vấn cơng nghệ đặc biệt của NICV, được thiết kế dành
riêng cho sinh viên chuyên ngành công nghệ đang muốn bắt đầu sự nghiệp trong lĩnh
vực công nghệ; cũng như những người chuyển đổi nghề nghiệp đang tìm cách thay đổi
nghề nghiệp liên quan đến công nghệ. Chương trình bao gồm:
● Xây dựng các sản phẩm ngân hàng khác nhau cho ngân hàng doanh nghiệp lớn
nhất của Úc

7


● Phát triển các kỹ năng mềm như làm việc nhóm, quản lý thời gian, lãnh đạo, tự
học, giao tiếp và kỹ năng tiếng Anh cần thiết cho sản phẩm phần mềm đặc biệt trong
môi trường quốc tế
● Phát triển các kỹ thuật chun mơn như: Nghiệp vụ phân tích kinh doanh, kỹ năng
lập trình (Java, ReactJS, NodeJS, DevOps), qui trình phát triển phần mềm chuyên
nghiệp (Agile, TDD)
NICV đang thực hiện các dự án thú vị để giúp tám triệu khách hàng của NAB: Bằng
cách tham gia NICV, các kỹ sư phần mềm ở Việt Nam sẽ có quyền truy cập vào nhiều
dự án và cơ hội, hợp tác chặt chẽ với các đồng nghiệp ở Úc và với các đối tác toàn cầu
như AWS và Microsoft để tận dụng các công nghệ hiện đại mới nhất. Niềm đam mê
của NICV trong việc tạo ra giá trị và phục vụ khách hàng tốt có nghĩa là NICV khơng
ngừng nỗ lực để xác định lại các tiêu chuẩn xuất sắc của mình.
Thơng tin liên hệ:
Văn phịng 1: Etown 5 tầng 7, số 364 đường Cộng Hịa, phường 13, quận Tân Bình,

thành phố Hồ Chí Minh, Việt Nam
Văn phịng 2: Etown Central tầng 11, số 11 đường Đoàn Văn Bơ, quận 4, thành phố
Hồ Chí Minh, Việt Nam
Văn phịng 3: 54A đường Nguyễn Chí Thanh, quận Đống Đa, Hà Nội, Việt Nam
Email:

Hình 1.2. Văn phịng làm việc tại trụ sở Etown 5, thành phố Hồ Chí Minh

8


1.2. Sản phẩm công ty
Digital Access Foundation - DAF

Quản lý truy cập là một trong những công việc quan trọng hàng đầu liên quan đến việc
bảo mật của ngân hàng. DAF cung cấp giải pháp bằng sản phẩm phần mềm cho cả phía
người dùng dịch vụ/khách hàng và nhân viên của NAB. Nói đơn giản, DAF là nền tảng
quản lý truy cập bao gồm đăng nhập, đăng xuất, đổi mật khẩu, xác thực đa yếu tố, khóa
tài khoản. Ở NAB là có rất nhiều nghiệp vụ ngân hàng và chính sách nên tương ứng có
nhiều nhóm kỹ sư. Vấn đề DAF gặp phải là giao tiếp, tương tác và quản lý truy cập của
tất cả các nhóm đó. DAF đã giải quyết bài toán trên bằng khái niệm multi-tenant.
NABX platform
Là sản phẩm phần mềm được phát triển để hỗ trợ cho lập trình front-end tại NAB. “nabX
platform” cung cấp bộ cơng cụ đầy đủ hỗ trợ cho lập trình viên front-end bao gồm:
-

Bộ tạo mini-app: bộ khởi tạo một mini-app mới bằng câu lệnh

-


NAB-X SDK: thư viện dùng để xử lý các vấn đề thường gặp khi tương tác
với mini-app

-

Bộ công cụ deploy - pipeline tools: tập các câu lệnh dùng để chạy CI, tạo môi
trường cloud để deploy mini-apps

-

Thư viện giao diện NUIT – NAB user interface toolkit: cung cấp UI
component đáp ứng qui định của NAB và đảm bảo chất lượng khi kiểm thử
truy cập (Accessibility Testing)

NABServ platform
Tương tự như NABX, NICV tạo ra bộ thư viện hỗ trợ mạnh mẽ cho lập trình phía Backend,
với kiến trúc Microservices. Hiện nay NABServ đang hỗ trợ ba loại ngôn ngữ Javascript
(NodeJS), Java và Python. NABServ đã cấu hình sẵn và đưa ra các khn mẫu để lập trình
viên tn theo từ đó tạo sự thống nhất khi phải làm việc trong tập thể lớn. NABServ còn hỗ
trợ CI/CD mạnh mẽ.
NABOne

Đây là cơng cụ phát triển nội bộ cho phía bên nhân viên ngân hàng của NAB liên quan
đến nghiệp vụ ngân hàng. “nabOne” là nơi tổng hợp rất nhiều dự án, ứng dụng được
thiết kế theo kiến trúc micro-frontend với nhiều mini-apps chứa trong một ứng dụng to
gọi là “Shell”. Đúng như tên gọi, đây là một dự án tích hợp đầy đủ cơng cụ cho nhân
viên ngân hàng. Các mini-app này tập trung tại một nơi nên dễ quản lý, theo dõi.
9



Khơng chỉ có các sản phẩm trên nền tảng web, NAB còn xây dựng các sản phẩm trên
nên tảng di động, sử dụng React Native làm công nghệ chủ yếu bởi tính ưu việt của
React Native như hỗ trợ đa nền tảng, tải trang nhanh, dễ dàng tiếp cận với lập trình viên
và cơng đồng người dùng rộng lớn.
1.3. Lịch làm việc khi thực tập tại cơng ty
1.3.1. Vị trí cơng việc khi thực tập tại cơng ty

Vị trí: Chun viên phân tích kinh doanh (Business analyst) + Kỹ sư phát triển phần
mềm (Front-end Engineer).
Mô tả công việc: Tại công ty em đã thực tập với vị trí Software Engineer Intern (Kỹ
sư phát triển phần mềm thực tập). Em đã được thực tập cho bộ phận Digital Access
Foundation tại NICV. Đây là bộ phận chuyên nghiên cứu và phát triển các ứng dụng hỗ
trợ quản lý truy cập. Công việc chính của em trong nhóm là một Kỹ sư Frontend
(Frontend Engineer) và Chun viên phân tích nghiệp vụ.
Ở vai trị chuyên viên phân tích kinh doanh, em nhận yêu cầu cấp cao từ Product
owner. Nghiên cứu các yếu tố liên quan đến dự án bao gồm từ khóa mới, khái niệm
trong ngân hàng, ý nghĩa về mặt doanh nghiệp, vị trí vai trị của dự án trong bức tranh
tổng thể. Thực hiện các nghiệp vụ để phân tích để xác định chính xác phạm vi của dự
án, làm rõ yêu cầu cấp cao, sau đó chia yêu cầu thành các epic và user stories theo mơ
hình Agile-Scrum. BA tạo các cuộc họp với nhóm phát triển và với Product owner để
làm rõ các vấn đề còn tồn đọng trong Bản thiết kế giải pháp. BA cũng sẽ là người chuẩn
bị các buổi họp cho Scrum team. Theo dõi tiến độ cơng việc và liên tục hỗ trợ nhóm
phát triển để đảm bảo tiến độ và chất lượng sản phẩm. Kết hợp với kỹ sư chất lượng
(QE) để kiểm tra, đánh giá chất lượng sản phẩm đã thỏa định nghĩa hoàn thành chưa.
Ở vai trò kỹ sư Frontend, em chịu trách nhiệm chính cho việc triển khai giao diện
của các ứng dụng chạy trên Web, hiểu đơn giản hơn là những hoạt động mà có thể nhìn
thấy được ở phía trình duyệt. Kỹ sư Frontend yêu cầu có kĩ năng lập trình phát triển ứng
dụng hoặc cải tiến các ứng dụng có sẵn, kết hợp trực tiếp với các kỹ sư khác đảm bảo
sự thống nhất của toàn hệ thống, cũng như cải thiện trải nghiệm của người dùng. Ngoài
ra kỹ sư Frontend cịn có trách nhiệm phải tìm cách tối ưu chức năng, đảm bảo về tốc

độ xử lý và hiệu suất của tồn bộ trang web. Thêm cả đó là được quyền read-only các
cơ sở hạ tầng DevOps của NICV.
10


1.3.2. Nhiệm vụ chính

-

Nghiên cứu và phát triển ứng dụng cho bên phía nhân viên ngân hàng và khách
hàng.

-

Phân tích yêu cầu và quản lý sự kiện trong Scrum

-

Nghiên cứu tìm hiểu cơng nghệ và trình bày giới thiệu cho nhóm.

-

Tìm hiểu và triển khai thử nghiệm một số cơng nghệ để ứng dụng.

1.3.3. Nhật ký thực tập

Thứ tự

Nhiệm vụ


Thời gian

1

Tìm hiểu về quy trình hoạt 03/10/2022 – 10/10/2022 Tìm hiểu được quy trình hoạt
động, các quy định ở NICV

2

Kết quả
động, các quy định ở NICV

Tham gia các buổi training 11/10/2022 – 11/11/2022 Hiểu và chạy được NAB-X,
về ReactJS, AWS, Azure,

nabServ, ôn lại được kiến

NAB-X, nabServ, testing

thức về ReactJS, học được
kiến thức mới về AWS và
Azure
Tham gia các buổi huấn
luyện về ReactJS và BA
Tham gia các buổi huấn
luyện về Kiểm thử đơn vị

3

Thực hiện dự án tốt nghiệp – 14/11/2022 – 28/12/2022 Thực hiện dự án tốt nghiệp

Digital Access Foundation

theo 3 Sprints, sẽ được trình
bày cụ thể trong Chương 3 III

4

Gia nhập NICV - nhóm 3/1/2023 – nay

Trở thành nhân viên chính

Fraud

thức của NICV, vị trí BA,
nhóm Fraud – chun về các
nghiệp vụ phát hiện và ngăn
chặn hành vi của tội phạm
tiền tệ như rửa tiền, tài trợ
khủng bố.

11


12


CHƯƠNG 2: NỘI DUNG THỰC TẬP
2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
2.1.1. Quy trình hoạt động, các quy định ở NICV


NICV thuộc lĩnh vực về ngân hàng và đặc biệt là ngân hàng số thời đại 4.0 nên các
quy định không những được số hố mà cịn được quản lý rất khắt khe
Tài sản, vật tư, laptop, màn hình của cơng ty và cả thông tin dự án, tài liệu bất kể
định dạng nào, khơng được cơng khai ra bên ngồi mạng nội bộ của cơng ty khi khơng
được cho phép.
NICV có rất nhiều biện pháp xử lý, chế tài những ai vi phạm, bảo mật là một trong
những ưu tiêu hàng đầu của công ty.
NICV cho phép làm việc linh hoạt – làm từ xa hoặc lên văn phòng, đặt trước chỗ
ngồi, đặt trước phịng họp, có khu vực canteen ở 2 lầu, có 2 chi nhánh là Etown Central
ở Đồn Văn Bơ Quận 4 và Etown 5 ở quận Tân Bình. Cung cấp cho nhân viên thẻ nhân
viên được cấp các quyền cần thiết.
2.1.2. Bảo mật

Ngày đầu làm việc ở NICV sẽ được cấp một tài khoản chứng thực. Tài khoản này
có quy định phải thay đổi mật khẩu mỗi 90 ngày và mặc định sẽ khơng có bất cứ quyền
gì tác động lên được cơ sở hạ tầng của NICV, muốn vậy, phải đi xin quyền.
Mạng nội bộ của NICV chỉ có thể truy cập thơng qua VPN ZScaler với tài khoản
chứng thực trên cùng các chứng chỉ bảo mật khác chỉ có trên máy được cơng ty cấp.
Mạng nội bộ của NICV có 1 domain và hệ thống rút gọn link riêng bắt đầu bằng tiền
tố go/<đường dẫn>, sử dụng hệ sinh thái Microsoft để làm việc (Word, PowerPoint,
OneDrive, Outlook, Teams), Zoom cho Meeting, bảo mật 2 lớp bằng ứng dụng
Authenticator. Lưu trữ tài liệu bằng Confluence của Atlassian
Để xin quyền truy cập vào myID và sẽ được các cấp trên xem xét có cấp quyền hay
khơng.
Các bài test bảo mật, cần làm các bài test bảo mật này nếu muốn mở thêm một vài
tính năng cho các quá trình phát triển phần mềm sau này. Hoặc nếu khơng hồn thành
trong thời gian quy định sẽ có quy định xử phạt. Ngồi ra NICV cũng có kì kiểm tra

13



định kì bất chợt như gửi thử mail xem nhân viên có phát hiện ra đây là mail lừa đảo
khơng.
Source code của công ty được quản lý bởi Github Enterprise. Cơng ty cũng chặn đa
số các trang có thể tuồn tài liệu ra ngồi như Gmail, Google, Discord,…

Hình 2.1.2.1 Phần mềm Zscaler kiểm sốt truy cập thơng tin qua các thiết bị trong
cơng ty
2.1.3. Tiện ích

-

Mạng xã hội riêng trong cơng ty: Workplace của Facebook

-

Có các kênh chat2tech, hỗ trợ về mặt kĩ thuật rất nhanh

-

Trang đặt phòng, đặt bàn

-

Các trang blogs, báo, tin tức giao diện trực quan và dễ hiểu

-

Các trang thông tin tài liệu, thuật ngữ hỗ trợ cho quá trình phát triển phần mềm
để nắm rõ nghiệp vụ hơn


-

Các hội nhóm về kĩ thuật, thể thao, cầu lơng, bóng đá

-

Các training về kĩ năng mềm, phịng cháy chữa cháy

-

Cung cấp Digital Learning Platform như LinkedIn Learning, Cloud Guru,
Udemy, Pluralsight, O’Reilly,…
14


-

Cùng rất nhiều tiện ích khác

Hình 2.1.3.1. Dashboard chứa các tiện ích như đặt chỗ, xem thơng tin mới của
cơng ty, yêu cầu quyền truy cập…

Hình 2.1.3.2. Ứng dụng đặt chỗ làm việc

15


Hình 2.1.3.3. Workplace – Mạng xã hội, nơi chia sẻ thơng tin của mọi người


Hình 2.1.3.4. Confluence-nền tảng lưu trữ thơng tin chung của tồn cơng ty

16


Hình 2.1.3.5. Conpliance training – Các khóa học liên quan đến kĩ năng mềm và kiến thức về
ngân hàng và bảo mật thơng tin

2.2. Nghiên cứu kỹ thuật
2.2.1. ReactJS

-

Ơn tập về các khái niệm cơ bản trong ReactJS

-

Cài đặt môi trường ReactJS dưới máy của NICV

-

Tổ chức, thuyết trình 1 chủ đề về ReactJS

-

Tham gia mini contest về ReactJS

-

Với vai trò là một kỹ sư Frontend, em cần được cung cấp các kiến thức liên quan đến

công nghệ đang được sử dụng để triển khai frontend tại NAB. NICV đã tổ chức các
buổi bootcamp và huấn luyện riêng cho các kỹ sư frontend. Nội dung và lộ trình em
đã học:
Thời gian
Tuần 1

Phần
1

2
3
4
5
Tuần 2

1

Chủ đề
JS và ReactJS

Mô tả
ES6 Javascript syntax
Git command line + Mac command line
Research about JS on JavaScript | MDN
(mozilla.org)
Component, State, DOM events
Props, Virtual DOM, React Lifecycle
Method
RESTful APIs, async, await, promise,
callback

React Design Pattern and optimizing code in
React
Typescript React
17


2

React Typescript
and NAB
Technology

3
4

5

Tuần 3

1

Global state
management

2
3
4
5
Tuần 4


1
2
3
4
5

Mini-capstone
project

Function, Array, Object, Alias
Type, class, interface, module, generic
Typescript (practice)
NUIT
Setup project environment
React Lazy
Code Splitting
GraphQL
BFF infrastructure
Integration between React and GraphQL
Integration between React and GraphQL
(continue)
React router
Redux
Context API
Redux middleware
Redux toolkit
Practice with redux basic
Unit test with React testing library
Unit test with Jest and introduce to minicapstone project
Phát triển ứng dụng cơ bản hỗ trợ ra quyết

định cho vay mua nhà

2.2.2. AWS

-

Tham gia training của team Viet-AWS ở Etown Central

-

Tìm hiểu các khái niệm cơ bản về cloud nói chung và AWS nói riêng

-

AWS tại Việt Nam

-

Phổ biến về việc thi chứng chỉ AWS

-

Tham gia minigame AWS để kiểm tra lại về kiến thức của buổi training

-

Phổ biến về các sự kiện của AWS do NICV và AWS hợp tác

-


AWS được sử dụng ra sao tại NICV

2.2.3. Azure

-

Khái niệm về multi-cloud, tại sao đã có AWS mà NICV lại tổ chức thêm Azure

-

Tham gia buổi training của Microsoft

-

Azure tại NICV

-

Các phần quà sự kiện, event thi chứng chỉ cloud của Azure

18


2.2.4. NAB-X

-

Tìm hiểu về kiến trúc Microfrontend của NICV, sơ lược về Microservices của
NICV


-

Các thuật ngữ “miniapps” “superapp” WebComponent, upstream, downstream

-

Thư viện UI/UX của NAB - NUIT

-

Tiến hành cài đặt và cấu hình NABX

-

Chạy NAB - XX ở các chế độ như standalone, docker, WebComponent

-

Cấu hình và hiểu các lỗi xảy ra của NAB – X

-

Tìm hiểu các built-in module của NAB – X

-

Tìm hiểu kiến trúc của NAB – X

-


TÌm hiểu kiến trúc BFF

-

Testing ở NAB – X

Hình 2.2.4. Kiến trúc Mircro-frontend tại NAB

19


Hình 2.2.5. Cách các miniapp giao tiếp với nhau

Hình 2.2.6. Kiến trúc của NABX
2.2.5. Microservice at NAB

-

Design pattern của nabServ, nabServ viết theo Test Driven Development để
thuận lợi cho testing và sử dụng kết hợp nhiều design pattern khác như Abstract
factory, Builder, Singleton cho việc sử dụng DAF Token khi kết nối với Kong
API Gateway, DAF token là token sử dụng để chứng thực request có hợp lệ và
đủ quyền hạn hay không
20


-

Cài đặt và cấu hình nabServ


-

Viết thử 1 API trên nabServ

-

Đọc tài liệu về cách nabServ tích hợp với kafka, testing, Deputy, Checkmarx,
Sonatype, Prisma, SonarQube

Hình 2.2.5.1. Kiến trúc Microservices ở NAB
2.2.6. Kiểm thử
Không chỉ tập trung vào viết mã nguồn, ở NAB quy trình phát triển phần mềm cịn được tập
trung vào kiểm thử. NAB bỏ rất nhiều công sức và chi phí để kiểm thử sản phẩm trước khi
đưa đến tay người dùng cuối. Tại đây em được thực hành kiểm thử qua nhiều loại hình như
kiểm thử đơn vị, kiểm thử đầu cuối, kiểm thử kết hợp trên nhiều môi trường như Dev
(Deverlopment), ST (System Test), SIT (System Integration Test), Non-prod (Môi trường
gần với môi trường của người dùng nhất) và Prod (Môi trường thực tế). Em được hướng dẫn
sử dụng các công cụ kiểm thử tự động như Cypress, Postman.

21


2.2.7. Học về kỹ năng phân tích nghiệp vụ, ReactJS, thực hành Agile & Scrum, DevOps và
seminar
2.2.7.1. Kỹ năng phân tích nghiệp vụ

Kỹ năng phân tích nghiệp vụ là kỹ năng quan trọng cần có của một BA. Trong
q trình học tập tại NAB, em đã tham gia các buổi chia sẻ về phương pháp tiếp
cận một dự án phần mềm, chọn qui trình phát triển phù hợp, phương pháp phân
tích yêu cầu nghiệp vụ, phương pháp làm rõ yêu cầu nghiệp vụ, thực hành viết

tài liệu, nghiên cứu công nghệ liên quan, thuyết trình với nhóm lập trình viên,
thực hiện data-mapping. Qua 1,5 tháng học tập trong chương trình huấn luyện
riêng cho BA của Starcamp, em được củng cố và bổ sung rất nhiều kiến thức liên
quan đến BA. Chính những kiến thức này sẽ hỗ trợ rất nhiều trên con đường trở
thành BA chuyên nghiệp như mong muốn của em.

22


2.2.7.2. Thực hành Agile & Scrum

Agile là một phương pháp phát triển phần mềm linh hoạt để làm sao đưa sản
phẩm đến tay người dùng càng nhanh càng tốt càng sớm càng tốt. Scrum là một
framework của Agile.
Đặc trưng của Agile: Tính lặp (Iterative), tính tiệm tiến (Incremental) và tiến hố
(Evolutionary), thích nghi (adaptive).
Giá trị cốt lỗi của Scrum: Minh bạch (transparency), thanh tra (inspection), thích
nghi (adaptaion).
Một Scrum team gồm: Product Owner – Định nghĩa yêu cầu và thang đo, đánh
giá đầu ra của sản phẩm, Scrum Master – người triển khai các công cụ Scrum,
Development team – đội phát triển sản phẩm, có số nhân sự từ khoảng 8-10
người. Scrum team sẽ hoạt động theo chu kì, mỗi chu kì là một sprint tương
đương 2 tuần. Cơng việc lấy từ yêu cầu cấp cao sẽ được chia thành các epic. Một
epic chứa nhiều user stories. Ở NAB, các user stories này được quản lý bằng
công cụ Rally.
Các sự kiện quan trọng trong một Sprint:
-

Sprint grooming: BA triển khai thông tin về dự án cho Developer team.
Developer team chọn user stories sẽ thực hiện dựa vào tốc độ làm việc của

nhóm. Developer team sẽ ước lượng độ phức tạp và thời gian thực hiện bằng
cách cho điểm đối với mỗi user story. Điểm tuân theo dãy Fibonacci.

-

Sprint planning: Mô tả của các user stories sẽ được kiểm tra lại, phân công
công việc, trách nhiệm cho từng thành viên dựa vào khả năng của họ.

-

Daily Standup Meeting: Buổi họp thường kéo dài trong 15 phút với mục
tiêu báo cáo tiến độ hàng ngày. Cần trả lời được ba câu hỏi:
o Hôm qua đã làm gì?
o Hơm nay sẽ làm gì?
o Có gặp khó khăn gì khơng?

-

Sprint Review: đánh giá sprint để ước lượng tốc độ làm việc và chuẩn bị tốt
hơn cho sprint sau. Sprint review sẽ tập trung vào sản phẩm phần mềm

-

Sprint Retrospective: rà soát và đánh giá tập trung vào con người, nhận xét
điểm tốt, xấu và hành động để phát huy hoặc khắc phục
23


Để có cái nhìn sâu sắc về Agile – Scrum, NICV đã tổ chức bootcamp liên quan
đến lý thuyết Agile – Scrum do các chuyên gia nhiều năm kinh nghiệm giảng dạy.

Không chỉ giảng dạy, chia sẻ về mặt lý thuyết, các buổi bootcamp này đều có phần
thực hành làm việc nhóm tương tự như một Scrum team. Sau đó, các kiến thức liên
quan Agile được áp dụng vào dự án tốt nghiệp Starcamp. Dự án được thực hiện
trong 3 sprint với đầy đủ các vai trò của một scrum team. Vì thế, em có cơ hội thực
hành thuyết Agile một cách bài bản.

Hình 2.2.7.2.1. Seminar về Scrum-Agile
2.2.7.3. DevOps

-

Theo kiến trúc multi-cloud – tức là sử dụng nhiều đơn vị cung cấp điện toán
đám mây - cloud cùng 1 lúc, đây là mơ hình triển khai đắt đỏ, hiện NAB
đang triển khai ở hai đơn vị lớn chính là AWS và Azure.

-

NAB triển khai bám sát theo những thang đo nhu giá cả, hiệu năng, giãn nở,
chịu lỗi,… (Shared Responsibility Models.)

-

NAB triển khai rất nhiều thứ nhờ DevOps, ở đây sẽ ghi những công cụ quan
trọng và thiết yếu:
o Jenkins: công cụ để triển khai CI/CD Pipeline 1 cách tự động: CI –
continuous integration giúp chạy các kiểm tra bảo mật, kiểm thử phần
mềm, format code. CD – Continuous Delivery ở đây sẽ triển khai các
24



ứng dụng sau khi CI xong lên các môi trường, môi trường được chia
ra nhiều loại như local, dev, SIT1, SIT2,… Production. Ở NAB,
Jenkins không sử dụng nguyên bản mà được cấu hình thủ cơng lại để
phù hợp nhu cầu sử dụng.
o Deputy: Đảm bảo các công việc, code, triển khai tuân thủ theo quy
định riêng của công ty khi triển khai
o Checkmarx: Giải pháp phân tích lỗ hổng bảo mật CVE, OWASP,
SANS, CWE, PCI DSS,… và đưa ra best fix – hướng giải quyết tốt
nhất
o SonarQube: Là một nền tảng mã nguồn mở giúp chúng ta có thể kiểm
tra chất lượng code của dự án có tuân thủ theo phong cách như việc
lùi đầu dòng, dư thừa khoảng trắng, canh lề, tạo biến nhưng không
sử dụng, sắp xếp import thư viện theo thứ tự bảng chữ cái,… được viết
bằng Java nhưng nó hổ trợ nhiều ngơn ngữ khác nhau: PHP, Ruby,
Java (bao gồm cả Android), C#, JavaScript, TypeScript, C/C++,
Kotlin, Go,… và hỗ trợ các cơ sở dữ liệu để lưu trữ kết quả: MySql,
Postgresql.
o Prisma (Prisma Cloud Security): Giải pháp bảo vệ tránh lộ mã nguồn,
nguy hiểm từ lúc code dưới môi trường local và ngay cả khi đã triển
khai lên các cloud services
o Kong: API Gateway, nơi giao tiếp giữa upstream và downstream trong
kiến trúc của NAB. Kong Gateway cũng giống như các API Gateway
khác, nó nhẹ, được dùng cho Microservices, có độ trễ thấp, hiệu suất
cao và giãn nở tốt.
▪ Ưu điểm:
❖ Che dấu được cấu trúc của hệ thống microservices với
bên ngồi
❖ Phần code phía frontend sẽ gọn gàng hơn
❖ Dễ dàng theo dõi và quản lý traffic.
❖ Requests caching và cân bằng tải.

❖ Thêm một lớp bảo mật nữa cho hệ thống.
25


×