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

Báo Cáo Thực Tập Java Developer.pdf

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 (1.13 MB, 24 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

JAVA DEVELOPER
Công ty thực tập

: TMA Solutions

Người phụ trách

: Nguyễn Văn Mẫn

Thực tập sinh

: Tống Đức Dũng

TP. Hồ Chí Minh, tháng 12 năm 2022


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

JAVA DEVELOPER
Công ty thực tập

: TMA Solutions


Người phụ trách

: Nguyễn Văn Mẫn

Thực tập sinh

: Tống Đức Dũng

TP. Hồ Chí Minh, tháng 12 năm 2022
Báo cáo thực tập

Tống Đức Dũng


LỜI MỞ ĐẦU

Ngày nay, ngành công nghiệp phần mềm đã và đang là một trong những ngành nghề
có sức phát triển hết sức mạnh mẽ, chiếm tỉ trọng lớn trong nền kinh tế tồn cầu và vẫn
cịn tiềm năng phát triển rất lớn. Cùng với những vấn đề nhằm nâng cao chất lượng cuộc
sống con người, nâng cao hiệu suất làm việc, thúc đẩy phát triển cho các ngành nghề khác,
nhu cầu về phát triển phần mềm hiện là cao hơn bao giờ hết. Đứng trước nhu cầu này, cùng
với đà phát triển khơng hề có dấu hiệu chững lại, đã có vơ số cơng ty ra đời nhằm đáp ứng
nhu cầu thị trường.
Một trong những công ty hàng đầu Việt Nam, có hơn 25 năm kinh nghiệp trong lĩnh
vực gia cơng phần mềm, đó chính là TMA Solutions – Công ty TNHH giải pháp phần mềm
Tường Minh. Là một cây đại thụ trong lĩnh vực công nghệ phần mềm, TMA Solutions ln
mang trong mình ba phương châm: Respect, Honesty, Commitment.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng
như muốn được tham gia hoạt động trong một môi trường chuyên nghiệp, đồng thời nhận
thấy các giá trị, môi trường, mục tiêu mà TMA Solutions mang lại đáp ứng rất đúng với

nhu cầu của bản thân, em đã quyết định chọn TMA Solutions là nơi bắt đầu cho sự nghiệp,
là nơi đầu tiên áp dụng những kiến thức tích lũy được từ mơi trường giảng đường.

Báo cáo thực tập

Tống Đức Dũng


LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty TNHH giải pháp phần mềm Tường Minh đã tạo
điều kiện cho em có cơ hội được thực tập tại cơng ty.
Tuy thời gian thực tập kéo dài không lâu, nhưng nhờ sự nhiệt tình hỗ trợ của mentor
và team member, bản thân em đã tiếp thu được những kiến thức thực tiễn quý báu, được
tham gia vào dự án thực tế, được làm việc trong một môi trường năng động, nhờ đó em có
thể hiểu thêm hiểu biết về lĩnh vực gia công phần mềm. Chân thành cảm ơn các anh chị
trong nhóm, đã bỏ ra nhiều thời gian, cơng sức để hướng dẫn em hoàn thành tốt đợt thực
tập này.
Đặc biệt cảm ơn anh Nguyễn Hữu Đạt, đã training Java, Spring và các công cụ liên
quan, hướng dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn trong cơng việc, trong
dự án, đến những khó khăn việc làm quen với môi trường mới. Cảm ơn anh Võ Văn Qn,
team leader đã giúp em hịa đơng với các thành viên trong nhóm, đã giúp em trong các quy
trình thủ tục của công ty, tạo điều kiện môi trường tốt nhất cho em học hỏi và làm việc.
Cảm ơn anh Nguyễn Văn Mẫn, manager đã tạo điều kiện cho em được học tập và làm việc
trong một đại gia đình hịa đồng, chun nghiệp và rất vui vẻ, ln kịp thời thăm hỏi, động
viên và định hướng cho em trong suốt quá trình thực tập.
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ài báo cáo này.

TP. HCM, ngày 18 tháng 12 năm 2022

Tống Đức Dũng

Báo cáo thực tập

Tống Đức Dũng


NHẬN XÉT CỦA KHOA

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

Báo cáo thực tập


Tống Đức Dũng


1

MỤC LỤC

MỤC LỤC ...................................................................................................................... 1
CHƯƠNG I: GIỚI THIỆU CÔNG TY THỰC TẬP ..................................................... 2
1. Giới thiệu công ty TMA Solutions ....................................................................... 2
2. Sản phẩm của công ty ........................................................................................... 2
CHƯƠNG II: NỘI DUNG THỰC TẬP ........................................................................ 4
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty ........................................ 4
2. Nghiên cứu kỹ thuật .............................................................................................. 4
2.1. Các công cụ làm việc ...................................................................................... 4
2.2. Tìm hiểu ngơn ngữ Java nâng cao .................................................................. 5
2.3. Lập trình Java với Spring framework ............................................................. 6
2.4. Lập trình Front-end với TailwindCSS............................................................ 8
CHƯƠNG III: CHI TIẾT VỀ PROJECT..................................................................... 13
1. Giới thiệu về project ........................................................................................... 13
1.1. Yêu cầu ......................................................................................................... 13
1.2. Các chức năng chính..................................................................................... 13
2. Thực hiện ............................................................................................................ 14
3. Kế hoạch ............................................................................................................. 14
CHƯƠNG IV: KẾT QUẢ ............................................................................................ 16
TỔNG KẾT .................................................................................................................. 18
TÀI LIỆU THAM KHẢO ............................................................................................ 19

Báo cáo thực tập


Tống Đức Dũng


2

CHƯƠNG I: GIỚI THIỆU CÔNG TY THỰC TẬP

1. Giới thiệu công ty TMA Solutions
TMA Solutions được thành lập năm 1997 tại Việt Nam, hiện là công ty hàng
đầu Việt Nam về phát triển và gia công phần mềm. Với sự phát triển vững mạnh
suốt 25 năm qua, TMA Solutions 16 năm qua liên tiếp lọt top 10 công ty FinTech,
AI và IoT. Được nhiều tờ trong cả trong và ngoài nước thường xuyên đưa tin.
TMA Solutions hiện có 7 chi nhánh tại Việt Nam (6 tại thành phố Hồ Chí Minh
và 1 tại thành phố Quy Nhơn) cùng với 6 văn phịng ở nước ngồi (Mỹ, Canada,
Pháp, Nhật, Úc, Singapore) với đội ngũ hơn 3800 kỹ sư tài năng, nhiệt huyết.
TMA đã có gần 10 năm làm việc với các tập đồn cơng nghệ hàng đầu thế giới
và các trường đại học lớn về công nghệ 4.0 với hơn 300 kỹ sư kinh nghiệm trong
các lĩnh vực Trí tuệ nhân tạo, Khoa học dữ liệu, IoT, 4G/5G,…

2. Sản phẩm của công ty
TMA Solutions chuyên cung cấp các dịch vụ và giải pháp liên quan nhiều lĩnh
vực trong đời sống như tài chính – ngân hàng, thương mại điện tử, bất động sản,
bảo hiểm, viễn thông, giáo dục,..
TMA Solutions hiện là đối tác tin cậy có nhiều năm kinh nghiệm thực hiện
những dự án lớn và phức tạp với những công nghệ mới nhất với hơn 100 khách
Báo cáo thực tập

Tống Đức Dũng



3

hàng đến từ 30 quốc gia trên thế giới như các thị trường Bắc Mỹ, Châu Âu, Nhật
Bản, Hàn Quốc, Ấn Độ,… Có thể kể đến một số khách hàng truyền thống từ nhiều
năm qua của TMA Solution như Avaya, Nokia, Mitel, Atacel-Lucent,…
Ngồi là đối tác gia cơng cho các cơng ty nước ngồi, TMA cịn tự mình phát
triển nhiều bản phẩm thông qua công ty thành viên TMA Innovation đã được ứng
dụng rộng rãi và thu được phản hồi tích cực cũng như đem lại lợi nhuận cao.

Báo cáo thực tập

Tống Đức Dũng


4

CHƯƠNG II: NỘI DUNG THỰC TẬP
Nội dung chính của thời gian thực tập là nghiên cứu ngơn ngữ lập trình Java và xây
dựng ứng dụng trên nền tảng Java với Spring framwork. Giúp thực tập sinh được đào tạo về
ngôn ngữ lập trình Java, đồng thời rèn luyện các kỹ năng mềm như làm việc nhóm, thuyết
trình, giao tiếp, được làm việc trong một mơi trường chun nghiệp, có quy trình rõ ràng, được
tham gia các buổi training, và hơn hết được tham gia vào dự án chính thức của cơng ty.

1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian: 5 ngày (1 tuần)
Nội dung: Giới thiệu về công ty, cách tổ chức, giá trị cốt lõi, quy trình làm việc và xử
lý cơng việc, cải thiện các kỹ năng mềm.
Được nghe trainer giới thiệu về cơng ty, q trình thành lập và phát triển, quy
trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty. Cách thức xử lý các
vấn đề phát sinh trong lúc làm việc từ các vấn đề về nhân sự, pháp lý đến máy móc,…

Ngồi ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty
như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công
việc, các kỹ năng mềm.
Kết quả: Hiểu thêm về cơng ty, q trình thành lập và phát triển, giá trị cốt lõi. Có thêm
các kỹ năng mềm giúp ích trong cơng việc, làm việc có kế hoạch, có kỷ luật, có trách
nhiệm hơn.

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

Các cơng cụ làm việc
Thời gian: 4 ngày
Nội dung: Tìm hiểu về các cơng cụ sẽ được sử dụng trong q trình làm việc.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các cơng
cụ sẽ giúp ích cho trong công việc sau này. Một số phần mềm trong số đó như Jira
sử dụng trong quản lý cơng việc; IntelliJ IDEA một IDE rất hữu ích và phổ biến với
lập trình viên, đặc biệt là đối với lập trình viên Java.
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.

Báo cáo thực tập

Tống Đức Dũng


5

Kết quả: Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các cơng cụ
với nhau.
2.2.


Tìm hiểu ngôn ngữ Java nâng cao
Thời gian: 5 ngày (1 tuần)
Nội dung: Tìm hiểu về kiến thức và các kỹ thuật Java nâng cao.
-

Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính
như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình.

-

Generics:
Thuật ngữ “generics” được hiểu là tham số hóa kiểu dữ liệu. Việc tham số hóa
kiểu dữ liệu giúp cho lập trình viên có thể dễ bắt lỗi các kiểu dữ liệu không hợp
lệ, đồng thời giúp dễ dàng hơn cho việc tạo và sử dụng các class, interface,
method với nhiều kiểu dữ liệu khác nhau.

-

JPA (Java Persistence API):
JPA cung cấp đầy đủ các công cụ cho phép chúng ta có thể thao tác với cơ sở
dữ liệu một cách đơn giản và nhanh chóng. JPA có thể dùng để persist một đối
tượng Java (POJO – Plain Old Java Object) vào trong cơ sở dữ liệu hoặc lấy dữ
liệu từ cơ sở dữ liệu và ánh xạ (mapping) ra các đối tượng Java một cách đơn
giản.

-

Design pattern: creational patterns (Signleton & Factory)
Tìm hiểu về các mẫu thiết kế khởi tạo: Signleton và Factory (Factory Method &

Abstract Factory) và ví dụ của các mẫu thiết kế trong ngơn ngữ lập trình Java.

-

Java Collection
Java collections là một khuôn khổ cung cấp một kiến trúc để lưu trữ và thao tác
tới nhóm các đối tượng. Tất cả các hoạt động mà bạn thực hiện trên một dữ liệu
như tìm kiếm, phân loại, chèn, xóa,... có thể được thực hiện bởi Java Collections.
Collection trong java là một root interface trong hệ thống cấp bậc Collection.
Java Collection cung cấp nhiều interface (Set, List, Queue, Deque,… ) và các
lớp (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet,
TreeSet,…).

Báo cáo thực tập

Tống Đức Dũng


6

Thực hiện:
-

Nghiên cứu tài liệu được cung cấp kết hợp với tài liệu tự tham khảo

-

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

Kết quả:

-

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

-

Có được những kiến thức quan trọng cho việc lập trình Java.

-

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, dễ hiểu.

2.3.

Lập trình Java với Spring framework
Thời gian: 10 ngày (2 tuần)
Nội dung: Tìm hiểu kiến thức cơ bản về Spring và các vấn đề liên quan để có thể
tạo ra một ứng dụng server side cơ bản.
-

Khái niệm cơ bản về Spring framework

Báo cáo thực tập

Tống Đức Dũng


7


Spring framework bao gồm nhiều modules như core, bean, context, AOP, JDBC,
ORM, Servlet, Struts,… Các module được gom nhóm thành các nhóm như Test,
Spring Core Containter, Data Access/ Integration,…
-

IoC Containter (Spring Container)
IoC (Inversion of Control): Đảo ngược điều khiển, nó giúp làm thay đổi luồng
điều khiển của chương trình một cách linh hoạt. Thường dùng với Denpendency
Injection.
Trong Spring, Spring Container (IoC Container) sẽ tạo các đối tượng, lắp rắp
chúng lại với nhau, cấu hình các đối tượng và quản lý vòng đời của chúng từ lúc
tạo ra cho đến lúc bị hủy. Spring container sử dụng DI (Dependency Injection)
để quản lý các thành phần, đối tượng để tạo nên 1 ứng dụng. Các thành phần,
đối tượng này gọi là Spring Bean. Để tạo đối tượng, cấu hình, lắp rắp chúng,
Spring Container sẽ đọc thông tin từ các file xml và thực thi chúng.

-

Dependency Injection:
Dependency Injection là một mẫu thiết kế, là khía cạnh cơ bản của Spring
framework, qua đó Spring container “inject” các đối tượng vào các đối tượng
khác hoặc “dependencies”. Điều này giúp chuyển trách nhiệm quản lý các
denpendency cho Spring container.

-

AOP (Aspect Oriented Programming)
Lập trình hướng khía cạnh, là một kỹ thuật lập trình nhằm phân tác chương trình
thành các module riêng rẽ, phân biệt, khơng phụ thuộc vào nhau


-

Spring Autowired
Thông thường, chúng ta phải khai báo các bean hoặc component cần sử dụng
trong file XML để Spring container có thể tìm và quản lý. Thực tế Spring có thể
tự động tìm dị và tạo các bean từ các package của ứng dụng bằng cách sử dụng
các Annotation. Một số annotation thường được sử dụng trong Spring như
@Component, @Repository, @Service, @Controller.

-

Spring Data JPA

Báo cáo thực tập

Tống Đức Dũng


8

Dựa trên JPA, Spring Data JPA tích hợp ứng dụng xây dựng bằng nền tảng
Spring với JPA bằng việc cung cấp các JpaTemplates. Việc sử dụng JPA giúp
rút ngắn thời gian viết code tương tác truy vấn tới cơ sở dữ liệu.
-

Spring Security
Spring Security cung cấp nhiều tính năng bảo mật như authentication,
authorization cho ứng dụng Java. Authorization giúp ứng dụng xác thực quyền
để có thể thực hiện các yêu cầu trong ứng dụng.
Spring Security hỗ trợ nhiều loại xác thực như HTTP Basic authentication

headers, Form-based authentication,… Trong đó HTTP Basic authentication
header là loại xác thực được sử dụng rộng rãi với việc yêu cầu token mỗi lần
thực hiện request để thực hiện xác thực.

-

Spring Boot
Là một project được xây dựng trên nền tảng của Spring Framework. Cung cấp
các các thức dễ dàng hơn, nhanh hơn để xây dựng ứng dụng nền tảng web. Nói
ngắn gọn, Spring Boot là sự kết hợp của Spring framework và các Embedded
Server.

Thực hiện:
-

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

-

Đọc hiểu các tài liệu được cung cấp cũng như tài liệu tự tìm hiểu của bản thân.

-

Thực hiện các bài tập để củng cố kiến thức.

Kết quả:

2.4.

-


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

-

Xây dựng được cấu trúc ứng dụng sử dụng Spring và Java.

Lập trình Front-end với TailwindCSS
Thời gian: 10 ngày (2 tuần)

Báo cáo thực tập

Tống Đức Dũng


9

Nội dung: Tìm hiểu kiến thức cơ bản về framework CSS TailwindCSS để xây dựng
giao diện client cho ứng dụng.
-

TailwindCSS: Là một ultility-first CSS framework, bao gồm các built-in class
chứa các thuộc tính CSS, chúng ta có thể sử dụng các CSS class này bằng cách
kết hợp chúng.

-

Built-in class: Các class được viết sẵn trong Tailwind bao gồm tất cả mọi thuộc
tính CSS cơ bản nhất và được đặt tên theo chính xác ý nghĩa của thuộc tính mà
class đó được viết, bằng cách sử dụng built-in class, ta không cần phải viết bất

kỳ dịng CSS nào mà vẫn có thể thêm bớt thuộc tính CSS cho giao diện.

-

TailwindCSS cho phép mức độ tùy biến giao diện ở mức chuyên sâu, tuy khơng
có những component được xây dựng sẵn như Bootstrap, chúng ta vẫn có thể tùy
biến giao diện thơng qua việc sử dụng built-in CSS.

Thực hiện:
-

Đọc hiểu các tài liệu cá nhân tự tìm kiếm và tài liệu chính thức của Tailwind

-

Luyện tập sử dụng build-in class

-

Áp dụng vào project thực tập

Kết quả:
-

Hiểu, biết cách cấu hình và sử dụng thành thạo TailwindCSS.

-

Áp dụng TailwindCSS vào ứng dụng client side.


3. Thực hiện project
Với hai tháng training và thực hành, thực tập sinh đã nắm được những kiến thức từ mức
cơ bản đến vận dụng của Java, Spring, TailwindCSS để áp dụng những kiến thức đã
tích lũy vào project, thời gian thực hiện project là 7 tuần, bao gồm thời gian training và
củng cố kiến thức.

Báo cáo thực tập

Tống Đức Dũng


10

4. Lịch làm việc
Mức độ
Tuần

Cơng việc

Người hướng dẫn

hồn
thành

-

Tìm hiểu về cơng ty, quy trình làm Anh Nguyễn Văn Mẫn
việc, quy trình xử lý.

-


Anh Võ Văn Quân

Làm quen với các thành viên
trong team.

-

Làm quen với các công cụ làm

1

việc trong công ty.
-

Học cách trao đổi, làm việc qua
email.

-

Tham gia các buổi new-hire
trainning

-

Tìm hiểu ngơn ngữ lập trình Java Anh Nguyễn Hữu Đạt
nâng cao.

2


-

Luyện tập bằng cách làm các bài
tập ví dụ bằng ngôn ngữ Java.

-

Review lại kiến thức đã học,
report tiến độ cơng việc hằng ngày
-

Tìm hiểu ngơn ngữ lập trình Anh Nguyễn Hữu Đạt
JavaScript cùng với HTML

-

Tìm

hiểu



áp

dụng

TailwindCSS để xây dựng giao
3

diện.

-

Review lại kiến thức đã học,
report tiến độ công việc hằng
ngày

4
Báo cáo thực tập

Giai đoạn một

Anh Nguyễn Hữu Đạt
Tống Đức Dũng


11

-

Tìm hiểu về Spring Framework và
các vấn đề liên quan

-

Xây dựng ứng dụng server side
bằng Spring framework

-

Hoàn thiện các API sử dụng cho

phía client side

-

Review lại kiến thức đã học,
report tiến độ công việc hằng ngày

Giai đoạn hai
-

Thiết kế giao diện cho client side

-

Xây dựng giao diện hoàn thiện cho

Anh Nguyễn Hữu Đạt

phía client side với HTML,

5

JavasScript và TailwindCSS.
-

Review lại kiến thức đã học,
report tiến độ công việc hằng ngày

Giai đoạn ba
-


Anh Nguyễn Hữu Đạt

Tích hợp API đã hồn thành ở giai
đoạn một vào client side

6

Hoàn hiện và sửa lỗi tồn đọng và
phát sinh khi tích hợp

-

Phát triển thêm một số tính năng
nâng cao.

-

Review lại kiến thức đã học,
report tiến độ công việc hằng ngày

Báo cáo thực tập

Tống Đức Dũng


12

-


Đọc hiểu source code dự án theo Anh Nguyễn Hữu Đạt
domain được phân công.

7

Luyện tập sử dụng các công cụ
phục vụ dự án

-

Tìm hiểu quy trình, các thức làm
việc

-

Nghiên cứu về vai trò Build Police
với Jenkins

8

-

Báo cáo cuối đợt thực tập

-

Nộp báo cáo final

-


Được cấp account để làm việc

Anh Nguyễn Văn Mẫn

trong dự án chính thức
-

Được nhận offer để trở thành nhân
viên chính thức.

Báo cáo thực tập

Tống Đức Dũng


13

CHƯƠNG III: CHI TIẾT VỀ PROJECT
1. Giới thiệu về project
Music Player Application là một trình nghe nhạc trực tuyến được xây dựng trên
nền tảng web. Là ứng dụng cho phép truy cập danh sách bài hát thông qua thư viện,
thao tác với các bài hát với các thao tác cơ bản như thêm, xóa, sửa (CRUD). Có thể
phát nhạc như một trình nghe nhạc thơng thường với giao diện cơ bản.
1.1.
-

Yêu cầu
Tất cả dữ liệu bài hát phải được lưu trữ ở server side thông qua một cơ cở dữ
liệu tự chọn (MongoDB lưu trữ thông tin bài hát, Cloudinary lưu trữ dữ liệu
MP3/ hình ảnh).


-

Client side là một web client được xây dựng trên HTML, JavaScript và
TailwindCSS.

-

Giao thức kết nối giữa client và server là REST. Xây dựng các API để từ client
side thực hiện truy vấn tới server side.

-

Ứng dụng phía server side cần phải được deploy để có thể truy cập từ xa. Sử
dụng framework Spring để xây dựng và tương tác với cơ sở dữ liệu.

1.2.
-

Các chức năng chính
Nghe nhạc: tương tự như một trình nghe nhạc cơ bản với các thao tác như tạm
dừng, tiếp tục, chuyển bài,… Giao diện hiển thị thông tin cơ bản của bài hát như
tác giả, thể loại, tên bài hát.

-

Quản lý bài hát: hiện thị danh sách và thông các bài hát hiện có, có thể thực hiện
một số thao tác cơ bản như thêm, xóa, chỉnh sửa với phân quyền admin. Có filter
và phân trang để lọc dữ liệu. Tất cả các thao tác trên phải thông quan RESTful
API và thao tác với cơ sở dữ liệu.


-

Nâng cao:
o Bảo mật khi gọi tới các API bằng Spring Security.
o Hỗ trợ hai ngôn ngữ Tiếng Việt và English.
o Responsive cho phía client side.
o Sử dụng cả hệ quản trị cơ sở dữ liệu SQL song song với MongoDB

Báo cáo thực tập

Tống Đức Dũng


14

2. Thực hiện
Cá nhân thực tập sinh với sự giúp đỡ tận tình của team member AxS Dev Two, mentor
Nguyễn Hữu Đạt.

3. Kế hoạch
Giai đoạn một: server side.
-

Nghiên cứu và xây dựng ứng dụng theo Spring framwork với ngôn ngữ Java.

-

Sử dụng MongoDB để cấu hình cơ sở dữ liệu với documents.


-

Xây dựng các API theo mơ hình repository/service/controller.
o Repository: thao tác trực tiếp với cơ sở dữ liệu
o Service: các hàm thực thi truy vấn dữ liệu thông qua repository
o Controller: nơi các API gọi tới, controller gọi tới service để thực thi yêu
cầu.

-

Sử dụng Heroku để triển khai tự động ứng dụng server side.

Kết quả:
-

Xây dựng được ứng dụng server side theo cấu trúc của ứng dụng Spring Boot.

-

Hoàn thành hầu hết các API cơ bản để thao tác với dữ liệu từ database

-

Deploy được server lên Heroku để có thể gọi API từ client side.

Giai đoạn hai: client side.
-

Xây dựng giao diện cơ bản cho người dùng bằng JavaScript, HTML và
TailwindCSS.


-

Áp dụng các kỹ thật cho client side như Localization, Internalization.

-

Triển khai ứng dụng lên Vercel để truy cập từ xa.

Kết quả: Hoàn thiện giao diện người dùng

Giao đoạn ba: tích hợp và hồn thiện
Báo cáo thực tập

Tống Đức Dũng


15

-

Tích hợp server side và client side bằng việc sử dụng các API đã xây dựng.

-

Sửa lỗi và tích hợp các tính năng nâng cao như Spring Security với acces token,
Localization, Internalization.

-


Hồn thiện và sửa lỗi cịn tồn đọng và phát sinh trong q trình tích hợp giữa
client side và server side.

Kết quả:
-

Hoàn thiện toàn bộ ứng dụng

Báo cáo thực tập

Tống Đức Dũng


16

CHƯƠNG IV: KẾT QUẢ

1. Kết quả đạt được
-

Được trải nghiệm môi trường làm việc chuyên nghiệp từ một trong những công
ty hàng đầu về gia công phần mềm.

-

Trau dồi thêm kiến thức về Back-end, đặc biệt là với ngôn ngữ lập trình Java.

-

Nâng cao khả năng tư duy logic, giải thuật để xử lý vấn đề hiệu quả hơn.


-

Xây dựng được một ứng dụng website hoàn chỉnh.

-

Rèn luyện kỹ năng teamwork thực tế

-

Những nỗ lực công hiến trong suốt quá trình được ghi nhận và hiện tại đã được
offer cho vị trí chính thức tại cơng ty.

2. Điểm mạnh, điểm cần cải thiện của bản thân
-

Điểm mạnh:
o Khả năng tự nghiên cứu
o Khả năng thích nghi với cơng nghệ, với thay đổi mới
o Thái độ với công việc

-

Điểm cần cải thiện
o Cần hòa đồng hơn với tất cả mọi người trong team, không chỉ với một số
người nhất định.
o Một số kỹ năng mềm như thuyết trình, báo cáo, thói quen làm việc cần
được training phù hợp hơn với nhu cầu và văn hóa của cơng ty.
o Chủ động hơn trong việc nhờ sự giúp đỡ từ mentor và team member


3. Về cơng ty
-

Cơ sở vật chất hiện đại, phịng ốc rộng rãi, thống mát, sạch sẽ, nhiều tiện tích
đi kèm ngồi văn phịng như phịng gym, căn tin.

-

Thiết bị máy móc được cung cấp giúp làm việc với hiệu năng cao, mọi vấn đề
ln được giải quyết nhanh chóng, tạo điều kiện làm việc tốt nhất.

-

Công ty nằm chuyên biệt trong công viên phần mềm Quang Trung, không tồn
tại tình trạng kẹt xe, đơng đúc vào giờ tan tầm.

Báo cáo thực tập

Tống Đức Dũng


17

-

Đội ngũ mentor từ team đến dự án thực tế vơ cùng hùng hậu, dày dạn kinh kinh
nghiệm, trình độ chun mơn rất cao.

-


Được trải nghiệm nhiều hoạt động ngồi giờ làm việc như happy hour hằng tuần,
annual trip, team building hằng quý.

4. Định hướng phát triển
-

Hiện tại, với việc đã tham gia dự án chính thức từ cơng ty và mong muốn phát
triển bản thân theo hướng lập trình viên Back-end, trong tương lai gần với mong
muốn trở thành Junior Java Developer và xa hơn là Senior Java Developer.

-

Ngoài ra với tính chất của dự án, bản thân cũng mong muốn phát triển thêm các
kỹ năng về DevOps để có thể làm việc như một DevOps Engineer.

Báo cáo thực tập

Tống Đức Dũng


18

TỔNG KẾT

Tổng kết lại trong vòng hai tháng ngắn ngủi, hồn thành tốt project được giao với các
tính năng đáp ứng được yêu cầu cơ bản và nâng cao từ phía mentor và leader trong thời gian
rất tốt. Từ việc hoàn thành project, bản thân cũng đúc kết được kinh nghiệm về ngơn ngữ lập
trình Java và Spring Framework, tự tin bản thân có thể áp dụng kiến thức đã được training vào
các dự án thực tế, áp dụng được kiến thức và kỹ năng đúc kết từ giảng đường vào cơng việc.

Ngồi ra, được sự tin tưởng của anh Manager Nguyễn Văn Mẫn, bản thân cũng đã được
tiếp xúc với dự án thực tế, tích lũy và làm quen được với nhiều công cụ, framework, ứng dụng
thực tiễn, tự tin có thể đáp ứng được nhu cầu của cơng ty và khách hàng cho vị trí Java
Developer.

Báo cáo thực tập

Tống Đức Dũng


19

TÀI LIỆU THAM KHẢO

Spring Framework
Spring Boot, />Spring Data, />Spring Security, />
TailwindCSS
TailwindCSS, />
Báo cáo thực tập

Tống Đức Dũng



×