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