báo cáo thực tập java web developer

22 0 0
Tài liệu đã được kiểm tra trùng lặp
báo cáo thực tập java web developer

Đ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

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬPJAVA WEB DEVELOPER

Công ty thực tập:FPT SoftwareNgười phụ trách:Âu Mậu DươngThực tập sinh:Nguyễn Âu Duy

Trang 2

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

LỜI MỞ ĐẦU

Trong cuộc cách mạng công nghiệp 4.0, công nghệ thông tin nói chung vàngành Công nghệ phần mềm nói riêng luôn là nhân tố đóng vai trò quantrọng trong quá trình phát triển của xã hội.

Công nghệ Web, hay công nghệ sản xuất các trang web đã phục vụ hầuhết các nhu cầu của con người từ bán hàng, cung cấp kiến thức đến thôngtin liên lạc, Hiện nay đã có đến hơn 1.5 tỷ trang web, nhưng nhu cầutạo ra những trang web mới vẫn chưa có dấu hiệu giảm.

Do đó, một trang web muốn được nhiều người sử dụng phải đáp ứng đượcyếu tố hình thức và nội dung Làm thế nào để sản phẩm tạo ra đạt chấtlượng cao ở hai yếu tố trên luôn làm bất kì một đội ngũ phát triển websitenào cũng cần phải suy nghĩ đau đầu Để thử thách bản thân trong ngànhcông nghiệp web, em đã lựa chọn backend web developer là định hướngcho việc học cũng như nghề nghiệp trong tương lai.

Sau những năm tháng trong môi trường đại học, với mong muốn áp dụngnhững kiến thức đã học và có được trải nghiệm trong môi trường thực tế,em đã quyết định tham gia vào FPT Software– một môi trường lý tưởng vàchuyên nghiệp để thực hiện dự định.

Trang 3

LỜI CẢM ƠN

Em xin trân trọng gửi lời cảm ơn đến trainer của em, anh Âu Mậu Dươngđã tạo điều kiện cho em cơ hội được thực tập tại công ty Dù trong thờigian ngắn nhưng nhờ sự chỉ dẫn nhiệt tình của anh, em đã tiếp thu nhữngkiến thức quan trọng để có thể tham gia một dự án thực tế

Chân thành cảm ơn anh Âu Mậu Dương và các anh chị trong team FA đãbỏ ra nhiều thời gian, công sức để hướng dẫn, hướng dẫn, giúp đỡ em tậntình trong khi làm quen môi trường mới cũng như trong việc tiếp cận kiếnthức công nghệ, kỹ năng lập trình và tư duy sản phẩm để có thể thực hiệntốt dự án cá nhân và dự án thực tế trong thời gian qua

Em cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệttình hỗ trợ, tạo điều kiện em làm báo cáo này

TP HCM, ngày 31 tháng 12năm 2023

Trang 5

1.3 Lịch làm việc khi thực tập tại công ty 6

CHƯƠNG 2: NỘI DUNG THỰC TẬP 7

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

2.2 Nghiên cứu kỹ thuật 7

Trang 7

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

1.1 Giới thiệu

Hình Logo

FPT Software là một công ty công nghệ toàn cầu có trụ sở tại ViệtNam, là một phần của Tập đoàn FPT - một trong những tập đoàn côngnghệ và viễn thông lớn nhất tại Việt Nam Dưới đây là một số thông tingiới thiệu về FPT Software:

Lĩnh vực hoạt động:

FPT Software chuyên cung cấp các dịch vụ phát triển phần mềm,chuyển đổi số, và outsourcing IT cho các khách hàng trên toàn cầu Côngty hoạt động trong nhiều ngành công nghiệp như tài chính, y tế, sản xuất,logictics, giáo dục, và nhiều lĩnh vực khác.

Quy mô và Địa điểm:

FPT Software có quy mô lớn với hàng ngàn nhân viên và nhiều văn phòng trên khắp thế giới Các văn phòng của FSoft hiện đang có và hoạt động tại Việt Nam:

 Trụ sở chính FPT Software: FPT Tower - Số 10 Phạm Văn Bạch, Cầu Giấy, Hà Nội FPT Software Hà Nội: FPT Building - 17 Duy Tân, Cầu Giấy, Hà Nội

 FPT Software Hòa Lạc: Hola Park - Khu công nghệ cao Láng Hòa Lạc, Km29 Đại lộ Thăng Long, Thạch Thất, Hà Nội

 FPT Software Hồ Chí Minh:

Trang 8

o F-Town 1 & 2 - Khu T2, Đường D1 khu công nghệ cao, phường Tân Phú, TP.Thủ Đức, TP Hồ Chí Minh

o F-Town 3 Đường Võ Chí Công, Long Thạnh Mỹ, Quận 9, TP.HCM

 FPT Software Đà Nẵng: FPT Complex - Nam Kỳ Khởi Nghĩa, Khu đô thị FPT City, Ngũ Hành Sơn, Đà Nẵng

 FPT Software Quy Nhơn: 12 Đại lộ Khoa học, Khu phố 2, Phường Ghềnh Ráng, Quy Nhơn, Bình Định

 FPT Software Cần Thơ: 600 Nguyễn Văn Cừ, Phường An Khánh, Quận Ninh Kiều, Cần Thơ

1.2 Sản phẩm công ty

Một số sản phẩm và giải pháp công nghệ tiêu biểu do FPT Software nghiên cứu và phát triền có thể kể đến như:

Nền tảng trí tuệ nhân tạo FPT.AI

FPT.AI là nền tảng trí tuệ nhân tạo toàn diện, sản phẩm chiến lượccủa Ban công nghệ tập đoàn FPT FPT.AI được phát triển và ứng dụngnhững kỹ thuật học máy, học sâu tiên tiến nhất hiện nay với 4 mô-đun,gồm: FPT.AI Conversation (Nền tảng hội thoại FPT.AI) cho phép xây dựngchatbot có khả năng xử lý ngôn ngữ tự nhiên để tương tác với khách hàng,có thể tích hợp trên nhiều ứng dụng trò chuyện như: Facebook Messenger,Zalo, Viber…; FPT.AI Speech hỗ trợ tự động nhận dạng giọng nói tiếng Việtvà chuyển đổi văn bản thành tương tác âm thanh với người dùng.

FPT.AI Vision là nền tảng giúp xác định, phân tích chính xác nộidung trong hình ảnh; tập trung vào việc tự động hoá các quy trình xử lý(Cognitive RPA) cho doanh nghiệp, nhận dạng hình ảnh, nhận dạng biểumẫu và OCR (Nhận dạng ký tự quang học); FPT.AI Knowledge cung cấpnền tảng giúp máy móc có thể học, trích xuất, khám phá kiến thức bêntrong doanh nghiệp với kho dữ liệu riêng (thông tin sản phẩm, hướng dẫnsử dụng…) và kiến thức ngành riêng biệt để tạo nên một mạng lưới cáckhái niệm, mối liên hệ có thể được tích hợp vào ứng dụng, dịch vụ.

Công nghệ xe tự lái

Tháng 10/2017, dựa trên những đầu tư nghiên cứu và năng lực công nghệ chuyên sâu trong mảng công nghệ trí tuệ nhân tạo, phân tích dữ liệu lớn,giao tiếp giữa các phương tiện, điện toán đám mây, nhận diện hình ảnh , FPT Software đã tuyên bố ra mắt công nghệ xe tự lái, trở thành công ty đầu tiên tại Việt Nam ra mắt công nghệ xe tự lái và là một trong số ít các công ty tiên phong trong lĩnh vực xe tự lái tại khu vực Đông Nam Á.

Trang 9

Theo FPT Software, công nghệ xe tự lái của đơn vị này đang ở cấp độ 3 dựa trên thang đo 5 cấp độ của xe tự lái của Hiệp hội Kỹ sư xe hơi (SAE) Cụ thể, cấp độ 3 là cấp độ xe tự lái trong một số điều kiện nhất định; người lái không cần chủ động kiểm soát việc điều khiển phương tiện trong toàn bộ thời gian di chuyển và chỉ phải kiểm soát khi có cảnh báo.

Công nghệ xe tự hành do FPT Software nghiên cứu, phát triển đã được tích hợp thànhcông trên xe ô tô thương mại 4 chỗ và xe điện cho sân golf FPT cũng đã được Bộ Giao thôngVận tải đồng ý cho thử nghiệm công nghệ xe tự lái trong khuôn viên khu công nghệ cao Hiện FPT Software đang nghiên cứu bổ sung thêm một số tính năng mới, gia tăng độ chính xác về khả năng di chuyển trên một nền tảng xe mới.

1.3 Lịch làm việc khi thực tập tại công ty

Em tham gia làm việc tại công ty bắt đầu từ ngày 23/8/2023 tới3/11/2023, các ngày làm việc trong tuần là thứ 2 thứ 4 và thứ 6 là cácngày phải có mặt trên công ti, thứ 3 và thứ 5 có thể lên hoặc không nhưngvẫn phải hoàn thành task nếu được giao Công việc hằng ngày bắt đầu từlúc 8 giờ 15 sáng đến 5 giờ chiều Thời gian nghỉ trưa khoảng 1 tiếng Saumỗi ngày làm việc em sẽ báo cáo tiến độ công việc trong ngày, đặt câuhỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đặt mục tiêu cho ngàylàm việc tiếp theo Mỗi tuần sẽ họp tiến độ tuần 1 lần vào sáng thứ 6, mọingười sẽ cùng họp và bàn bạc về các vấn đề đã giải quyết, tồn đọng, bàihọc, giải pháp và mục tiêu cho tuần tiếp theo Mỗi tháng sẽ tổ chức họcthêm một số kiến thức khác ngoài như quy tắc vận hành của team, quyđịnh bảo mật, quy trình quản lí và xây dựng phần mềm… để trau dồi thêmkiến thức cũng như hiểu thêm về quy trình làm việc thực t61 trong một tổchức lớn chứ không đơn thuần là chỉ code.

Trang 10

CHƯƠNG 2: 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 tyThời gian: 1 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ườiphụ trách giới thiệu về công ty, quá trình thành lập và phát triển, quy trìnhlàm việc từ cao xuống thấp, cách thức tổ chức của công ty, các phòng banvề IT, HR, … Ngoài ra, thực tập sinh còn được giới thiệu về văn hóa làmviệc trong công ty như thời gian đi làm, các quy định, cách sử dụng emailtrong công việc và được cấp phát thẻ ra vào các phòng Ngoài ra, thực tậpsinh phải đọc và hoàn thành một bài kiểm tra về vấn đề bảo mật dữ liệucủa công ti Sau khi hoàn thành và vược qua bài kiếm tra, thực tập sinh sẽđược cấp quyền và hướng dẫn sử dụng mạng nội bộ cho máy tính cá nhântừ phía IT

Kết quả: hiểu thêm về FSoft, quá trình thành lập và phát triển Có thêmcác kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch,có kỷ luật, có trách nhiệm hơn Hiểu thêm về cách vận hành của một tổchức về phần mềm, các quy định cũng như quy trình làm việc của tổ chứcđó.

2.2 Nghiên cứu kỹ thuật2.2.1 Tuần 1

Nội dung: Trong tuần đầu tiên, em được trainer giao các bài tập nhỏ liênquan đến việc lập trình web sử dụng Spring Framework với database tùychọn Team thống nhất sẽ sử dụng MySql làm hệ quản trị cơ sở dữ liệuchính cho việc thực hiên bài tập cũng như làm dự án sau này.

Trang 11

Logo của MySQL

Các bài tập này có thời hạn từ 1 – 2 ngày dung để kiểm tra kiến thức củathực tập sinh đối với java cũng như kiến thức về Spring framework Đâycũng là thời gian để em chào hỏi và làm quen với các thành viên trongteam cũng như biết được điểm mạnh và điểm yếu của nhau

Kết quả bài tập sẽ được review vào cuối tuần cụ thể là chiều thứ 6 đểtrainer nắm được tình hình của thực tập sinh.

Kết quả: bản thân được nhìn lại xem mình đang có gì và thiếu gì để có kếhoạch học tập và cải thiện bản thân.

2.2.2 Tuần 1 - 2

Nội dung: Trong hai tuần này, em được trainer giao tài liệu và tìm hiểu sâuvề Spring framework Vào mỗi 1 giờ chiều sẽ có một cuộc họp để chia sẻkiến thức

Kết quả: Hiểu sâu hơn về Spring framework, về cốt lỗi và cách vận hànhcủa Spring và các thành phần chính của framework Được hiểu về cách tổchức file trong Spring và cách Spring thực hiện hóa dependency injectionthông qua các Bean, đặc biệt là biết thêm kiến thức về Spring Data JPAmột dependency quan trọng của Spring framework giúp cho việc giao tiếpvới database và giúp việc triễn khai Java Persistence API đơn giản hơn.2.2.3 Tuần 3

Nội dung: Trong tuần này, em dành 2 ngày là thứ 2 và thứ 4 để học vềAgile và Scum và thực hiện bài kiểm tra về 2 nỗi dung trên vào cuối buổi

Trang 12

học của ngày thứ 4, kết quả bài kiểm tra được đưa vào đánh giá tổng củaquá trình thực tập Vào ngày thứ 6, team em được bàn giao cho một dự ánmẫu nhỏ về quản lý khóa học do FPT đề ra.

SRS của dự án

2.3 Thực hiện dự án cá nhân2.3.1 Mô tả dự án

Hệ thống quản lý học viện Fresher (FAMS) là giải pháp phần mềm toàn diện được thiết kế nhằm quản lý và hợp lý hóa hiệu quả hoạt động của học viện Fresher Academy FAMS bao gồm một loạt các tính năng bao gồm quản lý người dùng, quản lý giáo trình, chương trình đào tạo và quản lý lớp học.

2.3.2 Công nghệ

Sử dụng Spring Boot framework với Spring Data JPA để mapping và lấy dữ liệu dễ dàng từ tầng database.

Trang 13

Spring boot logo

2.3.3 Set up

Tuần đầu tiên là tuần team sẽ set up và thảo luận các chức năng lớn cần làm dựa vào SRS được giao, vì team sẽ thực hiện dự án theo mô hình SRUM nên team sẽ chia mỗi một chức năng lớn sẽ là một sprint Nếu trong quá trình làm mà chức năng đó quá lớn thì sẽ chia nhỏ ra thành nhiều sprint tùy vào số lượng công việc còn lại Sau khi đã hoàn thành việc phântích và chia task thì sẽ bắt đầu vào sprint đầu tiên Vì thời gian thực tập có hạn nên team chỉ được giao làm 3 module chính của hệ thống này là User Management, Syllabus Management và Training Program Management

Ở sprint đầu tiên, team sẽ thực hiện việc tạo và tổ chức file cho dự án Vì sử dụng Spring framework nên tổ chức các file sẽ như sau:

Trang 14

Tổ chức file của dự án

Trong đó:

 Folder config sẽ chứa các file config cho dự án bao gồm swagger config dung để them swagger UI cho việc test API, security config dung để config security của dự án, model mapper config dung cho việc map các entity với các dto và ngược lại.

config folder

Các class này sẽ được đánh annotation @Configuration để khi build dự án

Trang 15

Class SercurityConfig được đánh dấu là Bean Configuration

 Folder controller sẽ chứa các API và endpoint cho từng module lớn, các class này sẽ được đánh annotation @RestController Khi đó ta có thể tạo ra các API với các dạng request như GET, POST, PUT, PATCH, DELETE tùy vào các yêu cầu của từ phía người dung.

Trang 16

Class SyllabusController được đánh annotation RestController

Trang 17

API Get syllabus được đánh annotation GetMapping tương ứng với Get request

 Folder dto chứa các Data Transfer Object, các object này sẽ được phân chia làm 2 loại là request object và response object Các request object sẽ được sử dụng để hứng các request dưới dạng json từ phía client và map thành một object, các object này sẽ được đưa vào các service để xữ lí Các response object là các object được trả về từ phía service và được controller gửi đến client dưới dạng json.

Trang 18

Folder dto của dự án

Trang 19

Dto request để tại learning objective

Các dto này có thể là class hoặc interface tùy vào mục đích sử dụng Đối với các dto request sẽ có them các annotation như @NotBlank, @NotNull dung cho việc validate dữ liệu khi các dto hứng các request từ phía client

 Folder entities chứa các class entity của dự án.

Folder entities

Trang 20

 Folder exceptions chứa các xữ lí exception và controller advisor Class controller advisor sẽ đảm nhận nhiệm vụ bắt exception từ mọi nơi

 Folder services chứa các class được đánh dấu annotation @Service để được xem là service của dự án.

 Folder repository chứa các interface là repository dung để giao tiếp với tầng database

Sau khi set up folder thì sẽ tạo database dựa trên các entities và thiết lập quan hệ giữa các entities

Database model của dự án

2.3.4 Thực hiện:

Sau khi set up xong thì bắt đầu sprint đầu tiên là tạo các entites dựa trên database có sẵn, các entities như RefreshToken được tạo sau dung để phục vụ cho service authen và author Sprint này cũng sẽ tạo ra một số các util là các class hữu ích được sử dụng nhiều trong các service như util chuyển kiểu dữ liểu String sang LocalDatetime, util EmailSender, util PasswordGenerator…

Các sprint tiếp theo sẽ lần lượt thực hiện các API của các Module lớn như User Management, Syllabus Management, Training Program Management.

Đối với Syllabus Management, vì việc quản lí syllabus khá phức tạp vì syllabus có quá nhiều thông tin và các thông tin này liên quan tới nhau và lồng vào nhau nên cần phải tách service tạo, update syllabus thành nhiều service nhỏ để dễ dàng quản lí

Sau khi đã gần như xong Module Syllabus thì có một số thay đổi với requirement và team phải tạo thêm các enities draft dùng để quản lí việc tạo các bản draft, các bản draft này có thể chứa thông tin sai lệch, không đúng với các validation được đặt ra hoặc các object chưa hoàn thiện.

Một số tính năng quan trọng của dự án như tạo được syllabus, training program bằng file csv, có các API liên quan đến việc tạo các object phức tạp, có thể tìm kiếm bằng nhiều trường khác nhau Tối ưu hóa được việc lấy dữ liệu thông qua spring data jpa.

Trang 21

2.3.5 Kết quả

Vì chỉ làm ¾ phần của dự án nên team đã hoàn thành toàn bộ các yêu cầu được giao và buổi báo cáo diễn ra xuông sẻ Các thành viên trong team đã hoàn thành tốt nhiệm vụ của mình và cũng nhờ sự giúp đỡ tận tình của trainer nên công việc diễn ra khá suôn sẻ.

CHƯƠNG 3: TỔNG KẾT

Quãng thời gian thực tập tại FPTSoftware đã giúp em cải thiện bản thânrất nhiều trong quy trình làm việc thực tế, tác phong của người kỹ sư phầnmềm Được làm việc tại đây, em đã học thêm được kỹ năng mềm sử dụngmail, quản lý ticket, làm việc nhóm, giao tiếp với cấp trên, …

Chỉ trong thời gian hạn chế, em đã hoàn thành dự án cá nhân trong quátrình training với các tính năng, yêu cầu đặt ra ban đầu

Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúnghạn và đạt chất lượng tốt.

3.3 Chuẩn đạt đượcGoal Mục tiêu môn học

G1 Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp

G2 Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống trong dự án

G3 Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm phần mềm tại doanh nghiệp

G4 Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải quyết vấn đềG5 Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày

G6 Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh  

Ngày đăng: 15/05/2024, 09:09