1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo thực tập back end developer

29 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo thực tập Back-end Developer
Tác giả Hoàng Văn Phúc
Người hướng dẫn ThS. Trần Anh Dũng
Trường học Đại học Quốc gia TP. Hồ Chí Minh, Trường Đại học Công nghệ Thông tin
Chuyên ngành Công nghệ phần mềm
Thể loại Báo cáo thực tập
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 29
Dung lượng 0,96 MB

Nội dung

Tham gia vào môi trường làm việc chuyênnghiệp như Vitalify Asia, em hy vọng có cơ hội áp dụng kiến thức đã học và phát triển bản thântrong môi trường thực tế, góp phần vào sự thành công

Trang 1

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 BACK-END DEVELOPER

Công ty thực tập : Vitalify Asia Người phụ trách : Võ Ngọc Trọng Thực tập sinh : Hoàng Văn Phúc

Thành phố Hồ Chí Minh, tháng 12 năm 2023

Trang 2

LỜI MỞ ĐẦU

Trong thời đại của Cuộc cách mạng Công nghiệp 4.0, lĩnh vực Công nghệ thông tin, đặcbiệt là ngành phần mềm, đóng vai trò then chốt trong sự phát triển toàn diện của xã hội Trongbối cảnh sự tiến bộ mạnh mẽ của công nghệ và quá trình số hóa, vai trò của Backend Developer

- những người chịu trách nhiệm xây dựng và duy trì hệ thống server, cơ sở dữ liệu và logic xử

lý dữ liệu - ngày càng trở nên quan trọng

Với sự tăng cường mạnh mẽ của ứng dụng, phần mềm, đặc biệt là các ứng dụng trên nềntảng website và di động cũng như sự phổ cập của các thiết bị thông minh, nhu cầu của ngườidùng đối với các ứng dụng, phần mềm không ngừng tăng cao Trong bối cảnh này, BackendDeveloper đóng vai trò quan trọng trong việc phát triển ứng dụng để đảm bảo tính ổn định, bảomật và hiệu suất cho các hệ thống và dịch vụ trực tuyến

Backend Developer không chỉ đòi hỏi sự thành thạo về ngôn ngữ lập trình và các côngnghệ liên quan, mà còn đòi hỏi khả năng tối ưu hóa hiệu suất hệ thống, quản lý cơ sở dữ liệu và

xử lý các yêu cầu từ phía Frontend Việc xây dựng ứng dụng không chỉ dừng lại ở việc có đầy

đủ chức năng mà còn phải đảm bảo các quy tắc trong quá trình phát triển, tuân thủ các tiêuchuẩn đặc ra để vừa đáp ứng yêu cầu ứng dụng, vừa hỗ trợ sự tương tác với nhiều nhóm pháttriển khác trong quá trình phát triển và đảm bảo khả năng bảo trì hệ thống

Với mong muốn đóng góp vào sự phát triển và chất lượng của các hệ thống và ứng dụng,

em đã chọn hướng nghiệp Backend Developer Tham gia vào môi trường làm việc chuyênnghiệp như Vitalify Asia, em hy vọng có cơ hội áp dụng kiến thức đã học và phát triển bản thântrong môi trường thực tế, góp phần vào sự thành công và phát triển của các dự án công nghệ

Trang 3

Trân trọng gửi lời cảm ơn Công ty Vitalify Asia đã tạo điều kiện cho em có cơ hội đượcthực tập tại công ty.

Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các nhóm trainer, em

đã tiếp thu được những kiến thức quan trọng để có thể trực tiếp tham gia vào dự án, nơi em có

cơ hội làm việc cùng với các thành viên khác Qua việc tham gia vào dự án, em đã hiểu rõ hơn

về quy trình phát triển phần mềm, từ việc xây dựng cấu trúc dữ liệu, thiết kế cơ sở dữ liệu, xử lýlogic nghiệp vụ cho đến triển khai ứng dụng trên môi trường thực tế

Đặc biệt cảm ơn anh Võ Ngọc Trọng và các thành viên trong dự án đã hướng dẫn, giúp

đỡ cho em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen vớimôi trường mới Nhờ sự hướng dẫn tận tâm và giúp đỡ, em đã có thể hoàn thành nhiệm vụ đượcgiao một cách hiệu quả và đạt được mục tiêu của dự án

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ềukiện em làm bài báo cáo này

Em biết ơn những cơ hội quý giá mà Công ty Vitalify Asia và khoa Công nghệ phầnmềm đã mang đến cho em Nhờ những trải nghiệm này, em đã không chỉ nắm bắt được nhữngkiến thức chuyên môn mà còn phát triển kỹ năng làm việc nhóm, giao tiếp và giải quyết vấn đề.Điều này sẽ góp phần quan trọng trong sự nghiệp và phát triển tương lai của em

Một lần nữa, em xin gửi lời cảm ơn chân thành đến Công ty Vitalify Asia, các thành viêntrong dự án và toàn thể thầy cô trong khoa Công nghệ phần mềm Em rất biết ơn sự tận tâm và

sự giúp đỡ của mọi người, và em sẽ luôn ghi nhớ những kinh nghiệm và bài học quý báu mà em

đã học được từ thời gian thực tập này

Hoàng Văn PhúcTpHCM, ngày 01 tháng 01 năm 2023

Trang 4

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Họ và tên sinh viên: Hoàng Văn Phúc

Mã số sinh viên: 20521760

Đánh giá quá trình thực tập của sinh viên:

TP HCM, ngày …… tháng …… năm ……

Trang 5

MỤC LỤC

Chương 1: Giới thiệu công ty thực tập 8

1.1 Thông tin công ty 8

1.2 Nền tảng công nghệ sử dụng chính 9

1.2.1 FrontEnd 9

1.2.2 BackEnd 9

1.2.3 Application (Mobile Apps) 10

1.2.4 Infrastructure / Database / Tools 10

1.3 Sản phẩm công ty 11

1.3.1 NikoNiko (HRM System) 11

Chương 2: Nội dung thực tập 15

2.1 Thông tin tuyển dụng 15

2.2 Lịch thực tập và nội dung thực tập 16

Chương 3: Chi tiết về project 20

3.1 Thông tin về dự án 20

3.1.1 Dự án Rakuten Investment Management 20

3.1.2 Cơ cấu thành viên dự án 21

3.1.3 Công nghệ sử dụng trong dự án 22

3.2 Các công việc đã thực hiện 22

3.2.1 Yêu cầu từ BPM 22

3.2.2 Nghiên cứu API, màn hình và hiện tượng bất thường của lỗi 22

3.2.3 Tái hiện lỗi 23

3.2.4 Trình bày nguyên nhân và đề xuất hướng giải quyết 23

Trang 6

3.2.5 Thực hiện Fix lỗi cho các API hoặc màn hình 23

3.2.6 Review Evidence và Code 24

3.2.7 Tạo Merge Request và Release 24

Chương 4: Tổng kết 25

4.1 Kết quả 25

4.2 Thuận lợi 25

4.3 Khó khăn 25

4.4 Kế hoạch tương lai 26

4.5 Chuẩn đạt được 27

TÀI LIỆU THAM KHẢO 28

Trang 7

Danh mục hình ảnh

Hình 1 1 Logo công ty 8

Hình 1 2 Danh sách các công nghệ 9

Hình 1 3 Ứng dụng NikoNiko 12

Hình 1 4 Thống kê cảm xúc của nhân viên khi thực hiện đăng ký 13

Hình 1 5 NikoNiko hỗ trợ xuất file chấm công theo định dạng CSV 14

Hình 1 6 NikoNiko hỗ trợ checkin mọi lúc mọi nơi 14

Trang 8

Chương 1: Danh mục bảng

Bảng 2 1 Thông tin tuyển dụng thực tập 15Bảng 2 2 Bảng nội dung thực tập 19Bảng 4 1 Chuẩn đầu ra môn học 27

Trang 9

Chương 2: Giới thiệu công ty thực tập

Hình 1 1 Logo công ty

2.1 Thông tin công ty.

 Tên công ty: Công ty TNHH Vitalify Á Châu

là các công ty Nhật Bản, các thành viên của Vitalify Asia luôn có cơ hội tham gia vàocác dịch vụ CNTT mới nhất tại Nhật Bản Hiện diện tại Việt Nam, với những nỗ lựckhông ngừng, Vitalify Asia góp phần nâng cao năng lực nhân sự IT tại đây Với kinhnghiệm gần 10 năm, Vitalify Asia không ngừng nỗ lực để hỗ trợ các doanh nghiệp NhậtBản muốn đầu tư sang Việt Nam cũng như hỗ trợ việc marketing, kinh doanh ở thịtrường nội địa Việt Nam Vitalify Asia đang hỗ trợ tổng thể về phát triển offshore, phát

Trang 10

triển Labo, hỗ trợ đầu tư đến Việt Nam, marketing kinh doanh ở thị trường nội địa ViệtNam.

 NodeJS (TypeScript, hoặc JavaScript) với NestJS framework

 PHP với Laravel framework

 Python

 Ruby với Ruby on Rails framework

Trang 11

 TypeScript, hoặc JavaScript với React Native framework

 TypeScript, hoặc JavaScript với Capacitor framework

 Dart với Flutter framework

 C# với Unity 3D/2D engine

2.2.4 Infrastructure / Database / Tools

 Code Hosting: GitHub, Bitbucket, GitLab

 Unit / E2E Testing: Jest, Cypress, Detox

 CI Service: CircleCI, Travis CI, AWS Code Pipeline, Git Actions

 IaC (Infrastructure as code): Docker, Terraform

 Cloud Server: AWS (Amazon Web Service), Azure, GCP (Google CouldPlatform)

 Database: Amazon RDS, MongoDB, MySQL, MariaDB, DynamoDB,RealmDB

 Deployment: DeployGate

Trang 12

2.3 Sản phẩm công ty

2.3.1 NikoNiko (HRM System)

Link sản phẩm/ dịch vụ: https://www.nikoniko.vn/

NikoNiko là một hệ thống quản lý chấm công mới dành cho thời đại làm việc từ

xa (Hybrid-work) Nó cung cấp khả năng quản lý chấm công đơn giản, không phụ thuộcvào địa điểm và thời gian trong SaaS

Các tính năng bao gồm đăng ký và đăng xuất dễ dàng từ ứng dụng, cơ sở dữ liệu tổchức mạnh mẽ và khả năng hiển thị sức khỏe tâm thần của nhân viên Hiện chúng tôiđang bán sản phẩm này cho thị trường Việt Nam

a Những tính năng chính

 Bảng điều khiển

 Cơ sở dữ liệu nhân viên

 Bối cảnh chung của công ty

 Đăng ký vào / ra (Web & Di động)

 Thông báo đẩy

 Quản lý làm việc ngoài giờ

Trang 13

Hình 1 3 Ứng dụng NikoNiko

Chức năng nhận diện khuôn mặt sẽ phân tích ảnh khuôn mặt được camera chụp và so sánh với

dữ liệu khuôn mặt đã đăng ký để xác thực chính xác và nhanh chóng

NikoNiko cung cấp tính năng quản lý chấm công và chấm công đơn giản ở định dạng SaaSkhông bị ràng buộc với địa điểm làm việc hoặc giờ làm việc NikoNiko cung cấp khả năng đăng ký vàđăng xuất dễ dàng từ ứng dụng, cơ sở dữ liệu tổ chức mạnh mẽ và trực quan hóa sức khỏe tâm thần củanhân viên

Trang 14

Hình 1 4 Thống kê cảm xúc của nhân viên khi thực hiện đăng ký

Hỗ trợ nhận biết động lực làm việc của nhân viên bằng chức năng nhận dạng khuôn mặt

Bằng cách đọc được cảm xúc trên khuôn mặt nhân viên khi nhân viên đi làm mỗi ngày,

Và người dùng có thể hiểu được tâm trạng chung của đồng nghiệp Dựa vào đó có thể cải thiện môi trường làm việc và hoạt động nội bộ

Trang 15

Hình 1 5 NikoNiko hỗ trợ xuất file chấm công theo định dạng CSV

NikoNiko hỗ trợ xuất dữ liệu thời gian chấm công của nhân viên ở định dạng CSV

Hình 1 6 NikoNiko hỗ trợ checkin mọi lúc mọi nơi

Trang 16

NikoNiko hỗ trợ việc truy cập và đăng ký trên nhiều thiết bị ở mọi lúc, mọi nơi.

Chương 3: Nội dung thực tập

3.1 Thông tin tuyển dụng.

Cơ hội ứng tuyển https://www.vitalify.asia/recruitment

Bảng 2 1 Thông tin tuyển dụng thực tập

Trang 17

Tuần Nội dung và kết quả

 Đọc hiểu development guideline như:

o Development Guideline Overview

o Definition & Rule

Kết qu ả: Nắm bắt tổng quan về cơ cấu hoạt động của công ty, quy trình phát

triển phần mềm, cách tham gia các cuộc họp nội bộ và với khách hàng, cách tiếp nhận nhiệm vụ và báo cáo hàng ngày Hoàn thành ứng dụng demo

 Được training quy trình Git mà team đang áp dụng:

o Các môi trường triển khai trên git (Dev, Staging, Production)

o Quy trình Assign và nhận Task thông qua các Issue

o Quy tắc đặt tên branch, commit theo yêu cầu dự án

 Được training quy trình làm việc, meeting và report:

Trang 18

o Thực hiện report vào cuối mỗi ngày làm việc nội dung bao gồm các taskđược giao, thời gian ước tính cho mỗi task, số thời gian đã thực hiện, sốthời gian còn lại cho mỗi task, vấn đề gặp phải và kế hoạch của ngàylàm việc tiếp theo.

o Cách để ước tính thời gian hoàn thành cho các công việc được giao

o Quy trình tham gia các cuộc meeting

 Tham gia và tìm hiểu về dự án mà team đang thực hiện, Tải source code, càiđặt các môi trường cần thiết để chạy ứng dụng

 Đọc và nghiên cứu mã nguồn

Kết qu ả: Nắm bắt được quy trình của dự án và có thể tham gia vào dự án.

 Tiếp tục nghiên cứu mã nguồn và được assign task đầu tiên

 Nghiên cứu task được assign và thực hiện:

o Điều tra lỗi trong ứng dụng

o Phân tích nghiệp vụ và logic xử lý dựa trên các file tài liệu (tiếng Nhật)

o Thực hiện tái hiện lỗi (chuẩn bị dữ liệu cần thiết để tái hiện)

o Nghiên cứu mã nguồn và tìm lỗi

o Đề xuất hướng giải quyết

o Thực hiện sửa lỗi trên mã nguồn

o Tạo file báo cáo chứng minh lỗi đã được sửa (Evidence)

o Commit code và chờ review mã nguồn sau đó tiến hành merge code vàrelease lên môi trường develop

Kết qu ả: Hoàn thành công việc được giao.

Tuần 4:  Tiếp tục nghiên cứu mã nguồn của ứng dụng (Ứng dụng có nhiều source

Trang 19

 Tiếp tục được Assign Task và thực hiện.

Kết qu ả: Hoàn thành công việc được giao

Tuần 6:

08/09/2023

15/09/2023

 Tiếp tục được Assign Task và thực hiện

Kết qu ả: Hoàn thành công việc được giao

Tuần 7:

16/09/2023

23/09/2023

 Tiếp tục được Assign Task và thực hiện

Kết qu ả: Hoàn thành công việc được giao

Tuần 8:

24/09/2023

01/10/2023

 Tiếp tục được Assign Task và thực hiện

Kết qu ả: Hoàn thành công việc được giao

Tuần 9:

02/10/2023

09/10/2023

 Tiếp tục được Assign Task và thực hiện

Kết qu ả: Hoàn thành công việc được giao

Tuần 10:

10/10/2023

17/10/2023

 Tiếp tục được Assign Task và thực hiện

Kết qu ả: Hoàn thành công việc được giao

Tuần 11:  Tiếp tục được Assign Task và thực hiện

Trang 20

 Tiếp tục được Assign Task và thực hiện.

Kết qu ả: Hoàn thành công việc được giao

Bảng 2 2 Bảng nội dung thực tập

Trang 21

Chương 4: Chi tiết về project

4.1 Thông tin về dự án

4.1.1 Dự án Rakuten Investment Management

"Rakuten", là một công ty thương mại điện tử và Internet của Nhật Bản có trụ sở tạiTokyo, được thành lập vào năm 1997 bởi Mikitani Hiroshi Cho đến hiện nay, Rakuten

sử hữu hàng chục loại doanh nghiệp và một lượng lớn các công ty con, trong đó phải kểđến như:

Trang 22

giáo dục trực tuyến, và nhiều lĩnh vực khác Dự án Rakuten Investment Management tạiVitalify Asia là một dự án thuộc doanh nghiệp Rakuten Investment Management Inc và

nó đã được hoàn thành và đang trong quá trình hoạt động, tới thời điểm hiện tại đối tácphía Rakuten đã chuyển đổi hệ thống và công nghệ sang một nền tảng mới với hệ thốngtương tự với phiên bản trước đó Tuy nhiên trong quá trình chuyển đổi, hệ thống mớiđang gặp một số các kết quả không mong muốn trên hệ thống, do đó mong muốn đượcđiều tra nguyên nhân và sửa đổi

Các đối tác trong dự án bảo trì và phát triển Rakuten Investment Management baogồm các thành viên khách hàng tại Nhật Bản Một nhóm các thành viên chính trong quátrình xây dựng dự án đang làm việc tại Trung Quốc và nhóm đối tác tại Việt Nam vàVitalify Asia

4.1.2 Cơ cấu thành viên dự án

Project Manager (PM): Người đảm nhận quản lý dự án cao nhất, làm việc trực tiếp

với khách hàng và BPM

Bridge Project Manager (BPM): Là cầu nối giữa khách hàng và lập trình viên, có

vai trò nhận các yêu từ khách hàng, phân tích và truyền đạt lại cho các lập trình viên

Là người trực tiếp giao các công việc đã được phân tích, chia nhỏ cho lập trình viên,cũng như đảm nhận việc kiểm thử các sản phẩm của người dùng cuối Khách hàngcủa Rakuten là người Nhật, do đó BPM thường sẽ đảm nhận việc giao tiếp với kháchhàng, nắm bắt yêu cầu của khách hàng và truyền đạt với lập trình viên, đồng thời đưa

ra các phân tích số liệu và thời gian hoàn thành các công việc

Leader: Người đảm nhận quản lý các thành viên trong nhóm dự án, là người trực tiếp

hỗ trợ các thành viên thực hiện các công việc, đồng thời đưa ra quyết định cho cáccuộc họp và các đề xuất, giải pháp từ các thành viên trong nhóm

Lập trình viên (Dev): Nhiệm vụ chính là phát triển phần mềm, nhận công việc từ

BPM hoặc Leader và tiến hành thực hiện, tự kiểm tra, sau đó kiểm tra chéo với các

Trang 23

vấn các vấn đề liên quan đến công nghệ.

4.1.3 Công nghệ sử dụng trong dự án

 Phía server: sử dụng NodeJs với framework NestJs, Restful API và DatabasePostgreSQL

 Ứng dụng Website: sử dụng framework VueJs

 Triển khai và các dịch vụ khác: AWS, Microsoft Azure

4.2 Các công việc đã thực hiện

4.2.1 Yêu cầu từ BPM

 BPM nhận các Task hoặc tài liệu mô tả hiện tượng lỗi phát sinh từ khách hàng và tiến hànhphân tích, dịch tài liệu tiếng Nhật cho và assign cho Dev

 Dev cần phải điều tra nguyên nhân và tìm ra lỗi và khắc phục lỗi

 Dev cần đưa ra các testcase và xác nhận với BPM để chứng minh lỗi đã được sửa chính xác

và không ảnh hưởng đến các tính năng đã có khác

 Dev cần tạo File tài liệu mô tả các testcase và chứng minh lỗi đã được sửa hoặc tính năng đãđược cập nhật

4.2.2 Nghiên cứu API, màn hình và hiện tượng bất thường của lỗi

 Việc đầu tiên sau khi được giao Task là đọc mô tả hiện tượng lỗi hoặc yêu cầu của kháchhàng (Được BPM dịch từ tiếng Nhật sang Việt)

 Tìm các tài liệu liên quan đến chức năng hoặc màn hình hoặc các API liên quan đang được

đề cập hoặc có khả năng liên quan

 Tìm kiếm source code có thể chứa phần mã của tính năng (Vì dự án được chia thành rấtnhiều repository khác nhau trên GitLab, do đó cần xác định phần mã liên quan thuộcrepository nào để thực hiện điều tra)

Ngày đăng: 15/05/2024, 09:22

w