Để thử thách bản thân trong ngành công nghiệp này, em đã lựa chọn JavaBack-end developer là định hướng cho việc học cũng như nghề nghiệp trong tươnglai.Sau những năm tháng trong môi trườ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
JAVA BACK-END DEVELOPER
Công ty thực tập: Resources Software SolutionNgười phụ trách:Trần Anh Tuân
Thực tập sinh:Lê Đức Vinh
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM
Trang 3LỜ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ànhCông nghệ phần mềm nói riêng luôn là nhân tố đóng vai trò quan trọng trong quá trìnhphát triển của xã hội.
Do đó, một trang ứng dụng 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ất lượng cao ở haiyếu tố trên luôn làm bất kì một đội ngũ phát triển website nào cũng cần phải suy nghĩđau đầu Để thử thách bản thân trong ngành công nghiệp này, em đã lựa chọn JavaBack-end developer là định hướng cho việc học cũng như nghề nghiệp trong tươnglai.
Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng nhữngkiến thức đã học và có được trải nghiệm trong môi trường thực tế, em đã quyết địnhtham gia vào Công ty Resource Software Solution – một môi trường lý tưởng vàchuyên nghiệp để thực hiện dự định.
Trang 4LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn Resource Sofware Solution đã tạo điều kiện choem cơ hội được thực tập tại công ty Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫnnhiệt tình của anh Tuân, em đã tiếp thu những kiến thức quan trọng để có thể tham giamột dự án thực tế
Chân thành cảm ơn anh Mentor Tuân và các anh trong team đã bỏ ra nhiều thờigian, công sức để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khi làm quen môitrường mới cũng như trong việc tiếp cận kiến thức công nghệ, kỹ năng lập trình và tưduy sản phẩm để có thể thực hiện tốt dự án cá nhân và dự án thực tế trong thời gianqua
Em 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áo cáo này
TP HCM, ngày 28 tháng 12 năm2023
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 6
1.1 Giới thiệu Resource Software Solution 6
1.2 Sản phẩm nổi bật của công ty 6
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 8
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8
2.2 Nghiên cứu kỹ thuật 8
2.2.1 Các công cụ làm việc 8
2.2.2 Ôn tập Java 9
2.2.3 Ôn tập, học thêm về Spring Boot 9
2.2.4 Tìm hiểu các công cụ để phát triển hệ thống phân tán với Spring 10
2.2.5 Tìm hiểu Oauth2 và Spring Authorization Server 10
2.2.6 Tìm hiểu thư viện JDBI 10
2.2.7 Tìm hiểu chuẩn RFC 7870 – Problem Details for HTTP APIs 11
2.2.8 Tìm hiểu SnowFlakeId và tạo Custom Identifier trong Hibernate 11
Trang 7CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP1.1 Giới thiệu Resource Software Solution
R2S ra đời vào ngày một tháng tám năm 2019 với nhiệm vụ đào tạo nhân sựCNTT cho doanh nghiệp, phát triển phần mềm và tư vấn giải pháp CNTT
Đội ngũ sáng lập có anh Lê Hồng Kỳ và hiện tại anh là Giám đốc R2S
1.2 Sản phẩm nổi bật của công ty
Đào tạo nhân sự làm được việc ngay cho doanh nghiệp (Resource) Phát triển phần mềm (Software)
Tư vấn giải pháp CNTT cho các doanh nghiệp thực hiện chuyển đổi số (Solution)
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 3/7/2023 tới 25/9/2023, từ thứ 2đến thứ 6
Công việc hằng ngày bắt đầu từ lúc sáng 9h30 đến 12h và chiều 1h30 đến 18h.Thời gian nghỉ trưa khoảng 1 tiếng rưỡi Sau mỗi ngày làm việc em sẽ báo cáo tiến độcông việc trong ngày, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đặt mụctiêu cho ngày làm việc tiếp theo
Trang 8Mỗi tuần sẽ họp tiến độ tuần 1 lần vào chiều thứ 6, mọi người sẽ cùng họp và bànbạc về các vấn đề đã giải quyết, tồn đọng, bài học, giải pháp và mục tiêu cho tuần tiếptheo.
Trang 9CHƯƠNG 2: NỘI DUNG THỰC TẬP2.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, quy trình làm việc từ caoxuống thấp, cách thức tổ chức của công ty, các phòng ban về IT, HR, … Ngoài ra,thực tập sinh còn được giới thiệu về văn hóa làm việc trong công ty như thời gian đilàm, các quy định, cách sử dụng email trong công việc, …
Kết quả: hiểu thêm về công ty cổ phần Resource Software Solution, quá trìnhthà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.2 Nghiên cứu kỹ thuật2.2.1 Các công cụ làm việc
Thời gian 2 ngày.
Nội dung: Tìm hiểu các công cụ sẽ sử dụng trong quá trình làm việc. Email công ty.
Trello để quản lý dự án và ghi chú. IntelliJ Idea để lập trình Java. Git để quản lý mã nguồn. OpenVPN.
PostgreSQL Postman….
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Hiểu được về quy trình làm việc và các công cụ dùng trong quá trình làmviệc
Trang 102.2.2 Ôn tập Java
Thời gian: 3 ngày.
Nội dung: Được ôn tập lại ngôn ngữ lập trình Java, OOP, một số design pattern từtài liệu được anh mentor cung cấp.
Thực hiện:
Tham gia đầy đủ các buổi training của công ty. 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 Java.
Có được những kiến thức nền tảng cho việc lập trình Backend Java saunày.2.3 Thực hiện dự án cá nhân
2.2.3 Ôn tập, học thêm về Spring Boot
Thời gian: 5 ngày
Nội dung: Ôn tập các khái niệm cơ bản trong Spring Framework từ tàiliệu được anh mentor cung cấp.
Thực hiện:
Đọc hiểu tài liệu Modern API Development with Spring and SpringBoot: Design highly scalable and maintainable APIs with REST, gRPC,GraphQL, and the reactive paradigm - Sourabh Sharma.
Kết quả:
Ôn tập lại các khái niệm nền tảng của Spring Framework. Thực hiện dự án API CRUD cơ bản với Spring Boot.
2.2.4 Tìm hiểu các công cụ để phát triển hệ thống phân tán với Spring
Thời gian: 5 ngày.
Trang 11Nội dung: Tìm hiểu thư viện Spring Cloud, cách cài đặt và cấu hình các thư việnliên quan.
2.2.5 Tìm hiểu Oauth2 và Spring Authorization Server
Thời gian: 5 ngày
Nội dung: Tìm hiểu Oauth2 và thư viện Spring Authorization Server để bảo mậtcho hệ thống
Thực hiện:
Tìm đọc cái tài liệu liên quan. Demo trên project cá nhân.Kết quả:
Sử dụng thành công Spring Authorization server để làm auth server chohệ thống.
2.2.6 Tìm hiểu thư viện JDBI
Thời gian: 5 ngày.
Nội dung: Tìm hiểu thư viện JDBI.
Thực hiện:
Tìm đọc cái tài liệu liên quan.
Trang 12 Demo trên project cá nhân.Kết quả:
Hiểu được cách sử dụng JDBI để áp dụng vào trong dự án.
2.2.7 Tìm hiểu chuẩn RFC 7870 – Problem Details for HTTP APIs
Thời gian: 5 ngày.
Nội dung: Tìm hiểu chuẩn RFC 7870 – Problem Details for HTTP APIs và áp dụng vào trong
Exception Handling của Spring.Thực hiện:
Đọc tài liệu Internet Engineering Task Force (IETF). Thử nghiệm tích hợp vào một module của công ty.Kết quả:
Hiểu được chuẩn RFC 7870 – Problem Details for HTTP APIs.
2.2.8 Tìm hiểu SnowFlakeId và tạo Custom Identifier trong Hibernate
Thời gian: 5 ngày.
Nội dung: Tìm hiểu SnowFlakeId của Twitter, ưu nhược điểm so với các Identifier thường
dùng vào tạo Annotation để sử dụng cho Hibernate.Thực hiện:
Tìm đọc cái tài liệu liên quan. Demo trên project cá nhân.Kết quả:
Sử dụng thành công SnowFlakeId.
Trang 132.4 Tham gia dự án thực tế
Sau gần 2 tháng được training và thực hiện các demo project, em đã nắm được cáckiến thức cần thiết về Java, Spring, sử dụng tốt các công cụ cần thiết cho dự án.
2.5 Giới thiệu về dự ánDe Heus Mobile App
Dự án De Heus Mobile App là một dự án out-sourcing được thực hiện theo yêucầu của một công ty chuyên cung cấp thức ăn gia súc, gia cầm
Mục tiêu của ứng dụng này để giúp cho khách hàng của công ty có thể thực hiệnviệc đặt hàng cũng như biết cách thức thanh toán, xem tin tức khuyến mãi, chiết khấucủa công ty,… một cách nhanh chóng, tiện lợi
Đối tượng sử dụng của ứng dụng này là các khách hàng ở vị trí đại lý cấp 1 Cáctệp khách hàng này là những khách hàng lấy hàng số lượng lớn để phân phối cho cácđại lý nhỏ hơn bên dưới (đại lý cấp 2, cấp 3, người dùng cuối,…) Với số lượng lấyhàng lớn, phía công ty cung cấp thức ăn gia súc, gia càm cần tạo sự tiện lợi cho kháchhàng cần đặt hàng, xem mức chiết khấu, khuyến mãi, mặt hàng mới, tổng lượng hàngđã đặt, sản lượng tổng đã lấy hàng của từng năm,……
Nhóm của em gồm 6 người bao gồm: Trần Anh Tuân (Leader) Nguyễn Ngọc Công Bùi Ngọc Dũng Nguyễn Hạo Nhiên
Phạm Nguyễn Minh Quang Lê Đức Vinh
Nhóm em có nhiệm vụ phát triển, bảo trì cho ứng dụng này.Một số hình ảnh về ứng dụng:
Trang 14Giao diện đăng nhập
Trang 15Giao diện đặt hàng
Trang 16Giao diện thông tin sản phẩm
Trang 17Giao diện tin tức
Trang 182.6 Quá trình thực hiện
n Công việc
Người hướng dẫn
Mức độ hoàn thành
Nhận xét của người hướng dẫn
2 Tìm hiểu các công cụ làm việc anh Trần Anh Tuân 100%
anh Trần Anh Tuân
5 Tìm hiểu Oauth2 và Spring Authorization Server
anh Trần Anh Tuân
anh Trần Anh Tuân
Tìm hiểu SnowFlakeId và tạo Custom Identifier trong Hibernate
anh Trần Anh Tuân
9 Tìm hiểu, cấu hình Spring Security, viết tài liệu báo cáo
anh Trần Anh Tuân
Thử nghiệm các API, fix một số lỗi nhỏ theo yêu cầu của mentor Tuân
anh Trần Anh Tuân
100%
Trang 20 Cấu hình Spring Security
Trang 21 Sử dụng Postman để test API:
2.8 Kết quả
Thực hiện tốt các task được mentor giao.
Hiểu được cách thức hoạt động của Spring Authorization ServerBiết được cách sử dụng Postman để thử nghiệm một số API.
Trang 22CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại công ty cổ phần Resource Software Solution đã giúpem cải thiện bản thân rất nhiều trong quy trình làm việc thực tế, tác phong của ngườikỹ sư phần mề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ý công việc, 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ìnhtraining với các tính năng, yêu cầu đặt ra ban đầu Ở giai đoạn ban đầu khi mới thamgia dự án, em thường có những sai sót về báo cáo cũng như quy trình làm việc Cácthiếu sót ấy cũng đã được anh chị tận tình hướng dẫn từng chút để em có thể hoànthành tốt công việc.
Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các công việc đúng hạnvà đạt chất lượng tốt Được thực tập tại công ty là một cơ hội may mắn đối với em.Đây là một môi trường năng động, có cơ hội thăng tiến rõ ràng, thời gian làm việc linhhoạt Công ty quan tâm về mảng đào tạo nguồn nhân lực mới, sức khỏe tinh thần chonhân viên với các hoạt động thể thao như đá bóng, cầu lông được tổ chức hàng tuần.
3.1 Điểm mạnh
Nâng cao khả năng làm việc nhóm, quản lý dự án, tư duy phản biện, kỹ năng quảnlý thời gian.
Học được cách làm việc trong môi trường doanh nghiệp.
Học được cách một dự án thực tế được triển khai và hoạt động như thế nào và biết được cách làm sao để áp dụng các kiến thức đã học để đưa ra các giải pháp với các vấn đề ở thực tế.
Học được cách nghiên cứu và làm việc độc lập. Nâng cao khả năng đọc hiểu tài liệu tiếng anh.
Trang 233.2 Điểm yếu
Quy trình merge code ban đầu còn nhiều sai sót.
Giai đoạn đầu dự án vẫn cần anh mentor trợ giúp khá nhiều. Còn hay mắc lỗi code convention, các lỗi conflict
Kiến thức về hệ thống phân tán còn khá mới đối với em đòi hỏi phải tự tìm đọc,nghiên cứu tài liệu nhiều.
Cần rèn luyện thêm về kỹ năng viết tài liệu.
3.3 Chuẩn đạt được
Goal 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ệpG2 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
TÀI LIỆU THAM KHẢO
Spring Framework Documentation.
Trang 24Spring Boot Documentation.
Java Documentation https://docs.oracle.com/en/java/
[1] Carnell, J (2021) Spring Microservices in Action (2nd ed.) Manning Publications.
[2] Richardson, C (2018) Microservices Patterns: With examples in Java Manning Publications.
Sharma, A (2018) Mastering Spring Boot 2.0: Build modern, cloud-native, and distributed systems using Spring Boot Packt Publishing.