Vì vậy, việc số hóa và hiện đại hóa một số lĩnh vực rất cần thiết sự phát triển của ngành Công nghệ thông tin đi theo Ngôn ngữ lập trình Java giúp chúng ta phát triển những ứng dụng đặc
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP LẬP TRÌNH WEB BẰNG JAVA SPRING
Công ty thực tập : FPT SOFTWARE Người phụ trách : Phạm Ngọc Bảo Cương Thực tập sinh : Nguyễn Quốc Nam Sang
Trang 2TP Hồ Chí Minh, tháng 1 năm 2021
Trang 3LỜI MỞ ĐẦU
Ngày nay, CNTT đã và đang đóng vai trò quan trọng trong đời sống kinh tế, xã hội của nhiều quốc gia trên thế giới, là một phần không thể thiếu trong một nền kinh tế trí thức năng động, ngày càng hiện đại hoá Vì vậy, việc số hóa và hiện đại hóa một số lĩnh vực rất cần thiết sự phát triển của ngành Công nghệ thông tin đi theo
Ngôn ngữ lập trình Java giúp chúng ta phát triển những ứng dụng đặc thù để giải quyết các vấn đề của xã hội, doanh nghiệp từ đó nâng cao năng suất làm việc hoặc nâng cao chất lượng đời sống xã hội
Bên cạnh đó, việc sử dụng ngôn ngữ lập trình Java còn làm tăng hiệu năng của phần mềm, giúp máy chủ xử lý được nhiều tác vụ hơn với cùng một khối tài nguyên đó
Sau ba năm học trên trường, em đã có đủ kiến thức lý thuyết và muốn có kinh nghiệm thực tế hơn nên đã vào môi trường FPT software chuyên nghiệp để tìm hiểu thêm về cách một môi trường chuyên nghiệp, năng động phát triển phần mềm, cung cấp giải pháp cho các vấn đề xã hội, doanh nghiệp trong và ngoài nước
Trang 4LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty FPT Software đã tạo điều kiện cho em có cơ hội được thực tập tại công ty
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh trainer,
em đã tiếp thu được những nhiều kiến thức, học hỏi nhiều kỹ năng, góp phần vào việc phát triển sản phẩm cho công ty Chân thành cảm ơn các anh chị trainer đã bỏ ra nhiều thời gian, công sức để hướng dẫn em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Phạm Ngọc Bảo Cương, trainer chính đã hướng dẫn, giúp đỡ
cho em tận tình tìm hiểu công nghệ Java Spring và giúp em thích nghi với môi trường mới
Bên cạnh đó, em chân thành cảm ơn anh Đinh Vũ Quốc Trung người hướng dẫn,
mentor em làm quen với các công nghệ frontend cơ bản như HTML,JS,JQuery
Cuối cùng, em thật lòng 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
Nguyễn Quốc Nam Sang Tp.HCM, 02/1/2020
Trang 5NHẬN XÉT CỦA KHOA
Mục lục
Trang 6LỜI CẢM ƠN 2
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 7
2.6 Tìm hiểu về Unit test và Mockito 9
Trang 7Chương 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty
FPT Software thành lập năm 1999, là công ty thành viên của FPT, Tập đoàn Công nghệ hàng đầu của Việt Nam Sau 20 năm thành lập FPT Software hiện đang là công ty phần mềm lớn nhất của Việt Nam và đứng trong Top 100 Nhà cung cấp dịch
vụ Outsourcing toàn cầu do International Association of Outsourcing Professionals (IAOP) đánh giá
FPT Software theo đuổi mục tiêu gia công phần mềm để đáp ứng cho nhu cầu phát triển CNTT của các hãng phần mềm trong nước, các công ty lớn trong nước và tham vọng hơn là xuất khẩu phần mềm trên toàn thế giới cho các công ty nước ngoài biết đến tập đoàn FPT, mục đích chính là vươn đến tầm cao mới thông qua công nghệ nhằm nâng cao năng suất lao động
Đến với FPT Software, nhân viên được phép phát huy tối đa khả năng sáng tạo,
nỗ lực đưa các sáng tạo vào các giải pháp công nghệ thông tin nhằm nắm bắt các cơ hội đổi mới và phát triển nhằm đạt được mục tiêu chung của tập đoàn là OneFPT - Công ty xuất khẩu phần mềm hàng đầu tại Việt Nam
Trang 82 Sản phẩm của công ty
Là công ty chuyên xuất khẩu dịch vụ phần mềm, FPT Software cung cấp các dịch
vụ phát triển phần mềm và bảo trì, triển khai ERP, QA, chuyển đổi ứng dụng, hệ thống nhúng, điện toán di động, điện toán đám mây… trong nhiều lĩnh vực như: Tài chính ngân hàng, Viễn thông, Y tế, Chế tạo, Công nghiệp xe hơi, Dịch vụ công… Hiện FPT Software đang tập trung nghiên cứu và phát triển dịch vụ CNTT dựa trên những nền tảng công nghệ mới như IoT, S.M.A.C, cho các lĩnh vực sản xuất máy bay, sản xuất ô
tô, ngân hàng, truyền hình vệ tinh, viễn thông trên phạm vi toàn cầu Công ty hiện đã
và đang cung cấp dịch vụ cho khoảng 450 khách hàng là các tập đoàn lớn trên thế giới, trong đó có 43 khách hàng nằm trong danh sách Fortune Global 500
Từ 13 lập trình viên với giấc mơ đưa trí tuệ Việt Nam đi khắp năm châu, đội quân FSOFT ở tuổi 18 với hơn 10.000 người, doanh thu hơn 230 triệu USD, tiếp tục biến giấc mơ biến Việt Nam trở thành điểm sáng về CNTT trên bản đồ thế giới thành hiện thực với mục tiêu đạt 1 tỉ USD doanh số năm 2020 và 30.000 người
Sau 17 năm phát triển thị trường toàn cầu, đến nay FPT Software đã có 23 văn phòng tại 14 quốc gia bao gồm Việt Nam, Nhật Bản, Singapore, Mỹ, Pháp, Đức, Slovakia, Malaysia, Úc, Trung Quốc, Hàn Quốc, Myanmar, Philippines, Thái Lan
Trang 9Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình Java Spring WEB” nhằm mục đích giúp sinh viên thực tập học tập, làm quen với các công nghệ Java Spring để làm web appilcation, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập công nghệ như Spring Boot, Spring MVC, Hibernate Ngoài ra, thực tập sinh được trực tiếp hướng dẫn bởi những anh mentor giàu kinh nghiệm Bên cạnh đó, sinh viên được khám phá và làm việc trong một môi trường phát triển phần mềm chuyên nghiệp, tích lũy những kiến thức giá trị
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thờ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ười phụ trách giới thiệu về công ty, quá 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
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 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 FPT Software, 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 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 Software Process Development
Thời gian : 1 ngày
Nội dung : Tìm hiểu về các công cụ và quy trình sẽ được sử dụng trong quá trình làm
việc:
- Các quy trình phát triển phần mềm
Trang 10- Unit testing
- Time Sheeting
- Secure Coding
Thực hiện : Thực hành học và sử dụng các phần mềm đã nêu trên, sau đó làm bài kiểm
tra để đánh giá chất lượng học viên
Kết quả : Đạt bài kiểm tra và hoàn thành mục tiêu khóa học đề ra.
2.2 Tìm hiểu về frontend
Thời gian : 14 ngày
Nội dung : Tìm hiểu về JS,HTML,Jquery,CSS
- Tìm hiểu về HTML
- Tìm hiểu về CSS
- Tìm hiểu về Javascript
- Tìm hiểu về Jquery
Thực hiện:
- Tìm hiều tổng quan về Front end programming
- Học và làm các bài kiểm tra để đánh giá chất lượng học viên
Kết quả: Hiểu và hoàn thành bài kiểm tra đánh giá.
2.3 Tìm hiểu về hibernate
Thời gian : 14 ngày
Nội dung : Tìm hiểu về hibernate ORM
- Tìm hiểu ORM
- Tìm hiểu code first, hirbernate Java
- Tìm hiểu relational mapping và các công cụ khác của Hibernate(validator, JPQL,…)
Thực hiện:
- Học và làm các bài kiểm tra để đánh giá chất lượng học viên
Kết quả: Hiểu và hoàn thành bài kiểm tra đánh giá.
2.4 Tìm hiểu Spring WEB MVC
Thời gian : 1 tháng
Trang 11Nội dung : Tìm hiểu về các công nghệ WEB MVC của Spring:
- Tìm hiểu servlet,JSP
- Tìm hiểu MVC
- Tìm hiểu spring framework, spring core với spring config
- Tìm hiểu JPA, spring data JPA
- Tìm hiểu Maven, Dynamic web
- Tìm hiểu Spring security, apache tiles, spring thymeleaf
- Tổng hợp kiến thức Spring WEB MVC
Thực hiện:
- Học và làm các bài kiểm tra để đánh giá chất lượng học viên
Kết quả: Hiểu và hoàn thành bài kiểm tra đánh giá.
2.5 Tìm hiểu về Spring Boot
Thời gian : 14 ngày
Nội dung : Tìm hiểu về Spring Boot và các công nghệ mới hơn Spring MVC Thực hiện: Tìm hiểu về các vấn đề:
- Spring Data
- Spring Security: cơ chế xác thực và phân quyền
- Spring boot config
Kết quả: Xây dựng được một ứng dụng Spring Boot đơn giản và đáp ứng được
yêu cầu của anh Mentor
2.6 Tìm hiểu về Junit và Mockito
Thời gian : 7 ngày
Nội dung : Tìm hiểu về việc viết Unit bằng Junit và Mockito
- Unit Testing with Junit
- Mockito
- Maven test
Thực hiện: Học theo khóa học và hoàn thành bài kiểm tra của người hướng dẫn Kết quả: Nắm các kiến thức căn bản về Unit test và hoàn thành bài kiểm tra.
2.7 Thực hiện Mock project
Trang 12Thời gian : 2 tháng
Nội dung : Áp dụng các kiến thực đã học vào làm một project thiệt
- Spring WEB MVC
- Spring Boot MVC
- Spring Boot API
- Azure + gitlab source control
Thực hiện: Làm mock project và báo cáo kết quả cho anh hướng dẫn
Kết quả: Nắm các kiến thức của module trước và áp dụng vô module này
3 Lịch làm việc
1
- Tìm hiểu về công ty, cách tổ chức của công ty
- Tìm hiểu quy trình phát triển phần mềm
-Anh Đinh Vũ Quốc Trung
2,3
● Tìm hiểu về Front end
- Tìm hiểu về HTML
- Tìm hiểu về CSS
- Tìm hiểu về Javascript
- Tìm hiểu về Jquery
-Anh Đinh Vũ Quốc Trung
4,5
● Tìm hiểu về Hibernate:
- Tìm hiểu ORM
- Tìm hiểu code first, hirbernate Java
- Tìm hiểu relational mapping và các công cụ khác của
Hibernate(validator, JPQL,…)
-Anh Phạm Ngọc Bảo Cương
6,7,8,9 ● Tìm hiểu về Spring WEB MVC:
- Tìm hiểu servlet,JSP
- Tìm hiểu MVC
- Tìm hiểu spring framework, spring core với spring config
- Tìm hiểu JPA, spring data JPA
- Tìm hiểu Maven, Dynamic web
- Tìm hiểu Spring security, apache tiles, spring thymeleaf
Anh Phạm Ngọc Bảo Cương
Trang 13- Tổng hợp kiến thức Spring WEB MVC
10,11
● Tìm hiểu Spring Boot
- Spring Data
- Spring Security: cơ chế xác thực và phân quyền
- Spring boot config
Anh Phạm Ngọc Bảo Cương
12
● Thực hiện Junit và Mockito:
- Đọc tài liệu đặc tả yêu cầu
- Unit Testing with Junit
- Mockito
- Maven test
Anh Phạm Ngọc Bảo Cương
13,14
● Thực hiện Mock Project 1
- Đọc tài liệu đặc tả yêu cầu
- Đọc tài liệu chi tiết thiết kế API
- Tạo Q&A cho khách hàng
- Code chức năng dùng Spring Boot API và MVC
- Coding Convention
- Viết Unit Test cho chức năng
- Viết Checklist
- Dùng postman test API
- CI/CD trên Azure
- Deploy trên Azure server
Anh Phạm Ngọc Bảo Cương
15.16
●Thực hiện Mock Project 2
- Đọc tài liệu đặc tả yêu cầu
- Tạo tài liệu chi tiết use case và mockup
- Tạo Q&A cho khách hàng
- Code chức năng dùng Spring WEB MVC
- Coding Convention
- Multi language dùng Spring
- Thymeleaf
- Viết Unit Test cho chức năng
- Viết Checklist
- Test và viết test case
- Source control bằng gitlab
- Deploy cho khách hàng(trainer)
Anh Phạm Ngọc Bảo Cương
Trang 15Như vậy, chỉ trong vòng hơn bốn tháng ngắn ngủi, em đã được học hỏi và trải nghiệm được nhiều thứ bổ ích Công ty đã giúp em học được các công nghệ mới trong ngành hiện này như Java Spring WEB, Spring Boot, Gitlab, Git bash, biết tổ chức làm việc nhóm, giao tiếp trao đổi và giúp đỡ mọi người trong công việc, có được khả năng làm việc chuyên nghiệp với đồng đội và độc lập Bên cạnh đó, em còn học được cách giao tiếp chuyên nghiệp với các đối tác, các sếp và kinh nghiệm xử lý tình huống bất ngờ khi gặp lỗi.Những điều này sẽ là kiến thức và kinh nghiệm quý báu đề làm hành trang trên con đường sự nghiệp của em
Chân thành cảm ơn sự giúp đỡ của các anh chị trong dự án và đặc biệt là anh Đinh
Vũ Quốc Trung- trainer Front End, anh Phạm Ngọc Bảo Cương – trainer chính và chị Lã Thị Phương Hân - quản lý nhân sự dự án đã nhiệt tình giúp đỡ em hoàn thành kỳ thực tập này
Đặc biệt, em sâu sắc cảm ơn quý thầy cô khoa Công nghệ Phần mềm đã dạy bảo, cung cấp cho em những kiến thức nền tảng để có thể tham gia khóa thực tập của công ty Một lần nữa em xin chân thành cảm ơn
Trang 16TÀI LIỆU THAM KHẢO Java Unit Testing with Spring Boot & Mockito:
https://www.udemy.com/course/learn-unit-testing-with-spring-boot/
Spring Boot:
https://www.baeldung.com/spring-boot
https://www.tutorialspoint.com/spring_boot/spring_boot_introduction.htm
https://spring.io/guides/gs/spring-boot/
Spring MVC:
https://stackjava.com/category/spring-mvc
https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/mvc.html https://www.tutorialspoint.com/spring/spring_web_mvc_framework.htm
HTML+CSS+JS:
https://www.w3schools.com/