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
Trang 1TRƯỜ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
Trang 2LỜ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 luôn là nhân tố đóng vai trò quan trọng trong quá 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 luôn 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
Trang 3LỜ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
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
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
Trang 6CHƯƠ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
Trang 71.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, quá trình thành lập và phát triển, quy trình làm việc Ngoà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, 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á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
Trang 8HÌ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
Trang 9- 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 toá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
Trang 10- 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ụ “clickhouse-client”
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ả
Trang 11HÌ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
Trang 12HÌnh 3.1 Demo công cụ RocketBI
2 Quá 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
- Ngoà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:
Trang 13- Trong quá 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
Trang 14HÌnh 3.3 Danh sách Sync Data Job
HÌnh 3.4 Lịch sử sync Data
Trang 15HÌnh 3.5 Hình ảnh tạo Data Source
HÌnh 3.6 Tạo job sync data
Trang 16CHƯƠ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, yê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
- Hoà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
Trang 17- Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh (G6): 8/10
Goa
l
Mục tiêu môn học
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
Trang 18TÀI LIỆU THAM KHẢO
[Theo định dạng APA]
1 Scala Documentation (n.d.) Retrieved July 4, 2023, from https://docs.scala-lang.org/
2 ClickHouse Docs (2022, March 15) Retrieved July 4, 2023, from
https://clickhouse.com/docs/en/intro
3 Apache Kafka documentation (n.d.) Retrieved July 4, 2023, from
https://kafka.apache.org/documentation/
4 Finatra Documentation (n.d.) Retrieved July 4, 2023, from
https://twitter.github.io/finatra/
5 GitLab Documentation (n.d.) Retrieved July 4, 2023, from
https://docs.gitlab.com/
6 Meta developer documentation (n.d.) Retrieved July 4, 2023, from
https://developers.facebook.com/docs/
7 Documentation |Tiktok API for Busines (n.d.) Retrieved July 4, 2023, from
https://ads.tiktok.com/marketing_api/docs
8 Google Ads API Documentation (n.d.) Retrieved July 4, 2023, from
https://developers.google.com/google-ads/api/docs/start