báo cáo thực tập vị trí thực tập backend developer

36 0 0
Tài liệu đã được kiểm tra trùng lặp
báo cáo thực tập vị trí thực tập backend developer

Đ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ử thách bản thân trong việc phát triển hệ thống mới, đồng thời để tận dụng kỹ năng của bản thân trong lĩnh vực công nghệ phần mềm, kinh nghiệm trong lĩnh vực phát triển tính năng, e

Trang 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 Vị trí thực tập: Backend Developer

Công ty thực tập : Công ty cổ phần Con Cưng Người phụ trách : Nguyễn Vũ Trường Giang

Thực tập sinh : Trần Văn Thiệt

Thành phố Hồ Chí Minh, ngày 01 tháng 01 năm 2024

Trang 2

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 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

Ngành hàng dành riêng cho trẻ em là một lĩnh vực có tiềm năng lớn và đòi hỏi sự sáng tạo và đổi mới liên tục Các sản phẩm dành cho trẻ em không chỉ cần đảm bảo an toàn, chất lượng, giá cả hợp lý, mà còn phải phù hợp với nhu cầu, sở thích và xu hướng của trẻ em và phụ huynh Để đáp ứng được những yêu cầu này, cần có một hệ thống quản lý, phân phối và bán hàng hiệu quả, nhanh chóng và linh hoạt Đó là nơi mà vai trò của backend developer được thể hiện rõ nét Backend developer là người chịu trách nhiệm thiết kế, xây dựng và bảo trì các hệ thống phía sau giao diện người dùng, bao gồm cơ sở dữ liệu, máy chủ, API, v.v Backend developer cần có những kỹ năng lập trình, kiến thức về các ngôn ngữ, công nghệ, mô hình và thiết kế phần mềm, cũng như khả năng làm việc nhóm, giao tiếp và giải quyết vấn đề

Để thử thách bản thân trong việc phát triển hệ thống mới, đồng thời để tận dụng kỹ năng của bản thân trong lĩnh vực công nghệ phần mềm, kinh nghiệm trong lĩnh vực phát triển tính năng, em đã lựa chọn backend developer làm định hướng cho việc học cũng như nghề nghiệp trong tương lai

Với mong muốn được trải nghiệm và học hỏi thêm về công việc của một backend developer cũng như mong muốn áp dụng những kiến thức đã học, kinh nghiệm đã có,

em quyết định ứng tuyển thực tập vào vị trí Backend developer tại Công ty cổ phần

Con Cưng – một môi trường lớn và chuyên nghiệp để thực hiện dự định của bản thân

Trang 3

LỜI CẢM ƠN

Em xin trân trọng gửi lời cảm ơn đến Công ty cổ phần Con Cưng đã tạo điều kiện

cho em được thực tập tại công ty Trong thời gian thực tập vừa qua, nhờ sự chỉ dẫn nhiệt tình của anh Nguyễn Vũ Trọng Giang, em đã tiếp thu được nhiều kiến thức và nhiều kỹ năng quan trọng để tham gia những dự án thực tế của công ty và áp dụng vào việc học tại trường

Chân thành cảm ơn các anh chị trong bộ phận CNTT đã dành thời gian, công sức để hướng dẫn và hỗ trợ 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ệ về backend developer và tư duy sản phẩm để em có thể thực hiện tốt những dự án của công ty trong thời gian vừa qua

Em cũng xin cảm ơn quý giảng viên 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

Thành phố Hồ Chí Minh, ngày 01 tháng 01 năm 2024

Trang 5

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

1.1 Giới thiệu công ty cổ phần Con Cưng 10

1.2 Lịch làm việc khi thực tập tại công ty 11

CHƯƠNG 2 NỘI DUNG THỰC TẬP 13

2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 13

2.2 Nghiên cứu kỹ thuật 13

Trang 6

Hình 2.4: API chức năng nhóm tập dữ liệu 20

Hình 2.5: API chức năng tập dữ liệu 21

Hình 2.6: API chức năng bổ sung dữ liệu cho tập dữ liệu 21

Hình 2.7: API chức năng lọc trên tập dữ liệu trước khi chạy phân tập người dùng 21

Hình 2.8: API chức năng tạo mô hình tùy chỉnh và các phiên bản 22

Hình 2.9: API phân tập người dùng 22

Hình 2.10: Giao diện cấu hình nhóm tập dữ liệu 23

Hình 2.11: Giao diện cấu hình tập dữ liệu 23

Hình 2.12: Giao diện cấu hình tập dữ liệu – Thêm mới hoặc cập nhật tập dữ liệu với lượng data lớn 23

Hình 2.13: Giao diện cấu hình EventTracker – Thiết lập TrackingID 23

Hình 2.14: Giao diện quản trị Solution 23

Hình 2.15: Giao diện quản trị Solution – Thêm mới mô hình 24

Hình 2.16: Giao diện quản trị Solution – Chi tiết các phiên bản model 24

Hình 2.17: Giao diện quản trị phân tập người dùng bằng AWS Personalize 24

Hình 2.18: Giao diện quản trị phân tập người dùng – Thêm mới 24

Hình 2.19: Giao diện quản trị phân tập người dùng bằng lịch sử mua hàng (local) 25

Hình 2.20: Giao diện quản trị phân tập người dùng – Chi tiết quá trình chạy 25

Hình 2.21 Quy trình thực hiện phân tập người dùng bằng AWS Personalize 25

Hình 2.22: Đầu vào BatchSegmentJob 26

Hình 2.23: Đầu ra BatchSegmentJob 27

Hình 2.24: Transform để ánh xạ kết quả trả về với dữ liệu ở local 28

Hình 2.25: API chức năng các tham số nội dung động (placerholder) 28

Hình 2.26: API chức năng mẫu email 28

Trang 7

Hình 2.27: API chức năng gửi email 29

Hình 2.28: API chức năng gửi email hàng loạt 29

Hình 2.29: API chức năng lấy số liệu thống kê email bằng AWS CloudWatch 29

Hình 2.30 API chức năng lấy số liệu thống kê email bằng GCP GA4 29

Hình 2.31: Giao diện quản trị các tham số nội dung động 29

Hình 2.32: Giao diện quản trị mẫu email 29

Hình 2.33: Giao diện quản trị mẫu email – Thêm mới mẫu 30

Hình 2.34: Giao diện thống kê hiệu suất của chương trình bằng email 30

Hình 2.35 Quy trình thực hiện gửi email hàng loạt 31

Hình 2.36: Lấy số liệu từ AWS CloudWatch bằng Swagger 32

Hình 2.37: Số liệu khi xem trực tiếp trên console của AWS CloudWatch 32

Hình 2.38: Lấy số liệu từ GCP GA4 bằng Swagger 32

Hình 2.39 Số liệu khi xem trực tiếp trên console của GCP GA4 33

Trang 8

DANH MỤC BẢNG

Bảng 2.2.1: So sánh Dapper vs Entity Framework 18 Bảng 2.3.1: Mục tiêu phát triển trên dự án CDxP 20

DANH MỤC TỪ VIẾT TẮT

Dịch vụ web của Amazon cung cấp các dịch vụ đám mây đáng tin cậy, có thể mở rộng và chi phí thấp

2 CDxP Customer Data & Experience

Platform

Nền tảng dữ liệu và trải nghiệm khách hàng giúp doanh nghiệp hiểu rõ hơn về khách hàng của mình thông qua dữ liệu

Dịch vụ email của Amazon giúp gửi email quảng cáo, thông báo và các loại email khác một cách dễ dàng và hiệu quả

Dịch vụ lưu trữ đám mây của Amazon cung cấp lưu trữ đối tượng an toàn, bảo mật và hiệu suất cao

Bộ công cụ đám mây của Google cung cấp dịch vụ máy chủ, lưu trữ và mạng trên cùng một cơ sở hạ tầng mà Google sử dụng

6 GA4 Google Analytics 4 Phiên bản mới nhất của Google

Analytics, cung cấp thông tin chi

Trang 9

tiết về lưu lượng truy cập và sử dụng trang web

Người phân tích kinh doanh giúp cải thiện hiệu suất kinh doanh thông qua phân tích dữ liệu, hiểu rõ nhu cầu của khách hàng và đề xuất giải pháp

Kỹ thuật lập trình giúp chuyển đổi dữ liệu giữa hệ thống cơ sở dữ liệu quan hệ và các đối tượng trong lập trình hướng đối tượng

Trang 10

CHƯƠNG 1 GIỚI THIỆU CÔNG TY THỰC TẬP 1.1 Giới thiệu công ty cổ phần Con Cưng

Hình 1.1 Logo công ty cổ phần Con Cưng

Công ty Cổ phần Con Cưng là một công ty tiên phong tại Việt Nam chuyên về ngành hàng dành riêng cho trẻ em Công ty được thành lập vào năm 2011 và trở thành công ty con của Công ty cổ phần Đầu tư Con Cưng (được thành lập ngày 21/9/2015), với đại diện pháp luật là ông/bà Nguyễn Quốc Minh Trụ sở chính của công ty đặt tại 66 Nguyễn Du, Phường Bến Nghé, Quận 1, TP Hồ Chí Minh

Lĩnh vực hoạt động của công ty bao gồm phát triển các hệ thống chuỗi bán lẻ cho mẹ bầu & em bé như Con Cưng, Toycity, CF (CON CUNG FASHION), nghiên cứu và cho ra đời các sản phẩm an toàn, chất lượng, giá thành hợp lý dành riêng cho trẻ em Công ty luôn lấy sứ mệnh “Mang đến những sản phẩm tốt nhất cho trẻ em Việt Nam" làm kim chỉ nam cho mọi hoạt động kinh doanh

Con Cưng cam kết đưa sản phẩm trực tiếp từ nhà sản xuất đến tay người dùng và kiểm soát được chất lượng để đáp ứng được nhu cầu ngày càng cao của khách hàng Tất cả các sản phẩm tại Con Cưng đều có nguồn gốc xuất xứ rõ ràng, chất lượng, đa dạng chủng loại với giá hợp lý

Công ty đang phát triển mạnh mẽ với mức tăng trưởng 100% hàng năm Hệ thống siêu thị của Con Cưng đang phủ sóng trên 40 tỉnh thành Việt Nam Trong tương lai, Con Cưng có kế hoạch sẽ phủ sóng 64 tỉnh thành với cam kết mang đến sự tiện lợi trong mua sắm tới tất cả phụ huynh khắp cả nước

Trang 11

Con Cưng được xây dựng dựa trên nền tảng công nghệ thông tin hiện đại Công ty đầu tư hệ thống phần mềm quản lý, kiểm soát mọi hoạt động kinh doanh, từ điều hành, phân phối sản phẩm đến bán hàng, tối ưu hóa quy trình hoạt động Nhờ đó cắt giảm nhiều chi phí trong quá trình vận hành để có được giá bán phù hợp với số đông người tiêu dùng Việt Nam

Đội ngũ nhân viên chuyên nghiệp, tâm huyết và là niềm tự hào của Công ty Tổng số nhân viên được tuyển dụng và đào tạo chuyên nghiệp hiện tại đã lên đến con số khoảng 1.500 nhân sự Bên cạnh đó, đời sống tinh thần của nhân viên cũng được quan tâm, chăm sóc cùng những chính sách đãi ngộ, nâng cao tinh thần làm việc và truyền cảm hứng để nhân viên cống hiến và mang lại những giá trị cho bản thân và cộng đồng Con Cưng có lợi thế trong việc hợp tác với nhiều tập đoàn đa quốc gia, cũng như việc phân phối độc quyền cho nhiều nhãn hàng Nhật, Hàn Quốc, Thái Lan Bên cạnh đó, Con Cưng còn hợp tác với nhiều nhà máy hàng đầu tại Nhật, Hàn Quốc, Thái Lan để nghiên cứu và cho ra đời những sản phẩm tốt nhất dành cho trẻ em Việt Nam

1.2 Lịch làm việc khi thực tập tại công ty

Em bắt đầu làm việc tại công ty bắt đầu từ 17/07/2023 tới 16/01/2024 (theo hợp đồng hiện tại), thời gian làm việc trong hè từ thứ 2 đến thứ 6 và trong học kỳ sẽ gồm các ngày trong tuần bao gồm buổi chiều thứ hai, thứ tư, thứ năm và thứ sáu Một ngày làm việc bắt đầu từ 08:30 và kết thúc vào lúc 17:30 Thời gian nghỉ trưa khoảng 60 phút (từ 12:00 đến 13:00) Trong giai đoạn đầu (2 tháng), công việc của em hằng ngày là thực hiện các task phát triển chức năng do Lead, BA hoặc các log bug do Tester giao Đầu mỗi ngày làm việc, em sẽ ghi chú lại là hôm qua đã làm được gì (tiến độ như nào), hôm nay sẽ làm gì thông qua công cụ Slack Giai đoạn sau em được làm việc trực tiếp với anh Phan Nguyễn Hoàng Long (Project Manager) để phát triển tính năng mới cho CDxP (Customer Data & Experience Platform) - một loại phần mềm kết hợp nhiều kỹ thuật xử lý dữ liệu và chức năng tự động hóa tiếp thị vào một hệ thống duy nhất Mục tiêu của CDxP là giúp các doanh nghiệp hiểu rõ hơn về khách hàng, từ đó có thể tạo ra các chiến dịch tiếp thị, bán hàng và chăm sóc khách hàng cá nhân hóa, đa kênh và thời gian thực Ở dự án này em nắm vai trò là phát triển chính, thiết kế và xây dựng phần backend của ứng dụng, sử dụng các công nghệ như ASP.NET Core, AWS, Google Cloud Platform, PostgreSQL, SQL Server, Kafka, v.v Ngoài ra em còn nắm vai trò

Trang 12

thiết kế giao diện thiết lập và sử dụng cơ bản cho các tính năng của CDxP trên web bằng Angular

Trang 13

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

• Thời gian: 1 ngày

• Nội dung: Giới thiệu về cơ cấu, cách tổ chức của công ty cổ phần Con Cưng,

đượ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 từ cao xuống thấp, cách thức tổ chức của công ty, các phòng ban nội bộ, hệ thống quản trị nhân sự,… 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, cách sử dụng các công cụ giao tiếp, xử lý trong công việc,… Và trên hết, ở vị trí backend developer thì cần tìm hiểu về các quy chuẩn, nguyên tắc và quy định khi phát triển

• Kết quả: Hiểu thêm về công ty cổ phần cổ phần Con Cưng, bao gồm quá trình

thành lập, phát triển và cơ cấu tổ chức, các công cụ hỗ trợ làm việc ở vị trí backend Có thêm các kỹ năng về việc ghi chú trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn và hiểu hơn về quy tắc ứng xử để phù hợp với văn hóa công ty

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

Đối với vị trí thực tập của em, bản đầu em sẽ được các Lead, BA giao task xuống thông qua công cụ Jira Trong Jira có mô tả về chức năng, yêu cầu, đầu vào và đầu ra của chức năng đó Nhiệm vụ của em là viết API để đáp ứng chức năng đó Trong khoảng thời gian đầu sẽ được giao cho các nhiệm vụ có mực độ ưu tiên thấp để tập làm quen với các công nghệ

2.2.1 Bộ cung cụ Jira • Thời gian: 1 ngày

• Nội dung: Tìm hiểu hệ thống quản lý dự án Jira

Trong thời gian này, em được memtor hướng dẫn các sử dụng Jira, luồng làm việc khi nhận được task Những việc cần làm trước, trong, sau khi thực hiện task

• Kết quả: Hiểu và vận dụng được

Trang 14

Hình 2.1 Logo Jira

Jira là một bộ công cụ quản lý dự án và theo dõi công việc được phát triển bởi Atlassian Nó được sử dụng rộng rãi trong các dự án phần mềm và quản lý công việc để giúp các nhóm làm việc cùng nhau hiệu quả, theo dõi tiến độ và quản lý các tác vụ và vấn đề

Bộ công cụ Jira cung cấp các tính năng và chức năng sau:

• Quản lý dự án: Jira cho phép tạo và quản lý các dự án, các tác vụ và công việc Người dùng có thể tạo danh sách các công việc, gán người thực hiện, thiết lập thời hạn, và theo dõi tiến độ của từng công việc trong dự án

• Theo dõi tiến độ: Jira cho phép người dùng tạo ra bảng kanban hoặc bảng scrum board để theo dõi tiến độ công việc Bằng cách di chuyển các thẻ công việc trên bảng, người dùng có thể xác định công việc đã hoàn thành, đang tiến hành hoặc cần xử lý

• Quản lý vấn đề: Jira cung cấp tính năng quản lý vấn đề (issue tracking), cho phép người dùng tạo, ghi lại và theo dõi các vấn đề và lỗi trong quá trình phát triển phần mềm hoặc quản lý dự án Người dùng có thể gán vấn đề cho các thành viên trong nhóm, theo dõi tiến độ sửa lỗi và quản lý trạng thái của vấn đề

• Báo cáo và phân tích: Jira cung cấp các báo cáo và công cụ phân tích để người dùng có thể đánh giá hiệu suất và tiến độ dự án Người dùng có thể tạo các biểu đồ, báo cáo và dashboard để theo dõi các chỉ số quan trọng và đưa ra quyết định dựa trên dữ liệu

Flow làm việc từ lúc nhận được task đến khi hoàn thành task

1 Khi nhận được task thì cần xác định khi nào task được thực hiện, ước lượng thực hiện trong bao lâu

2 Khi bắt đầu thực hiện: Chuyển trạng thái của task từ ToDo thành In Progress Lúc này xem Components để biết sẽ phát triển trên mã nguồn nào, xem

Trang 15

Reporter là ai để biết nếu có vấn đề gì thì sẽ hỏi, xem Labels để biết sẽ phát triển trên nhánh nào

3 Khi hoàn thành: Chuyển trạng thái của task từ In Progress sang Done Note lại endpoint API (nếu làm API) hoặc đường dẫn (nếu làm FE) Note lại sự thay đổi của store vào file Procedure trong mã nguồn để có thể tracking và đưa store lên lúc chuyển sang production

Trang 16

Hình 2.2 Task SALE-5676

Trang 17

2.2.2 Dapper và Stored Procedure • Thời gian: 1 tuần

• Nội dung: Tìm hiểu cơ bản về Dapper và stored procedure để thực hiện các thao tác

truy vấn ở cơ sở dữ liệu

Hình 2.3 Dapper

• Kết quả: Sau khi tìm hiểu thì em thấy được sự thuận tiện của dapper, những điểm

tốt hơn của dapper so với EF (Entity Framework)

− Dapper là một thư viện nhẹ giúp thực hiện các truy vấn SQL trong NET Nó cung cấp một số phương thức mở rộng cho các đối tượng kết nối SQL, cho phép bạn thực hiện các truy vấn và ánh xạ kết quả trở lại các đối tượng một cách dễ dàng

− Stored Procedure (thủ tục lưu trữ) là một đoạn mã SQL được lưu trữ và tối ưu hóa trong cơ sở dữ liệu Nó giúp giảm độ phức tạp khi xử lý nhiều truy vấn, cải thiện hiệu suất bằng cách tối ưu hóa thực thi truy vấn và cung cấp bảo mật tốt hơn do được cô lập khỏi mã ứng dụng

So sánh giữa Dapper và Entity Framework:

Tính nhẹ nhàng và hiệu suất

Hiệu suất cao, sử dụng ít bộ nhớ hơn

Cung cấp nhiều tính năng mạnh mẽ, nhưng có thể làm giảm hiệu suất

Trang 18

Sử dụng SQL trực tiếp Cho phép viết và thực hiện trực tiếp câu lệnh SQL

Ẩn đi SQL, cho phép làm việc với dữ liệu thông qua LINQ

Khả năng ánh xạ đối tượng (ORM)

Cung cấp một mức độ ít hơn trong việc ánh xạ đối tượng

Cung cấp một ORM mạnh mẽ, cho phép ánh xạ tự động

Cộng đồng và tài liệu Cộng đồng sáng tạo nhưng không quá lớn

Cộng đồng lớn và mạnh mẽ, tài liệu rộng rãi

Bảng 2.2.1: So sánh Dapper vs Entity Framework

2.3 Tham gia dự án thực tế 2.3.1 Tổng quan

Sau 1 tuần làm quen với môi trường làm việc tại Con Cưng cũng như cách làm việc của riêng Team IT, em được phân công làm việc các công việc do anh BA (Nguyễn Văn Quang) hoặc anh Lead (Nguyễn Vũ Trọng Giang) giao qua Jira Sau 1 tháng em đã quen với hệ thống thì em được phân công hỗ trợ anh PM (Phan Nguyễn Hoàng Long) phát triển tính năng mới cho CDxP Để xem các task mà em đã làm, em đã đính kèm 1 file excel danh sách các task mà em đã và đang làm tại công ty

Tổng quan nhiệm vụ ở các task bình thường:

o Phân tích yêu cầu của task để hiện thực hóa yêu cầu o Thiết kế, phát triển và kiểm thử cho chức năng được làm

o Cùng DBA giải quyết các khúc mắt khi phát triển (bổ sung cột, v.v) o Giải quyết các Log bug do Tester giao

Ngày đăng: 15/05/2024, 09:23

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan