1. Trang chủ
  2. » Tất cả

Lập Trình Ứng Dụng Ngân Hàng Số (Báo Cáo Thực Tập).Pdf

15 9 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Ứng Dụng Ngân Hàng Số (Báo Cáo Thực Tập)
Tác giả Lê Đức Trung
Người hướng dẫn Anh Nguyễn Thế Hiền
Trường học Trường Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo thực tập
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 15
Dung lượng 289,07 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

báo cáo thực tập ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP LẬP TRÌNH ỨNG DỤNG NGÂN HÀNG SỐ Công ty thực tập CÔNG TY TNHH KỸ THUẬT SỐ TYME Người phụ trá[.]

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC TẬP LẬP TRÌNH ỨNG DỤNG NGÂN HÀNG SỐ

Công ty thực tập : CÔNG TY TNHH KỸ THUẬT SỐ TYME Người phụ trách : Anh Nguyễn Thế Hiền

Thực tập sinh : Lê Đức Trung

Trang 2

LỜI MỞ ĐẦU

Ngày nay, ngành công nghệ thông tin hay cụ thể là lập trình ứng dụng di động đang trong giai đoạn hiện nay đang phát triển như vũ bão ở mọi trên thế giới Lập trình ứng dụng di động đã, đang và sẽ là một trong các vấn đề không thể thiếu đối với bất kỳ công ty nào

Ngành lập trình ứng dụng di động được sinh ra là do nhu cầu sử dụng thiết bị điện thoại thông minh của mọi người ngày càng tăng cao Mọi hoạt động từ thương mại điện thoại, game, hay các hoạt động về kỹ thuật đều đang được điện thoại hóa, giúp người dùng có thể có khả năng sử dụng các phần mềm tiện ích mọi lúc mọi nơi mà không cần phụ thuộc quá nhiều vào các thiết bị cồng kềnh như laptop hay máy tính bàn Một vài công ty công nghệ lớn đã áp dụng rất thành công các ứng dụng di động vào thực tiễn có thể kể đến như: Tiki, Shopee, Gojek, … Đây lý do khiến cho nhu cầu tuyển dụng của ngành này càng trở nên to lớn hơn Và đó cũng là lý do khiến em quyết định chọn lập trình ứng dụng di động làm định hướng cho việc học tập của mình

Do đã xác định rõ con đường đã chọn nên trong quá trình học tập tại trường, em cũng có định hướng trở thành một lập trình viên ứng dụng di động, em đã đăng ký học các môn như nhập môn lập trình di động, lập trình ứng dụng di động, ngôn ngữ lập trình java, phát triển ứng dụng di động trên thiết bị di động

Sau ba 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 lập trình ứng dụng trong một môi trường chuyên nghiệp, được làm quen với những anh chị cùng chí hướng để phát triển nhiều hơn trong lĩnh vực lập trình ứng dụng di động, em quyết định đăng ký môn thực tập doanh nghiệp và em đã rất may mắn khi được đồng hành cùng TYME trong quá trình hoàn thành môn học này

Trang 3

LỜI CẢM ƠN

Em xin trân trọng gửi lời cảm ơn sâu sắc đến Công ty TRÁCH NHIỆM HỮU HẠN KỸ THUẬT SỐ TYME đã tạo điều kiện cho em có cơ hội được học tập, làm việc

và trải nghiệm tại Công ty trong khoảng thời gian 3 tháng vừa qua

Nhờ sự chỉ dẫn nhiệt tình của anh Hiền mentor cũng như các anh chị trainer trong mobile community mà trong 3 tháng qua em đã tiếp thu được rất nhiều kiến thức thú vị

và bổ ích để có thể biết được những quy trình vận hành cũng như cách để tạo ra được một ứng dụng di động chuyên nghiệp Chân thành cảm ơn các anh chị ở TYME đã dành thời gian, công sức để hướng dẫn em hoàn thành đợt thực tập này

Em xin gửi một lời cảm ơn đặc biệt đến anh Nguyễn Thế Hiền - người mentor đã đồng hành cùng em trong thời gian vừa qua Anh đã cho em rất nhiều kiến thức, kinh nghiệm cũng như góc nhìn thực tế về ngành công nghệ thông tin nói chung và ngành lập trình ứng dụng di động nói riêng Cảm ơn các anh chị trong team HR và team IT đã training cũng như phổ cập các kiến thức, hỗ trợ em về mặt giấy tờ và thiết bị trong thời gian thực tập Cảm ơn các anh/chị trainer bao gồm: anh Trí, anh Hiếu, anh Long, anh Đạt, anh Sơn, chị Hưng đã có những buổi training bổ sung kiến thức vô cùng hữu ích và thực

tế cho tụi em Em xin cảm ơn team Wibu đã đồng hành, lắng nghe chỉ bảo em, xem em như một thành viên chính thức mặc dù em chỉ là thực tập sinh

Cuối cùng, em xin 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 cho em hoàn thành kỳ thực tập lần này

Lê Đức Trung

TP HCM, tháng 12 năm 2022

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

MỤC LỤC

Chương 1: Giới thiệu Công ty thực tập 6

Chương 3: Chi tiết về ý tưởng trình bày cuối khóa - Dynamic In App Text With

2 Giới thiệu về Firebase Remote Config 12

Trang 6

CHI TIẾT THỰC TẬP Chương 1: Giới thiệu Công ty thực tập

1 Giới thiệu Công ty TYME

Tyme là một trong những tập đoàn ngân hàng kỹ thuật số phát triển nhanh nhất thế giới, xây dựng các ngân hàng công nghệ cao và tiếp xúc nhiều tại các thị trường mới nổi đang phát triển nhanh với Trụ sở chính tại Singapore và Trung tâm Phát triển Sản phẩm

& Công nghệ tại Việt Nam

Tyme thiết kế, xây dựng và thương mại hóa các ngân hàng kỹ thuật số cho các thị trường mới nổi, với chuyên môn đặc biệt trong việc phục vụ các nhóm dân cư chưa được phục vụ đầy đủ và chưa được tiếp cận với ngân hàng Tyme sở hữu nền tảng công nghệ

và tài sản trí tuệ trên toàn cầu, đồng thời hợp tác với các đối tác ngân hàng và công nghệ tài chính trong nước để ra mắt các ngân hàng kỹ thuật số mới

Được thành lập vào năm 2016, Tyme Việt Nam là Trung tâm Phát triển & Công nghệ của Tập đoàn Tyme, tập hợp những người làm kỹ thuật và sản phẩm, những người

có chung sứ mệnh toàn cầu là trở thành những người xây dựng ngân hàng nối tiếp, định hình tương lai của ngân hàng thông qua công nghệ

Website:https://vietnam.tyme.com

Địa chỉ: Tòa nhà HIU, 215 Điện Biên Phủ, Phường 15, Quận Bình Thạnh, Thành phố Hồ Chí Minh

Thời gian làm việc: Thứ 2 - thứ 6: 09h - 18h

Trang 7

2 Sản phẩm của Công ty

Tyme tự hào đã xây dựng và cung cấp các dịch vụ ngân hàng của mình tại hai quốc gia – Nam Phi và Philippines:

- TymeBank, có trụ sở tại Nam Phi, hiện là một trong những ngân hàng kỹ thuật số phát triển nhanh nhất thế giới, với hơn 5 triệu khách hàng kể từ khi

ra mắt vào tháng 2 năm 2019

- Website:https://www.tymebank.co.za/

- GOTyme có trụ sở tại Philippines, là liên doanh giữa Tập đoàn Gokongwei

và Tập đoàn Tyme và có kế hoạch ra mắt vào giữa năm 2022

- Website:https://www.gotyme.com.ph/

Trang 8

Chương 2: Nội dung thực tập

1 Khám phá

Thời gian: 2 tuần

Nội dung:Tìm hiểu về văn hóa, cách vận hành của Công ty

● Được training về Công ty bao gồm: văn hóa làm việc, cách vận hành, tổ chức, quá trình thành lập, phát triển, quy trình làm việc của Công ty, …

● Ngoài ra, thực tập sinh phải hoàn thành những khóa học bắt buộc về bảo mật thông tin, các công cụ phần mềm được sử dụng trong Công ty, bao gồm:

○ Hibob: Công cụ quản lý thời gian làm việc, nghỉ phép, thông tin nhân viên,

○ Slack: Công cụ trao đổi thông tin, nhắn tin, đàm thoại được dành riêng cho các thành viên trong Công ty

○ Jira: Công cụ quản lý công việc của team cũng như từng thành viên trong team

○ Confluence: Công cụ quản lý thông tin tài liệu của Công ty

○ Bitbucket: Công cụ quản lý source code các dự án của Công ty (tương tự như git)

Kết quả:

● Hiểu rõ về Công ty Tyme, cơ cấu tổ chức, quá trình thành lập phát triển

● Tiếp thu được những kiến thức về bảo mật thông tin và các công cụ hỗ trợ được Công ty sử dụng như Hibob, Slack, Jira, Confluence, Bitbucket, …

2 Quan sát

Thời gian: 2 tuần

Nội dung: Quan sát và ghi chú

● Quan sát các thành viên trong team về cách làm việc, văn hóa và quy trình làm việc

● Tự tìm hiểu cũng như được hướng dẫn, đào tạo các kiến thức chuyên ngành

về lập trình ứng dụng di động bởi anh mentor và các anh chị trainer

Kết quả:

Trang 9

● Được trải nghiệm thực tế về mô hình Agile, hiểu hơn về các khái niệm Scum master, Sprint, Daily Meeting, Retrospective, …

● Hiểu hơn về vai trò và công việc cụ thể của các vị trí khác nhau trong team bao gồm: Front-end, Back-end, Quality Assurance, Business Analyst, Product Owner

● Hiểu hơn về các kiến thức chuyên ngành, bao gồm:

- Định nghĩa về Android:

Android là hệ điều hành có mã nguồn mở dựa trên nền tảng Linux do chính Google phát hành được thiết kế dành cho các nhà phát triển thiết bị, các nhà mạng, lập trình viên có thể tiếp cận nhanh chóng, điều chỉnh tự do trong mã nguồn mở đó

Hiện hệ điều hành Android tích hợp trên điện thoại di động, máy tính bảng, smart tivi, smartwatch, cùng nhiều thiết bị thông minh trong nhà khác

- Ngôn ngữ Kotlin:

Kotlin là một ngôn ngữ lập trình mới được tạo ra bởi JetBrains, chuyên dùng để phát triển ứng dụng đa nền tảng trong thời hiện đại và được xem như một phương pháp ứng dụng trong phát triển code Java Hiểu một cách đơn giản, Kotlin là một ngôn ngữ lập trình dạng tĩnh hoạt động trên JVM

Kotlin có khả năng tương thích 100% với Android và trong các trường hợp thông thường,

nó hoạt động liền mạch với Java để ‘lấp đầy’ những nhược điểm còn tồn tại của ngôn ngữ lập trình này Đặc biệt trong mảng thư viện

Những thế mạnh vượt trội của Kotlin so với những ngôn ngữ khác :

● Code ngắn gọn, cấu trúc đơn giản, trực quan, rất dễ tiếp cận cũng như học hỏi đối với những người mới Với Kotlin, lập trình viên có thể giảm bớt khá nhiều các đoạn code không cần thiết, giúp tiết kiệm nhiều thời gian

Ovechkin đã ước tính, Kotlin cho phép giảm thiểu 15 - 25% độ dài code

Trang 10

● Tương tác tốt: Kotlin có độ tương thích là 100%, đồng thời hỗ trợ sử dụng thư viện của JVM

● Công cụ làm việc khá thân thiện: Nhà phát triển có thể thoải mái lựa chọn làm việc với Java IDE hay command line tùy ý

- Kiến trúc ứng dụng Clean Architecture:

Clean Architecture là kiến trúc phần mềm thiết kế dựa trên Dependency Rule, được đề xuất vào năm 2012 bởi Robert C Martin

Clean architecture không bị giới hạn trong một ứng dụng mà nó còn có thể được

áp dụng cho cả một hệ thống (tập các ứng dụng) Đây cũng là một trong những điểm vượt trội so với MVC, MVP hay MVVM

- Dependency Injection:

Dependency injection (DI) là một kỹ thuật lập trình giúp tách một class độc lập với các biến phụ thuộc Với lập trình hướng đối tượng, chúng ta hầu như luôn phải làm việc với rất nhiều class trong một chương trình Các class được liên kết với nhau theo một mối quan hệ nào đó Dependency là một loại quan hệ giữa 2 class mà trong đó một class hoạt động độc lập và class còn lại phụ thuộc bởi class kia

- Kotlin Multiplatform Mobile (KMM):

Kotlin Multiplatform Mobile (KMM) là một SDK được thiết kế để làm đơn giản hoá việc tạo ứng dụng trên nhiều môi trường khác nhau Nó sử dụng các khả năng đa nền tảng của Kotlin, bao gồm các công cụ (tools) và tính năng (features) khác nhau được thiết

kế để cải thiện trải nghiệm xây dựng các mobile cross-platform applications

3 Luyện tập

Thời gian: 8 tuần

Nội dung: Luyện tập những kiến thức đã được học từ 4 tuần trước

● Đọc source code để biết và hiểu được về ứng dụng của Công ty cũng như cách áp dụng các công nghệ vào project hiện tại

● Áp dụng những kiến thức đã tìm hiểu, được training để hoàn thành những task được giao trong team trên project thật của Công ty

● Quan sát và suy nghĩ về một chủ đề để trình bày ở cuối khóa với mục tiêu cải thiện về way of working hoặc project của Công ty

Trang 11

Kết quả:

● Thay đổi mindset về ngành lập trình ứng dụng cũng như cách để trở nên thành công

● Phát triển được nhiều kỹ năng mềm khác nhau để hoàn thành task, ví dụ như giao tiếp với các đồng nghiệp ở các team khác nhau

● Hiểu rõ hơn về project của Công ty, về Android và cả về Mobile

● Hiểu rõ về Firebase Remote Config - ý tưởng trình bày cuối khóa (Sẽ trình bày kỹ ở phần sau)

4 Bùng nổ

Thời gian: 1 tuần

Nội dung: Chuẩn bị và trình bày cuối khóa về ý tưởng cải thiện Công ty

Kết quả: Trình bày trước toàn thể thành viên của Công ty về trải nghiệm trong

quá trình 3 tháng thực tập sinh tại Tyme cũng như ý tưởng xây dựng đóng góp cải thiện cho Công ty

5 Lịch làm việc

1 - Hoàn thành giấy tờ Onboarding

- Nhận thiết bị làm việc

- Tham gia training về tổ chức cơ cấu công ty, giá trị cốt lõi và văn hóa công ty

Chị Thủy, Chị Trang, Chị Duyên, Anh Duy, Anh Trí, Chị Quyên, Chị Tuyến

2 - Tham gia training về các kiến thức Anh Đạt, Anh Sơn,

Trang 12

được giao trong feature team

13 - Chuẩn bị và hoàn thành trình bày

về trải nghiệm trong thời gian thực tập và ý tưởng xây dựng đóng góp công ty

Anh Hiền, Anh Đạt, Anh Long, Anh Sơn

Chương 3: Chi tiết về ý tưởng trình bày cuối khóa

-Dynamic In App Text With Firebase Remote Config

1 Vấn đề đặt ra

Trong ứng dụng hiện tại của Công ty có quá nhiều các tên riêng hoặc các từ

hardcode được lặp đi lặp lại nhiều lần ở nhiều chỗ khác nhau

→ Dễ bị sai sót không đồng nhất ở các chỗ sử dụng khác nhau, vi phạm nguyên tắc Single Source of Truth

→ Do áp dụng mô hình Agile nên những câu từ này có thể bị thay đổi thường xuyên → tốn nhiều thời gian cũng như công sức khi phải thay đổi

→ Chỉ những người dùng cập nhật bản cập nhật mới mới có thể thấy được những câu từ đã được thay đổi Người dùng ở những version cũ sẽ không thấy được

→ Nếu có sự cố khi release app → dẫn đến chậm trễ ra bản build mới → người dùng sẽ bị bối rối khi những content mới không được cập nhật khi so sánh với những cập nhật mới của team business

2 Giới thiệu về Firebase Remote Config

Khái niệm: Firebase Remote Config là một dịch vụ đám mây cho phép nhà phát

triển thay đổi hành vi và giao diện của ứng dụng mà không yêu cầu người dùng tải xuống bản cập nhật ứng dụng Khi sử dụng Firebase Remote Config, nhà phát triển phải tạo các giá trị mặc định trong ứng dụng để kiểm soát hành vi và giao diện của ứng dụng Sau đó, sau này nhà phát triển có thể sử dụng bảng điều khiển Firebase hoặc API phụ trợ Firebase Remote Config để ghi đè các giá trị mặc định trong ứng dụng cho tất cả người dùng ứng dụng hoặc cho các phân khúc trong cơ sở người dùng của bạn Ứng dụng của bạn kiểm

Trang 13

soát thời điểm áp dụng các bản cập nhật và ứng dụng có thể thường xuyên kiểm tra các bản cập nhật cũng như áp dụng chúng với tác động không đáng kể đến hiệu suất

Công dụng chính:

- Nhanh chóng triển khai các thay đổi đối với người dùng ứng dụng của bạn

- Tùy chỉnh ứng dụng của bạn cho các phân khúc người dùng của bạn

- Sử dụng Firebase Remote Config để tự động cá nhân hóa và liên tục tùy chỉnh ứng dụng của bạn cho từng người dùng và tối ưu hóa cho các mục tiêu chiến lược

- Có thể áp dụng A/B test để cải thiện ứng dụng

3 Các bước thực hiện

- Đọc document và xây dựng project demo nhỏ để hiểu hơn về Firebase Remote Config

- Đọc source code để biết được những chỗ đang sử dụng tên riêng “Goal Save” trong ứng dụng

- Thêm DefaultKey và DefaultValue trong file DefaultValue trong ứng dụng

- Thay đổi tất cả những nơi đang hardcode tên riêng “Goal Save” trong ứng dụng thành lấy giá trị động từ Firebase Remote Config

- Viết unit-test cho hàm lấy giá trị động từ Firebase Remote Config

- Định nghĩa Key và Value cho tên riêng “Goal Save” trên Firebase project của Công ty

4 Kết quả

- Hoàn thành việc dynamic tên riêng bằng cách thay đổi giá trị từ project Firebase

Trang 14

TÀI LIỆU THAM KHẢO

[1] [Online]:https://vietnam.tyme.com/

[2] [Online]:https://firebase.google.com/docs/remote-config

[3] [Online]:https://www.atlassian.com/

[4] [Online]:

https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

Trang 15

TỔNG KẾT

Như vậy, sau khoảng thực tập 3 tháng ngắn ngủi, em đã kịp hoàn thành ý tưởng Dynamic In App Text With Firebase Remote Config bằng cách áp dụng những gì mình đã học được và trải nghiệm được khi thực tập tại Tyme Ý tưởng này hiện tại đã được Công

ty lắng nghe và áp dụng vào project hiện tại

Chân thành cảm ơn sự giúp đỡ của anh Hiền - mentor, các anh chị nhóm trainer và

sự hỗ trợ của team Wibu đã giúp em hoàn thiện ý tưởng Cảm ơn thầy cô đã giúp em hoàn thành bài báo cáo này

Ngày đăng: 01/02/2023, 21:19

🧩 Sản phẩm bạn có thể quan tâm

w