18
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
LẬP TRÌNH HỆ THỐNG WEB TRÊN NỀN TẢNG
NODEJS VÀ ONFLOW BLOCKCHAIN
Công ty thực tập
: TEGO GLOBAL
Người phụ trách
: Nguyễn Tấn Lực (Technical Leader)
Thực tập sinh
: Hồ Trung Nhân (Fresher Engineer)
TP. Hồ Chí Minh, tháng 6 năm 2022
Hồ Trung Nhân
2
Mục lục
Mục lục ......................................................................................................................2
Chương I: Giới thiệu công ty ..................................................................................4
1. Giới thiệu công ty Tego Global.................................................................................... 4
2. Lĩnh vực làm việc ......................................................................................................... 5
Chương II: Nội dung thực tập ................................................................................6
1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty ............................................... 6
2. Giới thiệu, làm quen với các thành viên trong nhóm dự án ......................................... 6
3. Kế hoạch thực tập ......................................................................................................... 7
4. Lịch thực tập và làm việc ............................................................................................. 8
Chương III: Những kiến thức được học trong quá trình thực tập .....................9
1. Kiến thức về Golang .................................................................................................... 9
2. Kiến thức về Microservices ....................................................................................... 10
3. Kiến thức về Git Technology ..................................................................................... 11
4. Kiến thức về ngôn ngữ Cadence – Onflow Blockchain ............................................. 12
Chương IV: Chi tiết về project .............................................................................14
1. Dự án Coderhub : ....................................................................................................... 14
2. Dự án Sport Moment:................................................................................................. 15
Chương V: Đánh giá và nhận xét .........................................................................17
1. Kết quả đạt được: ....................................................................................................... 17
2. Những hạn chế : ......................................................................................................... 17
3. Định hướng tương lai: ................................................................................................ 17
Chương VI: Tổng kết .............................................................................................18
Hồ Trung Nhân
3
LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại trường Đại học công nghệ thông tin để
trau dồi kiến thức và kỹ năng, em đã nhận được rất nhiều sự quan tâm và giúp đỡ
của quý thầy cô, gia đình và bạn bè. Với lịng biết ơn sâu sắc nhất, em xin gửi lời
cảm ơn đến trường và quý thầy cô khoa Hệ thống thông tin đã truyền đạt vốn kiến
thức làm nền tảng cho em trong quá trình thực tập.
Em xin cảm ơn các thầy cơ và Công ty cổ phần giải pháp công nghệ Tego
Global đã tạo điều kiện cho em có cơ hội tham gia thực tập tại cơng ty.
Trong q trình thực tập tại Công ty Tego Global, em đã trang bị được
những kiến thức và kinh nghiệm về việc làm việc làm việc nhóm, làm việc với
người nước ngồi, hiểu về cách vận hành và phát triển ứng dụng trên thiết bị di
động và các nghiệp vụ khác trong công ty, giúp em mở mang khai sáng các kiến
thức mới và có nhiều kinh nghiệm mà em chưa bao giờ biết tới.
Em xin cảm ơn các anh Nguyễn Tấn Lực, anh Nguyễn Duy Tuấn Quang và
các anh chị trong cùng dự án trong công ty đã đặc biệt giúp đỡ em, chỉ bảo em tận
tình qua từng dự án khác nhau trong quá trình thực tập. Những kiến thức và kinh
nghiệm đó giúp em có thể hồn thiện mình và có thêm kinh nghiệm trong quy trình
phát triển phần mềm. Tuy nhiên, do kinh nghiệm thực tiễn cịn hạn chế, bài báo
cáo khơng thể tránh những sai sót. Chính vì vậy, em rất mong nhận được những ý
kiến đóng góp của Thầy, Cơ để em hoàn thiện bản thân tốt hơn.
Xin chân thành cảm ơn thầy và các anh chị trong công ty
Hồ Trung Nhân
Hồ Trung Nhân
4
Chương I: Giới thiệu công ty
1. Giới thiệu công ty Tego Global
• Tên cơng ty : Cơng ty cổ phần giải pháp cơng nghệ Tego Global
• Website cơng ty : bal
• Địa chỉ cơng ty : 28 Nguyễn Q Đức, Phường An Phú, thành phố Thủ Đức,
Hồ Chí Minh.
• Văn Phòng: TM1.15, đường D1 tòa nhà Linh Tây, phường Linh Tây, thành
phố Thủ Đức, Hồ Chí Minh.
• Điện Thoại : (+84) 38 730 6060
• Năm thành lập : 2015
• Mục tiêu và sứ mệnh của công ty :
Tego Global là cơng ty outsource có trụ sở chính ở thành phố Hồ Chí Minh. Kể
từ năm 2015 , Tego đã giúp các cơng ty tồn cầu và các thương hiệu lâu đời hình
dung lại hoạt động kinh doanh của họ bằng cách xây dựng các giải pháp hiệu quả
được hỗ trợ bởi các công nghệ mới nhất.
Hồ Trung Nhân
5
Sứ mệnh của Tego là chuyển đổi công nghệ kĩ thuật số cho khách hàng của
mình bằng cách tập hợp các tài năng hàng đầu, chuyên môn sâu trong ngành và sự
cống hiến cá nhân để đáp ứng như cầu kinh doanh riêng của từng khách hàng.
2. Lĩnh vực làm việc
Vì là cơng ty outsource nên lĩnh vực làm việc của tego global rất da dạng
Bảo trì và phát triển các hệ thống : Java , C# , Nodejs , Angular , Python ,
Ruby on Rails, Golang, PHP…, các hệ thống blockchain như cardion , etherium,
solana, onflow,…
Tương tác với bao gồm các hệ thống Mobile, Web, Game,…các dịch vụ bên
thứ 3 như : Google cloud , AWS, Azure ,…
Một số sản phẩm nổi bật như :
Ngồi ra cơng ty cịn làm nhiều dự án product của chính cơng ty như :
Coderhub, …
Hồ Trung Nhân
6
Chương II: Nội dung thực tậ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, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và phát
triên (như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ
chức của công ty .
Ngồi ra, thực tập sinh cịn được giới thiệu về cách thức làm việc trong công ty
như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong
công việc...
Kết quả : Hiểu thêm về cơng ty Tego và một số dự án, q trình thành lập và
phát triển. Có thêm các kỹ năng về việc sử dụng email trong cơng việc, làm việc có
kế hoạch, có kỷ luật, có trách nhiệm hơn.
2. Giới thiệu, làm quen với các thành viên trong nhóm dự án
Thời gian : 1 ngày
Nội dung : Giới thiệu về Cell Team MAC, do anh Nguyễn Tấn Lực làm leader.
Giới thiệu về các thành viên trong team, các sản phẩm và dự án team đang triển
khai.
Kết quả : Làm quen được các thành viên trong team và hiểu được về các sản
phẩm, dự án
team đang làm.
Hồ Trung Nhân
7
3. Kế hoạch thực tập
Tuần
1-2
Kế hoạch thực tập từng tuần
• Training Golang, Setup dự án
Người Hướng Dẩn
Nguyễn Tấn Lực
Coderhub
3
• Đọc thêm về án, học thêm về
Nguyễn Tấn Lực
Microservices
• Nhận task, và đọc source dự án
4
• Tương tác với github, gitlab API để
Nguyễn Tấn Lực
lấy thơng tin về repository của user.
5
6-7
• Bàn giao hồn thành task cho project.
Nguyễn Tấn Lực
• Tham gia dự án mới Sport Moment
Nguyễn Duy Tuấn
• Thảo luận và được cung cấp thơng
Quang
tin về dự án.
• Làm quen với ngơn ngữ cadence,
học thêm về blockchain
8
• Tham gia sửa lỗi nhỏ trong Smart
Contract.
Nguyễn Duy Tuấn
Quang
Hồ Trung Nhân
8
Từ tuần 8
• Thực hiện các task theo sprint của
team
Nguyễn Tấn Lực ,
Nguyễn Duy Tuấn
Quang
4. Lịch thực tập và làm việc
Thời gian thực tập :
• Ngày bắt đầu : 31/12/2021
• Ngày kết thúc : 31/3/2022
Thời gian làm việc :
• Ca sáng : 9h -> 12h
• Ca chiều 13h30 -> 18h
• Số ca thực tập trong tuần : từ thứ 2 -> thứ 6
Hồ Trung Nhân
9
Chương III: Những kiến thức được học trong quá trình thực tập
1. Kiến thức về Golang
Go
là một ngôn ngữ lập trình mới do Google thiết kế và phát triển. Nó được kỳ
vọng sẽ giúp ngành công nghiệp phần mềm khai thác nền tảng đa lõi của bộ vi xử
lý và hoạt động đa nhiệm tốt hơn.
Ưu điểm
• Hỗ trợ khai báo kiểu dữ liệu động
• Tốc độ biên dịch nhanh
• Hỗ trợ các tác vụ đồng thời
Hồ Trung Nhân
10
• Ngơn ngữ đơn giản, ngắn gọn , dễ học, có thể nắm bắt trong vịng vài tuần.
Tuy nhiên chính vì muốn ngơn ngữ này trở nên cực kỳ đơn giản mà các nhà
phát triển đã loại bỏ một số tính năng (mà mình cho là hữu ích) có trong các ngơn
ngữ khác như:
Nhược điểm
• Khơng hỗ trợ thừa kế
• Khơng hỗ trợ q tải tốn tử hoặc ghi đè phương thức
2. Kiến thức về Microservices
Trong tiếng anh, micro có nghĩa là nhỏ, vi mơ. Vậy Microservice, như tên
của nó, đó chính là chia một khối phần mềm thành các service nhỏ hơn, có thể
triển khai trên các server khác nhau. Mỗi service sẽ xử lý từng phần công việc và
Hồ Trung Nhân
11
được kết nối với nhau thông qua các các giao thức khác nhau, như http, SOA,
socket, Message queue (Active MQ, Kafka)... để truyền tải dữ liệu.
Trước khi Microservices xuất hiện, các ứng dụng thường phát triển theo mơ
hình Monolithic architecture (Kiến trúc một khối). Có nghĩa là tất cả các module
(view, business, database) đều được gộp trong một project, một ứng dụng được
phát triển theo mơ hình kiến trúc một khối thường được phân chia làm nhiều
module. Nhưng khi được đóng gói và cài đặt sẽ thành một khối (monolithic). Lợi
ích của mơ hình kiến trúc một khối đó là dễ dàng phát triển và triển khai. Nhưng
bên cạnh đó nó cũng có nhiều hạn chế ví dụ như khó khăn trong việc bảo trì, tính
linh hoạt và khả năng mở rộng kém, đặc biệt với những ứng dụng doanh nghiệp có
quy mơ lớn. Đó chính là lí do ra đời của kiến trúc Microservices.
3. Kiến thức về Git Technology
Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control
System – DVCS), nó là một trong những hệ thống quản lý phiên bản phân tán phổ
biến nhất hiện nay. Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository)
riêng chứa toàn bộ lịch sử thay đổi.
Command quen thuộc :
• Git add
• Git push
Hồ Trung Nhân
12
• Git commit
…
4. Kiến thức về ngơn ngữ Cadence – Onflow Blockchain
Cadence là một ngơn ngữ lập trình định hướng tài ngun giới thiệu các tính
năng mới cho lập trình hợp đồng thông minh giúp các nhà phát triển đảm bảo rằng
mã code của họ an toàn, bảo mật, rõ ràng và dễ tiếp cận.
Cadence lấy cảm hứng từ Move, ngơn ngữ lập trình đang được phát triển bởi
nhóm Libra. Các đặc điểm cụ thể của ngôn ngữ này như sau:
Hoạt động an tồn và có một hệ thớng ổn định khoẻ mạnh
• Hoạt động an tồn và có một hệ thống ổn định khoẻ mạnh
• Ngơn ngữ lập trình hướng tài nguyên, hoạt động theo cơ chế tương thích với
mơ hình và tài ngun đảm bảo rằng tài ngun (và các tài sản liên quan của
Hồ Trung Nhân
13
chúng) chỉ có thể tồn tại ở một vị trí tại một thời điểm, khơng thể sao chép
hoặc bị xóa
• Tích hợp các điều kiện trước và sau với các chức năng và giao dịch
• Tính bảo mật cao bởi hệ thống kiểm soát truy cập nghiêm ngặt
Hồ Trung Nhân
14
Chương IV: Chi tiết về project
1. Dự án Coderhub :
Giới thiệu : Coderhub là một dự án về NFT thế giới mở, mới mục tiêu là
giúp người dùng có tìm kiếm dự án freelance để làm trong lúc nhàn rỗi . Hiện tại
ở những version đầu , coderhub hổ trợ chủ yếu cho các developer.
Những version đầu của coderhub(Do bảo mật thơng tin nên em khơng thể
đưa ra các hình ảnh minh hoạ mới hơn)
Coderhub bao gồm nhiều phần nhỏ bao gồm :
• Thế giới 3D để tất cả người dung có thể tương tác với như một game RPG
mang thiên hướng chi bi trực quan sinh động hơn
• Hệ thống website tạo, nhận bounty cho phép người dùng có thể kiếm tiền, bỏ
tiền ra thuê freelancer làm việc.
• Hệ thống avatar được tạo nên bởi công nghệ AI tự động nhận diện khuôn mặt
thành nhân vật trong 3D world.
Hồ Trung Nhân
15
• Hệ thống NFT, Crypto currency được xây trên nền tảng Ethereum để cho việc
mua giao nhận bounty được minh bạch hơn. Và tiền này có thể sử dụng để mua
những vật phẩm ảo trong game, và sẽ chuyển thành sản phẩm ngồi đời thật.
• Hệ thống Internal Git, giúp lưu trử source code của người người dụng tạo
bounty, và xử lý các commit của developer.
• Hệ thống backend được viết bằng cơng nghệ microservices tương tác chính dự
trên cơng nghệ gRPC và Rabbit MQ trên nền tảng golang, cho phép tất cả các
thành phần khác tương tác với nhau một cách nhanh chóng , hổ trợ nhiều
concurrency user nhất có thể.
2. Dự án Sport Moment:
Giới thiệu : Sport Moment là một dự án NFT để lưu trữ những khoảnh khắc
đẹp(Moment) của các cầu thủ bóng rổ AFL. Người dùng có thể mua bán
những Moment này hoặc sưu tầm để tạo thành các bộ sưu tập mang lại giá
trị về mặt tinh thần lớn hơn cho các tin đồ của bóng rổ.
Dự án có liên kết với nhiều CLB/liên đồn bóng rổ như : NBL ,AFL,
Melbourne Victory,…
Hồ Trung Nhân
16
SportMoment được viết dựa trên framework nestjs, nextjs,strapi cms và
onflow blockchain.
Hồ Trung Nhân
17
Chương V: Đánh giá và nhận xét
1. Kết quả đạt được:
• Có thêm nhiều kinh nghiệm về chun mơn : Golang, Cadence, gRPC.
• Kỹ năng làm việc nhóm, phân chia cơng việc, thời gian
• Kỹ năng sử dụng và review code của các member trong team,
• Cơ bản được quá trình hoạt động của project trong thực tế,
• Nhìn nhận được vấn đề và đưa ra giải pháp cho dự án
• Biết được cơ bản về cách xây dựng Server quản lý source bằng git
technology.
2. Những hạn chế :
• Vì kĩ thuật cịn yếu nên một số task chưa hồn thành đúng deadline.
• Chưa được làm onsite nhiều vì thời điểm dịch bệnh
3. Định hướng tương lai:
• Cảm thấy thích thú và phát triển tiếp với công việc về mảng SmartContract
cụ thể là Onflow
• Học thêm nhiều kinh nghiệm xử lí vấn đề nhanh chóng
• Học thêm ngơn ngữ moblie mới Cadence(Ngơn ngữ lập trình smart contract
của onflow), Golang
• Cải thiện kĩ năng về ngoại ngữ để giao tiếp với khách hàng nước ngoài
Hồ Trung Nhân
18
Chương VI: Tổng kết
Như vậy, chỉ trong vòng vài tháng ngắn ngủi, em đã được tham gia vào nhiều
project khác nhau của Tego Global dưới các vai trò khác nhau. Hoàn thành các
task và yêu cầu do cấp trên đề ra.
Hoàn thành 3 tháng thử việc và trở thành nhân viên chính thức của Tego
Global.
Chân thành cảm ơn các anh, chị trong cơng ty đã hỗ trợ em hồn thành kỳ
thực tập, cũng như giúp đỡ em rất nhiều trong đời sống.
Hồ Trung Nhân