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

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 TINKHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

BACK-END DEVELOPERCông ty thực tập: Vitalify Asia

Người phụ trách: Võ Ngọc TrọngThự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ân

trong 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ơnvề 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úcMã số sinh viên: 20521760

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

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

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. Năm thành lập: 2008

 Lĩnh vực kinh doanh: Phát triển các ứng dụng web, ứng dụng di động, phát triển game(outsourcing/in-house).

 Địa chỉ: 224A Đ Điện Biên Phủ, Phường 6, Quận 3, Thành phố Hồ Chí Minh. Website: https://www.vitalify.asia

 Vitalify Asia là công ty phát triển offshore của Nhật Bản được thành lập vào năm 2008,phát triển ứng dụng/phần mềm Vitalify Asia có thế mạnh về phát triển các dịch vụhướng về người dùng hoặc phát triển cho các thiết bị thông minh Với 90% khách hànglà 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.

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

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.

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ặtBằ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.

THÔNG TIN VỊ TRÍ THỰC TẬPVị trí Thực tập sinh Lập trình viên BackEnd – Nestjs

Quyền lợi Trợ cấp thực tập 5.000.000đ/tháng

Yêu cầu

Nắm vững các kiến thức cơ bản: cấu trúc dữ liệu & giải thuật, lập trìnhhướng đối tượng, database, SQL

Kỹ năng hiểu nghiệp vụ và yêu cầu

Các kỹ năng giao tiếp tiếng Anh cơ bản (nhắn tin & trò chuyện)

Kỹ năng suy nghĩ logic và giải thích dựa trên dữ liệu hoặc các con số thựctế

Đam mê, chịu khó học hỏi, và trở thành một kỹ sư cấp cao, nhà quản lý,và chuyên gia ngắn hạn

Hình thức làm

Lịch làm việc 8h30 – 11h55

13h00 – 17h30

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ầnNội dung và kết quả

Tuần 1:01/08/2023

 Giới thiệu về công ty, phòng lab tham gia, xác nhận công nghệ làm việc,giới thiệu về người hướng dẫn.

 Đọc hiểu development guideline như:o Development Guideline Overviewo Definition & Rule

o Workflowo Gitflowo Daily reporto Using Chatwork

 Đăng ký và tạo các tài khoản dùng để giao tiếp với thành viên trong nhómnhư chatwork, email, github.

 Tiếp nhận yêu cầu và lên ý tưởng về việc xây dựng ứng dụng demo dựa trêncác công nghệ công ty đang sử dụng (MySQL, NestJS, TypeOrm,GraphQL).

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áchtiếp nhận nhiệm vụ và báo cáo hàng ngày Hoàn thành ứng dụng demo

Tuần 2:08/08/2023

 Cài đặt các IDE, công cụ để phát triển phần mềm cần thiết như Docker,PostgreSQL, PgAdmin4, cài đặt VPN với Tunnelblick.

 Đượ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.

Tuần 3:16/08/2023

 Tìm hiểu các thao tác và sử dụng macbook, cài đặt môi trường lập trình trênmacbook

 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ỗio Đề 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

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

Tuần 5:01/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 6:08/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

 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

 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

 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

 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

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

Tuần 12:26/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

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, Rakutensử 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ư:

 Mua sắm trực tuyến Ngân hàng

 Thẻ tín dụng và thanh toán Phương tiện truyền thông Đặt phòng du lịch

 Thể thao

 Phân tích dữ liệu và tiếp thị Sách điện tử

 Phân phối sách Thời trang

 Tin nhắn di động

Rakuten Investment Management Inc (Rakuten IM) là một công ty quản lý quỹ đầu tưthuộc tập đoàn Rakuten, một tập đoàn thương mại điện tử lớn của Nhật Bản Rakuten IMhoạt động trong lĩnh vực quản lý quỹ đầu tư và có thể cung cấp các sản phẩm và dịch vụliên quan đến đầu tư tài chính Rakuten IM là một phần của Rakuten Group, một tậpđoàn đa ngành với sự hiện diện toàn cầu Tập đoàn này bao gồm nhiều công ty con và chinhánh, hoạt động trong nhiều lĩnh vực như thương mại điện tử, ngân hàng trực tuyến,

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 đưara 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ácvà 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