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

Báo Cáo Thực Tập Back-End Developer.pdf

31 12 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 Back-End Developer
Tác giả Lê Thành Tâm
Người hướng dẫn Thầy (nếu có, không rõ tên)
Trường học Trường Đại Học Công Nghệ Thông Tin - Khoa Công Nghệ Phần Mềm
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 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 31
Dung lượng 1,27 MB

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

Nội dung

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 BACK END DEVELOPER Công ty thực tập Công ty Vitalify Asia Người phụ trách Phạm Minh Chí Thực tập sinh Lê Thành Tâm 19520254[.]

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 BACK-END DEVELOPER

Công ty thực tập: Công ty Vitalify Asia Người phụ trách: Phạm Minh Chí Thực tập sinh: Lê Thành Tâm - 19520254

Trang 2

LỜI MỞ ĐẦU

Ngày nay, các ngành công nghiệp về phần mềm đang phát triển với tốc độ chóng mặt Các công nghiệp về web, mobile hay game là những lĩnh vực cực kì hot và nhận được sự quan tâm đông đảo của lớp trẻ Các lĩnh vực này được ví như một tảng băng trôi, phần nổi là phần nhìn thấy được gọi là Front-end và phần chìm, phần không nhìn thấy được chính là Back-end Hiện nay lĩnh vực Back-end đang phát triển vô cùng nhanh chóng, thu hút không kém các lĩnh vực khác

Xu hướng phát triển mạnh mẽ của thế giới cũng thúc đẩy ngành công nghiệp backend tại Việt Nam tới mức cao nhất Đa số các công ty phát triển các phần mềm đều

đi kèm với việc tuyển dụng nhân lực Back-end Nhu cầu tăng cao đối với Back-end tại Việt Nam là minh chứng cho việc xây dựng một Back-end vững mạnh, an ninh bảo mật

là vô cùng cần thiết Nền công nghiệp Back-end phát triển vững mạnh là một yếu tố cần thiết cho một nền công nghiệp phần mềm phát triển trường tồn

Từ lâu, trong quá trình học tập tại trường, em đã định hướng bản thân trở thành một lập trình viên Back-end chuyên nghiệp Điều đó thúc đẩy em tìm tỏi về các công nghệ back-end hiện nay, các ngôn ngữ hỗ trợ và chủ động đảm nhiệm vai trò phát triển back-end trong các đồ án tại trường

Sau hơn ba năm học tập trên trường, em cảm thấy bản thân đã sẵn sàng để dấn thân vào môi trường chuyên nghiệp, em tin rằng điều này sẽ giúp em học hỏi, tiếp thu nhiều kiến thức hơn trong ngành này Do đó em đã đăng kí môn thực tập và bắt đầu tìm kiếm công việc Em đã chọn được công ty để bắt đầu phát triển bản thân là Vitalify Á Châu, đây là môi trường out-sourcing, một môi trường có khả năng thúc đẩy bản thân

em thay đổi liên tục Qua quá trình thực tập tại đây, em mong rằng bản thân sẽ tích thêm nhiều kinh nghiệm, củng cố kiến thức cá nhân cũng như học hỏi thêm nhiều công nghệ

mới

Trang 3

Đặc biệt cảm ơn anh Chí đã training, hướng dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới, những kỹ năng về đọc tài liệu và cách report một con bug, hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật trong thời gian qua

Cũng 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 em làm bài báo cáo này

Lê Thành Tâm

TPHCM, tháng 12 năm 2022

Trang 4

Nhận xét của khoa

Trang 5

Mục Lục

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

Trang 6

1 Giới thiệu công ty thực tập

1.1 Giới thiệu về công ty

Tên công ty: Vitalify Á Châu (Vitalify Asia)

Địa chỉ: 224A Điện Biên Phủ, Phường 6, Quận 3, Thành phố Hồ Chí Minh

Trang web: https://www.vitalify.asia/

Điện thoại: 028 3932 6293

Vitalyfy Asia được thành lập vào năm 2008, là một công ty outsourcing tập trung vào mảng phát triển phần mềm trên ứng dụng di động với sứ mạng “đưa những giá trị hạnh phúc thông qua internet”

Vitalify Asia có mục tiêu trở thành một công ty chuyên nghiệp có thể đảm nhận các dự án mang tầm vóc quốc tế Chính sách phát triển của công ty đó là: mỗi nhân

sự từ kỹ sư, quản lý,… có trách nhiệm mở rộng vai trò và phạm vi công việc, tinh thần trách nhiệm của chính bản thân để mang lại giá trị cho người dùng với cấu trúc tổ chức phân thành các nhóm nhỏ ưu tú

Sau hơn 10 năm thành lập, Vitalify Asia bước vào một giai đoạn thử thách mới nhằm nâng cao hơn nữa giá trị kỹ thuật của công ty tại Việt Nam Mục tiêu tạo ra những sản phẩm “made in Vietnam” tiêu chuẩn quốc tế

Trang 7

1.2 Sản phẩm và dịch vụ của công ty

Vitalify Asia nhận gia công phát triển web và ứng dụng di động cho phù hợp

với yêu cầu của tôt chức và doanh nghiệp Đội nhóm của Vitalify Asia có tính

chất đa quốc gia, có thể hoạt động từ xa, Vitalify Asia cam kết mang đến những

sản phẩm với giá trị bền vững và nhanh chóng cho doanh nghiệp

Vitalify Asia có kinh nghiệm phát triển các hệ thống, ứng dụng trên đa dạng các

lĩnh vực, với khả năng hoạt động real-time bao gồm nhiều gia đoạn phát triển

khác nhau từ lên kế hoạch, vận hành và phát triển, cập nhật về sau

Các sản phẩm của Vitalify Asia có thể kể đến như sau:

NativeCamp

Nền tảng trực tuyến gia sư dạy tiếng anh chuyên sâu Native Camp là một trong những nền tảng trường học tiếng anh lớn nhất tại Nhật Bản Native Camp giúp

người dùng học tập tiếng Anh với tất cả 4 kỹ năng: nghe, nói, đọc, viết ngoài ra

còn có các chức năng đánh giá, kiểm tra khả năng tiếng Anh, học trực tiếp với

giáo viên hoặc thông qua các tài nguyên có sẵn

Hình ảnh minh họa:

Trang 10

Ứng dụng Zombie Doors AR

2 Nội dung thực tập

Trong khoảng thời gian thực tập tại công ty, sinh viên có cơ hội học tập thêm các kiến thức chuyên môn, tiếp xúc với các quy trình thực hiện dự án, giải quyết các vấn đề phát sinh trong một dự án thực tế Sinh viên được nâng cao kĩ năng phần tích yêu cầu, đặt câu hỏi, tương tác trực tiếp với khách hàng và các thành viên trong đội phát triển Ngoài ra, sinh viên còn có cơ hội phát triển các kỹ năng mềm như nghiên cứu thông tin, thuyết trình, giao tiế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 về công ty, cơ cấu tổ chức của công ty, các chấm công, tính lương,

quyền lợi và văn hoá làm việc của công ty

Sinh viên được giới thiệu về cơ cấu tổ chức của công ty, cách phân đội nhóm, cách thức tiếp nhận dự án của đội nhóm, cách tiếp nhận và giải quyết các task nhiệm vụ

và báo cáo hàng ngày

Trong thời gian này, sinh viên được công ty đánh giá sơ lược về khả năng để chuyển về các đội nhóm phù hợp với năng lực Sinh viên được cấp quyền truy cập các tài nguyên nội bộ, chỉ dẫn của công ty, email domain riêng để tương tác với hệ thống

của khách hàng

Kết quả :

Trang 11

Có hiểu biết về cơ cấu hoạt động của công ty, quy trình phát triển phần mềm Scrum, cách tham gia các cuộc họp nội bộ và với khách hàng, cách tiếp nhận nhiệm vụ

và báo cáo hàng ngày

2.2 Giai đoạn training các kiến thức cơ bản

2.2.1 Tìm hiểu về môi trường NestJS

Npm cung cấp cho ta 2 chức năng chính:

• Là kho lưu trữ trực tuyến cho các package/module

• Quản lý các module javascrip và phiên bản của chúng trong các dự

án của chúng ta một cách đơn giản, dễ dàng, giúp tiết kiệm thời gian

Yarn được Facebook cho ra đời năm 2016 Mục đích tạo ra yarn vì nó giải quyết một số thiếu sót về hiệu suất và bảo mật của Npm

NodeJS:

NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine, nó được sử dụng để xây dựng các ứng dụng web như các trang video clip, các forum và đặc biệt là trang mạng xã hội phạm vi hẹp NodeJS là một mã nguồn mở được sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới

NodeJS có một đặc tính rất quan trọng đó là Realtime, tuy nhiên vẫn còn

khá nhiều đặc tính khác như : không đồng bộ, chạy nhanh, đơn luồng nhưng khả

Trang 12

NestJS là một NodeJS framework dùng để phát triển server-side applications hiệu quả và có thể mở rộng NestJS là sự kết hợp bởi OOP(Object Oriented Programming), FP(Functional Programming), FRP(Functional Reactive Programming) NestJS sử dụng TypeScript để phát triển nhưng nó cũng hỗ trợ cả Javascript

NestJS cung cấp cho chúng ta một kiến trúc cụ thể và rõ dàng cho dự án Sau khi tạo một project NestJS, chúng ta sẽ có source với cấu trúc như sau:

• app.controller.ts: Chứa các router để xử lý các request và trả về response cho client

• app.controller.spec.ts: Có nhiệm vụ viết unit-test cho các controller

• app.module.ts: Root module của ứng dụng

• app.service.ts: Service chứa các logic mà controller sẽ dùng đến

• main.ts: Sử dụng NestFactory để khởi tạo ứng dụng

Kết quả:

Hiểu về package npm và yarn, cách cài đặt và quản lý các package Hiểu cơ bản

về NodeJS và NestJS, cách xây dựng một project đơn giản, cấu trúc và cách vận hành của 2 mã nguồn này

2.2.2 Tìm hiểu về Postman

Nội dung:

Postman là một ứng dụng cho phép người dùng có thể tương tác với API API

là tên viết tắt của Application Programming Interface – giao diện lập trình ứng dụng API chịu trách nhiệm tạo ra các kết nối giữa những ứng dụng khác nhau Còn Postman

sẽ chịu trách nhiệm giúp cho thao tác của người dùng với API trở nên dễ dàng hơn

Trang 13

Thông thường, Postman sẽ được dùng cho API REST Postman có thể dễ dàng gọi REST mà không cần tạo code như cách truyền thống

Postman còn chịu trách nhiệm cho rất nhiều thao tác phát triển phần mềm như test, chạy thử, rà lỗi, cung cấp các đoạn code tự động cần thiết… Nhìn chung, lợi ích

mà Postman mang lại là rất nhiều

Đặc biệt, Postman tương thích với hầu hết các giao thức HTTP, bao gồm: Get, Put, Delete, Post, Patch… Cấu tạo của Postman hướng đến sự linh động Postman có sẵn nhiều phiên bản cho các hệ điều hành và môi trường khác nhau Đó cùng là điểm khiến nó trở nên phổ biến hơn

Thành phần chính của Postman:

Postman gồm 3 thành phần chính bao gồm: Setting, Collections và API Content

• Setting bao gồm những cài đặt cơ bản về tài khoản của người dùng và giao diện hiển thị

• Collections giống như một thư viện trong Postman Nhiệm vụ chính của nó là lưu trữ và hiển thị các dữ liệu, yêu cầu mà người dùng tạo nên

• Phần quan trọng nhất trong Postman là API Content Trong API tồn tại 3 thành phần chính: environment, request và response Environment là môi trường để thực hiện các hành động với API Nó cung cấp các thông tin môi trường cần thiết

để lập trình viên có thể thay đổi khi cần thiết Khi đã ổn định được môi trường rồi, người dùng sẽ tiến hành gửi các yêu cầu – request để hệ thống hoạt động Kết quả sau thao tác được trả về chính là response

Các chức năng của Postman:

• New: Chức năng này hỗ trợ người dùng tạo ra các request, collection hoặc environment mới

• Import: Nếu bạn đã có sẵn collection hoặc environment muốn tiếp tục sử dụng

Trang 14

• Open New: Nếu muốn mở một tab Postman hoặc Runner mới, bạn hãy chọn nút này

• My Workspace: Nút này đã xuất hiện một lần khi bạn mới cài đặt xong Postman

Nó có nghĩa là tạo cho mình một khu vực làm việc riêng biệt hoặc cùng hội nhóm Nếu ban đầu bạn chưa chọn hoặc bạn muốn tạo thêm một khu vực khác thì có thể chọn chức năng này

• Invite: Sau khi đã tạo Workspace cho nhóm rồi, hãy dùng Invite để mời các thành viên vào

• History: Tất cả các hành động bạn đã thực hiện đều được lưu trữ trong History

Vì thế khi gặp vấn đề cần truy ra nguyên nhân, bạn hãy truy cập vào mục này

• Collections: Đây được ví như một thư viện riêng của người dùng Bạn có thể tạo nhiều Collections cùng lúc với các thư mục và request trùng lặp

• HTTP Request: Mục này là tập hợp các Request phổ biến và được sử dụng nhiều nhất trong Postman, ví dụ như: get, copy, delete, post…

• Save: Hãy Save liên tục sau mỗi Request nếu bạn không muốn Request bị mất hoặc bị ghi đè

Docker là nền tảng cung cấp cho các công cụ, service để các developers,

adminsystems có thể phát triển, thực thi, chạy các ứng dụng với containers Hay nói một cách khác nó là một nền tảng để cung cấp cách để building, deploy và run các ứng dụng một cách dễ dàng trên nền tảng ảo hóa - "Build once, run anywhere"

Container không giống như VMs, Container không cung cấp sự ảo hóa

về phần cứng Một Container cung cấp ảo hóa ở cấp hệ điều hành bằng một khái niệm trừu tượng là “user space” Sự khác nhau lớn nhất của Container và VMs là

Trang 15

Container có thể chia sẻ host system’s kernel với các container khác Cùng xem

mô hình bên dưới để hiểu rõ hơn về Container

Dựa vào sơ đồ bên trên, có thể thấy các gói container chỉ là một user space bao gồm ứng dụng, system binaries và libraries mà không cần guest OS hoặc ảo hóa phần cứng như VMs Đây là cái mà làm cho các container nhẹ hơn (lightweight) Các container sẽ chạy trên công nghệ cụ thể ở đây là Docker Engine

Các thành phần cơ bản của Docker:

Docker engine: là một ứng dụng client-server Có 2 phiên bản phổ biến: Docker Community Edition (CE) và Docker Enterprise(EE)

Các thành phần chính của docker engine gồm có:

Server hay còn được gọi là docker daemon: chịu trách nhiệm tạo,

quản lý các Docker objects như images, containers, networks, volume

Trang 16

Client là thành phần đầu cuối cung cấp một tập hợp các câu lệnh

sử dụng api để người dùng thao tác với Docker

Distribution tools : Là các công cụ phân tán giúp chúng ta lưu trữ và quản lý các Docker Images như: Docker Registry, Docker Trusted Registry, Docker Hub

Orchestration tools :

• Docker Machine : Machine tạo Docker Engine trên laptop của

bạn hoặc trên bất cứ dịch vụ cloud phổ biến nào như AWS, Azure, Google Cloud, Softlayer hoặc trên hệ thống data center như VMware, OpenStack Docker Machine sẽ tạo các máy ảo và cài Docker Engine lên chúng và cuối cùng nó sẽ cấu hình Docker Client để giao tiếp với Docker Engine một cách bảo mật

• Docker Compose : là công cụ giúp định nghĩa và khởi chạy

multi-container Docker applications

• Docker Swarm : là một công cụ giúp chúng ta tạo ra một

clustering Docker Nó giúp chúng ta gom nhiều Docker Engine lại với nhau và ta có thể "nhìn" nó như duy nhất một virtual Docker Engine

Kiến trúc của Docker:

Trang 17

Docker Daemon: lắng nghe các yêu cầu từ Docker Client để quản lý các đối

tượng như Container, Image, Network và Volumes Các Docker Daemon cũng giao tiếp với nhau để quản lý các Docker Service

Docker Client: là một công cụ giúp người dùng giao tiếp với Docker host Khi

người dùng gõ lệnh docker run imageABC tức là người dùng sử dụng CLI và gửi request đến dockerd thông qua api, và sau đó Docker daemon sẽ xử lý tiếp Docker client có thể giao tiếp và gửi request đến nhiều Docker daemon

Docker Registry (Docker Hub): là một kho chứa các image được publish bởi

cộng đồng Docker Nó giống như GitHub và bạn có thể tìm những image cần thiết và pull về sử dụng

Docker object: chính là các đối tượng mà ta thường xuyên gặp khi sử dụng

Docker Gồm có Images và Containers

Images: hiểu nôm na là một khuôn mẫu để tạo một container Thường

thì image sẽ base trên 1 image khác với những tùy chỉnh thêm ví dụ bạn

Trang 18

dụng những image được publish từ cộng đồng Docker Hub Một image

sẽ được build dựa trên những chỉ dẫn của Dockerfile

Containers: là một instance của một image Bạn có thể create, start,

stop, move or delete container dựa trên Docker API hoặc Docker CLI

Qui trình thực thi của một hệ thống sử dụng Docker:

Như trong hình, một hệ thống Docker được thực thi với 3 bước chính :

BUILD -> PUSH -> PULL,RUN

Build: Đầu tiên tạo một dockerfile, trong dockerfile này chính là code của

chúng ta Dockerfile này sẽ được Build tại một máy tính đã cài đặt Docker

Engine Sau khi build ta sẽ có được Container, trong Container này chứa ứng

dụng kèm bộ thư viện của chúng ta

Push: Sau khi có được Container, chúng ta thực hiện push Container này lên

cloud và lưu tại đó

Pull, Run: Nếu một máy tính khác muốn sử dụng Container chúng ta thì bắt

buộc máy phải thực hiện việc Pull container này về máy, tất nhiên máy này

cũng phải cài Docker Engine Sau đó thực hiện Run Container này

Dockerfile:

Dockerfile : như một script dùng để build các image trong container, bao gồm

các câu lệnh liên tiếp nhau được thực hiện tự động trên một image gốc để tạo ra

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

w