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

Báo cáo thực tập back end developer

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 (1.13 MB, 18 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
Back-End Developer

Công ty thực tập:

TNHH DataInsider

Người phụ trách:

Vi Chí Thiện

Thực tập sinh:

Lương Hữu Vương

TP. Hồ Chí Minh,4 tháng 7 năm 2023
1


LỜI MỞ ĐẦU
Trong cuộc cách mạng công nghiệp 4.0, công nghệ thơng tin nói chung và ngành
Cơng nghệ phần mềm nói riêng ln là nhân tố đóng vai trị quan trọng trong q trình
phát triển của xã hội.
Cơng nghệ Web, hay công nghệ sản xuất các trang web đã phục vụ hầu hết các nhu
cầu của con người từ bán hàng, cung cấp kiến thức đến thông tin liên lạc, ... Hiện nay
đã có đến hơn 1.5 tỷ trang web, nhưng nhu cầu tạo ra những trang web mới vẫn chưa
có dấu hiệu giảm.
Do đó, một trang web muốn được nhiều người sử dụng phải đáp ứng được yếu tố hình


thức và nội dung. Làm thế nào để sản phẩm tạo ra đạt chất lượng cao ở hai yếu tố trên
ln là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. Để
thử thách bản thân trong ngành công nghiệp web, em đã lựa chọn back-end developer
là định hướng cho việc học cũng như nghề nghiệp trong tương lai.
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 và có được trải nghiệm trong mơi trường thực tế, em đã quyết định tham
gia vào công ty Data Insider – một môi trường lý tưởng và chuyên nghiệp để thực hiện
dự định.

2


LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn đến công ty TNHH Data Insider đã tạo điều kiện cho
em cơ hội được thực tập tại công ty. Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫn
nhiệt tình của anh Vi Chí Thiện, em đã tiếp thu những kiến thức quan trọng để có thể
tham gia một dự án thực tế.
Chân thành cảm ơn các anh chị trong team đã bỏ ra nhiều thời gian, công sức để
hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khi làm quen môi trường mới cũng
như trong việc tiếp cận kiến thức cơng nghệ, kỹ năng lập trình và tư duy sản phẩm để
có thể thực hiện tốt dự án cá nhân và dự án thực tế trong thời gian qua.
Em 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áo cáo này.

TP. HCM, ngày 04 tháng 07 năm 2023

Lương Hữu Vương

3



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

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

4


MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

6

1.1. Giới thiệu công ty THNN DataInsider.............................................................6
1.2. Sản phẩm công ty............................................................................................6
1.3. Lịch làm việc khi thực tập tại công ty..............................................................7
CHƯƠNG 2: NỘI DUNG THỰC TẬP

7


2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty....................................7
2.2. Nghiên cứu kỹ thuật.........................................................................................7
2.2.1. Tìm hiểu và làm quen với hệ điều hành Linux (Ubuntu)...........................7
2.2.2. Tìm hiểu và làm quen cơng cụ quản lý mã nguồn GitLab.........................8
2.2.3. Nguyên cứu Scala2 và web-framework Finatra........................................8
2.2.4. Tìm hiểu ClickHouse................................................................................9
2.2.5. Tìm hiêu Kafka.......................................................................................10
2.3. Tham gia dự án thực tế..................................................................................10
CHƯƠNG 3: TỔNG KẾT

15

3.1. Điểm mạnh....................................................................................................15
3.2. Điểm yếu.......................................................................................................15
3.3. Chuẩn đạt được..............................................................................................15

5


CHƯƠNG 1: GIỚI THIỆU CƠNG TY THỰC TẬP
1.1.Giới thiệu cơng ty THNN DataInsider

Hình 1.1. Logo cơng ty Data Insider
DataInsider là một nền tảng quản lý và phân tích dữ liệu cung cấp sức mạnh xử lý liền
mạch. Được phát triển bởi một đội ngũ trực tiếp làm việc với dữ liệu, bạn sẽ tìm thấy
các cơng cụ quản lý dữ liệu mạnh mẽ và đầy đủ để xây dựng giải pháp, bao gồm công
cụ Data Ingestion, Data Lake, Data Warehouse, và nhiều công cụ phức tạp khác để
giúp bạn phát triển giải pháp phù hợp trong thời gian ngắn nhất.


1.2.Sản phẩm cơng ty
Rocket.BI: là cơng cụ miễn phí, mã nguồn mở và dựa trên web, được thiết kế đặc biệt
cho các cơ sở dữ liệu phân tích. Nó cho phép cả nhà phân tích dữ liệu và người dùng
kinh doanh dễ dàng tích hợp các nguồn dữ liệu khác nhau, thực hiện phân tích dữ liệu
nâng cao, linh hoạt và nhanh chóng. Với trình chỉnh sửa dễ sử dụng, có thể tạo báo
cáo cá nhân, xây dựng bảng điều khiển kinh doanh tương tác và tạo ra những thông tin
hữu ích cho doanh nghiệp.
Rocket.BI cũng cho phép cộng tác bằng cách làm việc cùng với những người khác
trong tổ chức.

6


1.3.Lịch làm việc khi thực tập tại công ty
Em tham gia làm việc tại công ty bắt đầu từ 01/09/2022 tới 01/01/2023, các ngày làm
việc trong tuần là từ thứ 2 đến thứ 6. Công việc hằng ngày bắt đầu từ lúc 9 giờ đến 6
giờ. Thời gian nghỉ trưa khoảng 2 tiếng.
Bắt đầu mỗi ngày làm việc em sẽ báo cáo tiến độ công việc trong ngày hôm trước, đặt
câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đặt mục tiêu cho công việc hôm
nay.
Mỗi tuần sẽ họp tiến độ tuần 1 lần vào sáng thứ 6, mọi người sẽ cùng họp và bàn bạc
về các vấn đề đã giải quyết, tồn đọng, bài học, giải pháp và mục tiêu cho tuần tiếp
theo.

CHƯƠNG 2: NỘI DUNG THỰC TẬP
2.1.Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
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, q trình thành lập và phát triển, quy trình làm việc. Ngồi ra,
thực tập sinh cịn được giới thiệu về văn hóa làm việc trong công ty như thời gian đi
làm, các quy định trong công việc, …

Kết quả: hiểu thêm về công ty TNHH DataInsider, 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.2.Nghiên cứu kỹ thuật
1. Tìm hiểu và làm quen với hệ điều hành Linux (Ubuntu)
 Giới thiệu Ubuntu
- Ubuntu là một hệ điều hành máy tính miễn phí và mã nguồn mở được phát
triển bởi Canonical Ltd.
- Ubuntu được xây dựng trên nền tảng Linux và được thiết kế để cung cấp
một trải nghiệm đơn giản và dễ sử dụng cho người dùng.
- Ubuntu có khả năng hoạt động liên tục trong thời gian dài mà không cần
khởi động lại, giúp giảm thiểu thời gian gián đoạn và giúp ứng dụng hoạt
động liên tục.

7


HÌnh 2.1 Logo hệ điều hành Ubuntu
 Kết quả:
- Cài đặt và làm quen với các công cụ nêu trên.
- Hiểu cách các ứng dụng này sử dụng trong công việc

2. Tìm hiểu và làm quen cơng cụ quản lý mã nguồn GitLab
 Giới thiệu GitLab
- GitLab là một nền tảng quản lý mã nguồn và DevOps dựa trên web, cung
cấp cho các nhà phát triển một nơi để quản lý mã nguồn, kiểm soát phiên
bản, triển khai và tự động hóa quy trình phát triển phần mềm.
- GitLab cung cấp nhiều tính năng hỗ trợ cho DevOps, bao gồm triển khai tự
động, kiểm thử, phân phối và giám sát, giúp các nhà phát triển tích hợp quy

trình phát triển phần mềm một cách linh hoạt và hiệu quả.
- GitLab cung cấp các tính năng CI/CD tích hợp sẵn, cho phép các nhà phát
triển tạo và quản lý các bản dựng tự động và triển khai phần mềm vào môi
trường sản xuất.

HÌnh 2.2 Logo quản lý mã nguồn GitLab
 Kết quả:
- Tạo tài khoảng GitLab
- Tạo repo đầu tiền của bản thân

3. Nguyên cứu Scala2 và web-framework Finatra
 Giới thiệu về Scala2
8


-

-

Scala là một ngơn ngữ lập trình đa năng, hỗ trợ lập trình hướng đối tượng
và lập trình hàm, được phát triển bởi Martin Odersky và nhóm của ơng tại
Đại học Thụy Sĩ EPFL. Scala được thiết kế để chạy trên nền tảng của Java
Virtual Machine (JVM) và có thể sử dụng các thư viện Java có sẵn.
Scala kết hợp các tính năng cấp cao của lập trình hàm như các hàm bậc cao,
hàm đệ quy, và tính tốn lười biếng với sự linh hoạt của lập trình hướng đối
tượng. Scala cũng cho phép phát triển ứng dụng đa luồng và phân tán.

HÌnh 2.3 Logo ngơn ngữ lập trình Scala
 Giới thiệu web-framework Finatra
- Finatra là một web framework nhỏ gọn, dựa trên ngơn ngữ lập trình Scala

và được phát triển bởi Twitter. Nó được thiết kế để xử lý các ứng dụng web
và API với tốc độ cao, đáp ứng và có khả năng mở rộng tốt.
- Finatra được xây dựng trên nền tảng của các thư viện mã nguồn mở
TwitterServer, Finagle và Jackson.

HÌnh 2.4 Logo web-framework Finatra
 Kết quả:
- Hiểu và có thể sử dụng cơng nghệ.
- Xây dựng API cho ứng dụng minh họa.

4. Tìm hiểu ClickHouse
 Giới thiệu ClickHouse

9


-

-

-

ClickHouse là một hệ thống cơ sở dữ liệu phân tán mã nguồn mở, được
thiết kế để xử lý lượng dữ liệu lớn với tốc độ nhanh và khả năng mở rộng
tốt.
ClickHouse có thể xử lý hàng tỉ hàng trăm triệu dòng dữ liệu trong thời
gian thực, giúp các nhà phát triển và doanh nghiệp có thể phân tích và đưa
ra quyết định dựa trên dữ liệu nhanh chóng và hiệu quả.
ClickHouse cung cấp nhiều tính năng hữu ích cho việc xử lý dữ liệu lớn.
ClickHouse có tốc độ truy vấn nhanh và khả năng xử lý dữ liệu lớn, cho

phép các nhà phát triển và doanh nghiệp phân tích dữ liệu nhanh chóng và
hiệu quả.

HÌnh 2.5 Logo Database ClickHouse

 Kêt quả:
- Làm quen được cách sử dùng ClickHouse thông cơng cụ “clickhouseclient”

5. Tìm hiêu Kafka
 Giới thiệu Kafka
- Kafka là một hệ thống xử lý thông tin phân tán mã nguồn mở, được thiết kế
để xử lý lượng dữ liệu lớn với tốc độ cao và khả năng mở rộng tốt. Nó được
phát triển bởi Apache Software Foundation và được sử dụng rộng rãi trong
các ứng dụng xử lý dữ liệu thời gian thực.
- Kafka sử dụng Publish-Subscribe Model để xử lý các thông tin dữ liệu và
cho phép các ứng dụng truyền tải các thông tin dữ liệu đến các ứng dụng
khác một cách linh hoạt.
- Kafka có khả năng xử lý lượng dữ liệu lớn với tốc độ cao, cho phép các ứng
dụng truyền tải dữ liệu một cách nhanh chóng và hiệu quả.

10


HÌnh 2.6 Logo Kafka
 Kết quả:
- Cài đặt thành cơng cơng nghệ trên thiết bị cá nhân
- Tích hợp cơng nghê vào ứng dụng cá nhân.

2.3.Tham gia dự án thực tế
Tham gia dự án open-source RocketBI của công ty (link)

1. Giới thiệu dự án:
-

-

RocketBI là một sản phẩm thông minh kinh doanh trên web, dành riêng cho
các cơ sở dữ liệu phân tích. Đây là sản phẩm chủ đạo của bộ cơng cụ
DataInsider.
RocketBI là cơng cụ dùng để phân tích, trực quan hóa và có thể chia sẽ và hợp
tác trưc tiếp với người khác một cách dễ dàng.

11


HÌnh 3.1 Demo cơng cụ RocketBI

2. Q trình thực hiện:
-

-

-

Trong suốt thời gian tham gia dự án RocketBI kéo dài 3 tháng tại cơng
ty.Em đảm nhiêm vai bào bảo trì và phát triển chức năng "Data Ingestion.
Data Ingestion là tính năng cho phép người dùng có để chuyển dữ liệu từ hệ
thống của họ hoặc bên thứ 3 mà người dùng sử dụng dịch vụ nắm dữ data
của họ. Người dùng có thể chuyển dữ liệu của họ vào hệ thống theo lịch.
Các công viêc thực hiện:
Mở rộng chức năng này cho các nền tảng quảng cáo như Facebook Ads,

Google Ads và TikTok Ads.
Xây dựng tính năng "target" tập khách hàng "Audience" từ dữ liệu nội bộ
lên các nền nền tẳng quảng cáo như Facebook Ads, Google Ads và TikTok
Ads.
Xây dưng các API cho chức năng đăng ký, kiểm tra và gia hạn "Licence"
cho các chức năng yêu cầu trả phí.
Bảo trì chức năng lấy dữ liệu từ GoogleSheet.
Ngồi ra cơng viêc trên em cịn viết Testcase cho các chức năng khác.
3. Thuận lợi:
Được mọi người trong team giúp đỡ, cũng như hỗ trợ tìm cách giải quyết
phù hợp.
4. Khó khăn:
12


-

Trong q trình thực hiện cơng việc với các nền tảng quảng cáo. Găp rất
nhiều khó khăn trong viêc xác định yêu cầu cầu của chức năng này. Khi dựa
vào các nền tảng đã được hỗ trợ trước đó thì hầu hết các chức nằng này là
các Database nên việc truy xuất và xác đinh Schema đều được Database
cung cấp.
- Đối với các nền tảng quảng cáo thì các trường dữ liệu được truy xuất thì
phải bao gồm một vài điều kiện thì mới có thể truy xuất được. Vì vây mà
viêc xác định Schema trở nên phức tạp.
- Các hệ thống quảng cáo thường có rất nhiều qui đinh vè giới hạn sử dụng
cho các API. Nên viêc tổ chức code cho từng nền tảng trở nên khó khăn.
2.3.5 Hình ảnh chức năng Data Ingestion

HÌnh 3.2 Danh sách Data Source


13


HÌnh 3.3 Danh sách Sync Data Job

HÌnh 3.4 Lịch sử sync Data

14


HÌnh 3.5 Hình ảnh tạo Data Source

HÌnh 3.6 Tạo job sync data

15


CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại công ty TNHH DataInsider đã giúp em cải thiện bản thân
rất nhiều trong quy trình làm việc thực tế, tác phong của người kỹ sư phần mềm. Được
làm việc tại đây, em đã học thêm được kỹ năng mềm sử dụng mail, cách tổ chức kết
hoach làm việc, làm việc nhóm, giao tiếp với đồng nghiệp,…
Chỉ trong thời gian hạn chế, em đã hoàn thành dự án cá nhân trong quá trình training
với các tính năng, u cầu đặt ra ban đầu.
Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng hạn và đạt
chất lượng tốt.

1. Điểm mạnh
- Hồn thành cơng viêc được giao trong thời gian yêu cầu.

- Chủ động tra cứu thông tin khi làm viêc
- Khi gặp khó khăn khơng thể giải đáp khi làm viêc thì khơng ngần ngại nhờ sự
-

giúp đở của các thành viên trong team.
Hỗ trợ đồng nghiệp khi làm việc.
Làm việc nhóm hiệu quả.
Thân thiện, hịa đồng với đồng nghiệp.
Đọc hiểu các tài liệu tiếng anh.

2. Điểm yếu
-

Khả năng trình bày ý kiến vẫn chưa tốt.
Quản lý commit code với Git khồng hợp lý gây khó khăn cho người review.
Quản lý công việc hằng ngày chưa hiệu quả.

3. Chuẩn đạt được
-

Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp
(G1): 9/10
Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống
trong dự án
(G2): 9/10
Nắm được quy trình, phương pháp và cơng nghệ phát triển sản phẩm phần
mềm tại
doanh nghiệp (G3): 9/10
Có khả năng tìm hiểu vấn đề, mơ hình hóa vấn đề và tham gia giải quyết vấn đề
(G4):

10/10
Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày (G5):
9/10
16


-

Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh (G6): 8/10

Goa Mục tiêu môn học
l
G1

Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp

G2

Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống
trong dự án

G3

Nắm được quy trình, phương pháp và cơng nghệ phát triển sản phẩm phần
mềm tại doanh nghiệp

G4

Có khả năng tìm hiểu vấn đề, mơ hình hóa vấn đề và tham gia giải quyết vấn
đề


G5

Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày

G6

Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh

17


TÀI LIỆU THAM KHẢO
[Theo định dạng APA]
1.
2.
3.
4.
5.
6.
7.
8.

Scala Documentation. (n.d.). Retrieved July 4, 2023, from />ClickHouse Docs. (2022, March 15). Retrieved July 4, 2023, from
/>Apache Kafka documentation. (n.d.). Retrieved July 4, 2023, from
/>Finatra Documentation. (n.d.). Retrieved July 4, 2023, from
/>GitLab Documentation. (n.d.). Retrieved July 4, 2023, from
/>Meta developer documentation. (n.d.). Retrieved July 4, 2023, from
/>Documentation |Tiktok API for Busines. (n.d.). Retrieved July 4, 2023, from
/>Google Ads API Documentation. (n.d.). Retrieved July 4, 2023, from

/>
18



×