Tải bản đầy đủ (.doc) (21 trang)

Báo cáo thực tập lập trình BACK END với JAVA

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 (499.85 KB, 21 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

LẬP TRÌNH BACK-END VỚI JAVA
Cơng ty thực tập

: Công ty KMS Technology

Người phụ trách

: Nguyễn Đức Huy

Thực tập sinh

: Huỳnh Tấn Duy

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


LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp web là một bộ phận không thể thiếu của ngành
công nghiệp phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ, công nghệ web đã và
đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần
cứng và phần mềm.
Bản thân là một người đam mê công nghệ và mong muốn áp dụng công nghệ
để làm cho cuộc sống tốt hơn, em luôn luôn học hỏi, trau dồi thêm các kiến thức, kỹ
năng cuộc sống và một vốn công nghệ cần thiết để phục vụ nhu cầu của bản thân.
Sau khi thử sức với nhiều lĩnh vực khác nhau của ngành công nghệ phần mềm, em
quyết định chọn lập trình web với hướng chuyên sâu về back-end để làm định hướng


cho sự nghiệp của mình
Thời điểm học kỳ hai của năm tư đại học, nhận thấy đây là thời điểm thích hợp
để bản thân tìm kiếm một cơ hội làm việc, trau dồi kinh nghiệm thực tế trong một môi
trường chuyên nghiệp, nên em đã lên kế hoạch để đi thực tập. Bản thân em sau một
thời gian chuẩn bị kiến thức và ứng tuyển, đã nhận được cơ hội làm việc tại công ty
KMS Technology. Đây là cơng ty có mơi trường chun nghiệp, hiện đại, phù hợp cho
em trau dồi kiến thức, kinh nghiệm và phát triển các kĩ năng của bản thân.

2

Nguyễn Đức Huy

Huỳnh Tấn Duy
2


LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn sâu sắc đến quý Công ty KMS Technology đã
tạo điều kiện cho em có cơ hội được thực tập và học hỏi trong môi trường chuyên
nghiệ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 anh
mentor, bản thân em đã tiếp thu được những kiến thức quan trọng để có thể phát triển
một ứng dụng phần mềm thực tế. Chân thành cảm ơn các anh chị mentor đã bỏ ra
nhiều thời gian, cơng sức để hướng dẫn chúng em hồn thành đợt thực tập này. Đặc
biệt em xin gửi lời cảm ơn đặc biệt đến anh Nguyễn Đức Huy – Engineer Manager của
công ty đã chân thành chia sẻ cho những kiến thức, kinh nghiệm trong công việc và
cuộc sống, những lời khuyên bổ ích để em tiến bộ, phát triển hơn.
Cuối cùng em xin gửi lòng biết ơn đến các thầy cô khoa Công nghệ Phần mềm,
trường Đại học Công nghệ Thơng tin, Đại học Quốc gia Thành phố Hồ Chí Minh đã
nhiệt tình hỗ trợ, tạo điều kiện để em hồn thành tốt mơn thực tập doanh nghiệp này.

Sinh viên thực hiện
Huỳnh Tấn Duy
TP. Hồ Chí Minh, ngày 26/07/2020

3

Nguyễn Đức Huy

Huỳnh Tấn Duy
3


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

……………………………………………….……………………………………………….
……………………………………………….……………………………………………….
……………………………………………….……………………………………………….
……………………………………………….……………………………………………….
……………………………………………….……………………………………………….
……………………………………………….……………………………………………….
……………………………………………….……………………………………………….
4

Nguyễn Đức Huy

Huỳnh Tấn Duy
4


……………………………………………………………………………………………………
……………………………………………………..

MỤC LỤC

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

1. Giới thiệu công ty KMS Technology
KMS Technology là công ty chuyên về lĩnh vực phát triển sản phẩm và gia công
phần mềm với 100% vốn đầu tư của Mỹ. Sau hơn 10 năm hoạt động, từ 4 thành
viên lúc bắt đầu, đến nay KMS đã mở rộng quy mô lên tới khoảng 1000 nhân

5

Nguyễn Đức Huy


Huỳnh Tấn Duy
5


viên trong đội ngũ nhân sự của mình. Những thành tựu đáng kể mà KMS
Technology gặt hái được không phải cơng ty nào cũng dễ dàng có được.
Những chất lượng vượt trội ở dịch vụ đã giúp cho KMS Technology 3 năm liền
nhận giải thưởng Sao Khuê cho hạng mục: Dịch vụ gia công xuất khẩu phần
mềm xuất sắc.

2. Sản phẩm của công ty
KMS Technology cung cấp dịch vụ và giải pháp tối ưu phần mềm cho hơn 90%
khách hàng là các công ty ở Mỹ với các dịch vụ: phát triển phần mềm theo yêu
cầu, bảo trì hệ thống sản phẩm phần mềm, quản lý ứng dụng; kiểm thử và bảo
đảm chất lượng phần mềm.
Bên cạnh đó, cơng ty cũng phát triển mạnh mẽ ở lĩnh vực Product với các sản
phẩm chuyên về kiểm thử phần mềm như: Katalon, Kobiton, QASymphony,…

6

Nguyễn Đức Huy

Huỳnh Tấn Duy
6


Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình back-end với Java” nhằm mục đích giúp sinh
viên thực tập được đào tạo toàn diện về lập trình web sử dụng ngơn ngữ Java

và Spring Framework, đồng thời rèn luyện những kỹ năng mềm như làm việc
nhóm, thuyết trình, giao tiếp. Tại cơng ty, sinh viên có cơ hội được học tập,
khám phá và làm việc trong một mơi trường phát triển phần mềm chun
nghiệp.

1. Tìm hiểu công ty và các kĩ năng cơ bản trong công ty
Thời gian: 1 ngày
Nội dung: Giới thiệu về công ty, nhân sự và các quy định đối với nhân viên
- Được bộ phận nhân sự giới thiệu về công ty, quá trình thành lập và phát triển,
các sản phẩm, thành quả đạt được và hướng đi của công ty trong tương lai.
- Ngoài ra được giới thiệu về nhân sự của công ty, nắm được các quy định đối
với nhân viên, hiểu được văn hoá và tham gia vào các hoạt động, phong trào
hàng ngày, hàng tuần trong công ty.
Kết quả: Hiểu hơn về công ty KMS Technology, các đồng nghiệp, văn hố và
mơi trường làm việc. Từ đó dễ dàng thích nghi hơn với mơi trường mới để đạt
được năng suất cao trong công việc.

2. Nghiên cứu kỹ thuật
2.1.

Các cơng cụ làm việc
Thời gian: 2 ngày
Nội dung: Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm
việc.
-

Cơng cụ trao đổi, giao tiếp: Slack, Skype, Gmail, Google Calendar.
7

Nguyễn Đức Huy


Huỳnh Tấn Duy
7


-

Công cụ quản lý dự án: Jira.

-

Công cụ quản lý phiên bản phần mềm: Git, GitLab.

-

Công cụ liên quan lập trình: IntelliJ IDEA.

Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Làm quen, biết được công dụng và cách sử dụng các công cụ phục
vụ công việc.
2.2.

Tìm hiểu ngơn ngữ Java
Thời gian: 5 ngày (1 tuần)
Nội dung: Tìm hiểu các kiến thức cơ bản và nâng cao của Java
-

Lập trình hướng đối tượng.

-


Các kiến thức Java cơ bản về Web Service, data type, bean, annotation,
JVM, …

-

Database, JPA, transaction handling, exception handling

-

Tìm hiểu về Java convention và coding best practice.

Thực hiện:
-

Tham gia đầy đủ các buổi training của công ty.

-

Nghiên cứu, ứng dụng lý thuyết để xây dựng một sản phẩm đơn giản.

-

Báo cáo hàng ngày với Mentor về kiến thức đã nghiên cứu được

Kết quả:
-

Nâng cao kỹ năng lập trình với ngơn ngữ Java.


-

Có được những kiến thức quan trọng về thiết kế kiến trúc cho project.

-

Ngồi ra cịn được biết thêm một số quy tắc trong việc viết code sao cho
đúng chuẩn, dễ đọc và dễ hiểu.

2.3.

Lập trình Web Service với Spring Framework
Thời gian: 8 ngày (2 tuần)
8

Nguyễn Đức Huy

Huỳnh Tấn Duy
8


Nội dung: Các kiến trong lập trình back-end với Spring Framework
-

Microservice với Spring / Spring Boot.

-

Spring data JPA


-

Spring Security

-

Spring Cloud

-

Spring Batch

-

Viết unit testing với Junit

Thực hiện:
-

Tham gia đầy đủ các buổi training.

-

Làm các bài thực hành, kiểm tra về kiến thức đã học.

-

Thực hiện thuyết trình về kết quả đã nghiên cứu được.

Kết quả:

-

Hiểu được những khái niệm cơ bản trong lập trình back-end với Java.

-

Biết cách sử dụng các component của Spring Framework như Spring
security, Spring Cloud, Spring Batch.

2.4.

Nắm được cách triển khai ứng dụng với Docker

Quy trình phát triển phần mềm và Business của project
Thời gian: 5 ngày (1 tuần)
Nội dung:
-

Quy trình phát triển phần mềm với Scrum.

-

Business của project.

Thực hiện:
-

Tham gia đầy đủ các buổi training.

-


Nghiên cứu tài liệu và source code của project.
9

Nguyễn Đức Huy

Huỳnh Tấn Duy
9


Kết quả:
-

Nắm được quy trình và các khái niệm trong phát triển phần mềm với
Scrum.

-

Hiểu được business của project ở mức đơn giản.

-

Nắm được cách tổ chức, quy tắc viết code trong source code của project.

3. Thực hiện project
Sau hơn 1 tháng được training và thực hành, thực tập sinh đã nắm được những
kiến thức cơ bản về Java, Spring. Đồng thời đã ứng dựng kiến thức để xây
dựng một project để demo và thuyết trình.
Chi tiết đồ án sẽ được nói ở phần sau.


4. Lịch làm việc
Người
Tuần

Cơng việc

hướng
dẫn

Mức
độ

Nhận xét của

hồn

người hướng dẫn

Giới thiệu về cơng ty,

Chị Hồ

thành
10 /
Thích nghi nhanh

nhân sự và các quy định

Mỹ


10

đối với nhân viên

Duyên,

của công ty, tích

Tìm hiểu về các cơng cụ

Anh

cực trong việc hỏi

sẽ được sử dụng trong

Nguyễn

đáp các vấn đề cịn

q trình làm việc.

Đức Huy

trở ngại, vướng

Lên kế hoạch training
Tìm hiểu các kiến thức cơ bản

Anh Võ


mắc.
Có khả năng tự

và nâng cao của Java

Minh

nghiên cứu kiến

Nhựt

thức với keyword

-

1

-

-

2

7 / 10

với môi trường mới

được cho. Vẫn còn
10


Nguyễn Đức Huy

Huỳnh Tấn Duy
10


hạn chế về cấu
hình, xác nhận yêu
cầu của project,
chất lượng của
code cịn chưa
Các kiến thức và kinh nghiệm

Anh Võ

lập trình back-end với Spring

Minh

thức cơ bản về

Nhựt

Spring Framework,

3, 4

8 / 10


cao.
Nắm được kiến

có cái thiện những
điểm chưa tốt ở
Quy trình phát triển phần mềm

Anh

và business của project

Nguyễn

trình phát triển

Đức Huy,

phần mềm với

Anh Võ

Scrum và hiểu

Minh

được cơ bản

Nhựt

business của


Nghiên cứu các kiến thức nâng

Anh Trần

project.
Nắm bắt kiến thức

cao về technical của project.

Kiến

5

6,7,8

8 / 10

đợt 1.
Nắm được quy

8 / 10

nâng cao về

-

Spring Cloud Data Flow

technical của


-

Elastic Search

project ở mức đơn

-

MinIO

giản, có khả năng
ứng dựng để xây

9

Bắt đầu tham gia dự án

Anh Trần

08 /

dựng demo project
Có khả năng ứng

với những task đơn giản

Kiến

10


dựng kiến thức đã
được train vào
11

Nguyễn Đức Huy

Huỳnh Tấn Duy
11


cơng việc. Vẫn cịn
hạn chế về chất
lượng code.

Chương 3: Chi tiết về project
1. Giới thiệu về dự án:
Tên dự án: Quản lý Scrum Team.
1.1.

Business Requirement

Áp dụng các kiến thức đã được training để xây dựng project quản lý 1 scrum
team đáp ứng các yêu cầu phần mềm sau:
- Quản lý team
- Quản lý user
- Quản lý task
- Ghi lại nhật ký công việc
- Authentication với Json Web Token
Project được triển khai dưới dạng 1 web service với các RESTful API.

1.2.

Các API chính

1.2.1. Đăng nhập
Đăng nhập với username và password. Nếu thành công sẽ nhận được 1 Json
Web Token, phục vụ cho việc xác thực user trong quá trình thao tác với hệ
thống.

12

Nguyễn Đức Huy

Huỳnh Tấn Duy
12


1.2.2. Quản lý User
Tạo, cập nhật, xóa user với các thơng tin cơ bản: tên, email, số điện thoại, vai
trị, mật khẩu, … Các thông tin được truyền lên ở dạng json.

API get list user
13

Nguyễn Đức Huy

Huỳnh Tấn Duy
13



API create user

API update user

14

Nguyễn Đức Huy

Huỳnh Tấn Duy
14


1.2.3. Quản lý Team
Tạo, cập nhật, xóa team với các thông tin cơ bản: tên, office, danh sách thành
viên, … Các thông tin được truyền lên ở dạng json.

API create team

15

Nguyễn Đức Huy

Huỳnh Tấn Duy
15


API update team

1.2.4. Quản lý Task
Tạo, cập nhật, xóa task với các thông tin cơ bản: tên, mô tả, ước tính thời gian,

nhật ký làm việc, … Các thơng tin được truyền lên ở dạng json.

16

Nguyễn Đức Huy

Huỳnh Tấn Duy
16


API create task

API assign task for a user
17

Nguyễn Đức Huy

Huỳnh Tấn Duy
17


API log work for a task

2. Thực hiện
Project được thực hiện cá nhân bởi 1 thực tập sinh:
-

Huỳnh Tấn Duy

1 thành viên mentor:

-

Anh Võ Minh Nhựt

3. Kế hoạch
Giai đoạn alpha:
-

Lên kế hoạch

-

Tìm hiểu về cơng nghệ sử dụng: Spring Boot, Spring Security, Json Web
Token, Docker, Jacoco, …
18

Nguyễn Đức Huy

Huỳnh Tấn Duy
18


Kết quả: Hoàn thành 100% các yêu cầu đã được giao.
Giai đoạn beta:
-

Cài đặt các API phục vụ cho business requirement

-


Viết unit testing cho các API bên back-end.

-

Xây dựng hệ thống Authentication với Json Web Token

-

Triển khai ứng dụng với Docker.

-

Chuẩn bị thuyết trình
Kết quả: Hồn thành 80% các u cầu đã được giao.

19

Nguyễn Đức Huy

Huỳnh Tấn Duy
19


TÀI LIỆU THAM KHẢO
/> /> /> /> />
20

Nguyễn Đức Huy

Huỳnh Tấn Duy

20


TỔNG KẾT
Như vậy, chỉ trong vòng một khoảng thời gian ngắn khoảng 2 tháng, em đã được trải
nghiệm và học hỏi rất nhiều kỹ năng, kiến thức quan trọng về ngơn ngữ Java, Spring
Framework, quy trình phát triển phần mềm chuyên nghiệp. Đây sẽ là nền tảng để em
tiếp tục học hỏi, phát triển để trở thành một kĩ sư phần mềm chuyên nghiệp.
Em xin chân thành cảm ơn anh Nguyễn Đức Huy, anh Võ Minh Nhựt, anh Trần Kiến,
và công ty KMS Technology đã tạo điều kiện và giúp đỡ em hoàn thành kỳ thực tập
này.

21

Nguyễn Đức Huy

Huỳnh Tấn Duy
21



×