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à yê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 quá trình đánh giá về chuyên 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. Microservice 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
9
người dùng 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