Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Báo cáo thực tập lập trình hệ thống web trên nền tảng golang và onflow blockchai...

Tài liệu Báo cáo thực tập lập trình hệ thống web trên nền tảng golang và onflow blockchain

.PDF
18
1
117

Mô tả:

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 GOLANG 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 quá 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 ngoà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ể hoà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 : https://tego.global • Địa chỉ công ty : 28 Nguyễn Quý Đứ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 toà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ư : Ngoà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, quá 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 . Ngoà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, quá 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 hoà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ợ quá tải toá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 nguyên 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 toàn và có một hệ thống ổn định khoẻ mạnh • Hoạt động an toà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 nguyên đảm bảo rằng tài nguyên (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 ngoà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 đoà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ề chuyên 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 hoà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 hoà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
- Xem thêm -

Tài liệu liên quan