1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Backend Engineer Báo Cáo Thực Tập.docx

21 0 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 đề Báo Cáo Thực Tập Backend Engineer
Tác giả Nguyễn Khánh
Người hướng dẫn Mr. Robert
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại báo cáo
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 1,15 MB

Nội dung

Tìm hiểu công ty và các kỹ năng cơ bản trong công tyThờ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

Trang 1

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

BACKEND ENGINEER

Công ty thực tập: Elefos Người phụ trách: Mr Robert Thực tập sinh: Nguyễn Khánh

TP Hồ Chí Minh, tháng 1 năm 2024

Trang 2

LỜI MỞ ĐẦU

Trong cuộc cách mạng công nghiệp 4.0, lĩnh vực thiết kế và xây dựng phầnmềm trở thành một phần quan trọng trong sự phát triển của xã hội, đặc biệt làtrong bối cảnh công nghệ thông tin ngày càng chiếm ưu thế Với hàng tỷ cáctrang web cũng như ứng dụng trên các thiết bị điện tử, nhu cầu xây dựngbackend để thực thi các chu trình trên ứng dụng là không thể phủ nhận

Chính vì vậy, quyết định trở thành một Backend Engineer là sự lựa chọn hợp lýcủa em để đối mặt với thách thức không ngừng của ngành công nghiệp phầnmềm Thông qua hành trình học tập tại đại học, em đã tích lũy được các kiếnthức về quy trình thiết kế hệ thống, xây dựng các service và tối ưu khả năng xử

lý của ứng dụng

Để chứng minh khả năng của mình trong môi trường thực tế, em quyết địnhtham gia vào Elefos – một nơi mang đến không chỉ sự chuyên nghiệp mà còn cơhội thực tập và áp dụng kiến thức vào các dự án thực tế Em tự hào trở thànhmột phần của đội ngũ phát triển phần mềm, hướng tới mục tiêu xây dựng những

hệ thống có chất lượng cao và được nhiều người sử dụng

2

Trang 3

Em cũng chân thành cảm ơn sự hỗ trợ và sự chia sẻ của toàn bộ đội ngũ nhânviên tại Elefos Mỗi người trong em đều cảm thấy hạnh phúc và tự hào vì đượclàm việc trong một môi trường chuyên nghiệp, nơi mà sự sáng tạo và cam kếtđược đánh giá cao.

Cuối cùng, em không quên bày tỏ lòng biết ơn đến gia đình, bạn bè và nhữngngười thân yêu đã luôn ủng hộ và khuyến khích em trong suốt thời gian thựctập

Em tin rằng những kinh nghiệm và học thức từ thực tập này sẽ là nền tảng vữngchắc cho sự phát triển tương lai của em Một lần nữa, em xin chân thành cảm ơnsâu sắc

TP HCM, ngày 02 tháng 01 năm 2024

Khánh Nguyễn Khánh

Trang 4

NHẬN XÉT CỦA KHOA

4

Trang 5

MỤC LỤC CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 7

1.1 Giới thiệu công ty Elefos 7

1.2 Sản phẩm công ty 7

1.3 Lịch làm việc khi thực tập tại công ty 8

CHƯƠNG 2: NỘI DUNG THỰC TẬP 10

2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 10

2.2 Nghiên cứu kỹ thuật 10

2.2.1 Tuần 1 10

2.2.2 Tuần 2 11

2.2.3 Tuần 3 11

2.2.4 Tuần 4 11

2.2.5 Tuần 5 12

2.2.6 Tuần 6 12

2.2.7 Tuần 7 13

2.2.8 Tuần 8 13

2.2.9 Tuần 9 13

2.3 Tham gia dự án thực tế: Thiết kế cấu trúc client-server của Ghostr 14

2.3.1 Kỹ thuật áp dụng 14

2.3.2 Mô tả dự án 14

2.3.3 Quá trình thực hiện 17

2.3.4 Kết quả 18

2.3.5 Thuận lợi 18

2.3.6 Khó khăn 18

CHƯƠNG 3: TỔNG KẾT 20

3.1 Điểm mạnh 20

3.2 Điểm yếu 20

3.3 Chuẩn đạt được 20

Trang 7

MỤC LỤC HÌNH ẢNH

Hình 1.1 Ví điện tử ChainVerse 8

Hình 1.2 Mạng lưới Screehavin 8

Hình 2.1 Một vài trang giao diện của ứng dụng Ghostr 15

Hình 2.2 Bảng tìm hiểu thông số các message broker 15

Hình 2.3 Diagram tổng quan của cấu trúc client-server 16

Hình 2.4 Diagram chi tiết của cấu trúc client-server 16

Hình 2.5 Một đoạn code để lấy Public Key và Instance ID từ certificate 16

Hình 2.5 Kết quả test hiệu năng của RabbitMQ 17

Trang 8

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1.1 Giới thiệu công ty Elefos

Elefos được thành lập vào năm 2019, là một công ty thiết kế & xây dựng các hệthống cloud computing ứng dụng blockchain và peer-to-peer network

Elefos là một đơn vị độc đáo trong lĩnh vực công nghiệp, chuyên tâm và chuyênnghiệp về thiết kế và xây dựng hệ thống cloud computing tiên tiến Với sứ mệnhđịnh hình tương lai của công nghệ thông tin, công ty đã bắt đầu hành trình củamình vào năm 2019 và từ đó, Elefos đã không ngừng phát triển, tạo ra nhữnggiải pháp đột phá ứng dụng blockchain và mạng lưới peer-to-peer

Công ty tự hào với đội ngũ chuyên gia tài năng, giàu kinh nghiệm và đam mê,

đã và đang đưa ra những ý tưởng sáng tạo và đổi mới Elefos không chỉ tậptrung vào việc cung cấp giải pháp kỹ thuật tiên tiến mà còn chú trọng đến việcđáp ứng những thách thức và cơ hội kinh doanh cụ thể của môi trường Web 4.0hiện nay

● Địa chỉ công ty: Tầng 2, SOHUDE Tower, 331 đường Nguyễn TrọngTuyển, Quận Phú Nhuận, Thành phố Hồ Chí Minh, Việt Nam

● Quy mô công ty: 0-50 nhân viên

1.2 Sản phẩm công ty

Công ty có nhiều sản phẩm liên quan đến việc phát triển các hệ thống ngườidùng trong môi trường blockchain Một vài ứng dụng tiêu biểu của công tygồm:

● ChainVerse: ChainVerse là hệ thống ví điện tử cho ứng dụng di động

(Android & iOS) và web platform ChainVerse cung cấp một nền tảng tậptrung cho tất cả các tài khoản DeFi của bạn, cùng với các tính năng mua,

8

Trang 9

bán và lưu trữ đa dạng các loại tiền điện tử như Bitcoin, Ethereum,LiteCoin một cách an toàn và tin cậy

Hình 1.1 Ví điện tử ChainVerse

● Screehavin: Screehavin là một mạng lưới giao dịch thiết kế theo hướng

staking-reward bao gồm các Collectible NFT và các token tiền tệ tên làSCREE Screehavin cung cấp một nền tảng cho phép định giá, giao dịchcũng như cung cấp các phúc lợi cho người dùng đóng góp vào hệ thống.Các token tiền tệ cũng như Collectible NFT của hệ thống cũng được tíchhợp vào ChainVerse nhằm đơn giản hoá quá trình giao dịch

việc trong ngày

Công việc hằng ngày bắt đầu từ lúc 9h đến 18h

Thời gian nghỉ

trưa

Thời gian nghỉ trưa 1 tiếng từ 11h30 tới 12h30

Thời gian báo

cáo

Sau mỗi ngày làm việc sẽ tổng hợp tiến độ làm việc kèm vớicác vấn đề mắc phải và báo cáo với người phụ trách

Trang 10

Daily meeting Vào sáng hàng ngày sẽ họp 15 phút để báo cáo tiến độ công

việc ngày trước và lên kế hoạch cho ngày hôm đó

Sprint planning Bắt đầu vào mỗi chiều thứ 2 hàng tuần, team sẽ có 1 buổi

họp cùng nhau để phổ biến công việc sẽ cần làm

Weekly review Vào buổi sáng thứ 6 hàng tuần sẽ có buổi seminar về topic

đã được giao để tổng kết trao đổi những vấn đề gặp phải và xem lại những nhiệm vụ trong tuần

10

Trang 11

CHƯƠNG 2: NỘI DUNG THỰC TẬP2.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, quy trình làm việc

và cấu trúc công ty Ngoài ra, thực tập sinh còn được giới thiệu về văn hóa làmviệc trong công ty như thời gian đi làm, các quy định, cách sử dụng email trongcông việc Làm quen với các đồng nghiệp và tham gia tiệc chào mừng của côngty

Kết quả: Hiểu thêm về công ty Elefos, quá trình thành lập và phát triển Cóthêm các kỹ năng về việc lập kế hoạch, có kỷ luật, có trách nhiệm

2.2 Nghiên cứu kỹ thuật

2.2.1 Tuần 1

Nội dung:

1 Giới thiệu về công ty, môi trường làm việc và chương trình internshiptraining

2 Thiết lập cài đặt máy tính, phần mềm cần thiết cho công việc

3 Sơ lược về sản phẩm Ghostr đang được phát triển của công ty và giaonhiệm vụ tìm hiểu sâu hơn về chức năng cho các thực tập sinh

4 Các thành viên tìm hiểu và trình bày theo về sản phẩm Ghostr theo phần

mà mình đã được giao

5 Họp báo cáo tuần

Kết quả: Hiểu về sản phẩm Ghostr, cách làm việc nhóm, hiểu được địnhhướng cho bản thân trong việc phát triển hệ thống

Trang 12

2.2.2 Tuần 2

Nội dung:

● Giới thiệu về quy trình phát triển của công ty & các quy trình làm việc

● Tổng quan về các thành phần của Ghostr

● Tìm hiểu về cấu trúc của Nostr relay

● Seminar về Golang và framework Gin / Echo

● Họp báo cáo tuần

Kết quả: Hiểu được tổng quan về phương pháp làm việc của công ty, cáccấu trúc chi tiết của Ghostr và nắm được kiến thức cơ bản về làm việc vớiGolang

2.2.3 Tuần 3

Nội dung:

● Tìm hiểu về cấu trúc của các Nostr server viết bằng Golang

● Vận hành thử một vài Nostr server đã tìm hiểu trên cloud

● Họp báo cáo tuần

Kết quả: Hiểu được cấu trúc của một Nostr server, cấu trúc của dữ liệugiao tiếp, cũng như phương thức vận hành của chúng

Trang 13

● Họp báo cáo tuần

Kết quả: Xem xét được các ý tưởng về việc tối ưu giao tiếp client-servercủa Ghostr

2.2.5 Tuần 5

Nội dung:

● Thực hiện các bài benchmark để kiểm tra hiệu năng RabbitMQ dưới tảitrọng đề ra

● Thiết kế & chỉnh sửa diagram cấu trúc để áp dụng RabbitMQ vào Ghostr

● Lên ý tưởng về tích hợp Public Key và Address trong SSL certificate củakết nối

● Họp báo cáo tuần

Kết quả: Thiết kế được cấu trúc giao thức client-server mới của Ghostr,lên các ý tưởng tiếp theo để bảo mật cấu trúc

2.2.6 Tuần 6

Nội dung:

● Xác định các thuộc tính mới của SSL certificate trong hệ thống

● Cập nhật diagram cấu trúc RabbitMQ trong Ghostr để phù hợp vớicertificate mới

● Thử nghiệm RabbitMQ consumer và producer với cấu trúc đã thiết kế

● Họp báo cáo tuần

Kết quả: Thiết kế được phương thức xác thực người dùng bằng SSLcertificate, thử nghiệm cấu trúc mới

Trang 14

2.2.7 Tuần 7

Nội dung:

● Tìm hiểu sơ bộ về ngôn ngữ Erlang

● Tham khảo source code RabbitMQ phần trích xuất các dữ liệu từ SSLcertificate, cũng như cách build và chạy RabbitMQ từ source code

● Tìm cách trích xuất Public Key và Address ID từ custom SSL certificate

● Họp báo cáo tuần

Kết quả: Tìm được cách trích xuất dữ liệu trong RabbitMQ từ SSLcertificate mới

● Họp báo cáo tuần

Kết quả: Tích hợp thành công RabbitMQ với custom SSL certificate củaGhostr để sử dụng cho các tính năng của hệ thống

Trang 15

Kết quả: Tổng kết quá trình thực tập và phân tích các công việc đã thựchiện

2.3 Tham gia dự án thực tế: Thiết kế cấu trúc client-server của Ghostr

2.3.1 Kỹ thuật áp dụng

● Thiết kế UML diagram: hỗ trợ việc thiết kế các Architecture Diagram

cho cấu trúc của RabbitMQ

● Lập trình với Golang và Erlang: sử dụng cho việc thiết kế backend

service, công cụ khởi tạo custom SSL certificate và chỉnh sửa source codecủa RabbitMQ

Thiết kế SSL certificate với OpenSSL: dùng cho việc thêm các thuộc

tính đặc biệt vào SSL certificate

2.3.2 Mô tả dự án

Ghostr là một ứng dụng nhắn tin peer-to-peer tích hợp với các yếu tố blockchainnhư khả năng thực hiện giao dịch token ngay trong khung chat, khả năng tự vậnhành và thiết lập server tại máy chủ cá nhân

Dự án tập trung vào việc thiết kế giao thức client-server với yêu cầu gọn nhẹ và

người tham gia

án:

Trang 16

Hình 2.1 Một vài trang giao diện của ứng dụng Ghostr

Hình 2.2 Bảng tìm hiểu thông số các message broker

Hình 2.3 Diagram tổng quan của cấu trúc client-server

16

Trang 17

Hình 2.4 Diagram chi tiết của cấu trúc client-server

Hình 2.5 Một đoạn code để lấy Public Key và Instance ID từ certificate

2.3.3 Quá trình thực hiện

● Nắm rõ yêu cầu: Trước khi bắt đầu tìm hiểu và thực hiện các thay đổi

trên hệ thống, ta cần phải nắm rõ các nhu cầu của hệ thống cũng như cácyêu cầu được đặt ra, từ đó xác định được các thông số phù hợp

Đối với dự án, ta cần nắm được phương thức giao tiếp ban đầu củaGhostr qua HTTP polling, các message type có sẵn, cũng như yêu cầuhiệu năng của giao thức mới

Trang 18

● Xác định các công việc phù hợp: Dựa trên yêu cầu, ta cần xác định các

công việc cần được thực hiện Mỗi công việc sẽ cần được xem xét trêncác khía cạnh chức năng và phi chức năng theo yêu cầu bên trên

Đối với dự án, em có ba yêu cầu chính cần xem xét:

- Nghiên cứu & tham khảo các giao thức protocol phù hợp để đảm

bảo truyền tải client-server cũng như cấu trúc xác thực qua PublicKey của người dùng (WebSocket, Nostr, AMQP, …) Dự án chọnRabbitMQ cùng thiết kế message type mới làm giao thức chính

- Thiết kế architecture diagram, data flow diagram khi áp dụng các

protocol vào hệ thống

- Thực hiện các bài test hiệu năng và demo chức năng cho các

protocol

Hình 2.5 Kết quả test hiệu năng của RabbitMQ

● Thiết kế các endpoint: Đảm bảo tối ưu đường truyền giữa các service, ở

đây cụ thể là giữa RabbitMQ và backend server đằng sau, cũng như đảmbảo SSL certificate hoạt động bình thường bên phía client

● Đánh giá và điều chỉnh: Hệ thống cần được đánh giá chức năng và hiệu

năng, cộng với điều chỉnh để đảm bảo tính hiệu quả và tính đầy đủ củatừng chức năng Điều này bao gồm việc cập nhật cấu trúc hoặc cập nhậtsource code khi có yêu cầu

18

Trang 19

2.3.4 Kết quả

Đảm bảo tính chính xác và đầy đủ của yêu cầu hệ thống, bao gồm kết nối gọnnhẹ hiệu năng cao, xác thực người dùng từ SSL certificate, đảm bảo chức năngngười dùng

2.3.5 Thuận lợi

● Đã có kinh nghiệm phát triển nhiều hình thức backend, làm việc vớiLinux server và SSL certificate

● Kỹ năng trình bày tốt, dễ hiểu ở các buổi họp

● Khả năng tìm hiểu kiến trúc mới nhanh và hiệu quả

2.3.6 Khó khăn

● Do lần đầu tiên tiếp xúc với Erlang và RabbitMQ nên vẫn còn nhiều thiếusót trong việc chỉnh sửa source code cũng như nắm vững cấu trúcmessage queue

● Chưa quen với template của công ty nên còn khó khăn trong việc trìnhbày document

● Còn một vài chỗ vẫn cần cải thiện như khả năng đọc tài liệu tiếng anhliên quan đến các khái niệm blockchain

Trang 20

CHƯƠNG 3: TỔNG KẾT

Quãng thời gian thực tập tại Elefos đã giúp em cải thiện bản thân rất nhiều trongquy trình làm việc thực tế, tác phong của người kỹ sư phần mềm Được làm việctại đây, em đã học thêm được kỹ năng mềm sử dụng mail, quản lý ticket Trello,làm việc nhóm, giao tiếp với cấp trên, …

Chỉ trong thời gian hạn chế, em đã hoàn thành dự án cá nhân trong quá trìnhtraining với các tính năng, yêu cầu đặt ra ban đầu

Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng hạn vàđạt chất lượng tốt

3.1 Điểm mạnh

● Giao tiếp tốt với nhóm

● Hoàn thành tốt nhiệm vụ dưới tư cách 1 thành viên nhóm

● Tìm hiểu nhanh các đề tài khó mà mentor đề xuất

● Chủ động đưa ra các ý tưởng nhằm tối ưu hệ thống để đạt được nhữngđiểm cộng trong quá trình thực tập

Trang 21

Goal Mục tiêu môn học

G1 Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh

nghiệp

G2 Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ

thống trong dự án

G3 Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm

phần mềm tại doanh nghiệp

G4 Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải

Ngày đăng: 15/05/2024, 09:22

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w