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

báo cáo thực tập backend engineer

26 2 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ả Hoàng Đình Anh Tuấn
Người hướng dẫn Cô Trần Thị Hồng Yến
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 thực tập
Năm xuất bản 2023
Thành phố TP HCM
Định dạng
Số trang 26
Dung lượng 2,18 MB

Nội dung

Sựquan tâm và hỗ trợ từ anh Lương Nguyễn Nhân, người đã không ngần ngại chia sẻ kinhnghiệm và kiến thức thực tiễn, đã giúp em nhanh chóng hòa nhập và phát triển tại môitrường làm việc ch

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: Bosch Global Software Technologies

Người phụ trách: Lương Nguyễn Nhân

Trang 2

LỜI MỞ ĐẦU

Chúng ta đang sống trong thời đại mà công nghệ thông tin không chỉ là công cụ mà đã trởthành ngôn ngữ toàn cầu, nền tảng cho sự tiến hóa của xã hội Trong không gian ảo vô tậncủa thế giới số, lĩnh vực Công nghệ phần mềm đang chứng kiến sự phát triển vượt bậc, nơi

mà mỗi dòng mã, mỗi giải pháp kỹ thuật không chỉ đơn thuần là lập trình mà còn là nghệthuật tạo dựng thực tại số

Em chọn thách thức bản thân với hướng đi Backend Engineer, nhằm vươn tới sự hoàn thiện

về kỹ thuật và cũng như khám phá cách thức tạo ra những trải nghiệm sống động và ý nghĩacho người dùng qua từng sản phẩm web cho dù là gián tiếp hay trực tiếp Mục tiêu của emkhông chỉ là học hỏi kỹ thuật mà còn là tìm hiểu cách thức tạo nên những sản phẩm có giátrị thực sự

Với mong muốn áp dụng những kiến thức đã học vào thực tế, em đã quyết định tham giavào Bosch Global Software Technologies – một môi trường chuyên nghiệp, nơi khuyến khích

sự sáng tạo và đổi mới Qua quá trình thực tập này, em hy vọng không chỉ cải thiện kỹ năngchuyên môn mà còn phát triển khả năng làm việc nhóm, giải quyết vấn đề sáng tạo và xâydựng những sản phẩm web có chất lượng và ý nghĩa, góp phần vào sự phát triển của ngànhcông nghiệp phần mềm

Trang 3

LỜI CẢM ƠN

Sau thời gian học tập chăm chỉ và đầy nỗ lực tại trường Đại học Công nghệ thông tin, em đã

có dịp tiếp thu nhiều kiến thức bổ ích và phát triển kỹ năng chuyên môn Em xin bày tỏ lòngbiết ơn chân thành đến các thầy cô, đặc biệt là cô Trần Thị Hồng Yến ở bộ môn Công nghệphần mềm, người đã tận tình hướng dẫn và truyền đạt những bài học quý giá, đặt nền móngvững chắc cho em trong suốt quá trình học tập và thực tập

Em cũng xin được gửi lời cảm ơn sâu sắc đến công ty Bosch Global Software Technologies,nơi đã mở cửa đón nhận và tạo điều kiện cho em thực tập với vai trò Backend Engineer Sựquan tâm và hỗ trợ từ anh Lương Nguyễn Nhân, người đã không ngần ngại chia sẻ kinhnghiệm và kiến thức thực tiễn, đã giúp em nhanh chóng hòa nhập và phát triển tại môitrường làm việc chuyên nghiệp

Quãng thời gian thực tập tại Bosch Global Software Technologies không chỉ giúp em cảithiện kỹ năng mềm mà còn giúp em hiểu sâu sắc hơn về công việc của một BackendEngineer thông qua việc áp dụng công nghệ vào thực tiễn, cũng như tham gia vào các dự ánphần mềm mà công ty đang triển khai

Em ý thức rằng bản thân vẫn còn nhiều hạn chế và báo cáo thực tập có thể chưa hoàn hảo

Em rất mong nhận được những góp ý quý báu từ cô Trần Thị Hồng Yến cùng quý thầy cô để

em có thể tiếp tục hoàn thiện mình mỗi ngày

Em xin chân thành cảm ơn cô Trần Thị Hồng Yến và anh Lương Nguyễn Nhân đã dành thờigian và công sức để hướng dẫn em hoàn thành bài báo cáo thực tập này

Cuối cùng, em xin kính chúc cô Trần Thị Hồng Yến cùng toàn thể quý thầy cô sức khỏe, hạnhphúc và thành công trong mọi lĩnh vực của cuộc sống

TP HCM, tháng 12 năm 2023

Trang 4

Sinh viên thực hiện

Hoàng Đình Anh Tuấn

NHẬN XÉT CỦA KHOA

Trang 5

MỤC LỤC LỜI MỞ ĐẦU 2

LỜI CẢM ƠN 3

NHẬN XÉT CỦA KHOA 4

MỤC LỤC 5

MỤC LỤC HÌNH ẢNH 6

MỤC LỤC BẢNG BIỂU 7

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

1.1 Giới thiệu Bosch Global Software Technologies 8

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

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

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

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

2.2.1 Git 11

2.2.2 Electron 12

2.2.3 NodeJS và MongoDB 12

2.2.4 SocketIO 13

2.2.4 Docker và Docker Compose 13

2.2.5 gRPC 14

2.3 Tham gia dự án thực tế 14

2.3.1 Giới thiệu về dự án: 14

2.3.2 Quá trình thực hiện: 14

2.3.3 Thuận lợi: 18

2.3.4 Khó khăn: 19

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

3.1 Điểm mạnh 21

3.2 Điểm yếu 21

Trang 6

3.3 Kế hoạch tương lai 22 3.4 Chuẩn đạt được 22 TÀI LIỆU THAM KHẢO 24

Trang 7

MỤC LỤC HÌNH ẢNH

Hình 1.1 Logo của Công Ty THHH Bosch Global Software Technologies 8

Hình 2.4 Giao diện Catalogue Interface của Digital Auto Playground 19Hình 2.5 Giao diện Project của Digital Auto Playground 19Hình 2.6 Giao diện Code Editor của Digital Auto Playground 20

Trang 8

MỤC LỤC BẢNG BIỂU

Trang 9

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

1.1 Giới thiệu Bosch Global Software Technologies

Hình 1.1 Logo của Công Ty THHH Bosch Global Software Technologies

Tập đoàn Bosch, một công ty đa quốc gia của Đức, nổi tiếng với các sản phẩm và dịch vụ liênquan đến ô tô, công nghệ công nghiệp, hàng tiêu dùng và công nghệ xây dựng Bosch Thànhlập vào năm 1886 bởi Robert Bosch ở Stuttgart, Đức

BGSV (Bosch Global Software Technologies) là công ty con 100% vốn của Robert BoschGmbH, một trong những nhà cung cấp công nghệ và dịch vụ toàn cầu hang đầu thế giới,cung cấp các Giải pháp Kỹ thuật, CNTT và Kinh doanh đầu cuối

Với khả năng độc đáo trong việc cung cấp các giải pháp kết nối cảm biến, phần mềm, và dịch

vụ theo quy trình đầu-cuối, Bosch hỗ trợ các doanh nghiệp chuyển dịch từ phương pháptruyền thống sang kỹ thuật số Công ty cũng giới thiệu yếu tố kỹ thuật số vào việc cải thiệnquy trình và sản phẩm của doanh nghiệp

Lĩnh vực

- Giải pháp di động

- Công nghệ Công nghiệp

Trang 10

- Công nghệ thông tin

- Đây là những dịch vụ cốt lõi mà Bosch cung cấp cho tập đoàn trên toàn cầu

1.2 Sản phẩm công ty

BGSW, như một phần của Tập đoàn Bosch, tập trung vào việc phát triển giải pháp phầnmềm và dịch vụ kỹ thuật số Các sản phẩm và dịch vụ của công ty thường bao gồm:

- Phần Mềm Nhúng và Hệ Thống: Phát triển các hệ thống và phần mềm nhúng cho

ngành công nghiệp ô tô, công nghệ thông tin, và các lĩnh vực công nghiệp khác

- Giải Pháp Di Động và Công Nghệ Thông Tin: Cung cấp giải pháp di động và phần

mềm để hỗ trợ kết nối, quản lý dữ liệu, và tối ưu hóa hoạt động kinh doanh

- Thiết Kế Cơ Khí và Mô Phỏng: Cung cấp các dịch vụ thiết kế và mô phỏng cơ khí, hỗ

trợ trong việc phát triển sản phẩm và quy trình sản xuất

- Tư Vấn và Dịch Vụ Công Nghệ Thông Tin: Cung cấp tư vấn và giải pháp trong lĩnh

vực công nghệ thông tin như SAP, phát triển sử dụng ngôn ngữ Java, và các giải phápquản lý dữ liệu

Trang 11

- Dịch Vụ Kinh Doanh: Cung cấp các dịch vụ hỗ trợ kinh doanh như tài chính, kế toán,

mua hàng, logistics, dịch thuật, và bảo mật thông tin

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

Em làm việc full-time ở công ty, từ thứ Hai đến thứ Sáu hàng tuần Mỗi ngày, em dành ratổng cộng 8 tiếng để đảm bảo hoàn thành công việc được giao Công ty không yêu cầu mộtkhung giờ cố định để bắt đầu hoặc kết thúc ngày làm việc, miễn là em có mặt từ 10 giờ sángđến 4 giờ chiều Điều này nhằm đảm bảo rằng em có thể tương tác và hỗ trợ các đồngnghiệp, đồng thời không làm gián đoạn tiến độ chung của nhóm

Thời gian nghỉ trưa của em là 1 tiếng Mỗi 2 tuần vào sáng thứ Ba sẽ có một buổi họp đểreview những sản phẩm cũng như tiến độ công việc của các thành viên trong nhóm

Về ngày nghỉ phép, mỗi tháng công ty sẽ cung cấp một ngày nghỉ phép Các sinh viên đangcòn đi học cũng được tạo điều kiện để nghỉ trong tuần

Trang 12

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

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

Thời gian: 2 ngày

Nội dung:

- Giới thiệu tổng quan về công ty Bosch, bao gồm lịch sử hình thành, quá trình pháttriển

- Hiểu biết về quy trình làm việc và cơ cấu tổ chức từ cấp cao xuống cấp thấp

- Training về Information Security Policy (ISP) và tiến hành kiểm tra kiến thức liênquan

- Hướng dẫn cụ thể về các quy định trong công việc, như thời gian làm việc, cácnguyên tắc cần tuân thủ

- Cách sử dụng email và các công cụ chuyên biệt khác trong công việc

Thực hiện:

- Lắng nghe người phụ trách giới thiệu chi tiết về công ty Bosch và các khía cạnh khácnhau của quá trình làm việc

- Tham gia vào các phiên training và kiểm tra kiến thức về ISP

- Nhận thông tin hướng dẫn về cách thức làm việc tại công ty, bao gồm cách sử dụngemail công việc và các nguyên tắc cần biết

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

Các công cụ sử dụng trong thời gian thực tập gồm:

Trang 13

2.2.1 Git

- Thời gian: Xuyên suốt thời gian thực tập

- Nội dung: Sử dụng Git để quản lý phiên bản code, cải thiện hiệu quả làm việc nhóm

và theo dõi tiến độ dự án

- Thực hiện:

o Học cách sử dụng các lệnh cơ bản của Git như commit, push, pull, branch vàmerge

o Áp dụng quy trình Git flow để quản lý các branch trong dự án

- Kết quả: Nâng cao kỹ năng quản lý phiên bản và hiểu biết về công cụ quản lý mãnguồn mạnh mẽ này, hỗ trợ làm việc nhóm một cách hiệu quả

2.2.2 Electron

- Thời gian: Trong giai đoạn phát triển sản phẩm

- Nội dung: Tạo ứng dụng desktop đa nền tảng từ code web sử dụng Electron

- Thực hiện:

o Học cách tích hợp ReactJS vào môi trường Electron

o Phát triển các ứng dụng có giao diện đồ họa phong phú, chạy trên Windows,macOS và Linux

- Kết quả: Phát triển thành công ứng dụng desktop từ code web, mở rộng khả năng pháttriển phần mềm của bản thân

2.2.3 NodeJS và MongoDB

- Thời gian: Xuyên suốt quá trình phát triển backend của dự án

- Nội dung:

o Sử dụng NodeJS để tạo ra server-side logic cho ứng dụng, cung cấp API, và

xử lý các yêu cầu từ client

o Áp dụng MongoDB, một cơ sở dữ liệu NoSQL, để lưu trữ dữ liệu một cáchlinh hoạt và hiệu quả, phù hợp với cấu trúc dữ liệu động và phong phú của cácứng dụng hiện đại

- Thực hiện:

o Cài đặt và cấu hình môi trường NodeJS và MongoDB

o Học cách thiết kế và xây dựng RESTful API sử dụng NodeJS

o Sử dụng MongoDB để tạo, lưu trữ, truy vấn và cập nhật dữ liệu từ server

Trang 14

o Tích hợp MongoDB với NodeJS để xây dựng một backend hoàn chỉnh, có thể

xử lý và lưu trữ dữ liệu từ client

- Thời gian: Khi thực hiện các tính năng yêu cầu giao tiếp thời gian thực

- Nội dung: Triển khai các giải pháp giao tiếp thời gian thực trong ứng dụng web

- Thực hiện:

o Học cách tích hợp SocketIO vào NodeJS và trình duyệt

o Phát triển các chức năng như chat trực tuyến, thông báo thời gian thực

- Kết quả: Tạo được các ứng dụng web đáp ứng việc trao đổi thông tin theo thời gianthực và cách áp dụng nó vào thực tế

2.2.4 Docker và Docker Compose

- Thời gian: Trong giai đoạn thiết kế, phát triển, và triển khai ứng dụng

- Nội dung:

o Docker là một nền tảng open-source giúp phát triển và chạy ứng dụng trongmôi trường ảo hoá gọi là container Điều này tạo điều kiện cho việc triển khaiứng dụng một cách nhất quán trên mọi môi trường khác nhau

o Docker Compose là một công cụ giúp định nghĩa, chạy nhiều container vàphối hợp chúng với nhau Compose sử dụng một file YAML để cấu hình cáccontainer cũng như thiết lập các kết nối cho phép giữa chúng có thể giao tiếplẫn nhau

- Thực hiện:

o Cài đặt Docker và Docker Compose

o Học cách container hóa ứng dụng bằng Docker và quản lý nhiều container vớiDocker Compose

o Sử dụng Docker Compose để tự động hóa quy trình triển khai và quản lý ứngdụng

Trang 15

- Kết quả: Hiểu rõ về việc sử dụng container trong phát triển phần mềm và khả năng

triển khai nhanh chóng và dễ dàng trên bất kỳ môi trường nào

- Thực hiện:

o Học cách định nghĩa các service và message bằng Protocol Buffers

o Phát triển các gRPC service và client trong môi trường NodeJS

o Sử dụng gRPC cho việc giao tiếp hiệu quả giữa các microservices

Tên dự án: Digital Auto Playground

- Nội dung: Đây là website giúp xây dựng và thử nghiệm các prototypes của các loạiphương tiện trên trình duyệt, sử dụng Python và Vehicle APIs (một chuẩn do Bosch

và các bên đối tác định nghĩa)

- Tính năng chính: Sử dụng Vehicle APIs và code Python để xây dựng và kiểm thử cácprototype Có một hệ thống plugin và widget có thể sử dụng để tạo nên một prototypephong phú và đa dạng Bên cạnh đó là đi kèm hệ sinh thái phục vụ cho các tính năngtrên như: hệ thống upload, import, create và edit các plugin phục vụ cho hệ thống,editor online, ứng dụng quản lý việc phát hành các plugin

- Công nghệ được sử dụng: HTML, CSS, Python, ReactJS, JavaScript, MySQL,TypeScript, Tailwind, NodeJS, MongoDB, SocketIO, Electron

Trang 16

2.3.2 Quá trình thực hiện:

Công việc trong thời gian thực tập của các thực tập sinh liên quan chủ yếu đến các dự ánxoay quay Digital Auto Playground, với mục đích chính là phục vụ và hỗ trợ cho nó Thực tậpsinh được tạo điều kiện để tham gia các dự án mới, làm từ đầu dưới sự chỉ dạy của ngườihướng dẫn Cụ thể, quá trình thực hiện của em bao gồm một số công việc nổi bật sau:

- Xây dựng User management service, đóng vai trò trung tâm giữa các service khác

o Hệ thống User management service tách biệt so với hệ thống User trên DigitalAuto Playground

o Được sử dụng chủ yếu trong nội bộ của team phát triển

o Sử dụng để truy cập vào các dự án xoay quanh Digital Auto Playground

- Xây dựng Retrofit-ivi, ứng dụng đa nền tảng bằng ElectronJS

o Hệ thống Cockpit xe hơi đa nền tảng có thể chạy được trên cả Windows,Ubuntu, MacOS cũng như trên các chip AMD và ARM

o Tích hợp trình phát nhạc, dịch vụ bản đồ

o Tích hợp hệ thống nhận diện và đăng ký khuôn mặt

o Tích hợp hệ thống nhận diện giọng nói

o Cài đặt hệ thống này lên một bản prototype của bộ điều khiển xe hơi

o Nhận dữ liệu từ các cảm biến của bộ prototype này và hiển thị lên màn hình

Trang 17

- Phát triển Upload service để upload các file phương tiện cho dự án.

o Được sử dụng để upload các hình ảnh và file phương tiện

o Xử lý quyền upload các file

o Xử lý, hạn chế dung lượng tối đa của ảnh, cũng như tạo thumbnail cho ảnh

o Phát triển hệ thống streaming đơn giản cho các file video

- Tiếp tục phát triển ứng dụng Digital Auto Studio, phục vụ cho việc Edit plugin online

o Xây dựng thêm tính năng phân quyền

o Phát triển tính năng quản lý theo project

o Xây dựng hệ thống quản lý file và truy cập file

Trang 18

Hình 2.2 Hình ảnh của ứng dụng Studio

- Xây dựng Digital Auto Store, phục vụ cho việc publish các plugin

o Phát triển các module như Package, Version

o Xây dựng tính năng deploy từ một file zip

o Xây dựng kết nối giữa Studio và Store, cho phép người dùng deploy vàpublish trực tiếp từ Studio lên Store

Trang 19

Hình 2.3 Hình ảnh của ứng dụng Store

- Thiết lập và triển khai các dịch vụ lên hệ thống Cloud

o Triển khai thông qua kết nối SSH đến Cloud Provider là Azure

o Vận hành ứng dụng bằng PM2

o Thiết lập và cấu hình hệ thống để phục vụ cho việc quản lý file trên các ứngdụng

o Tạo Cron Job để backup data

o Thiết lập và cấu hình Nginx reverse proxy cho các service

- Cài đặt và thiết lập hệ thống Android Automotive Operating System (AAOS) trênđiện thoại

o Nghiên cứu và tìm hiểu về cách cài đặt AAOS

o Cài đặt các bản vá thích hợp cho Model điện thoại

o Xây dựng và phát triển hệ thống Logging bằng NodeJS và MongoDB

o Tiến hành migrate data từ Firebase sang MongoDB

o Thay thế toàn bộ hệ thống Logging được sử dụng trong Front-end sang hệthống Logging mới

Trong giai đoạn tiếp theo của quá trình phát triển, em được giao trách nhiệm trong việcchuyển đổi hệ thống của dự án Digital Auto Playground Dự án này trước đây được xây dựngdựa trên mô hình serverless, sử dụng các dịch vụ là Firebase và Netlify Mục tiêu của quátrình migrate là chuyển toàn bộ hệ thống sang một cơ sở hạ tầng tự quản lý (self-maintained), giúp tăng cường khả năng kiểm soát và tối ưu hiệu suất

Các bước em thực hiện bao gồm:

- Đánh giá toàn diện cấu trúc hiện tại của hệ thống trên Firebase và Netlify để xác địnhcác yếu tố cần chuyển đổi và tối ưu hóa

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Electron. (n.d.). Electron documentation. Link: https://www.electronjs.org/docs/latest/ (Truy cập lần cuối vào ngày 31 tháng 12 năm 2023) Link
2. Node.js. (n.d.). Node.js v16.x documentation. Link: https://nodejs.org/docs/latest/api/ (Truy cập lần cuối vào ngày 31 tháng 12 năm 2023) Link
3. Socket.IO. (n.d.). Socket.IO documentation. Link: https://socket.io/docs/v4/ (Truy cập lần cuối vào ngày 31 tháng 12 năm 2023) Link
4. Mongoose. (n.d.). Mongoose documentation. Link: https://mongoosejs.com/docs/ (Truy cập lần cuối vào ngày 31 tháng 12 năm 2023) Link
5. Docker, Inc. (n.d.). Docker documentation. Link: https://docs.docker.com/ (Truy cập lần cuối vào ngày 31 tháng 12 năm 2023) Link
w