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

Báo cáo thực tập lập trình java web

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 (243.88 KB, 16 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 JAVA WEB

Cơng ty thực tập: Cơng ty TNHH PALTech
Thực tập sinh: Vịng Minh Huỳnh


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

2


LỜI MỞ ĐẦU
Với sự phát triển ngày một mạnh mẽ của công nghệ thông tin và Internet ngày nay, lập trình web
- một nhánh phát triển - một bộ phận không thể thiếu của ngành công nghiệp phần mềm, càng lúc càng
khẳng định vị thế, tầm quan trọng của mình trong vơ vàn những ứng dụng, nghiệp vụ, … góp phần to
lớn vào sự phát triển hầu hết về mọi mặt, mọi hoạt động của xã hội chuyển đổi số ngày nay. Lập trình
web hay dịch vụ web và cơng nghệ internet trên thực tế đã có một bề dày lịch sử phát triển trong quá
khứ và đến nay, mảng phần mềm này vẫn đang được đẩy mạnh sử dụng trong nhiều lĩnh vực nói chung
và cũng như thương mại điện tử nói riêng.
Nhờ vào những lí do trên mà ngày nay, hầu hết các doanh nghiệp đều đã trang bị cho mình một
website nhằm tiếp cận khách hàng mục tiêu và tăng lượng chuyển đổi cho mình.
Lập trình Web là cơng việc mà tại đó nó đảm nhận tồn bộ những nhiệm vụ liên quan đến dữ
liệu từ nhóm thiết kế để tạo nên một bộ máy web hoàn chỉnh có tác động qua lại với cơ sở dữ liệu để
thực thi nghiệp vụ nào đó. Nhắc đến lập trình web, hầu như những nhà phát triển sẽ nghĩ ngay đến Java
– một ngơn ngữ lập trình vơ cùng mạnh mẽ nhờ vào khả năng biên dịch thành bytecode của chính nó.
Theo như em tìm hiểu thì lập trình web yêu cầu cơ bản 2 yếu tố:


1. Kiến thức về code web và công nghệ thiết kế web
2. Kỹ năng Front-end và Back-end.
Với ước mơ trở thành một nhà phát triển web fullstack, niềm say mê vào sự kì diệu của ngơn
ngữ lập trình Java, em đã lựa chọn con đường lập trình Java Web để đi giữa vơ vàn con đường của
Ngành Cơng nghiệp phần mềm nói chung, lập trình web nói riêng.
Từ định hướng và lựa chọn đó, sau ba năm học tập vất vả, ba năm nghiên cứu, tìm hiểu, học hỏi
và rèn luyện tại trường, vì khát khao có thêm kinh nghiệm và kĩ năng làm việc thực tế, cũng như muốn
được tham gia phát triển web trong một môi trường chuyên nghiệp, năng động, mang đầy tính học hỏi,
em có đã dự định chọn cuối năm 3 đại học là thời điểm chín mùi để thực hiện khóa thực tập đầu tiên
trong cuộc đời mình. Vì vậy, em đã quyết định chọn PALTech - một mơi trường làm việc chun
nghiệp, mang tính chun mơn cao, đầy sức trẻ và sự năng động để hiện thực dự định và mong muốn
của mình.
3


LỜI CẢM ƠN
Xin trân trọng gửi lời cảm ơn chân thành và sâu sắc đến Công ty TNHH PALTech đã cân nhắc
và quyết định mang lại cho em cơ hội quý báu để được học tập, rèn luyện, học hỏi và phụng sự tại quý
công ty. Tuy thời gian làm việc không quá dài thế nhưng dưới sự chỉ dẫn nhiệt tình của tồn bộ mọi
người trong cơng ty và trong development team nói chung, nhóm thực tập sinh nói chung và em nói
riêng đã tiếp thu được rất nhiều kiến thức chuyên môn quan trọng cũng như những kinh nghiệm làm
việc trong ngành mà từ trước giờ em dường như chưa từng tiếp xúc và nhận ra, để có thể tham gia làm
việc như một nhân viên thực sự. Chân thành gửi lời cảm ơn to lớn đến toàn bộ mọi người trong công ty
đã bỏ ra nhiều thời gian, sức lực để hướng dẫn, chỉ điểm và dìu dắt em hồn thành đợt thực tập này tại
q cơng ty.
Đặc biệt cảm ơn team Infra đã hỗ em rất nhiều về các vấn đề kĩ thuật trong quá trình lập trình
web; cảm ơn đặc biệt đến anh Hồng Huỳnh Nghĩa, đã 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ới môi trường mới; cảm ơn chị Lê
Nguyệt Ánh Thùy Linh và chị Tôn Thị Thanh Thảo và team QC, đã training và cung cấp kiến thức cơ
bản về nghiệp vụ các project lớn của công ty, hỗ trợ chúng em hiểu các project. Trân trọng và chân

thành cảm ơn anh Nguyễn Duy Khánh, đã chỉ dẫn chúng em về cách làm báo cáo, lên kế hoạch, những
kỹ năng khơng thể thiếu về lập trình web nói chung về cơng việc tại vị trí Java Web Developer tại quý
công ty; sâu sắc cảm ơn anh Ngô Văn Tự đã dẫn đầu cả team developer nói chung và cho nhóm thực tập
sinh chúng em nói riêng trong các task công việc và phát triển các project; cảm ơn anh Nguyễn Minh
Đặng và anh Huỳnh Minh Trí đã training cho em những kiến thức quan trọng về MySql, Angular và
HTML để em có thể góp phần sửa lỗi cũng như duy trì các project trong thời gian qua. Và một lời cảm
ơn đặc biệt nhất đến anh Đinh Hữu Quý – Buddy hay người anh đã đồng hành và chịu trách nhiệm với
em trong tồn bộ q trình thực tập tại công ty, anh là người đã chỉ dạy chi tiết mọi kiến thức cần thiết
khi làm việc và cũng như hỗ trợ em hồn thành những task cơng việc từ nhỏ đến lớn từ dễ đến khó.
Và cuối cùng xin cảm ơn quý thầy cô trong khoa Công nghệ phần mềm đã tạo điều kiện cho em
làm bài báo cáo này một cách tường tận với một tinh thần chia sẻ.
Vòng Minh Huỳnh
TpHCM, ngày 20 tháng 12 năm 2022
4


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

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

5


MỤC LỤC
Chương 1 Giới thiêu công ty thực tập............................................................................................7
Chương 2 Nội dung thực tập..........................................................................................................8
Chương 3 Chi tiết về project và cách làm việc............................................................................13

6


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

1. Giới thiệu công ty PALTech
PALTech được thành lập vào năm 2015 tại Thành phố Hồ Chí Minh, là một cơng ty
CNTT cung cấp và phát triển các nền tảng phần mềm có khả năng mở rộng, chất lượng
tuyệt vời và tiết kiệm cho các nhu cầu hoạt động kinh doanh khác nhau.
Công ty cũng cung cấp các dịch vụ kỹ thuật chất lượng cho tất cả các loại tổ chức từ các
doanh nghiệp vừa và nhỏ (SME) cả trong và ngoài nước và hơn nữa là cung cấp các giải
pháp chiến lược và sáng tạo để gia tăng giá trị kinh doanh cho khách hàng. Song song đó,
PALTech cung cấp một bộ giải pháp dựa trên web tích hợp và cũng phát triển các ứng dụng
Internet tùy chỉnh dựa trên yêu cầu công việc được xác định trước từ yêu cầu của khách
hàng.
PALTech được dành riêng để xác định lại doanh nghiệp của hách hàng trên mạng toàn

cầu để tăng trưởng và sản xuất cao hơn thông qua lợi thế cạnh tranh về tốc độ, chi phí và
khả năng thích ứng. Đây chủ yếu là một công ty phát triển phần mềm có chun mơn về các
giao dịch an tồn với tần suất cao, khối lượng lớn trên web và một loạt các POP và CDN
độc quyền. Ngồi ra nó cũng cung cấp các dịch vụ trong các lĩnh vực như QA, phân tích
trang web, bảo mật hệ thống và kết nối mạng. Bên cạnh các giải pháp cơ sở hạ tầng, phần
mềm của PALTech về cơ bản là đa nền tảng: HTML5, CSS, jQuery và Java.

2. Sản phẩm của công ty
PALTech thiết kế, tạo ra và duy trì những Website chạy trên đa nền tảng – thứ mà các
doanh nghiệp khách hàng sử dụng để quản lí, thống kê về tài sản của họ và cũng như là tạo
ra các bảng báo cáo về chúng.
7


Chương 2 Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình Java Web” nhằm mục đích giúp sinh viên thực tập
được đào tạo tồn diện về lập trình Web cùng Angular và Spring MVC, đồng thời rèn luyện
những kỹ năng mềm như làm việc nhóm, 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 web chun nghiệp, trẻ và năng
động.

1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian: 3 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và phát triên
(như đã nhắc đến ở trê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.
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…

Kết quả: Hiểu thêm về công ty PALTech, quá trình thành lập và phát triển. Có thêm các
kỹ năng về việc sử dụng Email và Slack trong công việc, làm việc có kế hoạch, có kỷ
luật, có trách nhiệm hơn.

1. Nghiên cứu kỹ thuật
1.1. Các công cụ làm việc
Thời gian: 4 ngày
Nội dung: Tìm hiểu về một số cơng cụ, phần mềm sẽ được sử dụng trong quá trình
làm việc.

8


Trong thời gian một ngày đầu, bộ phận Infra sẽ giúp em cài đặt tồn bộ mọi thứ
về vị trí làm vệc, máy móc và cài các phần mềm trong whitelist (danh sách các phần
mềm được phép cài đặt và sử dụng trong máy tính làm việc cá nhân tại cơng ty).
Bên cạnh đó, bộ phận Infra cũng hỗ trợ cung cấp và update các tài khoản cần thiết
để em có thể truy cập và sử dụng những trang web hay phần mềm hỗ trợ cho quá
trình làm việc tại công ty như Jira, Aws, Jenkin, Gitlab, Log web, Slack, IntelliJ,
Tortoise SVN và TortoiseGit, Notepad++…
Sau đó ba ngày, anh Đinh Hữu Qúy – buddy của em sẽ hỗ trợ chỉ dẫn em về các
flow làm việc cũng như sử dụng các phần mềm trang web đó. Anh đã giải thích về
công dụng của một số trang web như Log, Jenkin, AWS-Jenkin. Anh đã chỉ dẫn các
kết nối database với workbench bằng các tài khoản đặc biệt cho dev cũng như chỉ dẫn
tường tận mẹo tổ chức các folder trong công việc để tiện cho sau này.
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ập trình sử dụng kết hợp các công cụ với nhau. Biết cách kết hợp các công
cụ để làm việc. Làm quen được với các trang web hay công cụ mới như trên.
1.2.


Tìm hiểu về sự kết hợp giữa Angular và Spring Framework

Thời gian: xuyên suốt quá trình làm việc từ đầu tới cuối
Nội dung: Được training về các kỹ thuật Java nâng cao. Học cách sử dụng các công
nghệ mới Angular và Spring trong xuyên suốt quá trình làm việc.
Khi được thực tập tại cơng ty, xun suốt q trình em được training và làm việc
với tiêu chí “Làm là học, học là làm”. Tức là khi được giao các task công việc, em sẽ
được các anh hỗ trợ để giải quyết các bài tốn đó qua các bước như sau: hiểu nghiệp
vụ - tìm hiểu ngơn ngữ - thực hành ngôn ngữ - áp dụng – giải quyết công việc – bảo
trì kết quả - ghi nhớ - báo cáo.
Thực hiện:
-

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

-

Ghi nhớ những kiến thức vừa được bản thân tìm hiểu và áp dụng vào các task

Kết quả:
9


-

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

-

Nâng cao sự thành thạo với Angular kết hợp Spring.


-

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

-

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 cũng như các làm quen các extension bắt code xấu như
sonar.

1.3.

Tìm hiểu về mơ hình MVC trong Spring

Nội dung: Các kiến thức cơ bản về MVC trong Spring hỗ trợ làm việc với backend.
-

Khái niệm cơ bản về mơ hình MVC
Nắm được các khái niệm cơ bản về MVC, là một Framework hỗ trợ lập trình và
phát triển các ứng dụng Java và đặc biệt ở cơng việc này đó là Java web, dễ sử
dụng và tái sử dụng code.

-

Các anomations

 @Controller là chú thích chính cho biết lớp được chú thích đóng vai trị
là Bộ điều khiển của MVC. Dispatcher Servlet qt các lớp được chú
thích với nó để ánh xạ các yêu cầu web tới các phương thức được chú

thích bằng @RequestMapping

 @RequestMapping để ánh xạ các yêu cầu tới các phương thức của bộ
điều khiển. Nó có các thuộc tính khác nhau để khớp theo URL, phương
thức HTTP, tham số yêu cầu, tiêu đề và loại phương tiện. Bạn có thể sử
dụng nó ở cấp lớp để thể hiện các ánh xạ được chia sẻ hoặc ở cấp
phương pháp để thu hẹp thành một ánh xạ điểm cuối cụ thể.
Tương tự có:
@GetMapping
@PostMapping
10


@PutMapping
@DeleteMapping
@PatchMapping
Thực hiện:
-

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

-

Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

-

Đọc code một số package điển hình và quan trọng để hiểu được flow sử dụng
cũng như cách hoạt động thực sự của Spring trong project của công ty.


Kết quả:
-

Hiểu được những khái niệm cơ bản trong MVC.

-

Biết được các flow hoạt động của framework và của project thực

1.4.

Lập trình trên IntelliJ

Nội dung: Các kỹ thuật dùng intelliJ, kết hợp các extension hay phần mềm để thực
hiện kết nối backend, ... như là sử dụng glassfish.
Thực hiện:
-

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

-

Kết hợp với Glassfish trong việc fix bug hay các task mới

Kết quả:
-

Đã có thể sử dụng khá thành thạo cơng cụ IDE IntelliJ.

2. Thực hiện project

Sau một 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ề Spring MVC và Microservices, cũng như team QC/BA đã hướng dẫn thực tập
sinh về những nghệp vụ ý nghĩa project của công ty.
Chi tiết đồ án sẽ được nói ở phần sau.
11


3. Lịch làm việc

Tuần

1

Cơng việc

Người hướng dẫn

-

Tìm hiểu về cơng ty, cách tổ chức của công ty.

Anh Đinh Hữu Qúy và

-

Làm quen với các công cụ làm việc trong công anh Nguyễn Duy Khánh,
ty.

2


Hoàng Huỳnh Nghĩa

-

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

-

Tìm hiểu ngơn ngữ lập trình Java nâng cao

Anh Đinh Hữu Qúy và

-

Thực hành Java.

anh Huỳnh Minh Trí

3

-

Tìm hiểu về Spring MVC

Anh Nguyễn Minh Đặng

-

Tìm hiểu về Angular


và anh Đinh Hữu Quý

-

Tham gia training về nghiệp vụ hay business Chị
của các project

4+5+6

Lệ

Nguyệt

Ánh

Thùy Linh và chị Tôn
Thị Thanh Thảo.

Giai đoạn thử sức:
5

-

Anh Đinh Hữu Qúy và

Được giao 1 feature mới, nhỏ để hoàn thành và anh Nguyễn Duy Khánh
làm quen

Giai đoạn thử sức(tiếp):
6


-

Anh

Nguyễn

Duy

Tham gia làm quen flow giải quyết một bug sẽ Khánh.
như thế nào? Flow làm việc trong team.

Tuần 7 – Giai đoạn quen và tham gia làm việc:
hết
thực tập



-

Anh Đinh Hữu Qúy và

Tham gia làm việc như một nhân viên chính and Ngơ Văn Tự
thức để lấy kinh nghiệm.

12


Chương 3 Chi tiết về project và cách làm việc
1. Giới thiệu về AQS

Với nhu cầu tổng hợp báo cáo về trao đổi tài sản số, nhu cầu tính tốn giá trị tổng hợp
của tài sản theo dõi và quản lí dữ liệu khơng chỉ là tài sản mà cịn từ nhiều nguồn khác
nhau cũng như khả năng phân tích và xuất ra các báo cáo cho các doanh nghiệp hay cá
nhân, tổ chức cả trong và ngoài nước, AQS sinh ra để làm việc đó.
AQS là một projct điển hình của cơng ty và em may mắn được tham gia vào project này.
AQS là project phục vụ các doanh nghiệp, người dùng nước ngoài cho việc thống kê,
theo dõi, quản lí và xuất các báo cáo kinh doanh, tài sản của người dùng. Được xây
dựng từ năm 2019, đến nay vẫn được duy trì và phát triển tùy vào mục đích yêu cầu
khách hàng. Cho nên khi em tham giao vào project này thì sẽ được tham gia maintain nó
bằng cách fix bug và phát triển một số yêu cầu nghiệp vụ mới chứ không phải tham gia
từ đầu trong việc xây dựng nó.
1.1.

Các mơi trường của project.
AQS được phát triển trên 3 môi trường song song được gọi là: QAT, STG và
PROD:

-

QAT: Là môi trường phát triển thấp nhất mà developer sẽ làm việc đầu tiên đối
với một task công việc hay một bug. Môi trường này cũng sẽ có cơ sở dữ liệu của
riêng nó để thuận tiện cho việc testing cũng như thử nghiệm những feature mới từ
nghiệp vụ.

-

STG: Là mơi trường phát triển cũng có database riêng, môi trường cao hơn qat.

-


PROD: là môi trường khách hàng dùng. Là môi trường bậc cao nhất và quan trọng
nhất.
Bất cứ một feature hay 1 bug nào sinh ra đều phải đi đúng thứ tự từ thấp đến cao
theo một kế hoạch đã được định trước.
13


1.2.

Một số hình ảnh project

Hình 1 Màn hình User management của AQS

14


TÀI LIỆU THAM KHẢO

[1] Lynn Beighley, Michael Morrison (2018), Headfirst PHP & MySQL, O'Reilly Media, Inc.
[2] Google ©2010-2022, />[3] © 2022 VMware, Inc, />[4] Copyright © Eclipse Foundation, />
15


TỔNG KẾT

Như vậy, chỉ trong vòng vài tháng ngắn ngủi, em đã thu thập được và học được rất nhiều
thứ về tác phong, kinh nghiệm làm việc của một developer trên thị trường. Song song đó về mặt
chun mơn, em cũng đã học được rất nhiều kĩ thuật cũng như công nghệ mới từ công việc.
Chân thành cảm ơn sự giúp đỡ của các anh chị team developer của PALTech đã giúp em
hồn thành được kì thực tập của mình


16



×