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

Báo cáo thực tập REACT JAVA ENGINEER TRAINEE

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 (752.01 KB, 18 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

REACT - JAVA ENGINEER TRAINEE

Công ty thực tập

: ELCA Vietnam

Người phụ trách

: Anh Hồ Văn Thiện Tâm

Thực tập sinh

: Đinh Ngọc Uyên Phương

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

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


LỜI MỞ ĐẦU
Với sự phát triển nhanh chóng mặt của thị trường phần mềm, hiện nay ở Việt Nam cũng
đã có rất nhiều cơng ty phát triển các phần mềm hay hệ thống mã nguồn mở, một trong số đó là
công ty ELCA Việt Nam. Là một công ty phần mềm đa quốc gia có nguồn gốc từ Thụy Sĩ,
ELCA không chỉ phát triển các sản phẩm phần mềm mới, mà còn đảm nhận cả những dự án mã


nguồn mở theo yêu cầu khách hàng.
Định hướng nghề nghiệp của em rất phù hợp với hướng đi của việc phát triển phần mềm,
mục tiêu và giá trị của công ty ELCA. Do đó, em đã chọn ELCA là nơi thực tập đầu tiên và trải
nghiệm nhiều kiến thức thực tế.

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn đến Công ty ELCA Việt Nam đã tạo điều kiện cho em có cơ
hội được thực tập tại cơng ty.
Kỳ thực tập tuy ngắn, nhưng em đã được học rất nhiều thứ từ sự chỉ dẫn nhiệt tình của
các anh Coach trong phịng ban. Em khơng những học được những kỹ thuật, kiến thức trong các
dự án thực tế, mà cịn tích góp được cho bản thân những kinh nghiệm khi làm một nhân viên
trong công ty, cách giao tiếp, làm việc nhóm trong các dự án chung. Chân thành cảm ơn các anh
chị đã giúp đỡ, hướng dẫn cũng như theo sát để góp ý em trong suốt q trình thực tập.
Đặc biệt em xin gửi lời cảm ơn sâu sắc đến anh Hồ Văn Thiện Tâm, đã giúp em
training rất nhiều về kiến thức ReactJS, Spring, đến những khó khăn trong việc làm quen
với môi trường mới, cũng được anh chỉ dẫn rất tận tình. Với kiến thức rộng và sâu của
anh, em đã học hỏi được rất nhiều. Anh đã hỗ trợ em rất nhiều về kiến thức nghiệp vụ của
sản phẩm SecuTix, cũng như quy trình làm việc và cách thức sử dụng các công cụ Jira,
Bitbucket, Vertec, ….
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.
Đinh Ngọc Uyên Phương
TpHCM, ngày 25 tháng 12 năm 2021


Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


NHẬN XÉT CỦA KHOA

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


MỤC LỤC

Chương 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1

1. Giới thiệu công ty ELCA

1

2. Sản phẩm của công ty

1

Chương 2: NỘI DUNG THỰC TẬP

3


1. Giới thiệu chung

3

1.1. Giai đoạn training kiến thức:

3

1.2. Giai đoạn thực hiện project:

3

2. Chi tiết nội dung thực tập

4

2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty

4

2.2. Giai đoạn training kiến thức cơ bản

4

2.2.1. Java

4

2.2.2. Spring


5

2.2.3. Tìm hiểu về CSS

6

2.2.4. Tìm hiểu về Javascript

6

2.2.5. Tìm hiểu về ReactJS

7

2.2.6. Tìm hiểu về Coding best practices

7

2.3. Thực hiện project

7

Chương 3: Chi tiết về project

8

1. User story 1: Donation Task

8


1.1. Yêu cầu nghiệp vụ:

8

1.2. Mô tả công việc:

8

2. User story 2: Suspend Ticket Task

9

1.1. Yêu cầu nghiệp vụ:

9

1.2. Mô tả công việc:

9

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


TÀI LIỆU THAM KHẢO

11

TỔNG KẾT


12

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


1

Chương 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1. Giới thiệu công ty ELCA
ELCA được thành lập vào năm 1968 tại Thụy Sĩ, là một tập đoàn chuyên cung cấp các
giải pháp IT cho khách hàng, thiết kế lại các phần mềm cho phù hợp với nghiệp vụ từng doanh
nghiệp yêu cầu. ELCA đã có cơ hội hợp tác với hơn 500 doanh nghiệp nhằm cung cấp các giải
pháp phần mềm thông minh, hiệu quả. ELCA luôn tự hào chuyển giao các phần mềm bền vững
đến khách hàng.

Sau hơn 50 năm thành lập và phát triển, ELCA đã khẳng định được vị thế và niềm tin ở
khách hàng bằng những giá trị mà công ty mang lại. Thông qua những dự án lớn như: Giải pháp
quản lý ID cho người dân và tội phạm – Hợp tác với chính phủ Thụy Sĩ, Giải pháp hệ thống bán
vé cho UEFA,… ELCA đã dần chứng minh được đây là một công ty đáng tin cậy và đã gây
dựng được mối quan hệ với rất nhiều khách hàng lớn trên tồn thế giới.
ELCA có văn phòng đặt tại Thụy Sĩ, Tây Ban Nha, Pháp, Anh, Đức, Ý và Việt Nam, với
hơn 1300 nhân viên làm việc tại tất cả các văn phòng trên thế giới. ELCA đã có kinh nghiệm
làm việc với gần 1000 dự án cho khách hàng, doanh thu năm 2019 đạt 170 triệu Franc.

2. Sản phẩm của công ty
Những sản phẩm phần mềm của ELCA được phát triển nhắm tới tệp khách hàng rất đa

dạng, từ trong nước cho tới ngoài nước, từ chính phủ cho tới các doanh nghiệp, tập đồn lớn. Là
một cơng ty chun cung cấp các giải pháp, các sản phẩm trải rộng trên nhiều lĩnh vực như:
Quản lý bảo hiểm (IPENSION), Quản lý định danh (trustID), Bán vé trực tuyến (Secutix), ….

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


2

Giải pháp nổi bật của ELCA như:
- SecuTix: ban đầu là một giải pháp bán vé xem Euro 2016 tại Pháp, và sau đó đã
tách riêng ra thành một cơng ty dưới sự quản lý của ELCA, là nơi cung cấp các
nền tảng bán vé trực tuyến được phát triển cho phù hợp với từng tổ chức. Phần
mềm này được sử dụng bởi lượng lớn khách hàng như quản lý bảo tàng, các câu
lạc bộ thể thao, các nhà thi đấu, các buổi biểu diễn trực tiếp, lễ hội khắp Châu Âu.
ELCA là công ty đầu tiên ở Châu Âu cung cấp các giải pháp để đảm bảo ngành
bán vé (ngăn chặn thị trường chợ đen) dựa trên công nghệ blockchain. Giải pháp
được thử nghiệm thành công trong Lễ hội Paleo 2017 và Siêu cúp UEFA ở Skopje
2017

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


3

Chương 2: NỘI DUNG THỰC TẬP

1. Giới thiệu chung
Kế hoạch training dành cho thực tập sinh đi kèm với đánh giá chất lượng nhân sự
đầu vào của ELCA được chia làm hai giai đoạn: Giai đoạn training kiến thức cơ bản và
giai đoạn thực hiện project.

1.1. Giai đoạn training kiến thức:
Thực tập sinh sẽ được training kiến thức về công nghệ, các best practices và các coding
convention trong ELCA. Thứ 6 hằng tuần, coach sẽ tạo một buổi checkpoint meeting với thực
tập sinh để giải đáp thắc mắc cũng như đánh giá khả năng tiếp thu kiến thức của thực tập sinh.
Sau 4 tuần training kiến thức cơ bản, thực tập sinh sẽ tiến hành soạn slide, thuyết trình về
những kiến thức đã học được trong suốt 4 tuần training và demo sản phẩm cá nhân với coach,
scrum master, project manager. Các anh chị trong team sẽ tiến hành đặt câu hỏi, xem hướng giải
quyết vấn đề và các coding convention cũng như source code chi tiết của sản phẩm.
Nếu thực tập sinh có thể nắm vững các kiến thức cần thiết trong 4 tuần training thì được
training về nghiệp vụ và thử sức với project tế.

1.2. Giai đoạn thực hiện project:
Thực tập sinh sẽ được product owner trực tiếp hướng dẫn về nghiệp vụ của sản phẩm.
Sau khi training, thực tập sinh tiến hành thực hiện tính năng của sản phẩm trong vịng
một tháng. Team ln tổ chức daily meeting nhằm giúp các thành viên trong team (bao gồm cả
thực tập sinh) báo cáo những cơng việc đã hồn thành vào ngày làm việc trước đó, cơng việc
cho hơm nay, những vấn đề cần thảo luận (nếu có).
Sau khi hồn thành tính năng được giao, thực tập sinh sẽ tham gia một buổi demo tính
năng với sự tham gia của product owner, scrum master, coach, tester và các thành viên khách
trong team, nhằm đánh giá kết quả của tính năng, góp ý để hiệu chính (nếu có).

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương



4

Kết thúc giai đoạn thực tập, thực tập sinh sẽ tham gia buổi meeting có sự tham gia của
project manager, scrum master, coach và HR với mục tiêu là thuyết trình về những gì đã học
được trong suốt thời gian thực tập tại ELCA, chi tiết về công việc được giao (tính năng trong
sản phẩm thực tế), những khó khăn gặp phải, hướng giải quyết, hướng phát triển của cá nhân
trong tương lai và đánh giá về kế hoạch training cũng như môi trường làm việc tại ELCA.

2. Chi tiết nội dung thực tập
2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty.
Thực tập sinh sẽ được bộ phận nhân sự 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 .
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ách sử dụng các phần mềm phục vụ việc quản lý
nhân sự
Kết quả: Hiểu thêm về văn hố cơng ty ELCA, q trình thành lập và phát triển.
Có thêm một số kỹ năng về việc sử dụng các phần mềm nội bộ của cơng ty, có kỷ
luật và trách nghiệm hơn.

2.2. Giai đoạn training kiến thức cơ bản
Thực tập sinh tham gia vào team SecuTix sẽ được training các kiến thức cơ
bản từ frontend - ReactJS đến backend - Java Spring
2.2.1. Java
Nội dung
● Ôn các kiến thức cơ bản liên quan đến OOP, các cú pháp cơ bản, lớp và đối

tượng, interface, kế thừa, Generics, Packages, phạm vi truy cập trong OOP,

Nested class, Collections.
● Ôn lại một số thành phần khác của Java: Java NIO.2, Lambda Expression,
method references, DateTime API, thư viện Apache Commons.
● Tìm hiểu về Stream API trong Java.
● Các design pattern được sử dụng nhiều trong java: singleton, factory pattern.

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


5

● Về nguyên lý SOLID: Tìm hiểu về Single Responsibility Principle,
Open-closed principle, Liskov Substitution Principle, Interface Segregation
Principle, Dependency Injection.
● Về xử lý Exception: Tìm hiểu về cấu trúc cây Exception trong Java.
● Phân biệt Checked và Unchecked exception: Checked exception sẽ được
kiểm tra bởi compiler, thực hiện xử lý bằng try/catch. Unchecked exception
có hai loại: RuntimeException (gây ra bởi việc lập trình khơng đúng) và
System Errors (gây ra bởi hệ thống, vd như khi hết bộ nhớ). Runtime
exception không nên được catch.

Thực hiện: Tiến hành tìm hiểu các kiến thức nêu trên đặc biệt quan tâm tới java 8
sau đó checkpoint cùng coach.
Làm bài tập java bằng các kiến thức đã tìm hiểu được ở phía trên. Nội dung bài
tập liên quan đến một java console app có khả năng đọc file csv và xuất ra kết quả
theo yêu cầu. Đồng thời, ứng dụng phải có khả năng đọc nhiều định dạng file khác
nhau.
Kết quả:

Hiểu và có thể áp dụng những kiến thức đã được nêu trên.

2.2.2. Spring
Nội dung: Vì Spring là một đề tài rất rộng, vì vậy trong giới hạn thời gian training,
coach chỉ yêu cầu thực tập sinh nắm được các phần sau:

● Cách thức hoạt động của các annotation sau: @Configuration, @Bean,
@Component, @Controller, @Service, @Repository, @Autowired (có thể
dùng hoặc khơng dùng với @Qualifier).
● Chức năng của Dispatcher Servlet, Handler Mapping, Controller,
ModelAndView, ViewResolver và View.
● Hiểu rõ và có thể giải thích được ở mức độ chi tiết cách thức hoạt động của
các
components
thường
được
sử
dụng:
@RequestMapping/@RequestParam,
@RequestBody/@ResponseBody,
@ModelAttribute, @InitBinder.
● Sự khác biệt giữa RestController, và Controller.

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


6


Thực hiện: Tiến hành tìm hiểu các kiến thức nêu trên sau đó checkpoint
cùng coach.
Kết quả: Hiểu và có thể áp dụng những kiến thức đã được nêu trên.

2.2.3. Tìm hiểu về CSS
Nội dung:





Các vấn đề cơ bản trong CSS: Giới thiệu về CSS, Syntax.
Selectors trong CSS: Rules, Document Tree, Selectors.
Formatting với CSS: Background, Text, Font.
Các khái niệm cơ bản: Box Model, Border, Outline,
Margin, Padding. Positioning trong CSS: Absolute
positioning, Relative positioning.
● Bootstrap.
● Tìm hiểu về FlexBox
● CSS pseudo class và pseudo element.
Thực hiện: Tiến hành tìm hiểu các kiến thức nêu trên sau đó checkpoint cùng
coach.
Kết quả: Hiểu và có thể áp dụng những kiến thức đã được nêu trên.

2.2.4. Tìm hiểu về Javascript
Nội dung:

● Các khái niệm cơ bản: Javascript là gì, sử dụng Javascript vào những mục đích
● Tìm hiểu về những thành phần lõi trong Javascript.
Thực hiện: Tiến hành tìm hiểu các kiến thức nêu trên sau đó checkpoint cùng

coach.
Kết quả: Hiểu và có thể áp dụng những kiến thức đã được nêu trên.

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


7

2.2.5. Tìm hiểu về ReactJS
Nội dung: Học ReactJS trên khóa học udemy công ty cung cấp để nắm rõ những
kiến thức căn bản nhất về ReactJS.
Thực hiện: Tiến hành tìm hiểu các kiến thức nêu trên sau đó checkpoint cùng
coach.
Kết quả: Hiểu và có thể áp dụng những kiến thức đã được nêu trên.

2.2.6. Tìm hiểu về Coding best practices
Nội dung: Tìm hiểu về các coding best practices đang được áp dụng tại ELCA.
Thực hiện: Tiến hành tìm hiểu các kiến thức nêu trên sau đó checkpoint cùng
mentor.
Kết quả: Hiểu và có thể áp dụng những kiến thức đã được nêu trên.

2.3. Thực hiện project
Sau hơn một tháng được training những công cụ, công nghệ, kiến thức nền từ cơ
bản đến nâng cao, thực tập sinh đã nắm được các kỹ thuật và nội dung cơ bản khi lập
trình. Coach sẽ cho trainee tham gia vào một dự án thật của công ty.

Coach: Anh Hồ Văn Thiện Tâm


Đinh Ngọc Uyên Phương


8

Chương 3: Chi tiết về project
1. User story 1: Donation Task
1.1. Yêu cầu nghiệp vụ:
Người dùng có thể quyên góp cho bất kì hạng mục nào trực thuộc hệ thống.
Người dùng có thể quyên góp một lần hoặc theo chu kỳ mỗi tuần, mỗi tháng, mỗi tháng
với số tiền cố định. Sau đó họ có thể theo dõi và huỷ những donation đã mua. Người
dùng tiến hành thanh tốn thơng qua các thẻ VISA, Mastercard, ….

1.2. Mô tả công việc:
● Xây dựng màn hình giao diện để người dùng chọn hạng mục qun góp, nhập
thơng tin thanh tốn, đăng nhập để xem hạng mục đã thanh toán.
● Viết api bằng java để trả về thông tin hạng mục, gửi thông tin thanh tốn, thơng
tin qun góp thơng qua các service có sẵn.
● Viết integration testing cho giao diện.

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


9

2. User story 2: Suspend Ticket Task
1.1. Yêu cầu nghiệp vụ:
Sau khi khách hàng đặt vé do hệ thống cung cấp, họ chưa thanh tốn ngay mà vì

một số lý do cá nhân khiến họ sẽ quay lại thanh toán sau. Lúc này nhân viên tiến hành
lưu trữ (suspend) những vé tham quan mà khách hàng đã chọn đợi khách hàng quay lại
thanh tốn.

1.2. Mơ tả cơng việc:
● Xây dựng màn hình giao diện để nhân viên có thể xem danh sách các ticket đã
suspend và cho phép nhân viên mở lại (reopen) hoặc suspend các ticket của khách
hàng.
● Viết api bằng java để trả về thông tin các ticket đã suspend, suspend và reopen các
ticket thông qua các service có sẵn.
● Viết integration testing cho giao diện.

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


10

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


11

TÀI LIỆU THAM KHẢO
[1] Java: />[2] Hibernate Annotation:
/>[3] Spring Data References: />data/jpa/docs/current/reference/html/#repositories
[4] CSS tutorial: />[5] CSS Selector: />[6] ReactJS: />[6] Typescript: />

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương


12

TỔNG KẾT
Như vậy, trong thời gian thực tập, em đã tham gia và hồn thành được 2 cơng việc nhỏ
trong dự án thực tế là Donation Task và Suspend Ticket Task. Dù đây là lần đầu tiên được tiếp
xúc với dự án thực tế, em vẫn rất cố gắng hoàn thiện đầy đủ yêu cầu từ cơ bản đến nâng cao, kết
quả đạt được đã tốt hơn mong đợi rất nhiều. Nếu sau này cịn có thời gian để bảo trì và phát
triển thêm cho dự án, em sẽ có thể hoàn thành tốt hơn những yêu cầu nâng cao từ phía khách
hàng.
Chân thành cảm ơn sự giúp đỡ của các anh chị trong phòng ban ELCA Engineering ở
ELCA, đặc biệt là anh Hồ Văn Thiện Tâm đã theo sát và hướng dẫn, giúp em hoàn thành tốt dự
án và cả đợt thực tập này tại ELCA.

Coach: Anh Hồ Văn Thiện Tâm

Đinh Ngọc Uyên Phương



×