Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của team Java Backend, 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
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP LẬP TRÌNH JAVA
Thực tập sinh : Võ Văn Phát
TP Hồ Chí Minh, tháng 12 năm 2020
Trang 2LỜ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 xã hội năng động, ngày càng hiện đại hoá Vì vậy, việc tin học hoá vào một số lĩnh vực là hoàn toàn có thể và phù hợp với xu hướng hiện nay
Trong thời đại công nghệ 4.0, các công việc thủ công hằng ngày dần được thay thế bằng
tự động hóa bởi công nghệ thông tin Ngôn ngữ lập trình Java ra đời giúp cho việc xây dựng những ứng dụng quản lý công việc trong công ty, trường học, cửa hàng góp phần to lớn trong việc giảm thiểu việc thực hiện thủ công ghi chép bằng tay như trước
Bên cạnh đó, việc sử dụng ngôn ngữ lập trình Java để làm backend đã giúp hệ thống máy chủ xử lý nhanh chóng và mạnh mẽ; chia sẻ nguồn tài nguyên máy chủ và giúp triển khai trên
đa nền tảng, đem lại nhiều lợi ích to lớn
Sau bốn năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia ngành công nghiệp phần mềm trong một môi trường chuyên nghiệp, em có
dự định là sẽ thực tập trong hè Vì vậy, em quyết định chọn công ty VCCorp- một môi trường
lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty VCCorp đã 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 team Java Backend,
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ị trong team Back-end đã 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 Bùi Mỹ Tiên, trưởng team Backend đã hướng dẫn, giúp đỡ cho em
tận tình vượt qua những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới
Bên cạnh đó, em chân thành cảm ơn anh Nguyễn Tuyên, người hướng dẫn, mentor em làm quen với các công nghệ bên Java Backend Và không quên anh Trần Văn Tùng, người trực
tiếp training, chỉ dẫn các kiến thức về Tool
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
Võ Văn Phát Tp.HCM, 22/12/2020
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
Mục lục
LỜI MỞ ĐẦU 2
LỜI CẢM ƠN 3
Mục lục 5
Chương 2: Nội dung thực tập 8
Chương 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty
Trang 6VCCorpthà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 VCCorphiệ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á
VCCorptheo đ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 Vccorp, 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 VCCorp, 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à VCCorp- Công ty xuất khẩu phần mềm hàng đầu tại Việt Nam
2 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, VCCorpcung 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 VCCorpđ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 Vccorp ở 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
Trang 7Sau 17 năm phát triển thị trường toàn cầu, đến nay VCCorpđã 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 8Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình Java - Backend” 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 phía Backend, đồ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ệ mới như Spring Boot, JHipster, AWS 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, tận tâ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 Vccorp, 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
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:
- Tìm hiểu về hệ thống ISMS
- Các quy trình phát triển phần mềm
- Unit testing
- Time Sheeting
- Secure Coding
- OSS Checking
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.
Thời gian : 2 ngày
Trang 9Nội dung : Tìm hiểu về dịch vụ Cloud của Spring cloud
- Tìm hiểu về hệ sinh thái Spring Cloud
- Compute Services
- Programmable Infrastructure
Thực hiện:
- Tìm hiều tổng quan về Spring Cloud
- 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á.
Thời gian : 1 ngày
Nội dung : Tìm hiểu về DevOps trong công ty
- Các thành phần chính trong DevOps
- Triển khai DevOps trong VCCorp
- DevOps trong việc phát triển
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á.
Thời gian : 2 ngày
Nội dung : Tìm hiểu về các tool chain trong DevOps:
- Tool chain Gitlab
- Tool chain Jenkins
- Tool chain Sonar
- Tool chain Coverity
- Tool chain BlackDuck
- Tool chain Nexus
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á.
Thời gian : 1 tuần
Nội dung : Tìm hiểu về Spring Boot và xây dựng ứng dụng.
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
- Swagger
- Jhipter
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
Thời gian : 1 tuần
Nội dung : Tìm hiểu về Angular Framework
- Debugging
Trang 10- Component and Databinding
- Directives
- Services and Dependency Injection
- Routing
- Observables
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ề Angular và hoàn thành bài kiểm tra.
Thời gian : 5 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
- Powermock
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 Testing và hoàn thành bài kiểm tra.
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
- Tìm hiểu về DevOps
- Tìm hiểu về Cloud
Anh Nguyễn Tuyên
2
• Tìm hiểu về Spring Framework
- Tìm hiểu Spring Data
- Tìm hiểu Spring Security
- Tìm hiểu Jhipster, Swagger
- Tạo ứng dụng demo
Chị Bùi Mỹ Tiên
3
• Tìm hiểu về Angular:
- Debugging
- Component and Databinding
- Directives
- Services and Dependency Injection
- Routing
- Observables
Chị Bùi Mỹ Tiên
4
• Testing với Junit và Mockito
- Tìm hiểu Junit
- Tìm hiểu Mockito
- Tìm hiểu Powermock
Chị Bùi Mỹ Tiên
Trang 11- Đọc tài liệu đặc tả yêu cầu.
- Đọc tài liệu chi tiết thiết kế API
- Vẽ sequence diagram cho chức năng
- Coding Convention
- Viết Unit Test cho chức năng
- Viết Checklist
- Check sonarlint
7
• Thực hiện API Update User Profile
- Đọc tài liệu đặc tả yêu cầu
- Đọc tài liệu chi tiết thiết kế API
- Vẽ sequence diagram cho chức năng
- Tạo Q&A cho khách hàng
- Coding Convention
- Viết Unit Test cho chức năng
- Viết Checklist
- Kiểm tra sonarlint
Chị Bùi Mỹ Tiên
8
• Thực hiện fix bugs trong các API
- Chạy postman kiểm tra lỗi
- Tiến hành sửa lỗi theo hệ thống đưa ra
- Tạo Q&A cho khách hàng nếu có thắc mắc
- Tạo Unit test
- Tạo checklist
- Kiểm tra coding convention
- Kiếm tra sonarlint
Chị Bùi Mỹ Tiên
Trang 12TỔNG KẾT
Như vậy, chỉ trong vòng hơn hai 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ệ hot hiện này như Spring Boot, AWS hay Jhipster, 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 một cách độc lập Bên cạnh đó, em còn học được quy trình làm việc, tác phong chuyên nghiệp và có trách nhiệm với task được giao Những điều
đó là nền tảng giúp em tích lũy kiến thức và kinh nghiệm vô cùng quý giá của mình trong tương lai
Đặ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 13TÀI LIỆU THAM KHẢO AWS Cognito:
https://aws.amazon.com/cognito/
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.udemy.com/course/hibernate-jpa-tutorial-for-beginners-in-100-steps/
https://spring.io/projects/spring-boot
Angular:
https://angular.io/
https://www.udemy.com/course/the-complete-guide-to-angular-2/