1. Trang chủ
  2. » Tất cả

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

24 12 3
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 Java Developer
Tác giả Tống Đức Dũng
Người hướng dẫn Nguyễn Văn Mẫn
Trường học Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm https://fit.hut.edu.vn
Chuyên ngành Khoa Công nghệ Phần mềm
Thể loại Báo cáo thực tập
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 24
Dung lượng 238,86 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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á[.]

Trang 1

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

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

JAVA DEVELOPER

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

Trang 2

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

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

JAVA DEVELOPER

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

Trang 3

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ế toà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 luôn 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

Trang 4

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 Quân, 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, chuyên nghiệp và rất vui vẻ, luôn 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

Trang 5

Trang 6

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

Trang 7

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ạnhsuốt 25 năm qua, TMA Solutions 16 năm qua liên tiếp lọt top 10 công tyFinTech, 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 ngoài (Mỹ,Canada, Pháp, Nhật, Úc, Singapore) với đội ngũ hơn 3800 kỹ sư tài năng, nhiệthuyết

TMA đã có gần 10 năm làm việc với các tập đoà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 trongcá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ĩnhvự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,

Trang 8

TMA Solutions hiện là đối tác tin cậy có nhiều năm kinh nghiệm thực hiệnnhữ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áchhà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ậtBản, Hàn Quốc, Ấn Độ,… Có thể kể đến một số khách hàng truyền thống từ nhiềunăm qua của TMA Solution như Avaya, Nokia, Mitel, Atacel-Lucent,…

Ngoài là đối tác gia công cho các công ty nước ngoài, TMA còn tự mình pháttriển nhiều bản phẩm thông qua công ty thành viên TMA Innovation đã được ứngdụ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

Trang 9

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âydự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ếttrình, giao tiếp, được làm việc trong một môi trường chuyên 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, quá trình thành lập và phát triển, quytrì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ácvấ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,…

Ngoà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 tynhư 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ôngviệc, các kỹ năng mềm

Kết quả: Hiểu thêm về công ty, quá 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 quá 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áccô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.

Trang 10

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ínhnhư 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óakiể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ônghợ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 đốitượ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ìnhJava

- 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áctớ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 JavaCollections

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

Trang 11

lớp (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet,TreeSet,…).

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

- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩ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

Trang 12

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ómnhư 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ớiDenpendency Injection

Trong Spring, Spring Container (IoC Container) sẽ tạo các đối tượng, lắp rắpchú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 (DependencyInjection) để quản lý các thành phần, đối tượng để tạo nên 1 ứng dụng Cácthành phần, đối tượng này gọi là Spring Bean Để tạo đối tượng, cấu hình, lắprắ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 Springframework, qua đó Spring container “inject” các đối tượng vào các đối tượngkhác hoặc “dependencies” Điều này giúp chuyển trách nhiệm quản lý cácdenpendency 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ươngtrì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ụngtrong 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.

Trang 13

- Spring Data JPA

Dựa trên JPA, Spring Data JPA tích hợp ứng dụng xây dựng bằng nền tảngSpring với JPA bằng việc cung cấp các JpaTemplates Việc sử dụng JPA giúprú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 authenticationheaders, Form-based authentication,… Trong đó HTTP Basic authenticationheader 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ầnthự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ấpcá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óingắn gọn, Spring Boot là sự kết hợp của Spring framework và các EmbeddedServer

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ả:

- 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

2.4 Lập trình Front-end với TailwindCSS

Trang 14

Thời gian: 10 ngày (2 tuần)

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áchkế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, tuykhô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

Trang 15

4 Lịch làm việc

Tuần Công việc Người hướng dẫn

Mức độ hoàn thành

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

Anh Nguyễn Hữu Đạt

3 - Tìm hiểu ngôn ngữ lập trình

JavaScript cùng với HTML

- Tìm hiểu và áp dụngTailwindCSS để xây dựng giaodiện

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

Anh Nguyễn Hữu Đạt

Trang 16

Anh Nguyễn Hữu Đạt

5

Giai đoạn hai

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

- Xây dựng giao diện hoàn thiệncho phía client side với HTML,JavasScript và TailwindCSS

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

Anh Nguyễn Hữu Đạt

6

Giai đoạn ba

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

- 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ăngnâng cao

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

Anh Nguyễn Hữu Đạt

Trang 17

- Đọc hiểu source code dự án theodomain được phân công

- 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àmviệc

- Nghiên cứu về vai trò BuildPolice với Jenkins

Anh Nguyễn Hữu Đạt

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ệctrong dự án chính thức

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

Anh Nguyễn Văn Mẫn

Trang 18

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ựngtrê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ệuMP3/ 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ừ clientside 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átnhư 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 quanRESTful 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

Ngày đăng: 01/02/2023, 21:19

TỪ KHÓA LIÊN QUAN

w