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

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

Đ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

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[.]

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 Tp Hồ Chí Minh, Tháng 12 năm 2022 LỜI MỞ ĐẦU Ngày nay, ngành công nghiệp phần mềm phát triển với tốc độ chóng mặt Các cơng nghiệp web, mobile hay game lĩnh vực hot nhận quan tâm đơng đảo lớp trẻ Các lĩnh vực ví tảng băng trơi, phần phần nhìn thấy gọi Front-end phần chìm, phần khơng nhìn thấy Back-end Hiện lĩnh vực Back-end phát triển vơ nhanh chóng, thu hút không lĩnh vực khác Xu hướng phát triển mạnh mẽ giới thúc đẩy ngành công nghiệp backend Việt Nam tới mức cao Đa số công ty phát triển phần mềm kèm với việc tuyển dụng nhân lực Back-end Nhu cầu tăng cao Back-end Việt Nam minh chứng cho việc xây dựng Back-end vững mạnh, an ninh bảo mật vô cần thiết Nền công nghiệp Back-end phát triển vững mạnh yếu tố cần thiết cho công nghiệp phần mềm phát triển trường tồn Từ lâu, trình học tập trường, em định hướng thân trở thành lập trình viên Back-end chun nghiệp Điều thúc đẩy em tìm tỏi cơng nghệ back-end nay, ngôn ngữ hỗ trợ chủ động đảm nhiệm vai trò phát triển back-end đồ án trường Sau ba năm học tập trường, em cảm thấy thân sẵn sàng để dấn thân vào môi trường chuyên nghiệp, em tin điều giúp em học hỏi, tiếp thu nhiều kiến thức ngành Do em đăng kí mơn thực tập bắt đầu tìm kiếm công việc Em chọn công ty để bắt đầu phát triển thân Vitalify Á Châu, mơi trường out-sourcing, mơi trường có khả thúc đẩy thân em thay đổi liên tục Qua trình thực tập đây, em mong thân tích thêm nhiều kinh nghiệm, củng cố kiến thức cá nhân học hỏi thêm nhiều công nghệ LỜI CẢM ƠN Trân trọng gửi lời cảm ơn Công ty Vitalify Asia tạo điều kiện cho em có hội thực tập cơng ty Chỉ thời gian ngắn, nhờ dẫn nhiệt tình anh chị team, nhóm thực tập chúng em tiếp thu kiến thức quan trọng xây dựng Back-end Chân thành cảm ơn anh chị nhóm bỏ nhiều thời gian,cơng sức để hướng dẫn chúng em hồn thành đợt thực tập Đặc biệt cảm ơn anh Chí training, hướng dẫn, giúp đỡ cho chúng em tận tình khó khăn cơng việc, đến khó khăn việc làm quen với mơi trường mới, kỹ đọc tài liệu cách report bug, hỗ trợ chúng em nhiều vấn đề kỹ thuật thời gian qua Cũng xin cảm ơn thầy cô khoa Công nghệ phần mềm nhiệt tình hỗ trợ, tạo điều kiện em làm báo cáo Lê Thành Tâm TPHCM, tháng 12 năm 2022 Nhận xét khoa Mục Lục Giới thiệu công ty thực tập 1.1 Giới thiệu công ty 1.2 Sản phẩm dịch vụ công ty Nội dung thực tập 2.1 Tìm hiểu cơng ty kỹ công ty 9 2.2 Giai đoạn training kiến thức 10 2.2.1 Tìm hiểu mơi trường NestJS 10 2.2.2 Tìm hiểu Postman 11 2.2.3 Tìm hiểu Docker 13 2.2.4 Tìm hiểu MongoDB 18 2.2.5 Hiểu rõ Observable Promise 21 2.3 Lịch trình làm việc Chi tiết project 22 26 3.1 Tổng quan: 26 3.2 Thông tin 26 3.3 Thực 28 3.4 Kế hoạch 29 3.4.1 Giai đoạn training 29 3.4.2 Giai đoạn Research (Pre-Alpha) 29 3.4.3 Giai đoạn tổng kết: 29 Giới thiệu công ty thực tập 1.1 Giới thiệu 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 thành lập vào năm 2008, công ty outsourcing tập trung vào mảng phát triển phần mềm ứng dụng di động với sứ mạng “đưa giá trị hạnh phúc thơng qua internet” Vitalify Asia có mục tiêu trở thành cơng ty chun nghiệp đảm nhận dự án mang tầm vóc quốc tế Chính sách phát triển cơng ty là: nhân từ kỹ sư, quản lý,… có trách nhiệm mở rộng vai trị phạm vi cơng việc, tinh thần trách nhiệm 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 nhóm nhỏ ưu tú Sau 10 năm thành lập, Vitalify Asia bước vào giai đoạn thử thách nhằm nâng cao giá trị kỹ thuật công ty Việt Nam Mục tiêu tạo sản phẩm “made in Vietnam” tiêu chuẩn quốc tế 1.2 Sản phẩm dịch vụ công ty Vitalify Asia nhận gia công phát triển web ứng dụng di động cho phù hợp với yêu cầu tơt chức doanh nghiệp Đội nhóm Vitalify Asia có tính chất đa quốc gia, hoạt động từ xa, Vitalify Asia cam kết mang đến sản phẩm với giá trị bền vững nhanh chóng cho doanh nghiệp Vitalify Asia có kinh nghiệm phát triển hệ thống, ứng dụng đa dạng lĩnh vực, với khả hoạt động real-time bao gồm nhiều gia đoạn phát triển khác từ lên kế hoạch, vận hành phát triển, cập nhật sau Các sản phẩm Vitalify Asia kể đến sau: NativeCamp Nền tảng trực tuyến gia sư dạy tiếng anh chuyên sâu Native Camp tảng trường học tiếng anh lớn Nhật Bản Native Camp giúp người dùng học tập tiếng Anh với tất kỹ năng: nghe, nói, đọc, viết ngồi cịn có chức đánh giá, kiểm tra khả tiếng Anh, học trực tiếp với giáo viên thơng qua tài ngun có sẵn Hình ảnh minh họa: Các sản phẩm ứng dụng game Vitalify Asia phát triển nhiều tựa game giải trí thiết bị di động với lối chơi đơn giản Một số có sử dụng cơng nghệ AR tăng cường thực tế ảo Face Emotion – Xác định cảm xúc, Zombie Doors AR Hình ảnh minh họa: Ứng dụng Face Emotion Ứng dụng Zombie Doors AR Nội dung thực tập Trong khoảng thời gian thực tập cơng ty, sinh viên có hội học tập thêm kiến thức chuyên môn, tiếp xúc với quy trình thực dự án, giải vấn đề phát sinh dự án thực tế Sinh viên nâng cao kĩ 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 thành viên đội phát triển Ngoài ra, sinh viên cịn có hội phát triển kỹ mềm nghiên cứu thơng tin, thuyết trình, giao tiếp 2.1 Tìm hiểu cơng ty kỹ công ty Thời gian: ngày Nội dung : Giới thiệu công ty, cấu tổ chức cơng ty, chấm cơng, tính lương, quyền lợi văn hố làm việc cơng ty Sinh viên giới thiệu cấu tổ chức công ty, cách phân đội nhóm, cách thức tiếp nhận dự án đội nhóm, cách tiếp nhận giải task nhiệm vụ báo cáo hàng ngày Trong thời gian này, sinh viên công ty đánh giá sơ lược khả để chuyển đội nhóm phù hợp với lực Sinh viên cấp quyền truy cập tài nguyên nội bộ, dẫn công ty, email domain riêng để tương tác với hệ thống khách hàng Kết : Docker Daemon: lắng nghe yêu cầu từ Docker Client để quản lý đối tượng Container, Image, Network Volumes Các Docker Daemon giao tiếp với để quản lý Docker Service Docker Client: 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 người dùng sử dụng CLI gửi request đến dockerd thông qua api, sau Docker daemon xử lý tiếp Docker client giao tiếp gửi request đến nhiều Docker daemon Docker Registry (Docker Hub): kho chứa image publish cộng đồng Docker Nó giống GitHub bạn tìm image cần thiết pull sử dụng Docker object: đối tượng mà ta thường xuyên gặp sử dụng Docker Gồm có Images Containers • Images: hiểu nôm na khuôn mẫu để tạo container Thường image base image khác với tùy chỉnh thêm ví dụ bạn build image dựa image ubuntu để chạy Apache web service ứng dụng bạn tùy chỉnh, cấu hình để ứng dụng bạn chạy Bạn tự build image riêng cho sử 16 dụng image publish từ cộng đồng Docker Hub Một image build dựa dẫn Dockerfile • Containers: instance image Bạn create, start, stop, move or delete container dựa Docker API Docker CLI Qui trình thực thi hệ thống sử dụng Docker: Như hình, hệ thống Docker thực thi với bước : BUILD -> PUSH -> PULL,RUN Build: Đầu tiên tạo dockerfile, dockerfile code Dockerfile Build máy tính cài đặt Docker Engine Sau build ta có Container, Container chứa ứng dụng kèm thư viện Push: Sau có Container, thực push Container lên cloud lưu Pull, Run: Nếu máy tính khác muốn sử dụng Container bắt buộc máy phải thực việc Pull container máy, tất nhiên máy phải cài Docker Engine Sau thực Run Container Dockerfile: Dockerfile : script dùng để build image container, bao gồm câu lệnh liên tiếp thực tự động image gốc để tạo 17 image Hiểu đơn giản, Dockerfile file dạng text, khơng có đi, giúp thiết lập cấu trúc cho docker image nhờ chứa tập hợp câu lệnh Dockerfile giúp đơn giản hóa tiến trình từ lúc bắt đầu đến kết thúc Như Dockerfile quy định Docker image khởi tạo từ đâu, gồm Kết quả: Hiểu Docker gì, nên sử dụng docker, thành phần Docker chức chúng, nắm kiến trúc qui trình docker, Hiểu Dockerfile biết tạo Dockerfile đơn giản riêng 2.2.4 Tìm hiểu MongoDB Nội dung: Định nghĩa MongoDB: 18 • MongoDB sở liệu mã nguồn mở sở liệu NoSQL(*) hàng đầu, hàng triệu người sử dụng MongoDB viết C++ • Ngoài ra, MongoDB sở liệu đa tảng, hoạt động khái niệm Collection Document, cung cấp hiệu suất cao, tính khả dụng cao khả mở rộng dễ dàng Các thuật ngữ hay sử dụng MongoDB: • _id – Là trường bắt buộc có document Trường _id đại diện cho giá trị document MongoDB Trường _id hiểu khóa document Nếu bạn thêm document MongoDB tự động sinh _id đại diện cho document sở liệu MongoDB • Collection – Là nhóm nhiều document MongoDB Collection hiểu bảng tương ứng sở liệu RDBMS (Relational Database Management System) Collection nằm sở liệu Các collection định nghĩa cột, hàng hay kiểu liệu trước • Cursor – Đây trỏ đến tập kết truy vấn Máy khách lặp qua trỏ để lấy kết • Database – Nơi chứa Collection, giống với sở liệu RDMS chúng chứa bảng Mỗi Database có tập tin riêng lưu trữ nhớ vật lý Một chủ MongoDB chứa nhiều Database • Document – Một ghi thuộc Collection gọi Document Các Document bao gồm trường tên giá trị • Field – Là cặp name – value document Một document có khơng nhiều trường Các trường giống cột sở liệu quan hệ • JSON – Viết tắt JavaScript Object Notation Con người đọc định dạng văn đơn giản thể cho liệu có cấu trúc Hiện JSON hỗ trợ nhiều ngôn ngữ lập trình 19 • Index – Là cấu trúc liệu đặc biệt, dùng để chứa phần nhỏ tập liệu cách dễ dàng để quét Chỉ số lưu trữ giá trị fields cụ thể thiết lập fields, xếp theo giá trị fields Index hỗ trợ độ phân tích cách hiệu truy vấn Nếu khơng có mục, MongoDB phải quét tất documents collection để chọn document phù hợp với câu truy vấn Q trình qt khơng hiệu yêu cầu MongoDB để xử lý khối lượng lớn liệu MongoDB hoạt động nào? • MongoDB hoạt động tiến trình ngầm service, mở cổng (Cổng mặc định 27017) để lắng nghe yêu cầu truy vấn, thao tác từ ứng dụng gửi vào sau tiến hành xử lý • Mỗi ghi MongoDB tự động gắn thêm field có tên “_id” thuộc kiểu liệu ObjectId mà quy định để xác định tính ghi so với ghi khác, phục vụ thao tác tìm kiếm truy vấn thơng tin sau Trường liệu “_id” tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao • Mỗi có truy vấn liệu, ghi cache (ghi đệm) lên nhớ Ram, để phục vụ lượt truy vấn sau diễn nhanh mà không cần phải đọc từ ổ cứng • Khi có u cầu thêm/sửa/xóa ghi, để đảm bảo hiệu suất ứng dụng mặc định MongoDB chưa cập nhật xuống ổ cứng ngay, mà sau 60 giây MongoDB thực ghi toàn liệu thay đổi từ RAM xuống ổ cứng Kết quả: Hiểu chất, cấu trúc, cú pháp MongoDB, sử dụng MongoDB để quản lý sở liệu 20 2.2.5 Hiểu rõ Observable Promise Nội dung: Phân biệt Observable Promise: Promise: • Promise chế giúp thực tác vụ bất đồng không rơi vào callback hell hay pyramid of doom • Khi sử dụng Promise thường co tham số hàm : o Resolve : hàm gọi promise hoàn thành o Reject : hàm gõi promise lỗi • Chúng ta truy xuất kết trả promise phương thức “.then()” • Khi Promise khởi tạo có ba trạng thái sau: o Fulfilled : hành động xử lý xong thành công o Reject : hành động xử lý xong thất bại o Pending: hành động chờ xử lý bị từ chối o Trong hai trạng thái Reject Fulfilled ta gọi Settled, tức xử lý xong Async/await promise: • Async/await promise, giúp viết code bất địng mà trơng đồng • Để sử dụng , ta khai báo hàm với từ khóa async, bên hàm dùng await Khi sử dụng await, chương trình thực lệnh có await trước thực tiếp lệnh sau ,mặc dù bất đồng • Kết trả async fucntion promise Promise.all() Promise.race() Khi muồn thực thi lấy kết nhiều Promise lúc • Promise All() : hương thức nhận vào mảng promises resolve tất promises hoàn thành, reject số chúng xảy lỗi 21 • Promise.Race(): Phương thức nhận vào mảng promises resolve/reject số promises hồn thành/xảy lỗi Observable: • Observable sử dụng để giải tác vụ bất đồng bộ, cò thể nhận nhiều giá trị ngắt quảng tương lai, cịn Promise trả vế lần • Áp dụng observable tương tự mơ hình Producer Consumer • Có thể tạo Observable bắng “new Observable()” hoăc tạo bang hàm from, of, interval, • Để thực Observable, ta cần phần gọi hàm “.subscribe()” • loại giá trị thực thi Observable là: o “next” : gửi giá trị number, string, object… o “error”: gửi javascript error or excecption o “complete”: khơng gửi giá trị • “Subcription “ : “.subcribe” observable, return object “Subcription”, Subcription cung cấp phương thực quan trọng “.unsubscribe()” để hủy bỏ Observable Ngoài cịn phần quan trọng Operator, ví dụ cụ thề => tham khảo documents : https://rxjs.dev/guide/observable Kết quả: Hiểu phân biệt rõ Obdservable Promise, biết nên sử dụng cho phù hợp 2.3 Lịch trình làm việc Mức Tuần Cơng việc - Người hướng dẫn Tìm hiểu cơng ty, cách Phạm Minh Chí độ Nhận xét hồn người thành hướng dẫn 100 tổ chức công ty 22 - Làm quen với công cụ làm việc công ty - Học cách trao đổi, làm việc qua email - Tìm hiểu Npm Phạm Minh Chí 90 Yarn - Tìm hiểu NodeJS NestJS - Clone source NestJS chạy thử - Tự tạo source NestJS upload lên GitHub - Cài đặt luyện tập với GitHub - Tìm hiểu MongoDB Phạm Minh Chí 100 - Tìm hiểu PostMan - Tìm hiểu Docker - Tạo API với GET, - Kết nối cấu hình NestJS Phạm Minh Chí 100 PUSH, POST, DELETE test với Postman MongoDB - Tạo API để insert, update, delete data vào MongoDB - Tạo API login : Restful API, check Middleware, sử dụng JWT để tạo token, cấu hình format cho data 23 - Tạo API để lấy thông tin user với JWT - Tải ảnh avatar cho user Phạm Minh Chí 100 Phạm Minh Chí 100 Phạm Minh Chí 100 - Tạo chức resize ảnh - Tìm hiểu sử dụng Swagger để viết API documents - Viết document để cài đặt môi trường : cài đặt docker, cài đặt data, cấu hình chạy source, - Hiểu Observable Promise - Tải API pagination - Tạo API để xác nhận email thông qua mã code - Tạo API quên mật - Tạo API đổi mật - Tổng hợp output kiểm tra - Tham gia dự án trực tiếp - Tham gia lấy yêu cầu khách 7,8,9,10, 11,12 hàng - Tham gia hợp meeting team - Nghiên cứu tài liệu dự án 24 - Hoàn thành tài liệu thực tập - Tham gia họp review, đánh giá trình thực tập chức thực 25 Chi tiết project 3.1 Tổng quan: Tên Project: LiveBreeders Mơ Tả: LiveBreeder trị chơi điện tử phát triển hợp tác Indigames Vitalify Á Châu Trò chơi phát triển tàng Unity, dự kiến phát hành tảng livestream trò chơi điện tử lớn Nhật Bản – Mirrativ Trò chơi lấy ý tưởng từ tựa game Pokemon, bạn sở hữu quái vật Chimera đưa chúng tranh chiến với quái vật Chimera khác Vai trò: Backend Developer 3.2 Thơng tin Bối cảnh: Trong tương lai, trình độ hóa học lồi người phát triển vượt bậc, điều phải trả giá cạn kiệt lượng toàn cầu Nhân loại tiến hành nhiều nghiên cứu khác để tìm kiếm lượng Việc nghiên cứu gặp nhiều khó khăn phần lớn hợp chất phát triển thiếu lượng trở nên sử dụng Sự ô nhiễm mặt đất nghiên cứu khơng hợp lý, vơ tội vạ buộc lồi người phải sống lịng đất Sau đó, nhân loại suy giảm Trong hoàn cảnh khủng hoảng vậy, lượng mới, gọi "cảm xúc", phát Người ta cho lượng tạo từ cảm xúc người cứu lồi người Có lượng thu từ người, thăng trầm cảm xúc loài người giảm bớt, tính đa dạng sống lâu dài, chán nản lịng đất Do đó, dạng sống đặc biệt, gọi "Chimera", tạo để hỗ trợ cho người Năng lượng đảm bảo trì hành động trận tranh chiến Chimera cảm xúc người xem trở nên căng thẳng 26 Khi tồn Chimera trở nên phổ biến người, nhiều người coi Chimera người bạn đời chiến đấu, cấp hạng Chimera định lượng lượng cảm xúc Chimera tạo Hình ảnh dự án: 27 3.3 Thực Các thành viên team internship LiveBreeders: - Lê Trần Bảo Lộc - Phan Thanh Tiến - Lê Thành Tâm Các team leaders dẫn dắt dự án: - Anh Phạm Minh Chí - Anh Đồn Hồng Đức - Anh Nguyễn Tấn Thành - Anh Phạm Văn Tuấn (Cố vấn Unity) Các thành viên team server: - Anh Huỳnh Minh Quý - Anh Cù Công Cẩn - Anh Lê Duy Thành (Cố vấn) Bridge Project Manager: - Anh Trần Minh Tuấn - Chị Trần Thị Hoàng Yến (Cố vấn) - Anh Koyo Yoshida (Cố vấn) Project Manager: - Anh Takuwa Tokuichiro Cùng đội ngũ phát triển Unity công ty Indigames 28 3.4 Kế hoạch 3.4.1 Giai đoạn training - Dự án chưa start, nhiên chốt công nghệ để phát triển - Các thành viên internship có hội nghiên cứu công nghệ liên quan đến dự án - Làm project nhỏ demo cho leaders 3.4.2 Giai đoạn Research (Pre-Alpha) - BPM dịch tài liệu khởi tạo dự án đặc tả, requirement,… - Đọc, tìm hiểu tài liệu - Viết docs để hỗ trợ cho trình phát triển như: API Doc, DB Doc, … - Viết câu hỏi, thắc mắc khách hàng, sau gửi cho BPM dịch chuyển tiếp cho khách hàng - Team Server khởi tạo, config server - Team Lead chuẩn bị startkit cho dự án, custom lại startkit theo công nghệ yêu cầu 3.4.3 Giai đoạn tổng kết: - Đánh giá kết thực tập - Hoàn thành tài liệu thực tập 29 TÀI LIỆU THAM KHẢO Javascript, NodeJS, NestJS https://developer.mozilla.org/en-US/docs/Web/JavaScript https://www.typescriptlang.org/docs/ https://nodejs.org/en/docs/ https://nestjs.com/ Docker https://www.docker.com/ Postman https://www.postman.com/ MongoDB https://www.mongodb.com/ 30 ... Asia tạo điều kiện cho em có hội thực tập công ty Chỉ thời gian ngắn, nhờ dẫn nhiệt tình anh chị team, nhóm thực tập chúng em tiếp thu kiến thức quan trọng xây dựng Back-end Chân thành cảm ơn anh... tăng cường thực tế ảo Face Emotion – Xác định cảm xúc, Zombie Doors AR Hình ảnh minh họa: Ứng dụng Face Emotion Ứng dụng Zombie Doors AR Nội dung thực tập Trong khoảng thời gian thực tập cơng ty,... meeting team - Nghiên cứu tài liệu dự án 24 - Hoàn thành tài liệu thực tập - Tham gia họp review, đánh giá trình thực tập chức thực 25 Chi tiết project 3.1 Tổng quan: Tên Project: LiveBreeders

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

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan