Cách mạng công nghiệp 4.0 không chỉ là về sựchuyển đổi số mà còn về sự thay đổi toàn diện về cách chúng ta tương tác, làm việcvà tiếp cận thông tin.Vào vai một Golang backend developer,
Trang 1TRƯỜ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ẬPLẬP TRÌNH VIÊN BACKEND
Công ty thực tập: Công ty cổ phần giải
pháp thanh toán ViệtNam - VNPAY
Người phụ trách: Nguyễn Cao Ngọc Long
Trang 2TP Hồ Chí Minh, tháng 12 năm 2023
LỜI MỞ ĐẦU
Trong thời đại hiện nay, sức mạnh của công nghệ đã lan tỏa và thấm nhuầnvào mọi khía cạnh của cuộc sống Cách mạng công nghiệp 4.0 không chỉ là về sựchuyển đổi số mà còn về sự thay đổi toàn diện về cách chúng ta tương tác, làm việc
và tiếp cận thông tin
Vào vai một Golang backend developer, tôi tin rằng việc xây dựng hệ thống cơ
sở dữ liệu và các ứng dụng web không chỉ là việc triển khai mã nguồn, mà còn là việctạo ra những nền tảng mạnh mẽ hỗ trợ cho các ứng dụng tiên tiến và dễ dàng mởrộng trong tương lai
Thách thức không chỉ đến từ việc tạo ra những trang web đẹp mắt và thu hút,
mà còn từ việc đảm bảo rằng những sản phẩm này hoạt động một cách hiệu quả, antoàn và linh hoạt trong môi trường số ngày càng phức tạp
Khi bước vào VNPAY - một môi trường mà tôi tin tưởng là nơi để thể hiện sựsáng tạo và kỹ năng của mình - tôi đặt ra mục tiêu là không chỉ hoàn thành công việc
mà còn đem đến giá trị đích thực cho cả dự án và cộng đồng công nghệ
Với niềm đam mê, kiên trì và sự hứng khởi, tôi sẵn lòng học hỏi và chinh phụcnhững thách thức mới, với hy vọng rằng mỗi ngày sẽ là một cơ hội để làm tốt hơn vàđặt dấu ấn riêng trong lĩnh vực công nghệ
Trân trọng, Lâm Phú Sỹ
LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn Nguyễn Cao Ngọc Long và Nguyễn Hữu Hoàng Hiếu
Trang 3đã tạo điều kiện cho em cơ hội được thực tập tại công ty Dù trong thời gian ngắnnhưng nhờ sự chỉ dẫn nhiệt tình của anh, em đã tiếp thu những kiến thức quan trọng
để có thể tham gia một dự án thực tế
Chân thành cảm ơn các anh chị trong team đã bỏ ra nhiều thời gian, công sức đểhướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khi làm quen môi trường mới cũngnhư trong việc tiếp cận kiến thức công nghệ, kỹ năng lập trình và tư duy sản phẩm để
có thể thực hiện tốt dự án cá nhân và dự án thực tế trong thời gian qua
Em cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ,tạo điều kiện em làm báo cáo này
TP HCM, ngày 31 tháng 12 năm
2023
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC LỜI MỞ ĐẦU
LỜI CẢM ƠN
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu VNPAY
1.2 Sản phẩm công ty
1.3 Lịch làm việc khi thực tập tại công ty
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.2 Nghiên cứu kỹ thuật
2.3 Thực hiện dự án cá nhân
2.3.1 Công nghệ
2.3.2 Mô tả dự án
2.3.3 Kết quả
2.4 Tham gia dự án thực tế
CHƯƠNG 3: TỔNG KẾT
3.1 Điểm mạnh
3.2 Điểm yếu
3.3 Chuẩn đạt được
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu VNPAY
Hình 1.1 Logo VNPAY
Tên gọi
Tên gọi "VNPAY" là viết tắt của "Công ty Cổ phần Giải pháp Thanh toán Việt Nam" Tên gọi này thể hiện rõ mục tiêu của công ty là cung cấp các giải pháp thanh toán hiện đại, tiện lợi, an toàn cho người dân Việt Nam
Tên gọi "VNPAY" được đánh giá là ngắn gọn, dễ nhớ, dễ đọc, dễ phát âm, phù hợp với thị trường Việt Nam Tên gọi này cũng thể hiện được bản sắc Việt Nam, thể hiện
sự tự hào của người Việt Nam về các sản phẩm, dịch vụ thanh toán điện tử do Việt Nam phát triển
Lịch sử hình thành
VNPAY được thành lập vào ngày 08 tháng 07 năm 2014 bởi 5 ngân hàng hàng đầu
Trang 7Việt Nam gồm: VietinBank, Vietcombank, BIDV, Agribank và MBBank Công ty có trụ
sở chính tại thành phố Hồ Chí Minh
Sự ra đời của VNPAY là một bước ngoặt quan trọng trong lĩnh vực thanh toán điện tửtại Việt Nam VNPAY là công ty Fintech đầu tiên tại Việt Nam được thành lập bởi các ngân hàng Sự thành lập của VNPAY đã góp phần thúc đẩy thanh toán không dùng tiền mặt tại Việt Nam
Trong những năm đầu thành lập, VNPAY tập trung phát triển các sản phẩm thanh toán trực tuyến, thanh toán di động Đến năm 2017, VNPAY bắt đầu triển khai giải pháp thanh toán bằng mã QR Đây là giải pháp thanh toán nhanh chóng, tiện lợi và được người dân Việt Nam đón nhận tích cực
Năm 2020, VNPAY đạt mốc 100 triệu người dùng Đây là cột mốc quan trọng đánh dấu sự phát triển vượt bậc của VNPAY trong lĩnh vực thanh toán điện tử tại Việt Nam
Quy mô
VNPAY hiện là công ty Fintech hàng đầu Việt Nam trong lĩnh vực thanh toán điện tử Công ty có mạng lưới đối tác rộng khắp, bao gồm các ngân hàng, doanh nghiệp, cửa hàng,
Theo số liệu thống kê của VNPAY, tính đến tháng 12 năm 2023, công ty có hơn 100 triệu người dùng, hơn 300 ngân hàng và tổ chức tài chính tham gia liên kết, hơn 150.000 điểm chấp nhận thanh toán trên toàn quốc
VNPAY cung cấp đa dạng các sản phẩm, dịch vụ thanh toán điện tử, bao gồm:
● Thanh toán trực tuyến: thanh toán hóa đơn, mua sắm online, đặt vé,
● Thanh toán di động: thanh toán bằng mã QR, thanh toán bằng ví điện tử VNPAY,
● Thanh toán tại điểm bán: thanh toán bằng mã QR, thanh toán bằng thẻ ngân hàng,
VNPAY đã và đang nỗ lực không ngừng để phát triển các sản phẩm, dịch vụ thanh toán điện tử hiện đại, tiện lợi, an toàn, góp phần thúc đẩy thanh toán không dùng tiền mặt tại Việt Nam
Trang 8● Năm 2019, VNPAY đạt mốc 50 triệu người dùng, trở thành công ty Fintech đầutiên tại Việt Nam đạt mốc này.
● Năm 2020, VNPAY đạt mốc 100 triệu người dùng, trở thành công ty Fintech đầu tiên tại Việt Nam đạt mốc này
● Năm 2021, VNPAY đạt mốc 150 triệu giao dịch, trở thành công ty Fintech đầu tiên tại Việt Nam đạt mốc này
Nhận định
VNPAY là một trong những công ty Fintech hàng đầu tại Việt Nam Với sự phát triển vượt bậc trong những năm qua, VNPAY đã góp phần thúc đẩy thanh toán không dùng tiền mặt tại Việt Nam
Trong thời gian tới, VNPAY tiếp tục nỗ lực phát triển các sản phẩm, dịch vụ thanh toán điện tử hiện đại, tiện lợi, an toàn, góp phần nâng cao chất lượng cuộc sống của người dân Việt Nam
1.2 Sản phẩm công ty
Dưới đây là một số sản phẩm, dịch vụ nổi bật của VNPAY:
● Ví điện tử VNPAY: Ví điện tử VNPAY là một trong những ví điện tử phổ
biến nhất tại Việt Nam Ví điện tử VNPAY cho phép người dùng nạp tiền, chuyển tiền, thanh toán hóa đơn, mua sắm online, một cách nhanh
chóng, tiện lợi
Trang 9● VNPAY-QR: Thanh toán bằng mã QR là một giải pháp thanh toán hiện đại, tiện lợi được nhiều người dùng lựa chọn Với giải pháp này, khách hàng chỉcần quét mã QR để thanh toán tại các cửa hàng, siêu thị,
Trang 10● VNPAY-POS: VNPAY-POS là giải pháp thanh toán và quản lý bán hàng cho doanh nghiệp Giải pháp này giúp doanh nghiệp tiếp nhận thanh toán từ khách hàng một cách nhanh chóng, tiện lợi, đồng thời giúp doanh nghiệp quản lý bán hàng hiệu quả.
Các sản phẩm, dịch vụ của VNPAY đã góp phần thúc đẩy thanh toán không dùngtiền mặt tại Việt Nam VNPAY đã và đang nỗ lực không ngừng để phát triển cácsản phẩm, dịch vụ thanh toán điện tử hiện đại, tiện lợi, an toàn, góp phần nângcao chất lượng cuộc sống của người dân Việt Nam
Trang 111.3 Lịch làm việc khi thực tập tại công ty
Khoảng thời gian thực tập 02/07/2023-10/9/2023
Thời gian làm việc trong ngày Công việc hằng ngày bắt đầu từ lúc 8h30
đến 17h30Thời gian nghỉ trưa Thời gian nghỉ trưa khoảng 1 tiếng từ
12h tới 13hThời gian báo cáo Sau mỗi ngày cuối tuần sẽ báo cáo tiến
độ công việc với anh hướng dẫn.Để giải quyết hay trao đổi về dự án
họp để lên kế hoạch cho tuần tiếp theo Tổng kết công việc và phân công nhiệm vụ
dẫn sẽ tổng kết trao đổi những vấn đề gặp phải và xem lại những nhiệm vụ trong tuần
Trang 12CHƯƠ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
Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
● Giới thiệu tổng quan về công ty: lịch sử hình thành, tầm nhìn, sứ
mệnh, giá trị cốt lõi, lĩnh vực hoạt động, sản phẩm/dịch vụ,
● Giới thiệu về cách tổ chức của công ty: cơ cấu tổ chức, các phòng ban, chức năng nhiệm vụ của từng phòng ban,
● Giới thiệu về văn hóa làm việc của công ty: thời gian làm việc, các quy định, cách sử dụng email trong công việc,
Kết quả:
● Hiểu rõ về công ty, cách tổ chức và hoạt động của công ty
● Có thêm các kỹ năng cơ bản cần thiết để làm việc trong công ty, bao gồm:
○ Kỹ năng sử dụng email trong công việc
○ Kỹ năng làm việc có kế hoạch, có kỷ luật, có trách nhiệm
Bổ sung:
● Nội dung có thể được điều chỉnh linh hoạt tùy thuộc vào đặc thù của từng
Trang 13công ty.
● Ngoài ra, thực tập sinh có thể được tham gia các hoạt động khác như:
○ Tham quan các phòng ban, bộ phận trong công ty
○ Gặp gỡ, giao lưu với các nhân viên trong công ty
○ Tham gia các buổi đào tạo, tập huấn về các kỹ năng chuyên môn
Với những nội dung bổ sung này, thực tập sinh sẽ có cơ hội hiểu rõ hơn về công
ty, đồng thời được trang bị thêm các kỹ năng cần thiết để bắt đầu công việc mộtcách hiệu quả
2.2 Nghiên cứu kỹ thuật
Protobuf là một ngôn ngữ định dạng dữ liệu nhị phân được sử dụng để trao đổi
dữ liệu giữa các ứng dụng GRPC là một giao thức liên lạc giữa các ứng dụng sửdụng Protobuf
Trang 14Protobuf sử dụng định dạng dữ liệu nhị phân để trao đổi dữ liệu giữa các ứngdụng Định dạng dữ liệu này có thể được nén và giải nén nhanh chóng, giúp tănghiệu suất giao tiếp.
Protobuf sử dụng cấu trúc dữ liệu được định nghĩa trước để mô tả dữ liệu đượctrao đổi Cấu trúc dữ liệu này bao gồm các trường dữ liệu, kiểu dữ liệu và thứ tựcủa các trường
Để sử dụng Protobuf, các ứng dụng cần tạo các mô hình dữ liệu bằng cách sửdụng định nghĩa cấu trúc dữ liệu của Protobuf Các mô hình dữ liệu này sau đóđược sử dụng để mã hóa và giải mã dữ liệu
Trang 15GRPC là một giao thức liên lạc giữa các ứng dụng sử dụng Protobuf GRPC sửdụng HTTP/2 để truyền dữ liệu.
GRPC sử dụng các khái niệm như "gọi thủ tục từ xa" (RPC) và "tiểu trình" (stub) đểthực hiện giao tiếp giữa các ứng dụng
Một ứng dụng muốn gọi một phương thức của ứng dụng khác sử dụng GRPC sẽtạo một đối tượng "stub" cho ứng dụng đó Đối tượng "stub" này sẽ đóng vai trònhư một đại diện cho ứng dụng khác
Trang 16Để gọi một phương thức của ứng dụng khác, ứng dụng sẽ gọi phương thức tươngứng của đối tượng "stub" Phương thức này sẽ gửi một yêu cầu RPC đến ứngdụng khác.
Ứng dụng nhận được yêu cầu RPC sẽ xử lý yêu cầu và trả về kết quả Kết quả này
sẽ được gửi trở lại ứng dụng gửi yêu cầu
Điểm khác biệt so với REST và JSON
Protobuf và GRPC khác với REST và JSON ở một số điểm sau:
Tính năng Protobuf và
GRPC
REST vàJSON
Định dạng
dữ liệu
Dữ liệu nhịphân
Dữ liệuvăn bản
Trang 17Ứng dụng của Protobuf và GRPC
Protobuf và GRPC được sử dụng trong nhiều lĩnh vực, bao gồm:
● Telecommunication: Protobuf và GRPC được sử dụng trong các hệ thống viễn thông để trao đổi dữ liệu giữa các thiết bị
● Cloud computing: Protobuf và GRPC được sử dụng trong các dịch vụ đám mây để trao đổi dữ liệu giữa các ứng dụng
● Real-time applications: Protobuf và GRPC được sử dụng trong các ứng
dụng thời gian thực để trao đổi dữ liệu giữa các ứng dụng
Kết luận
Protobuf và GRPC là hai công nghệ hiệu quả để trao đổi dữ liệu giữa các ứngdụng Protobuf sử dụng định dạng dữ liệu nhị phân để tăng hiệu suất, trong khiGRPC sử dụng giao thức HTTP/2 để tăng hiệu suất và khả năng mở rộng
Trang 182.3 Thực hiện dự án cá nhân
2.3.1 Công nghệ
● Protobuf: ngôn ngữ định dạng dữ liệu nhị phân
● GRPC: giao thức liên lạc giữa các ứng dụng sử dụng Protobuf
2.3.2 Mô tả dự án
Dự án cá nhân của tôi là viết các API mô tả sự giao tiếp bằng GRPC và protobuf
Dự án này được thực hiện trong vòng 1 tuần
Quá trình thực hiện dự án được chia thành các bước sau:
1 Nghiên cứu về Protobuf và GRPC
2 Thiết kế các API
3 Lập trình các API
4 Kiểm tra các API
Trong quá trình nghiên cứu, tôi đã tìm hiểu về các khái niệm cơ bản của Protobuf
và GRPC, bao gồm:
Trang 19● Định dạng dữ liệu nhị phân của Protobuf
● Giao thức HTTP/2 của GRPC
● Các khái niệm "gọi thủ tục từ xa" (RPC) và "tiểu trình" (stub) của GRPC
Sau khi nghiên cứu, tôi đã thiết kế các API của dự án Các API này mô tả các thaotác cơ bản như tạo, đọc, cập nhật và xóa dữ liệu
Sau đó, tôi đã lập trình các API bằng ngôn ngữ Go Trong quá trình lập trình, tôi
đã sử dụng các thư viện Protobuf và GRPC của Go
Cuối cùng, tôi đã kiểm tra các API bằng cách sử dụng các công cụ như Postman
Dưới đây là một số bài học kinh nghiệm mà tôi đã rút ra được từ dự án này:
● Protobuf và GRPC là hai công nghệ hiệu quả để trao đổi dữ liệu giữa các
ứng dụng
● Protobuf sử dụng định dạng dữ liệu nhị phân để tăng hiệu suất, trong khi GRPC sử dụng giao thức HTTP/2 để tăng hiệu suất và khả năng mở rộng
● Việc sử dụng Protobuf và GRPC giúp việc trao đổi dữ liệu giữa các ứng
dụng trở nên đơn giản và hiệu quả hơn
Tôi rất hài lòng với kết quả của dự án này Dự án đã giúp tôi học hỏi thêm nhiềukiến thức về Protobuf và GRPC
2.4 Tham gia dự án thực tế
Dự án này là một website nội bộ có tên là VAM (VNPAY Account Management).Website này quản lý các tài khoản của nhân viên phòng Điện toán đám mây của VNPAY
Sử dụng các công nghệ bảo mật như SSO, LDAP, Passkey, …
Access Control List (ACL) là một tính năng để quản lý quyền truy cập tài nguyên của
Trang 20Nội dung Thời gian Yêu cầu kết quả đạt
được
Kết Quả
Chức năng
quản lý ACL
Tuần 4 - Tuần 5
Hoàn thành các tính năng:
● Quản lý ACL Group
●
● Quản lý ACL Rule
Đạt
Chức năng
quản lý ACL
Tuần 6 - Tuần 7
Hoàn thành các tính năng:
● User gửi yêu cầu ticket ACLRules
●Admin approve/rejec
t ACL Rules
● User xóa ticket
● User gia hạn ticket
Trang 21Chức năng
quản lý ACL
Tuần 8 - Tuần 11
● Thêm FunctionIds
● Deploy tính năng lên production
Trang 23CHƯƠNG 3: TỔNG KẾT
Trong quá trình thực tập công ty CNTT, em đã có một trải nghiệm hết sức đáng giá
Em đã có cơ hội tiếp cận với một môi trường làm việc chuyên nghiệp và nhận được
sự hỗ trợ tận tâm từ các đồng nghiệp và người hướng dẫn Em đã áp dụng kiến thức
đã học từ trường đại học vào các dự án thực tế và đã phát triển được nhiều kỹ năngquan trọng trong lĩnh vực CNTT Qua quá trình này, em đã nhận thấy tầm quan trọngcủa việc tiếp tục học tập và nỗ lực không ngừng trong việc nắm bắt các công nghệmới nhằm nâng cao khả năng làm việc và phát triển sự nghiệp trong ngành Chỉ trongthời gian hạn chế, em đã hoàn thành dự án cá nhân trong quá trình training với cáctính năng, yêu cầu đặt ra ban đầu
Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng hạn và đạtchất lượng tốt
3.1 Điểm mạnh
- Khả năng học tốt các công nghệ mới được giao
- Hòa đồng , thân thiện với mọi người trong công ty
- Đưa ra sáng kiến, sáng tạo cho dự án
- Nghiên cứu, tìm hiểu các nguồn tham khảo trên internet, sử dụng trí tuệ nhân tạo trong công việc tốt, rút ngắn thời gian và tăng năng suất làm việc
3.2 Điểm yếu
- Giao tiếp công việc còn hạn chế
- Thiếu kinh nghiệm trong dự án thực tế về các công cụ , phần mềm cơ bản
- Một số task thời gian hoàn thành trễ so với thực tế
- Viết code còn chưa tốt cần phải cải thiện hơn nữa trong tương lai
G3 Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm phần
mềm tại doanh nghiệp
G4 Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải quyết vấn
đề