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

Báo Cáo Thực Tập Lập Trình Back-End Nodejs.docx

21 10 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 Lập Trình Back-End Nodejs
Người hướng dẫn Phan Tiến Lào, Người phụ trách
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 Khoa học Máy tính, Công Nghệ Thông Tin
Thể loại Báo cáo thực tập
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 1,24 MB

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

Nội dung

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 LẬP TRÌNH BACK END NODEJS Công ty thực tập Công ty cổ phần ITR VN Người phụ trách Hồ Khắc Minh Thực tập sinh Phan Tiến Lào[.]

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

LỜI MỞ ĐẦU

Lập trình back-end là một trong những lựa chọn nghề nghiệp xu hướng, phổ biến với cácbạn học khoa học máy tính hoặc kỹ thuật phần mềm, công nghệ thông tin nói chung Lập trìnhviên back-end được coi là một vị trí việc làm nhiều triển vọng do nhu cầu tuyển dụng được dựđoán sẽ tiếp tục tăng lên trong tương lai

Ngày nay, chỉ tính riêng hướng nghề nghiệp trở thành lập trình viên thì bạn cũng đã córất nhiều lựa chọn, chẳng hạn như phân theo định hướng sản phẩm thì có lập trình viên web, lậptrình viên game, lập trình viên phần mềm, ứng dụng; hoặc theo ngôn ngữ lập trình thì có lậptrình Java, PHP, Lập trình back-end là một mảng khá rộng và nhiều triển vọng nhưng songsong với đó cũng sẽ có những áp lực nhất định, đòi hỏi nhiều ở sự sáng tạo

Lập trình phần mềm là xu hướng nên có thể có nhiều cơ hội tuyển dụng và thăng tiếnhơn Vì lý do này, em quyết định chọn lập trình back-end làm định hướng cho việc học tập củamình

Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng nhưmuốn được tham gia làm back-end trong một môi trường chuyên nghiệp, em có dự định là sẽthực tập trong kì này Vì vậy, em quyết định chọn ITR VN - một môi trường lý tưởng, hiện đại,chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này

Trang 3

Đặc biệt cảm ơn anh Hồ Khắc Minh đã training Back-end, 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; cảm ơn anh Hoàng Khang, đã support anh Minh, hỗ trợ giải đáp nhiều câu hỏi của

chúng em khi anh Minh đang rất bận để có thể làm ra một sản phẩm 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ềukiện em làm bài báo cáo này

<Phan Tiến Lào>

<TpHCM, 1/10/2022>

Trang 5

NHẬN XÉT CỦA KHOA

Trang 6

MỤC LỤC

Chương 1: Giới thiệu công ty 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 8

2.1 Các công cụ làm việc và structure dự án của công ty 8 2.2 Tìm hiểu ngôn ngữ javascript 9

1 Giới thiệu về các project 17

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

1 Giới thiệu công ty ITR VN

ITR là người bạn đồng hành của các startup, công ty và nhà sản xuất trong hành trìnhbiến những ý tưởng sáng tạo thành hiện thực

Trang 7

Xây dựng một sản phẩm sáng tạo có thể là một thách thức vì nó liên quan đến mộtloạt các quy trình phát triển và quản lý Được hỗ trợ với nhiều năm kinh nghiệmtrong ngành công nghiệp ICT, ITR biết cách giúp khách hàng thúc đẩy các quy trìnhnày để cung cấp sản phẩm của họ cho thế giới ở mức chất lượng cao.

2 Sản phẩm của công ty

ITR VN là công ty đồng hành với những startup đến từ Silicon Valley Với độingũ các lập trình viên có tính cạnh tranh toàn cầu từ nhiều mảng khác nhau nhưSoftware, Filmware, Hardware, AI, … Công ty luôn xây dựng các dự án lớn và quantrọng về mảng sức khỏe (MedTech and Digital Health) bao gồm cả phát triển phầncứng, phát triển hệ thống nhúng, ứng dụng di động, giao diện người dùng và AI

Nhờ những thành tựu từ những sản phẩm thành công, ITR VN liên kết đượcthương hiệu lớn trên toàn thế giới về chăm sóc sức khỏe như Biotricity Ngoài racông ty cũng sở hữu các sản phẩm dự án thành công khác nhau được sử dụng rôngrãi trên thế giới

Trang 8

Chương 2: Nội dung thực tập

Đợt thực tập nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện lập trìnhback-end, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp.Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường pháttriển phần mềm chuyên nghiệ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ủacô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 tynhư thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng slack trong côngviệc…

Được giới thiệu bản thân trước nhiều phòng ban khác nhau trong công ty

Kết quả : Hiểu thêm về công ty ITR VN, 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áchnhiệm hơn

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

1

2

2.1 Các công cụ làm việc và structure dự án của công ty

Thời gian : 4 ngày

Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.

Trong thời gian này, mentor đã hướng dẫn thực tập sinh tìm hiểu về các công cụ

sẽ giúp ích cho trong công việc sau này

Được mentor giới thiệu tới quy trình và cách sắp xếp structure của dự án ở công

ty, mentor giải thích rõ ràng từng thành phần và cách hoạt dộng của chúng

Trang 9

Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên và code bài toán mà

mentor đưa ra với structure được mentor giới thiệu

Kết quả : Lập trình sử dụng các công cụ miễn phí, làm quen và áp dụng structure của

công ty

2.2 Tìm hiểu ngôn ngữ javascript

Thời gian : 5 ngày

Nội dung : Được training về ngôn ngữ javascript từ cơ bản đến nâng cao.

- Các kiểu dữ liệu trong javascript

Các kiến thức cơ bản ủa javascript, dựa trên document của javascript mentor chỉdẫn các phần cốt lõi và quan trọng nhất của javascript

- Life Cycle :

Học luồng chạy của một file javascript cơ bản

Thực hiện :

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Kết quả :

- Nắm được kiến thức cốt lõi của javascript

- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩn, dễ đọc, dễ hiểu

2.3 Event Loop

Thời gian : 1 tuần

Nội dung: Các kiến thức nâng cao của javascript.

- Asynchronous.

Năm được các khái niệm về Asynchronous và Synchronous, nắm được điểm mạn

và điểm yếu của từng cái và cách hoạt động của nó

Ngoài ra, trainer còn cung cấp cho thực tập sinh những ví dụ thực tế để thực tậpsinh có thể dễ dàng hình dung hơn

Trang 10

Nắm rõ cách hoạt động của promise.

Thực hiện :

- Tham gia đầy đủ các buổi training

- Làm các bài tập thực hành

- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm

- Viết file markdown để lưu lại những kiến thức cần nhớ

Kết quả :

- Hiểu được khái niệm Event Loop trong javascript

2.4 Timestamp

Thời gian : 1 tuần

Nội dung : Giới thiệu về cách áp dụng và cách hoạt động của timestamp và các thư

Thực hiện :

- Tham gia đầy đủ các buổi training

- Hoàn thiện bài tập mà anh mentor giao và trình bày trong buổi họp

- Viết file markdown để lưu lại những kiến thức cần nhớ

Kết quả:

- Tiếp thu được kinh nghiệm trong việc viết API là phải thận trọng, kĩ càng

Trang 11

2.5 Lodash

Thời gian : 1 tuần

Nội dung : Giới thiệu về thư viện Lodash và cách sử dụng để xử lí dữ liệu.

- Lodash:

Là một thư viện dùng để xử lí hầu hết các kiểu dữ liệu trong javascript, đặc biệt làmảng và object

- Giới thiệu về các hàm thông dụng của thư viện

Được mentor hướng dẫn và giới thiệu kỹ càng về các hàm của thư viện lodash.Hiểu được cách dùng lodash trong các trường hợp xử lí dữ liệu

Thực hiện :

- Xử lí dữ liệu trong database

- Làm bài tập xử lí mảng, object

- Tham gia đầy đủ các buổi training và các bài tập được giao

- Viết file markdown để lưu lại những kiến thức cần nhớ

Kết quả:

- Thông hiểu cấu trúc của dữ liệu, cách xử lí dữ liệu, cách trả về dữ liệu để phù hợp cho phíafront-end

2.6 Expressjs

Thời gian : 1 tuần

Nội dung : Giới thiệu về framework Expressjs và cách sử dụng để xây dựng API.

- Expressjs:

Là một khung ứng dụng web back-end để xây dựng các API RESTful với Node.js

- Hướng dẫn xây dựng cấu trúc một project back-end

Được mentor hướng dẫn sử dụng router để xây dựng cấu trúc file trong mộtproject back-end để dễ xây dựng và phát triển

- Giải thích các thành phần của API

- Hướng dẫn sử dụng Insomnia để test API

Thực hiện :

- Xử lí dữ liệu trong database

- Làm bài tập viết API

Trang 12

- Tham gia đầy đủ các buổi training và các bài tập được giao.

- Viết file markdown để lưu lại những kiến thức cần nhớ

Kết quả:

- Tiếp thu được nhiều kinh nghiệm trong việc viết API

2.7 GraphQL

Thời gian : 1 tuần

Nội dung : Giới thiệu về GraphQL và cách sử dụng để load data.

- GraphQL:

GraphQL là ngôn ngữ thao tác và truy vấn dữ liệu nguồn mở cho API, cung cấpcho client 1 cách thức dễ dàng để request chính xác những gì họ cần, giúp việcphát triển API dễ dàng hơn theo thời gian

- Mô tả tổ chức của GraphQL

API GraphQL được tổ chức theo types và fields, truy cập toàn bộ dữ liệu của bạn

từ một endpoint duy nhất

Thực hiện :

- Tạo một server để sử dụng GraphQL

- Tham gia đầy đủ các buổi training và các bài tập được giao

- Viết file markdown để lưu lại những kiến thức cần nhớ

Kết quả:

- Học được cách sử dụng GraphQL

- Hiểu được cách tăng hiệu năng, tốc độ cho một server

2.8 MongoDB

Thời gian : 1 tuần

Nội dung : Giới thiệu về database NoSql MongoDB và thư viện mongoose.

- MongoDB:

MongoDB là một database hướng tài liệu (document), một dạng NoSQL database

Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thíchứng với các tài liệu như JSON có một schema rất linh hoạt

- Mongoose:

Trang 13

Mongoose là một framework JavaScript được sử dụng trong ứng dụng Node.js vớidatabase là MongoDB.

- Giải thích về cấu trúc dữ liệu trong MongoDB

- Các câu lệnh query dữ liệu thường được sử dụng trong MongoDB

- Tạo đường dẫn với các document với nhau:

Mongoose hỗ trợ một phương thức để join-like là populate()

Thực hiện :

- Tạo một server để sử dụng MongoDB

- Tham gia đầy đủ các buổi training và các bài tập được giao

- Viết file markdown để lưu lại những kiến thức cần nhớ

Kết quả:

- Thông hiểu về các database NoSql và cách sử dụng

- Hiểu được bản chất của populate() trong Mongoose

2.9 Redis

Thời gian : 1 tuần

Nội dung : Giới thiệu về database Redis.

- Giải thích về cấu trúc dữ liệu trong Redis

- Các câu lệnh query dữ liệu thường được sử dụng trong Redis

- Giải thích các trường hợp sử dụng redis và điểm yếu của nó

Redis thường được sử dụng làm bộ nhớ đệm tại vì truy cập dữ liệu Redis rấtnhanh Nếu bị sập nguồn hoặc mất điện thì dữ liệu trong redis sẽ mất hết

Thực hiện :

- Tạo một server để sử dụng Redis

- Luyện tập các câu lệnh thông dụng trong redis

- Tham gia đầy đủ các buổi training và các bài tập được giao

- Viết file markdown để lưu lại những kiến thức cần nhớ

Trang 14

- Luyện tập viết unit test cho các bài tập cũ được giao

- Tham gia đầy đủ các buổi training

- Viết file markdown để lưu lại những kiến thức cần nhớ

Kết quả:

- Việc viết test không phải chỉ dành cho tester mà đó cũng là nghĩa vụ của một dev Viết test

sẽ làm cho code của mình chính xác hơn

3 Thực hiện project

Sau khi được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ bản

về các framework và database Mentor đã yêu cầu thực tập sinh làm một project nhỏ chomọi kiến thức được học và mỗi cuối tuần sẽ review project đó

Chi tiết đồ án sẽ được nói ở phần sau

4 Lịch làm việc

Tuần Công việc Người hướng dẫn

Mức độ hoàn thành

Nhận xét của người hướng dẫn

1

- Tìm hiểu về công ty, cách tổ chức của côngty

- Làm quen với các công cụ làm việc trong công ty

- Học cách trao đổi, làm việc qua slack

Anh Hồ Khắc

Trang 15

- Tìm hiểu ngôn ngữ lập trình javascript

Trang 16

Chương 3: Chi tiết về project

1 Giới thiệu về các project

Với mỗi kiến thức được học, anh mentor yêu cầu thực tập sinh phải làm một project nhỏ

đã áp dụng các kiến thức đó

MongoDB

Viết Schema cho các collection trong MongoDB

Viết các function sử dụng các query của mongoose: create, update, delete, populate, …

Tự viết function populate() bằng ngôn ngữ javascript

Trang 17

Dựa vào những kiến thức đã học, viết schema cho một API theo đề bài tập đã cho

Kết quả:

Trang 18

Project URL shortener sử dụng Expressjs, MongoDB, Redis

Màn hình đăng nhập:

Màn hình đăng ký:

Trang 19

Màn hình chính:

Trang 20

1 Thực hiện

- Phan Tiến Lào

Và sự giúp đỡ tận tình của anh mentor ITR VN

2 Kế hoạch

- Hoàn thành việc tạo ra một short-link

- Hoàn thành các chức năng authenticaton

- Tạo session cho người đăng nhập

- Đếm số lần click

- Lưu dữ liệu vào database

Kết quả :

- Tất cả đã được thực hiện

Bài tập javascript: Có 12 đồng xu, trong đó có 1 xu giả nặng hơn hoặc nhẹ hơn xu bình

thường, viết code một cái cân để tìm ra đồng xu đó trong 3 lần cân

Kết quả:

Trang 21

1 là xu thật, 0 là xu giả nhẹ hơn, 2 là xu giả nặng hơn, trả về true là nặng hơn, false là nhẹ hơn

Viết test cho bài tập javascript

Kết quả:

Trang 22

TÀI LIỆU THAM KHẢO

Trang 23

TỔNG KẾT

Như vậy, chỉ trong vòng hai tháng ngắn ngủi, em đã kịp hoàn thành khoá training end NodeJs Do thời gian có hạn nên vẫn chưa học được nhiều như mong đợi Trong tương lai

back-em sẽ cố gắng để có thể trở thành một developer back-end NodeJS

Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm mentor ITR VN Cảm ơn thầy côphụ trách đã giúp em hoàn thành bài báo cáo này

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

w