Tải bản đầy đủ (.docx) (22 trang)

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

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 (737.18 KB, 22 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

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

<b>BÁO CÁO THỰC TẬPJAVA WEB DEVELOPER</b>

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

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

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

<b>LỜI MỞ ĐẦU</b>

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 ln là nhân tố đóng vai trị quantrọng trong q 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 ln 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.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN</b>

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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

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

<b>1.1. Giới thiệu </b>

<i>Hình Logo</i>

FPT Software là một cơng ty cơng nghệ tồ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 đồ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 tồ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:

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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ơ

<b>1.2. Sản phẩm công ty</b>

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

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

FPT.AI là nền tảng trí tuệ nhân tạo tồ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 hố 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ụ.

<b>Công nghệ xe tự lái</b>

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 tố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 Á.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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 sốt việc điều khiển phương tiện trong tồ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 hồ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.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>CHƯƠNG 2: NỘI DUNG THỰC TẬP</b>

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, … Ngồ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. Ngồ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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i>Logo của MySQL </i>

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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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.

<i>SRS của dự án</i>

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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>Spring boot logo</i>

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 q 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 đã hồ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:

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<i> Tổ chức file của dự án</i>

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.

<i>config folder</i>

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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i>Class SercurityConfig được đánh dấu là Bean Configuration</i>

 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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<i>Class SyllabusController được đánh annotation RestController</i>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

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

 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.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i>Folder dto của dự án</i>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i>Dto request để tại learning objective</i>

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.

<i> Folder entities</i>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="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

<i>Database model của dự án</i>

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ó q 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 hồ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.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="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 xng sẻ. Các thành viên trong team đã hồ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ẻ.

<b>CHƯƠNG 3: TỔNG KẾT</b>

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  

</div>

×