Tải bản đầy đủ (.docx) (18 trang)

báo cáo thực tập FULL STACK SOFTWARE ENGINEER

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 (318.35 KB, 18 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
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
FULL-STACK SOFTWARE ENGINEER

Công ty thực tập:
KMS Technology Việt Nam – UpStar Labs
Người phụ trách:
NGUYỄN XUÂN HÙNG
Thực tập sinh:
NGUYỄN THÀNH LUÂN - 16520703 Tp.

Hồ Chí Minh, 07/2020

-Trang 2-


Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 3-

LỜI MỞ ĐẦU
Trong thời đại hiện nay, Công nghệ thơng tin nói chung và ngành Cơng nghệ phần mềm
nói riêng vẫn ln là một trong những nhân tố thiết yếu và đóng vai trị quan trọng nhất trong
sự phát triển chung của cả xã hội.
Công nghệ Web - hay hiểu đơn giản là các trang web giao tiếp với người dùng ngày càng
đa dạng và phong phú, phục vụ cho mọi nhu cầu của con người từ việc bán hàng, cung cấp
kiến thức, thông tin liên lạc… đã đặt ra một vấn đề chung chính là hình thức và chất lượng!
Làm thế nào để cân bằng được 2 yếu tố chính yếu nói trên và tăng tính trải nghiệm của người


dùng chính là bài tốn mà bất kì một đội ngũ phát triển website nào cũng cần phải suy nghĩ
đau đầu!
Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến
thức đã học trên lớp và học hỏi thêm những kinh nghiệm trong môi trường làm việc thực tế,
cũng như muốn được tự trải nghiệm bản thân trong việc tham gia phát triển các sản phẩm của
ngành Cơng nghệ phần mềm. Vì vậy, em đã quyết định chọn KMS Technology Việt Nam –
UpStar Labs với vị trí Full-stack Software Engineer Intern là nơi để thực hiện được dự
định này!

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN


-Trang 4-

LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn tới Công ty KMS Technology Việt Nam – UpStar Labs đã tạo
điều kiện cho em có cơ hội thực tập trong dịp này!
Đặc biệt gửi lời cảm ơn đến anh Nguyễn Xuân Hùng, là người đã trực tiếp hướng dẫn,
giúp đỡ em một cách tận tình, người đã sắp xếp và giao những task với mức độ phù hợp với
trình độ của bản thân em, cùng những kiến thức, chia sẻ kinh nghiệm bổ ích cho q trình
thực tập!
Cảm ơn các anh chị trong bộ phận Marketing của team Katalon (UpStar Labs) đã cho em
hiểu được cách mà một Website Landing Page vận hành như thế nào, cách phối hợp giữa
những thành phần tạo nên nó: Design, Content, Developer, và Marketing ra làm sao, trong
một môi trường làm việc thân thiện, thoải mái.
Em cũng xin gửi lời cảm ơn tới các Thầy Cô trong Khoa Công nghệ phần mềm đã hỗ trợ,
tạo điều kiện để em làm bài báo cáo này.
Một lần nữa, em xin chân thành cảm ơn!

Tp.Hồ Chí Minh, ngày 27 tháng 07 năm 2020

Sinh viên thực hiện
Nguyễn Thành Luân

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 5-


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

......................., ngày ............. tháng ………. năm 2020
Người nhận xét
(Ký và ghi rõ họ tên)


Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 6-

MỤC LỤC

LỜI MỞ ĐẦU ..................................................................................................................... 3
LỜI CẢM ƠN...................................................................................................................... 4
NHẬN XÉT CỦA KHOA................................................................................................... 5
Phần I – GIỚI THIỆU CÔNG TY THỰC TẬP.................................................................. 7
1. TỔNG QUAN VỀ KMS TECHNOLOGY............................................................... 7 2.
TỔNG QUAN VỀ UPSTAR LABS ......................................................................... 9 3.
WEBSITE KATALON STUDIO............................................................................ 11
Phần II – NỘI DUNG VÀ QUÁ TRÌNH THỰC TẬP ..................................................... 13
Phần III – KẾT QUẢ THỰC TẬP.................................................................................... 18 1.
TỰ ĐÁNH GIÁ....................................................................................................... 18 2. NHÌN
NHẬN VỀ THUẬN LỢI VÀ KHĨ KHĂN ................................................ 18

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN


-Trang 7-

Phần I – GIỚI THIỆU CÔNG TY THỰC TẬP
1. TỔNG QUAN VỀ KMS TECHNOLOGY

Hình 1.1. Logo của cơng ty KMS Technoly

KMS Technology là nhà cung cấp hàng đầu về phát triển phần mềm, dịch vụ kiểm thử và
tư vấn các giải pháp phần mềm. Có trụ sở tại Atlanta, GA với các văn phòng ở California và
Việt Nam, KMS đẩy mạnh việc cung cấp các giải pháp phần mềm sáng tạo thông qua
phương pháp lấy khách hàng làm trung tâm, tập trung và phát triển các giá trị kinh doanh cốt
lõi.
Các số liệu thống kê:
- Hơn 11 năm vận hành trong lĩnh vực
- Phục vụ trên 80 công ty khách hàng

- Hiện tại có hơn 1000 nhân viên
- Với tổng doanh số 4.7 tỷ dollars các sản phẩm được bán ra và tiết kiệm được 139 triệu
dollars cho các giải pháp phần mềm.
Khách hàng của KMS:
- Các công ty cổ phần

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN


-Trang 8-

KMS là chuyên gia trong việc hoạt động với các cơng ty cổ phần. Vì cũng là một nhà
đầu tư, KMS biết cách cung cấp các dịch vụ làm tăng giá trị đầu tư và giá trị sản phẩm
bán ra của những cơng ty đó.
- Các cơng ty phần mềm
Phát triển phầm mềm và đảm bảo chất lượng là tiêu chỉ của KMS, cung cấp các tài
nguyên cần thiết để cải tiến thời gian đưa sản phẩm ra thị trường, cải thiện chất lượng
và giảm chi phí chung.
Lĩnh vực kinh doanh:
- Software Outsourcing

Hình 1.2. Logo KMS Technoly

- Startup Incubator

Hình 1.3. Logo UpStar Labs

- Solution Provider

Hình 1.4. Logo KMS Solutions


Điểm khác biệt của KMS:
KMS vừa là một “Doanh nhân”, vừa là một “Nhà vận hành” và một “Nhà đầu tư”. Điều
này làm cho KMS khác biệt so với các nhà cung cấp dịch vụ và giải pháp phần mềm khác.
KMS biết chính xác những điều làm nên một nền tảng dẫn đầu trong ngành công nghiệp

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 9-


này bởi lẽ chính KMS đã tự mình làm ra điều đó với vườn ươm UpStar Labs cùng những sản
phẩm của riêng mình.

Hình 1.5. Các sản phẩm của KMS Technology

Thơng tin khác:
- Website: />- Location:
➢ Việt Nam:
• Cộng Hồ
• Tản Viên
• UpStar Labs
• Đà Nẵng
➢ US:
• Atlanta

2. TỔNG QUAN VỀ UPSTAR LABS
UpStars Labs là startup đầu tư và ươm mầm khởi nghiệp của KMS Technology. Được
hướng dẫn bởi một đội ngũ lãnh đạo toàn cầu, UpStar Labs xây dựng các sản phẩm phần
mềm nổi tiếng thế giới bằng việc sử dụng nguồn nhân lực chất lượng cao ở Việt Nam và đầu
tư vào các cơng ty khởi nghiệp có ảnh hưởng lớn ở Mỹ và Việt Nam.

Các số liệu thống kê:
- Hơn 100 nhân viên
- 5 sản phẩm
- 6 danh mục đầu tư

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 10-

Các danh mục sản phẩm gồm có:
- QASymphony (2011) Nền tảng quản lý kiểm thử hàng đầu giúp đẩy nhanh quá trình tung


sản phẩm ra thị trường của team agile.
- Katalon (2015) Giải pháp toàn diện automation testing hỗ trợ Web, Mobile, và API,
cung cấp các giải pháp tích hợp CI/CD, test scheduling, reporting và monitoring. Kobiton (2016) Nền tảng kiểm thử trên thiết bị di động, cung cấp manual và automated
testing trên thiết bị thực.
- Sprynkl (2019) Ứng dụng giúp cải thiện các giá trị cốt lõi và nét đặc trưng của một team
- Grove (Coming soon)

Hình 1.6. Các sản phẩm của UpStar Labs

Các danh mục đầu tư:

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 11Hình 1.7. Các danh mục đầu tư của UpStar Labs

Thông tin khác:
- Website: />
3. WEBSITE KATALON STUDIO



Website: />Trang web chính thức của Katalon, một sản phẩm trong vườn ươm UpStar Labs của
KMS Technology. Bao gồm các trang landing page nhằm định hướng người dùng tới sản
phẩm, các trang Blog, Support, Forum và Company Info… Là sự kết hợp của tất cả các bộ
phận trong team Katalon, kể từ Product, Sales, Design, Content và Marketing, website
Katalon chính là “bộ mặt” của sản phẩm, mang trong mình tầm quan trọng và trọng trách cực
kì lớn lao khi là “trang mở đầu” trong một “cuốn sách” giao tiếp với khách hàng. Vậy nên
việc thay đổi về các thành phần giao diện, cải thiện hiệu suất, tăng trải nghiệm người dùng và
nâng cao hệ thống tracking giúp mang lại một cái nhìn tổng quan, để từ đó có những định
hướng phát triển sản phẩm hoàn thiện và phù hợp với nhu cầu người dùng luôn là công việc
hàng ngày của cả một đội ngũ phát triển sản phẩm nói riêng, và website Katalon nói riêng.

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 12-


Hình 1.8. Homepage của website Katalon

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 13-


Phần II – NỘI DUNG VÀ QUÁ TRÌNH THỰC TẬP
Thời gian thực tập: 13/04 đến 13/08 (4 tháng, đang diễn ra)
Hình thức thực tập: Partime (tối thiểu 20 tiếng 1 tuần)
Nội dung thực tập: Tham gia xây dựng và phát triển các tính năng, giao diện của website
Katalon bằng việc sử dụng Wordpress với ngơn ngữ lập trình PHP và MySQL database.
Đồng thời tiếp cận với hệ thống tracking của sản phẩm được hiện thực bằng NodeJS.
Nhật ký thực tập:
Thời gian


Nội dung công việc

Thực hiện và Kết quả đạt được

Tuần 1
(13/04
đến 19/4)

1st day on-boarding session

Được cấp máy tính riêng, được hướng dẫn
về tài khoản KMS và cách kết nối vào
mạng nội bộ thơng qua VPN của cơng ty.

Tìm hiểu, build server
local cho 2 project
katalon
websites (Wordpress)
và katalon-backendnodejs

• Tải IDE, applications, tools… hỗ trợ cho
cơng việc về máy tính cơng ty.
• Tìm hiểu được cấu trúc của một project
Wordpress với custom theme
• Tìm hiểu được cách dựng một server
dưới local thơng qua XAMPP
• Nắm được cơ chế hoạt động của
certificate SSL để dùng cho giao thức
HTTPS trong một project wordpress

• Biết được cách import database, config
các file có liên quan để dựng local cho
website Katalon.
• Config được project tracking sử dụng
NodeJS để run dưới local và test thử
một vài API thông qua Postman

Security Awareness Course

Nắm được các chính sách về bảo mật thông
tin của công ty

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 14-

Tuần 2
và 3
(20/04

Tham gia các buổi
Daily meeting

Bước đầu hiểu khái quát được các công
việc cần làm của bộ phận Marketing, cũng
như vai trò và nhiệm vụ của bản thân trong
team.


đến
03/05)


Tuần 4 –
giữa
tuần 8
(04/05
đến
03/06)

Viết email template để gửi
cho khách hàng theo
design

Biết được cách viết một email template sử
dụng HTML và những hạn chế trong việc
hiển thị email trên Outlook.

Hiện thực trang
Selenium Landing Page

• Biết cách tạo ra một trang Landing Page
trong wordpress theme và thêm vào
wordpress admin.
• Làm quen với các công cụ hỗ trợ trong
việc phát triển website như InVision,
Trello, Slack, TinyPNG, S3 Browser
(Amazon Web Service)
• Nắm được các bước thực hiện trước khi
deploy một website (test local -> test
staging -> build production)
• Nâng cao khả năng CSS và responsive. •

Hạn chế: Vì là task đầu tiên phối hợp với
mọi người nên là vẫn chưa chủ động được
thời gian cũng như bám sát vào tiến độ dẫn
tới bị trễ hạn 2 ngày.

Cập nhật trang Partner

Hiểu được một số vấn đề gặp phải trong
việc hiển thị ở các browser khác nhau (đặc
biệt là Internet Explorer) và cách khắc
phục

Optimize website Katalon

Task lớn nhất và được xem là quan trọng
nhất trong thời gian thực tập
• Sử dụng Google Pagespeed Insight để
audit và tiếp cận các cách có thể
optimize website. Nhận ra vấn đề lớn
nhất nằm ở việc render-blocking
resources, compressed images và
content quá nhiều, dẫn tới DOM Tree
lớn.
• Các giải pháp tiềm năng:
✓ Eliminate render-blocking resources
✓ Compress images
✓ Remove unused CSS
✓ Cache and cookie

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN

-Trang 15-


✓ Minify JS/CSS file
✓ Reduce server response time
• Tìm hiểu được các plugin hỗ trợ optimize
website. Tiến hành cài đặt và so sánh
điểm hiệu suất chênh lệch, đồng thời
kiểm tra về các lỗi xảy ra sau khi cài
plugin.
• Sử dụng máy ảo Linux để cài đặt Apache
ModPagespeed với mục đích là kiểm tra
kết quả giả lập việc optimize lên trực
tiếp server. Apply các filter của tool và
report chi tiết sự thay đổi về hiệu suất
của website.
• Sử dụng tool optimize-image của anh
Nguyễn Xuân Hùng để nén một lượng
lớn image assets của websites.
Viết tool crawl data
Pagespeed Insight sử
dụng NodeJS

• Mục tiêu là để giám sát các biến động về
điểm số của Pagespeed Insight cho
website Katatalon để tìm kiếm các giải
pháp thích hợp
• Sử dụng cronjob scheduler để lập lịch và
highchartjs để visualize data.


Cập nhật giao diện trang
Search

Nâng cao khả năng đọc hiểu và maitain
code.

Fix lỗi thumbnail bị vỡ trên
trang
testautomationresources.com

Nắm được các bước để fix một vấn đề liên
quan tới theme.

Tà Hine trip với mọi người
trong team.
Giữa
tuần 8 –
tuần
12
(04/06
đến
05/07)

Update version package
backend NodeJS vì vấn
đề security

Sử dụng Postman và list API có sẵn của anh
Nguyễn Xuân Hùng để test kết quả trả về
sau khi cập nhật version của package. Vì

liên quan tới hệ thống tracking của cả sản
phẩm nên cần test rất kĩ.

Katalon Studio Roadmap

• Hiện thực trang Katalon Studio
Roadmap

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 16-


• Viết plugin Manage Data Roadmap để có
thể tuỳ chỉnh dữ liệu của roadmap trong
wordpress admin. Hiểu được cấu trúc
code của một plugin trong wordpress.
• Hiểu được cơ chế backup server bằng
cách sử dụng nhiều server khác nhau,
khi một server bị down thì truy cập vào
website vẫn khơng bị ảnh hưởng. Tuy
nhiên tồn đọng một vấn đề đó là việc
đồng bộ dữ liệu nếu như dữ liệu đó
được lưu ở server chứ không phải trong
database (plugin Manage Data Roadmap
là một ví dụ điển hình).

Tuần 13
– hiện
tại
(06/07

đến hiện
tại)

Cập nhật trang Sign Up

Tuy chỉ thay đổi một ít trong design nhưng
do sử dụng chung template tổng của cả
theme, cần hết sức cảnh giác để tránh xảy
ra những lỗi không lường trước được.
Nâng cao được khả năng đọc hiểu và
maintain, reuse code.

Tìm kiếm lỗi của
plugin wordpressdefender

Hiểu được cách tracking một lỗi của plugin.

Fix lỗi hiển thị của icon

Hiểu thêm được các vấn đề trong việc hiển
thị website trên IE browser và cách khắc
phục.

Blog post revamp – Cập
nhật tồn bộ trang blog

• Thay đổi tồn bộ giao diện của trang
Blog với fixed data (vì chưa quen với hàm
ajax load dữ liệu từ database nên sẽ viết
trước với dữ liệu tự set cố định)

• Thay đổi giao diện và xử lí của header
navigation
• Thêm chức năng Set Popular cho một bài
post trong wordpress admin. Tìm hiểu
về Wordpress Action Hook.
• Viết mới và chỉnh sửa các function load
dữ liệu từ database phù hợp với design

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 17-


mới sử dụng wpquery và ajax-load
more.
• Viết thêm các tuỳ chọn trong Theme
Settings để thay đổi các thông số liên
quan của trang blog. Hiểu thêm được
cấu trúc của một custom theme trong
wordpress.
• Tạo phân trang và xử lí cho list blogs. •
Viết CSS và hiệu chỉnh responsive trên
nhiều thiết bị. Sử dụng VNC Viewer để có
thể test trên MacOS.
• Sửa lại script xử lí scroll event cho các
nội dung được yêu cầu.
• Nắm rõ được cơ chế render của
javascript để từ đó khắc phục vấn đề của
box-shadow.
• Hạn chế:
• Chưa thống nhất về bộ font của design

và font hiển thị trên web dẫn tới khó
khăn trong việc code theo design
• Sự khác biệt hiển thị giữa Chrome và
Safari
• Miss-comunication dẫn tới việc hiểu lầm
về design idea.
Thêm Customer
Success Story của
Rekencentra

Tăng khả năng đọc hiểu code và sử dụng lại
template có sẵn.

Fix lỗi trang Webinars
bị gắn link sai

Sau khi có kinh nghiệm từ task Blog post
revamp, ngay lập tức xác định được vị trí
gây ra vấn đề và cách giải quyết

Viết tool export user từ
MySQL

Bước đầu suy nghĩ tới các vấn đề đặt ra về
hiệu suất khi query đến một lượng lớn dữ
liệu ở database

Làm quen với hệ
thống tracking của
Katalon


[Private]

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 18-


Phần III – KẾT QUẢ THỰC TẬP
1. TỰ ĐÁNH GIÁ
Trong thời gian thực tập ở cơng ty, em đã tích luỹ được rất nhiều kiến thức liên quan tới
việc phát triển và vận hành một Website landing page. Bổ sung thêm cho bản thân các kĩ
năng xử lí về front-end, tự bản thân tạo dựng được các plugin và tool theo yêu cầu về phía
back-end, và kết hợp qua lại giữa 2 phần trên để hoàn thành phần lớn các task được giao
trong thời gian quy định, cùng với đó là việc hình thành thói quen kiểm thử một cách kĩ càng
và chịu trách nhiệm cho phần công việc của mình làm trước khi deploy một trang web.
Ngồi ra, với sự giúp đỡ tận tình của anh Nguyễn Xuân Hùng cùng mọi người trong team
Katalon, em đã biết thêm được rất nhiều những khái niệm mới, những kinh nghiệm mới,
những chia sẻ, hiểu biết liên quan tới công việc và đời sống mà chỉ có thể nhận được khi làm
việc ở công ty.
Tự nhận xét bản thân như sau:
- Về kỷ luật
➢ Đi làm theo đúng lịch, luôn luôn xin phép và báo cáo đầy đủ khi có việc đột xuất
khiến khơng thể có mặt tại cơng ty.
- Về chun mơn
➢ Hồn thành task với mức độ tốt nhất có thể của bản thân trong thời gian cho phép
➢ Luôn tham khảo ý kiến của người phụ trách trước khi tự mình giải quyết một vấn
đề
➢ Phối hợp với mọi người trong team một cách hoà đồng và vui vẻ. Tuy lúc đầu có
hơi ngại ngần trong việc giao tiếp dẫn tới nhiều lúc thắc mắc nhưng vẫn khó có
thể giải bày rõ ràng được.


2. NHÌN NHẬN VỀ THUẬN LỢI VÀ KHĨ KHĂN
Thuận lợi:
- Được thực tập tại một mơi trường làm việc năng động, linh hoạt và chuyên nghiệp với
mục tiêu và định hướng rõ ràng trong suốt thời gian thực tập.

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN
-Trang 19-

- Được hướng dẫn bởi một người phụ trách tài giỏi, nhiệt tình và cực kì có tâm, ln tạo
mọi điều kiện, tính tốn việc assign task như thế nào để mang lại được nhiều kiến
thức và kinh nghiệm cho bản thân của em. Được tiếp xúc, nói chuyện và tham gia các


chuyến đi chơi của team giúp nâng cao các mối quan hệ của bản thân và kĩ năng giao
tiếp.
- Môi trường làm việc thoải mái, vui vẻ, có cà phê và bánh ngọt miễn phí, đầy đủ tiện
nghi.
Khó khăn:
- Khó khăn lớn nhất vẫn là nằm ở kiến thức chuyên môn và kinh nghiệm trong ngành.
Nhiều task lẽ ra cực kì đơn giản nhưng lại tốn khá nhiều thời gian để tìm hướng giải
quyết. Vì vậy việc tự trau dồi thêm cho bản thân là điều vô cùng cần thiết.
- Vấn đề giao tiếp với team về nội dung công việc cũng như trong giờ giải lao cũng cần
được cải thiện.

Người phụ trách: NGUYỄN XUÂN HÙNG Thực tập sinh: NGUYỄN THÀNH LUÂN




×