TRƯỜ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 PHÁT TRIỂN ỨNG DỤNG WEB VỚI NGÔN NGỮ LẬP TRÌNH JAVA Công ty thực tập KMS Healthcare Người phụ trách Bùi Minh Hải Thực tập si[.]
TRƯỜ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 PHÁT TRIỂN ỨNG DỤNG WEB VỚI NGƠN NGỮ LẬP TRÌNH JAVA Cơng ty thực tập: KMS Healthcare Người phụ trách: Bùi Minh Hải Thực tập sinh: Nguyễn Anh Kiệt TP HỒ CHÍ MINH, 2022 LỜI MỞ ĐẦU Với phổ biến Internet phát triển tảng trực tuyến, lĩnh vực phát triển Web không ngừng phát triển dần trở nên quan trọng năm gần Các nhu cầu thiết kế, phát triển bảo trì website ứng dụng web tiếp tục tăng, nhà phát triển web đóng vai trị khơng thể thiếu lĩnh vực Báo cáo thực tập trình bày cơng việc trải nghiệm em q trình thực tập cơng ty KMS HealthCare với tư lập trình viên Backend Quá trình thực tập diễn 10 tuần, từ tháng 10 đến tháng 12 năm 2022, mang đến cho em hội tích lũy kinh nghiệm làm việc thực tế đồng thời nâng cao kỹ thuật lập trình web Trong thời gian thực tập mình, em có hội làm việc với dự án thực tế với anh chị lập trình viên có dày dặn kinh nghiệm Thông qua tập này, em học thêm quy trình vịng đời phát triển phần mềm, công cụ, công nghệ best-practices cho việc phát triển ứng dụng backend Trong báo cáo này, em trình bày tổng quan nhiệm vụ trách nhiệm mà em thực thời gian thực tập, bao gồm dự án mà em tham gia thách thức kỹ thuật mà em gặp phải Em trình bày kỹ kiến thức mà em đạt giúp ích chúng nghiệp tương lai em với mục tiêu trở thành lập trình viên phát triển ứng dụng chuyên nghiệp Nhìn chung, tập trải nghiệm học tập quý giá em, cho phép em áp dụng kiến thức lý thuyết vào dự án thực tế Việc thực tập mang lại cho em hội làm việc môi trường chuyên nghiệp phát triển thêm kỹ mềm thân LỜI CẢM ƠN Em xin bày tỏ lòng biết ơn chân thành đến KMS Healthcare tạo hội cho em hoàn thành q trình thực tập cơng ty Em đặc biệt cảm ơn mentor em, anh Bùi Minh Hải, hướng dẫn hỗ trợ tận tình suốt thời gian em làm việc KMS Healthcare Sự khéo léo chuyên môn anh Hải giúp ích em nhiều việc phát triển kỹ chuyên môn Em xin cảm ơn thành viên cịn lại Team SDLC Compliance hỗ trợ hướng dẫn anh chị, cho phép em học hỏi phát triển vị trí lập trình viên Backend Em muốn bày tỏ lịng biết ơn tới Khoa Cơng nghệ Phần mềm cung cấp cho em kiến thức kỹ cần thiết để em có đợt thực tập thành công Sự hỗ trợ hướng dẫn giảng viên cố vấn học em vô giá phát triển nghề nghiệp em Cuối cùng, em xin gửi lời cảm ơn tới bạn bè gia đình hỗ trợ động viên em suốt trình vừa thực tập vừa làm nhiều áp lực Sự động viên nguồn động lực cảm hứng cho em khơng ngừng phát triển thân Thành phố Hồ Chí Minh, ngày 21 tháng 12 năm 2022 Nguyễn Anh Kiệt NHẬN XÉT CỦA KHOA MỤC LỤC Chương Giới Thiệu Công Ty Thực Tập 1.1 Giới thiệu công ty KMS Healthcare 1.2 Sản phẩm công ty Chương Nội Dung Thực Tập 2.1 Tìm hiểu cơng ty, quy trình làm việc văn hóa cơng ty 2.2 Nghiên cứu kỹ thuật 2.2.1 Kỹ thuật lập trình Java 2.2.2 Phát triển ứng dụng Web với Spring Framework 2.2.3 Quản lý source code với Git Github 2.2.4 Quản lý công việc với Jira 2.3 Tham gia phát triển ứng dụng dự án thực tế Chương Dự Án Sdlc Compliance 3.1 Giới thiệu dự án SDLC Compliance 3.2 Kiến trúc, công nghệ tảng hỗ trợ 3.2.1 Kiến trúc 3.2.2 Công nghệ 3.2.3 Nền tảng hỗ trợ 3.3 Công việc thực tập sinh khó khăn 10 11 KẾT LUẬN 12 TÀI LIỆU THAM KHẢO 13 Chương Giới Thiệu Công Ty Thực Tập 1.1 Giới thiệu công ty KMS Healthcare KMS Healthcare trung tâm phát triển phần mềm trực thuộc KMS Technology, giới thiệu vào ngày 30-9-2022 KMS Healthcare tập trung chủ yếu vào mảng dịch vụ giải pháp lĩnh thực y tế cho đối tác toàn cầu KMS Healthcare làm việc với gần 50 tảng tích hợp, cung cấp dịch vụ cho 334 triệu bệnh nhân 100 triệu lượt khám bệnh thị trường Hoa Kỳ Hình KMS Healthcare đến Việt Nam KMS Healthcare tên mới, thương hiệu KMS khơng phải tên xa lạ KMS Technology công ty phần mềm Việt Nam, thành lập năm 2009 KMS Technology chuyên cung cấp dịch vụ phát triển phần mềm, tư vấn triển khai giải pháp công nghệ khởi nghiệp & đầu tư Hình Văn phịng cơng ty KMS Technology 1.2 Sản phẩm công ty KMS Healthcare cung cung cấp dịch vụ phát triển triển khai giải pháp công nghệ đặc biệt lĩnh vực chăm sóc sức khỏe nhiều tảng Các khách hàng KMS Healthcare chủ yếu tập trung thị trường Mỹ Châu Âu, ví dụ LexisNexis, Elsevier, Ngồi khách hàng Mỹ Châu Âu, KMS phát triển riêng cho sản phẩm phần mềm Ví dụ tảng hỗ trợ kiểm thử phần mềm Katalon Kobiton, hay ứng dụng phát triển wireframe Visily Các sản phẩm bước chinh phục khách hàng khơng Việt Nam mà cịn giới Hình Katalon – sản phẩm tự hào KMS Hình Visily - phần mềm hỗ trợ thiết kế đà phát triển Chương Nội Dung Thực Tập 2.1 Tìm hiểu cơng ty, quy trình làm việc văn hóa cơng ty Tìm hiểu hệ sinh thái KMS Technology KMS Healthcare, công ty trực thuộc, sản phẩm phát triển đối tác KMS Tìm hiểu văn hóa mơi trường làm việc công ty phúc lợi trở thành nhân viên công ty Hình KMS FlexiWork program Tìm hiểu quy trình làm việc nội công ty, hướng dẫn sử dụng thiết bị quy trình bảo mật cơng ty sử dụng thiết bị Tìm hiểu luật lệ u cầu ngồi cơng ty, tìm hiểu luật lao động sách phúc lợi công ty 2.2 Nghiên cứu kỹ thuật 2.2.1 Kỹ thuật lập trình Java Thực tập sinh nghiên cứu, ôn tập training kỹ thuật lập trình Java Nội dung bao gồm: Lập trình hướng đối tượng Java, Java 8, Collections, Exception Handling kỹ thuật liên quan đến clean code Việc ôn tập training diễn ngày, sử dụng công cụ Intellij IDE nghiệm thu kiểm tra giám sát mentor Hình Intellij IDEA 2.2.2 Phát triển ứng dụng Web với Spring Framework Thực tập sinh nghiên cứu Spring Framework, framework tiếng cho việc phát triển ứng dụng web dựa ngơn ngữ lập trình Java Các nội dung bao gồm: Tìm hiểu Spring Core, phát triển ứng dụng web với Spring Boot, thao tác với sở liệu sử dụng Spring Data JPA, phát triển ứng dụng micro-service với Spring Cloud Hình Spring framework logo Sau thời gian tuần nghiên cứu thực hành, em hiểu áp dụng thành công nội dung việc phát triển ứng dụng web 2.2.3 Quản lý source code với Git Github Thực tập sinh training kỹ sử dụng git github mơi trường làm việc thực tế, ví dụ cách đặt tên nhánh, cách xử lý gặp xung đột nhánh Thực tập sinh thực hành sử dụng git github dựa quy ước quy định project thực tế Hình Git github 2.2.4 Quản lý công việc với Jira Thực tập sinh training kỹ sử dụng Jira dự án thực tế, học quy trình quản lý cơng việc dự án bước nhận việc thay đổi trạng thái công việc Việc học thực hành quy trình làm việc với Jira giúp người quản lý dễ dàng quản lý cơng việc làm, đồng thời phối hợp với đồng nghiệp công việc chung cách tốt Hình Jira logo 2.3 Tham gia phát triển ứng dụng dự án thực tế Sau vài q trình đánh giá chun mơn, thực tập sinh tham gia vào dự án thực tế để trau dồi thêm kỹ cứng kỹ mềm Thực tập sinh trực tiếp tham gia vào việc thảo luận đưa giải pháp cho vấn đề mà dự án gặp phải Thực tập sinh với anh chị lập trình viên chuyên nghiệp khác giải vấn đề toán dự án Qua việc tham gia dự án thực tế, em học nhiều kỹ làm việc độc lập làm việc nhóm Chương Dự Án Sdlc Compliance 3.1 Giới thiệu dự án SDLC Compliance Ở Mỹ, phát triển phần mềm thiết bị, sản phẩm y tế, doanh nghiệp phải có tài liệu mơ tả trình phát triển sản phẩm, ứng dụng mà sản phẩm mang lại rủi ro sử dụng sản phẩm Các mô tả gửi đến cho quan thẩm quyền xác minh làm thủ tục Tuy nhiên trình làm thủ tục tốn thời gian số lượng văn cần hoàn thiện, nội dung văn phải tuân theo tiêu chuẩn xác định Nền tảng SDLC Compliance đem đến giải pháp cho vấn đề Dự án dự kiến hoàn thành vòng tháng, với số lượng thành viên ban đầu từ 18 thành viên, sau khoảng tháng tăng lên 30 thành viên SDLC Compliance cung cấp tảng giúp hỗ trợ người dùng việc tạo lập văn giúp ích cơng việc pháp lý công việc thẩm định sản phẩm Nhóm phát triển sản phẩm thơng qua việc điền thơng tin trả lời vào câu hỏi có sẵn xếp theo thứ tự, để sau lần trả lời hết câu hỏi, người dùng nhận văn tương ứng với nội dung trả lời trước Các văn đánh giá thẩm định người khác nhóm phát triển sản phẩm để đưa văn xác hồn chỉnh nhất, ký xác nhận văn Hình 10 Logo dự án SDLC Compliance 3.2 Kiến trúc, công nghệ tảng hỗ trợ 3.2.1 Kiến trúc ❖ Microservice SDLC Compliance sử dụng kiến trúc microservice Kiến trúc giúp việc triển khai dễ dàng hơn, đặc biệt với nhân lực lớn làm việc với Micro-service cho phép việc phát triển độc lập chuyên biệt cho tính năng, giúp giảm chồng chéo cơng việc dễ kiểm sốt lỗi nhờ vào tính độc lập chuyên biệt Dự án SDLC Compliance chia thành 10 components nhỏ bao quát cho toàn hệ thống Các components giao tiếp với thông qua Feign Clients – thư viện hỗ trợ Spring Cloud Về thiết kế chi tiết hệ thống em xin phép bỏ qua lý bảo mật nội dung công ty Hình 11 Minh họa kiến trúc microservice ❖ Multi-tenancy Multi-tenancy có nghĩa phiên phần mềm sở hạ tầng hỗ trợ phục vụ nhiều khách hàng Mỗi khách hàng chia sẻ ứng dụng phần mềm chia sẻ sở liệu Nhưng liệu khách hàng bị cô lập vơ hình khách hàng khác Vì SDLC Compliance chủ sở hữu cho khách hàng khác thuê lại, nên hệ thống cần có tách biệt khách hàng khác Việc sử dụng kiến trúc multi-tenancy giúp giảm chi phí vận hành hơn, chi phí sở hạ tầng so với kiến trúc truyền thống Tuy nhiên kiến trúc có nhược điểm nó, ví dụ khó backup data riêng lẻ cho tenant Hình 12 Các models kiến trúc multi-tenancy 3.2.2 Công nghệ ❖ Java Spring Framework Ngôn ngữ lập trình Java sử dụng làm cơng cụ cho việc phát triển Backend hệ thống Java ngơn ngữ lập trình mạnh mẽ phổ biến Chính phổ biến mà Java sử dụng dự án Trong dự án SDLC Compliance này, nhóm phát triển sử dụng Java phiên 8, với Java Gradle cho việc package managing Hình 13 Gradle package manager Spring framework framework tiếng chiếm thị phần cao việc phát triển ứng dụng web dựa ngôn ngữ Java Spring nhẹ, suốt có cộng đồng người dùng lớn Trong dự án SDLC Compliance, Spring Boot, Spring Data JPA, Spring Batch, Spring Cloud tên hỗ trợ đắc lực việc phát triển dự án Hình 14 Minh họa hệ sinh thái Spring ❖ ReactJs ReactJs thư viện Javascript xu hướng hỗ trợ lập trình viên xây dựng ứng dụng Single Page Application ReactJs sản phẩm phát triển Facebook Trong dự SDLC Compliance, ReactJs Typescript sử dụng việc phát triển giao diện platform Bên cạnh ReactJs, SDLC Compliance sử dụng thư viện liên quan đến ReactJs Redux, React Router,… Hình 15 Thư viện ReactJs ❖ Jwt JSON Web Token (JWT) tiêu chuẩn mở (RFC 7519), định nghĩa cách thức truyền tin an toàn ứng dụng đối tượng JSON Dữ liệu truyền mã hóa chứng thực, giải mã để lấy lại thông tin đánh dấu tin cậy nhờ vào “chữ ký” SDLC Compliance sử dụng JWT để xác thực người dùng lưu trữ thông tin cần thiết để giao tiếp services Ở services có hàm để giải mã token Hình 16 Quy trình làm việc JWT 3.2.3 Nền tảng hỗ trợ ❖ Amazon Web Services Amazon Web Services (AWS) tảng đám mây toàn diện sử dụng rộng rãi nhất, cung cấp 200 dịch vụ đầy đủ tính từ trung tâm liệu tồn giới AWS đóng vai trò quan trọng dự án SDLC Compliance AWS nơi triển khai ứng dụng, lưu trữ liệu, xác thực, cân tải giám sát hệ thống Các service sử dụng dự án kể đến như: Ecs, Cloudwatch, Gateway, S3, Dynamo database, Lambda function,… Hình 17 ECS – Elastic Container Service 10 3.3 Cơng việc thực tập sinh khó khăn Trong dự án SDLC Compliance này, em có hội tham gia đóng góp nhiều cho dự án, đặc biệt phát triển Backend Dưới số công việc em làm: - Thiết kế triển khai lược đồ sở liệu để đáp ứng yêu cầu khách hàng - Phát triển Restful Api để giao tiếp giao diện người dùng lõi phần mềm - Xử lý lỗi khắc phục cố trình phát triển ứng dụng - Hỗ trợ người việc review code kiểm tra phần mềm - Tham gia vào lập trình giao diện component không phức tạp - Tham gia cài đặt cấu hình cho AWS Service Ở giai đoạn đầu thực tập, em gặp phải số thách thức kỹ thuật Những khó khăn đến từ việc công nghệ áp dụng với em, em chưa thành thạo cơng nghệ cũ Tuy nhiên, với hỗ trợ nhóm mentor, em bắt kịp nhanh chóng có đóng góp tích cực cho dự án Bản thân em tự hào đóng góp vào thành công dự án hỗ trợ anh chị cách 11 KẾT LUẬN Kỳ thực tập em KMS Healthcare trải nghiệm học tập quý giá giúp em có kỹ kiến thức thực tế phát triển ứng dụng web, đặc biệt phát triển Backend Em có hội làm việc dự án thực tế và đóng góp phần cơng sức nhỏ vào thành cơng dự án Em hiểu rõ ngành chăm sóc sức khỏe thách thức yêu cầu riêng việc phát triển công nghệ phần mềm liên quan đến chăm sóc sức khỏe Em cảm ơn KMS Healthcare cho em hội cảm ơn thành viên nhóm phát triển mentor em Những kiến thức kinh nghiệm em học trình thực tập thực bước ngoặt đối nghiệp trở thành kỹ sư phần mềm chuyên nghiệp em Nhìn chung, tập trải nghiệm bổ ích phong phú giúp em phát triển mặt cá nhân nghề nghiệp Em biết ơn hội tham gia vào tập tin hành trang để em bước vào đường nghiệp 12 TÀI LIỆU THAM KHẢO [1] Wikipedia contributors (2022, April 23) KMS Technology https://vi.wikipedia.org/wiki/KMS_Technology [2] Ân T (2022, September 30) KMS vận hành trung tâm phát triển phần mềm KMS Healthcare Forbes Việt Nam https://forbes.vn/kms-van-hanh-trung-tam-phat-trienphan-mem-kms-healthcare/ [3] Coder G P (2020, March 17) Giới thiệu Json Web Token (JWT) - GP Coder (Lập trình Java) GP Coder https://gpcoder.com/5827-gioi-thieu-json-web-token-jwt/ [4] What is multitenancy? (n.d.) https://www.redhat.com/en/topics/cloudcomputing/what-is-multitenancy [5] AWS gì (n.d.) Amazon Web Services, Inc https://aws.amazon.com/vi/what-isaws/ 13 ... việc phát triển ứng dụng web dựa ngơn ngữ lập trình Java Các nội dung bao gồm: Tìm hiểu Spring Core, phát triển ứng dụng web với Spring Boot, thao tác với sở liệu sử dụng Spring Data JPA, phát triển. .. phát triển web đóng vai trị khơng thể thiếu lĩnh vực Báo cáo thực tập trình bày cơng việc trải nghiệm em q trình thực tập cơng ty KMS HealthCare với tư lập trình viên Backend Quá trình thực tập. .. thuật lập trình Java 2.2.2 Phát triển ứng dụng Web với Spring Framework 2.2.3 Quản lý source code với Git Github 2.2.4 Quản lý công việc với Jira 2.3 Tham gia phát triển ứng dụng dự án thực tế