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ẬP LẬP TRÌNH BACK-END VỚI JAVA Công ty thực tập : Công ty KMS Technology Người phụ trách : Nguyễn Đức Huy Thực tậ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH BACK-END VỚI JAVA Công ty thực tập : Công ty KMS Technology Người phụ trách : Nguyễn Đức Huy
Thực tập sinh : Huỳnh Tấn Duy
TP Hồ Chí Minh, tháng 07 năm 2020
Trang 2LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp web là một bộ phận không thể thiếu của ngànhcông nghiệp phần mềm Với tốc độ phát triển vô cùng mạnh mẽ, công nghệ web đã vàđang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phầncứng và phần mềm
Bản thân là một người đam mê công nghệ và mong muốn áp dụng công nghệ
để làm cho cuộc sống tốt hơn, em luôn luôn học hỏi, trau dồi thêm các kiến thức, kỹnăng cuộc sống và một vốn công nghệ cần thiết để phục vụ nhu cầu của bản thân.Sau khi thử sức với nhiều lĩnh vực khác nhau của ngành công nghệ phần mềm, emquyết định chọn lập trình web với hướng chuyên sâu về back-end để làm định hướngcho sự nghiệp của mình
Thời điểm học kỳ hai của năm tư đại học, nhận thấy đây là thời điểm thích hợp
để bản thân tìm kiếm một cơ hội làm việc, trau dồi kinh nghiệm thực tế trong một môitrường chuyên nghiệp, nên em đã lên kế hoạch để đi thực tập Bản thân em sau mộtthời gian chuẩn bị kiến thức và ứng tuyển, đã nhận được cơ hội làm việc tại công tyKMS Technology Đây là công ty có môi trường chuyên nghiệp, hiện đại, phù hợp cho
em trau dồi kiến thức, kinh nghiệm và phát triển các kĩ năng của bản thân
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn sâu sắc đến quý Công ty KMS Technology đãtạo điều kiện cho em có cơ hội được thực tập và học hỏi trong môi trường chuyênnghiệ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 anhmentor, bản thân em đã tiếp thu được những kiến thức quan trọng để có thể phát triểnmột ứng dụng phần mềm thực tế Chân thành cảm ơn các anh chị mentor đã bỏ ranhiều thời gian, công sức để hướng dẫn chúng em hoàn thành đợt thực tập này Đặcbiệt em xin gửi lời cảm ơn đặc biệt đến anh Nguyễn Đức Huy – Engineer Manager củacông ty đã chân thành chia sẻ cho những kiến thức, kinh nghiệm trong công việc vàcuộc sống, những lời khuyên bổ ích để em tiến bộ, phát triển hơn
Cuối cùng em xin gửi lòng biết ơn đến các thầy cô khoa Công nghệ Phần mềm,trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh đãnhiệt tình hỗ trợ, tạo điều kiện để em hoàn thành tốt môn thực tập doanh nghiệp này
Sinh viên thực hiệnHuỳnh Tấn Duy
TP Hồ Chí Minh, ngày 26/07/2020
Trang 4NHẬN XÉT CỦA KHOA
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
……….………
Trang 5Chương 1: Giới thiệu về công ty thực tập 5
1 Giới thiệu công ty KMS Technology 5
1 Tìm hiểu công ty và các kĩ năng cơ bản trong công ty 6
2.3 Lập trình Web Service với Spring Framework 72.4 Quy trình phát triển phần mềm và Business của project 8
Trang 6Chương 1: Giới thiệu về công ty thực tập
1 Giới thiệu công ty KMS Technology
KMS Technology là công ty chuyên về lĩnh vực phát triển sản phẩm và gia công phần mềm với 100% vốn đầu tư của Mỹ Sau hơn 10 năm hoạt động, từ 4 thànhviên lúc bắt đầu, đến nay KMS đã mở rộng quy mô lên tới khoảng 1000 nhân viên trong đội ngũ nhân sự của mình Những thành tựu đáng kể mà KMS
Technology gặt hái được không phải công ty nào cũng dễ dàng có được
Những chất lượng vượt trội ở dịch vụ đã giúp cho KMS Technology 3 năm liền nhận giải thưởng Sao Khuê cho hạng mục: Dịch vụ gia công xuất khẩu phần mềm xuất sắc
2 Sản phẩm của công ty
KMS Technology cung cấp dịch vụ và giải pháp tối ưu phần mềm cho hơn 90%khách hàng là các công ty ở Mỹ với các dịch vụ: phát triển phần mềm theo yêucầu, bảo trì hệ thống sản phẩm phần mềm, quản lý ứng dụng; kiểm thử và bảođảm chất lượng phần mềm
Trang 7Bên cạnh đó, công ty cũng phát triển mạnh mẽ ở lĩnh vực Product với các sảnphẩm chuyên về kiểm thử phần mềm như: Katalon, Kobiton, QASymphony,…
Trang 8Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình back-end với Java” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình web sử dụng ngôn ngữ Java
và Spring Framework, đồ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, 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
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, nhân sự và các quy định đối với nhân viên
- Được bộ phận nhân sự giới thiệu về công ty, quá trình thành lập và phát triển, các sản phẩm, thành quả đạt được và hướng đi của công ty trong tương lai
- Ngoài ra được giới thiệu về nhân sự của công ty, nắm được các quy định đối với nhân viên, hiểu được văn hoá và tham gia vào các hoạt động, phong trào hàng ngày, hàng tuần trong công ty
Kết quả: Hiểu hơn về công ty KMS Technology, các đồng nghiệp, văn hoá và
môi trường làm việc Từ đó dễ dàng thích nghi hơn với môi trường mới để đạt được năng suất cao trong công việc
2 Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
Thời gian: 2 ngày
Nội dung: Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm
việc
- Công cụ trao đổi, giao tiếp: Slack, Skype, Gmail, Google Calendar
- Công cụ quản lý dự án: Jira
- Công cụ quản lý phiên bản phần mềm: Git, GitLab
Trang 9- Công cụ liên quan lập trình: IntelliJ IDEA.
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Làm quen, biết được công dụng và cách sử dụng các công cụ phục
vụ công việc
2.2 Tìm hiểu ngôn ngữ Java
Thời gian: 5 ngày (1 tuần)
Nội dung: Tìm hiểu các kiến thức cơ bản và nâng cao của Java
- Lập trình hướng đối tượng
- Các kiến thức Java cơ bản về Web Service, data type, bean, annotation, JVM, …
- Database, JPA, transaction handling, exception handling
- Tìm hiểu về Java convention và coding best practice
Thực hiện:
- Tham gia đầy đủ các buổi training của công ty
- Nghiên cứu, ứng dụng lý thuyết để xây dựng một sản phẩm đơn giản
- Báo cáo hàng ngày với Mentor về kiến thức đã nghiên cứu được
Kết quả:
- Nâng cao kỹ năng lập trình với ngôn ngữ Java
- Có được những kiến thức quan trọng về thiết kế kiến trúc cho project
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc và dễ hiểu
2.3 Lập trình Web Service với Spring Framework
Thời gian: 8 ngày (2 tuần)
Nội dung: Các kiến trong lập trình back-end với Spring Framework
- Microservice với Spring / Spring Boot
- Spring data JPA
- Spring Security
Trang 10- Spring Cloud
- Spring Batch
- Viết unit testing với Junit
Thực hiện:
- Tham gia đầy đủ các buổi training
- Làm các bài thực hành, kiểm tra về kiến thức đã học
- Thực hiện thuyết trình về kết quả đã nghiên cứu được
Kết quả:
- Hiểu được những khái niệm cơ bản trong lập trình back-end với Java
- Biết cách sử dụng các component của Spring Framework như Spring security, Spring Cloud, Spring Batch
- Nắm được cách triển khai ứng dụng với Docker
2.4 Quy trình phát triển phần mềm và Business của project
Thời gian: 5 ngày (1 tuần)
Nội dung:
- Quy trình phát triển phần mềm với Scrum
- Business của project
Thực hiện:
- Tham gia đầy đủ các buổi training
- Nghiên cứu tài liệu và source code của project
Kết quả:
- Nắm được quy trình và các khái niệm trong phát triển phần mềm với Scrum
- Hiểu được business của project ở mức đơn giản
- Nắm được cách tổ chức, quy tắc viết code trong source code của project
Trang 113 Thực hiện project
Sau hơn 1 tháng được training và thực hành, thực tập sinh đã nắm được những kiến thức cơ bản về Java, Spring Đồng thời đã ứng dựng kiến thức để xây
dựng một project để demo và thuyết trình
Chi tiết đồ án sẽ được nói ở phần sau
4 Lịch làm 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
1
- Giới thiệu về công ty, nhân sự và các quy định đối với nhân viên
- Tìm hiểu về các công cụ
sẽ được sử dụng trong quá trình làm việc
- Lên kế hoạch training
Chị Hồ
Mỹ Duyên, Anh Nguyễn Đức Huy
10 / 10
Thích nghi nhanh với môi trường mớicủa công ty, tích cực trong việc hỏi đáp các vấn đề còntrở ngại, vướng mắc
2
Tìm hiểu các kiến thức cơ bản
và nâng cao của Java
Anh Võ Minh Nhựt
7 / 10 Có khả năng tự
nghiên cứu kiến thức với keyword được cho Vẫn cònhạn chế về cấu hình, xác nhận yêu cầu của project, chất lượng của code còn chưa cao
3, 4 Các kiến thức và kinh nghiệm
lập trình back-end với Spring
Anh Võ Minh
8 / 10 Nắm được kiến
thức cơ bản về
Trang 12Nhựt Spring Framework,
có cái thiện những điểm chưa tốt ở đợt 1
5
Quy trình phát triển phần mềm
và business của project
Anh Nguyễn Đức Huy,Anh Võ Minh Nhựt
8 / 10 Nắm được quy
trình phát triển phần mềm với Scrum và hiểu được cơ bản business của project
8 / 10 Nắm bắt kiến thức
nâng cao về technical của project ở mức đơn giản, có khả năng ứng dựng để xây dựng demo project
9
Bắt đầu tham gia dự án với những task đơn giản
Anh TrầnKiến
08 / 10
Có khả năng ứng dựng kiến thức đã được train vào công việc Vẫn còn hạn chế về chất lượng code
Chương 3: Chi tiết về project
1 Giới thiệu về dự án:
Tên dự án: Quản lý Scrum Team
Trang 13- Ghi lại nhật ký công việc
- Authentication với Json Web Token
Project được triển khai dưới dạng 1 web service với các RESTful API
1.2 Các API chính
1.2.1 Đăng nhập
Đăng nhập với username và password Nếu thành công sẽ nhận được 1 Json Web Token, phục vụ cho việc xác thực user trong quá trình thao tác với hệ thống
1.2.2 Quản lý User
Trang 14Tạo, cập nhật, xóa user với các thông tin cơ bản: tên, email, số điện thoại, vai trò, mật khẩu, … Các thông tin được truyền lên ở dạng json.
API get list user
API create user
Trang 15API update user
1.2.3 Quản lý Team
Tạo, cập nhật, xóa team với các thông tin cơ bản: tên, office, danh sách thành viên, … Các thông tin được truyền lên ở dạng json
Trang 16API create team
API update team
Trang 18API assign task for a user
API log work for a task
Trang 19Kết quả: Hoàn thành 100% các yêu cầu đã được giao.
Giai đoạn beta:
- Cài đặt các API phục vụ cho business requirement
- Viết unit testing cho các API bên back-end
- Xây dựng hệ thống Authentication với Json Web Token
- Triển khai ứng dụng với Docker
- Chuẩn bị thuyết trình
Kết quả: Hoàn thành 80% các yêu cầu đã được giao.
Trang 20TÀI LIỆU THAM KHẢO
Trang 21TỔNG KẾT
Như vậy, chỉ trong vòng một khoảng thời gian ngắn khoảng 2 tháng, em đã được trải nghiệm và học hỏi rất nhiều kỹ năng, kiến thức quan trọng về ngôn ngữ Java, Spring Framework, quy trình phát triển phần mềm chuyên nghiệp Đây sẽ là nền tảng để em tiếp tục học hỏi, phát triển để trở thành một kĩ sư phần mềm chuyên nghiệp
Em xin chân thành cảm ơn anh Nguyễn Đức Huy, anh Võ Minh Nhựt, anh Trần Kiến,
và công ty KMS Technology đã tạo điều kiện và giúp đỡ em hoàn thành kỳ thực tập này