Tải bản đầy đủ (.pdf) (13 trang)

Báo cáo thực tập lập trình WEBSITE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (446.12 KB, 13 trang )

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 WEBSITE

Cơng ty thực tập
Người phụ trách
Thực tập sinh

: ROCKSHIP
: Lê Văn Thuận
: Trần Ngọc Hải

TP. Hồ Chí Minh, tháng 07 năm 2020

Lê Văn Thuận

Trần Ngọc Hải


LỜI MỞ ĐẦU
Trong thời đại công nghệ ngày càng phát triển, Internet trở nên thông dụng hơn đối với
mỗi người. Các website, ứng dụng web ngày càng được các lập trình viên quan tâm nhiều hơn.
Những website kinh doanh, thương mại hay hình thức quảng cáo trên các website ngày càng
trở nên phổ biến. Chúng xuất hiện hằng ngày trong cuộc sống của mỗi chúng ta.
Với việc các website ngày càng lớn mạnh dẫn đến sự ra đời của các ứng dụng web. Ứng
dụng web trở nên phổ biến nhờ vào sự có mặt ở bất cứ nơi đâu của một chương trình. Khả
năng cập nhật và bảo trì ứng dụng web mà không phải phân phối và cài đặt phần mềm trên


hàng ngàn máy tính là lý do chính cho sự phổ biến của nó.
Sau ba năm học tập ở trường, do muốn có thêm kinh nghiệm trong thực tế, cũng như muốn
tham gia làm ra các ứng dụng web trong môi trường chuyên nghiệp đáp ứng được các yêu cầu
thực tế đề ra, em đã có ý định tìm kiếm cơng ty chun về phát triển các ứng dụng web, và
Rockship – một môi trường lý tưởng để em có thể thực hiện các dự định trên.

Lê Văn Thuận

Trần Ngọc Hải


LỜI CẢM ƠN
Trước tiên với tình cảm chân thành nhất, cho phép em được bày tỏ lòng biết ơn đến tất cả
các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt quá trình học tập và
nghiên cứu đề tài này.
Em xin chân thành cảm ơn Ban lãnh đạo Công ty TNHH Rockship đã tạo điều kiện thuận
lợi cho em được tìm hiều thực tiễn trong suốt q trình thực tập tại cơng ty.
Chỉ trong một thời gian ngắn, nhờ sự hướng dẫn nhiệt tình của anh chị, em đã học hỏi thêm
được rất nhiều kiến thức quan trọng trên con đường trở thành một web developer chuyên
nghiệp. Em xin gửi lời cảm ơn đến các anh chị trong công ty đã không ngại bỏ thời gian, công
sức hướng dẫn em từ chuyên môn đến việc thích nghi với mơi trường làm việc thực tế, từ đó
hồn thành tốt đợt thực tập.
Đặc biệt, em xin cảm ơn anh Thuận, người đã hỗ trợ em nắm vững những kiến thức cần có
của một developer chuyên nghiệp, cũng như giúp đỡ nhiệt tình những lúc em gặp khó khăn
trong q trình làm việc.
Cuối cùng, em xin gửi đến quý thầy cô ở Khoa Công nghệ phần mềm – Trường ĐH Công
nghệ Thông tin đã truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học
tập tại trường. Nhờ có những lời hướng dẫn, dạy bảo của các thầy cơ đã góp phần đề tài nghiên
cứu của em mới có thể hồn thiện tốt đẹp.
Em xin chân thành cảm ơn!

Trần Ngọc Hải
TpHCM, ngày 23 tháng 7 năm 2020

Lê Văn Thuận

Trần Ngọc Hải


NHẬN XÉT CỦA KHOA
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................

...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................

Lê Văn Thuận

Trần Ngọc Hải


1

MỤC LỤC
MỤC LỤC .................................................................................................................... 1
Chương 1: Giới thiệu sơ lược về công ty thực tập ...................................................... 2
1. Giới thiệu công ty TNHH Rockship........................................................................... 2
2. Sản phẩm của công ty ................................................................................................. 2
Chương 2: Nội dung thực tập ...................................................................................... 3
1. Tìm hiểu công ty và các kỹ năng cơ bản của công ty: .............................................. 3
2. Nghiên cứu kỹ thuật: ................................................................................................... 3
2.1. Các cơng cụ làm việc:.................................................................................... 3
2.2. Tìm hiểu về Javascript: .................................................................................. 3
2.3. Tìm hiểu về NodeJS: ..................................................................................... 4
2.4. Tìm hiểu về Amazon DynamoDB:................................................................. 5
3. Lịch làm việc ............................................................................................................... 6
Chương 3: Chi tiết về project thực hiện trong quá trình thực tập ............................ 7
1. Giới thiệu về project .................................................................................................... 7
2. Thực hiện ..................................................................................................................... 7

3. Quá trình thực hiện ...................................................................................................... 7
TÀI LIỆU THAM KHẢO ........................................................................................... 8
TỔNG KẾT .................................................................................................................. 9

Lê Văn Thuận

Trần Ngọc Hải


2

Chương 1: GIỚI THIỆU SƠ LƯỢC VỀ CÔNG TY THỰC TẬP

1. Giới thiệu công ty TNHH Rockship:
Rockship là công ty phần mềm trong lĩnh vực outsource được thành lập vào năm 2017. Là
một công ty tư vấn phần mềm hướng đến các giải pháp công nghệ mới và sáng tạo như:
Blockchain, Live streaming, Electronic Payment Integration.
Công ty hướng tới các khách hàng ở các thị trường như: Singapore, Hongkong, Japan và
Australia.
Rockship có trụ sở cơng ty đặt tại quận Bình Thạnh, TPHCM.
2. Sản phẩm của công ty:
Trọng tâm hướng tới của công ty là đề ra các giải pháp công nghệ hồn chỉnh cho các cơng
ty. Từ đó, xây dựng các ứng dụng công nghệ phù hợp đối với từng đối tượng cơng ty, giúp cải
thiện các chi phí quản trị, tăng năng suất và hiệu quả. Đồng thời tăng tính ổn định cho các giải
pháp cung cấp.
Tập trung vào các xu hướng ngơn ngữ lập trình như: Golang, Python, Javascript, Swift
(iOS), Java (Android).

Lê Văn Thuận


Trần Ngọc Hải


3

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 hồn thiện hơn trong q trình phát triển các
ứng dụng trên nền tảng web, đồng thời hồn thiện các kỹ năng mềm như làm việc nhóm, khả
năng giao tiếp, khả năng sắp xếp và phân chia cơng việc. 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ôi trường chun nghiệp.
1. Tìm hiểu cơng ty và các kỹ năng cơ bản của 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).
Thực tập sinh được chị quản lý nhân sự giới thiệu về cách thức làm việc trong công ty
như thời gian làm việc, các quy định cần phải tuân thủ, cách sử dụng email trong trao đổi công
việc…
Được người phụ trách giới thiệu về cơng việc, quy trình làm việc theo hệ thống của
cơng ty. Ngồi ra, người phụ trách cịn phổ biến thêm các thống nhất trong q trình làm việc.
Cách trao đổi thơng tin giữa các phịng ban trong công ty để công việc thuận tiện hơn.
Kết quả: Hiểu thêm về cơng ty Rockship, q 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ách
nhiệm hơn.
2. Nghiên cứu kỹ thuật:
2.1. Các cơng cụ làm việc:
Thời gian: 4 ngày.
Nội dung: Tìm hiểu về công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, thực tập sinh đã được người giám sát hướng dẫn tìm hiểu về các
cơng cụ giúp ích cho cơng việc sau này. Một số công cụ hỗ trợ như: Github – một dịch vụ

cung cấp kho lưu trữ mã nguồn Git dựa trên nền web cho các dự án phát triển phần mềm,
Visual Studio Code – một cơng cụ code editor rất hữu ích và phổ biển của lập trình viên,
Rocket.chat – cơng cụ giúp giao tiếp trong q trình làm việc nhóm.
Thực hiện: Thực hành sử dụng các công cụ đã nêu ở trên.
Kết quả: Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các cơng cụ với
nhau.
2.2.

Tìm hiểu về Javascript:

Thời gian: 5 ngày (1 tuần).
Nội dung: Tìm hiểu cơ bản đến nâng cao các kỹ thuật của javascript.
Lê Văn Thuận

Trần Ngọc Hải


4

- Con trỏ trong javascript:
Từ khóa this của javascript là một khái niệm cơ bản nhưng cũng thường gây sự
nhầm lẫn của ngôn ngữ này. Khi vào một dự án thực tế, sẽ thực sự khó để biết được
con trỏ (this) trỏ đi đâu. Việc chú ý đến bối cảnh (context) của con trỏ sẽ giúp hạn chế
các lỗi phát sinh trong lập trình.
- Closure function:
Hiểu đơn giản thì closure function là một hàm được tạo ra từ bên trong một hàm
khác, việc áp dụng closure trong một số trường hợp giúp code của bạn nhìn sẽ rõ ràng
và dễ quản lý hơn.
- Callback function:
Function trong javascript còn được coi là first-class objects, điều này có nghĩa

function là một object nên có thể sử dụng như các object bình thường.
Javascipt là một ngôn ngữ hướng điều kiện và bất đồng bộ nên đây là một kỹ thuật
rất quan trọng và được sử dụng rất nhiều trong lập trình javascript. Nói đơn giản thì
callback function là một function A được truyền vào một function B thông qua danh
sách tham số của B để thực thi các chức năng của hàm A.
- Anonymous function:
Anonymous function hay còn gọi là hàm ẩn danh, nó được tạo ra bằng cách sử dụng
tốn tử thay vì sử dụng cú pháp khai báo hàm thơng thường. Kỹ thuật này thật sự hữu
ích khi bạn cần tạo một function ngay lập tức hoặc thực hiện một callback function.
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 thành, kiểm tra các kiến thức đã được học.
Kết quả:
Bước đầu có thể đọc hiểu được project mà cơng ty đang thực hiện.
Tuy nhiên có một vài kỹ thuật chưa hoặc ít được tiếp xúc trong quá trình thực tập nên
chỉ dừng lại ở mức tìm hiểu và chưa đạt được tính ứng dụng cao để hiểu rõ hơn về vấn đề.
2.3.

Tìm hiểu về NodeJS:

Thời gian: 5 ngày (1 tuần).
Nội dung: Tìm hiểu đặc điểm, các kỹ thuật tối ưu của NodeJS.
-

Khái niệm của NodeJS:

Node.js là một nền tảng (platform) phát triển độc lập được xây dựng ở trên
Javascript Runtime của Chorme.
Node.js tạo ra được các ứng dụng có tốc độ xử lý nhanh, giải quyết các vấn đề
realtime nhờ cơ chế xử lý bất đồng bộ (non-blocking) dựa vào việc sử dụng ngôn ngữ

javascript.
Lê Văn Thuận

Trần Ngọc Hải


5

-

Framework Express:

Đây là một framework giành cho NodeJS, cung cấp rất nhiều tính năng mạnh mẽ
trên nền tảng web cũng như trên ứng dụng di động. Express hỗ trợ các phương thức
HTTP và midleware tạo ra một API mạnh mẽ và dễ sử dụng.
- Tìm hiểu cách xây dựng một server bằng NodeJS:
Đây là thời gian dành ra để hiểu hơn về các cách xây dựng một server cơ bản.
Tự thiết kế folder cho project demo thuần NodeJS, xây dựng các API để giao tiếp
giữ server với client.
Đọc các project hiện tại công ty đang xây dựng, giúp sinh viên cải thiện về khả năng
lập trình cũng như học được các thiết kế folder. Cách đặt tên biến, tên hàm sao cho có
ý nghĩ và ngắn gọn. Tạo được sự thống nhất cho quá trình làm việc sau này.
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 thành, kiểm tra các kiến thức đã được học.
Kết quả:
Bước đầu xây dựng được một website cơ bản bằng NodeJS.
Trong q trình thực tập chưa có project sử dụng Express nên chỉ dừng lại ở việc tìm
hiểu cơng nghệ.
2.4.


Tìm hiểu về Amazon DynamoDB:

Thời gian: 4 ngày.
Nội dung: Tìm hiểu về một kiểu cơ sở dữ liệu mới.
-

Khái niệm của DynamoDB.

DynamoDB là cơ sở dữ liệu NoSQL hỗ trợ mơ hình dữ liệu dạng key-value, đồng
thời cho phép nhà phát triển tạo ra các ứng dụng mà ông cần máy chủ. Đây là một cơ
sở dữ liệu bền vững, có tích hợp khả năng bảo mật, sao lưu khơi phục. DynamoDB có
thể xử lý hơn 10 nghìn tỷ u cầu trong 1 ngày và hỗ trợ tối đa 20 triệu yêu cầu trong
1 giây.
-

Tìm hiểu về DynamooseJS:

Đây là một thư viện mơ hình hóa đối tượng (Object Data Model – ODM) cho
DynamoDB và NodeJS. Giúp cho lập trình viên giữ được tư duy như với đối tượng của
Javascript thay vì sử dụng ngơn ngữ thuần túy viết riêng cho mỗi loại cơ sở dữ liệu.
Việc sử dụng ODM thường giúp giảm thiểu chi phí phát triển và bảo trì. Trừ khi
người lập trình đã q quen thuộc với ngơn ngữ truy vấn thuần túy hoặc hiệu suất là
trên hết. Vì sử dụng ODM nó phải thơng dịch mã để có thể truy vấn giữu đối tượng và
cơ sở dữ liệu.
Lê Văn Thuận

Trần Ngọc Hải



6

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 thành, kiểm tra các kiến thức đã được học.
Kết quả: Cơ bản thao tác được trên cơ sở dữ liệu DynamoDB.
3. Lịch làm việc:

Tuần

Cơng việc

2

-

Tìm hiểu về công ty, cách tổ
chức của công ty.
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.
Tìm hiểu Javascript.
Làm bài test.

3

-

Tìm hiểu NodeJS.

Làm bài test.

1

-

Cịn
lại

Mức độ
hồn
thành

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

Anh
Lê Văn
Thuận

Anh
Lê Văn
Thuận
Anh
Lê Văn
Thuận
Anh
Lê Văn
Thuận


Tìm hiểu các loại cơ sở dữ liệu
mà công ty đang sử dụng.
- Tìm hiểu về DynamoDB cho
project sắp được giao task.
- Làm bài test
- Nhận task và làm việc.
Anh Phương
- Gặp vấn đề trong quá trình làm
(PM)
sẽ tìm hiểu thêm.
-

4

Người
hướng dẫn

Lê Văn Thuận

Trần Ngọc Hải


7

Chương 3: CHI TIẾT VỀ PROJECT THỰC HIỆN TRONG QUÁ TRÌNH
THỰC TẬP
1. Giới thiệu về project:
Vì đây là project out-source nên các chức năng có trong project được xây dựng theo yêu
cầu của khách hàng. Project hướng đến việc kết nối người dùng và phòng khám, thuận tiện

cho người dùng trong việc đặt lịch khám cũng như tìm kiếm phịng khám nơi gần nhất. Quản
lý hồ sơ bệnh án, giúp đỡ phiền hà các thủ tục truyền thống trong quá trình thăm khám bệnh.
Lên lịch, nhắc người dùng khi có lịch khám bệnh.
2. Thực hiện:
Để hồn thành project thì team thực hiện ngồi em cịn có anh Tuấn.
Đồng thời là sự giúp đỡ nhiệt tình của anh leader là anh Thuận.
3. Q trình thực hiện:
Giai đoạn 1:
-

Thiết kế project.
Chọn cơng nghệ phù hợp

Kết quả: Server back–end sử dụng Node.js và cơ sở dữ liệu sử dụng là DynamoDB.
Giai đoạn 2:
-

Xây dựng các chức năng chính của ứng dụng.
Demo cho khách hàng.
Fix một số lỗi trong quá trình thực hiện.

Kết quả: Cơ bản khách hàng hài lịng với tiến độ cơng việc và trải nghiệm người dùng.
Giai đoạn 3:
-

Deloy ứng dụng lên host.
Fix một số lỗi trong quá trình thực hiện.
Xây dựng thêm các chức năng phát sinh theo yêu cầu của khách hàng.

Kết quả: Hoàn thành việc triển khai dự án, nhưng còn nhiều lỗi phát sinh vẫn chưa

được fix trong quá trình thực tập.

Lê Văn Thuận

Trần Ngọc Hải


8

TÀI LIỆU THAM KHẢO
Document Node JS:
/>Document Amazon DynamoDB:
/>Document DynamooseJS:
/>Document ExpressJS:
/>
Lê Văn Thuận

Trần Ngọc Hải


9

TỔNG KẾT
Như vậy trong khoảng thời gian ngắn khoảng ba tháng, em đã được trải nghiệm nhiều
điều mới trong môi trường làm việc cụ thể, cải thiện được các kỹ năng của bản thân. Nắm
được các kiến thức quan trọng của lập trình back-end. Đây sẽ là nền tảng kiến thức quan trọng
để em có thể phát triển hơn sau này để trở thành một lập trình viên tốt.
Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer Rockship đã tạo điều kiện
cho em được thực hành những kiến thức được học ở trường vào các dự án thực tế. Từ đó, em
có thể cải thiện các kỹ năng của bản thân cũng như hoàn thành tốt bài báo cáo này.


Lê Văn Thuận

Trần Ngọc Hải



×