Chân thành cảm ơn các anh chị trong team OTB đã 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ậ
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: TMA Solutions Người phụ trách: Lê Minh Tuyền
Mai Thế Hồng Ân Thực tập sinh: Phạm Minh Việt
Trang 2TP Hồ Chí Minh, tháng 06 năm 2023
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
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 TMA Solutions – 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 tới anh Lê Minh Tuyền và Mai Thế Hồng Ân đã 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 các anh, 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 OTB đã 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 29 tháng 06 năm 2023
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
LỜI MỞ ĐẦU 2
LỜI CẢM ƠN 3
MỤC LỤC 5
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 6
1.1 Giới thiệu 6
1.2 Sản phẩm công ty 8
1.3 Lịch làm việc khi thực tập tại công ty 10
CHƯƠNG 2: NỘI DUNG THỰC TẬP 11
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 11
2.2 Nghiên cứu kỹ thuật 11
2.3 Thực hiện dự án cá nhân 13
2.4 Tham gia dự án thực tế 15
CHƯƠNG 3: TỔNG KẾT 17
3.1 Điểm mạnh 17
3.2 Điểm yếu 17
3.3 Chuẩn đạt được 18
TÀI LIỆU THAM KHẢO 19
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu
Hình 1.1.a Logo TMA
TMA Solutions được thành lập năm 1997, với sự phát triển vững mạnh trong suốt
25 năm qua, chúng tôi tự hào là công ty phần mềm hàng đầu Việt Nam hiện nay với 16 năm liên tiếp (2004-2019) đạt huy chương vàng xuất khẩu phần mềm; Top
10 công ty FinTech, AI và IoT Chúng tôi có hơn 4000 kỹ sư tài năng đang làm việc, cùng nhau xây dựng hình ảnh TMA năng động và chuyên nghiệp trên bản đồ công nghệ thông tin toàn cầu
Quá trình phát triển
TMA Solutions được thành lập năm 1997, là công ty phần mềm hàng đầu Việt Nam Với sự phát triển bền vững về nhân lực, hiện nay, TMA đã xây dựng được
Trang 7đội ngũ 4000 kỹ sư trẻ, nhiệt huyết luôn nhận được sự tin cậy, đánh giá cao từ phía khách hàng
Hình 1.1.b Sự phát triển nhân lực bền vững từ 6 người đến hơn 3000 người (1997-2021)
Trải qua 25 năm hoạt động TMA tự hào nhận được rất nhiều bằng khen, giải thưởng và liên tục được báo chí, truyền thông trong và ngoài nước đưa tin
TMA Solutions hiện là đối tác tin cậy có nhiều năm kinh nghiệm thực hiện những
dự án lớn & phức tạp với những công nghệ mới nhất với hơn 100 khách hàng đến
từ 30 quốc gia trên thế giới
TMA hiện có 7 chi nhánh tại Việt Nam (6 tại Tp Hồ Chí Minh và 1 ở Tp Quy Nhơn) cùng với 6 văn phòng ở nước ngoài (Mỹ, Canada, Pháp, Nhật, Úc, Singapore)
Trang 81.2 Sản phẩm công ty
Hình 1.2.a Ứng dụng thương mại điện tử
Ứng dụng mua sắm trực tuyến trên thiết bị di động của hãng bán lẻ hàng đầu Hàn Quốc cho thị trường Việt Nam
• Khách hàng có thể mua sắm hơn 3000 loại sản phẩm đang được bán tại siêu thị, đặc biệt trong đó bao gồm nhiều nhãn hàng đến từ Hàn Quốc trên ứng dụng di động
• Giao diện được thiết kế thân thiện, dễ dàng sử dụng phù hợp với cách mua sắm của người Việt Nam
Trang 9• Xây dựng Hệ
thống quản lý
trang (Layout
management
system) thông
minh nhằm tạo
ra các trang
thông tin về sự
kiện, sản phẩm,
chương trình
khuyến mãi, và
các dịch vụ một
chóng, tiết kiệm
thời gian và chi
phí cho doanh
nghiệp
Website thương mại điện tử về mỹ phẩm
Nền tảng thương mại điện tử được xây dựng và triển khai tại gần 30 quốc gia cho riêng lĩnh vực mỹ phẩm và chăm sóc sắc đẹp Nền tảng có đầy đủ các tính năng và được tích hợp các công nghệ hiện đại để tạo điều kiện mua bán mỹ phẩm trực tuyến thuận lợi và tin cậy cho các thương hiệu, nhà bán lẻ, và người tiêu dùng
• Gợi ý sản phẩm
Hình 1.2.b Website thương mại điện tử về mỹ phẩm
Trang 10Hệ thống gợi ý sản phẩm hiệu quả và theo đúng đối tượng khách hàng mục tiêu với các công nghệ tiêu biểu như Target2Sell hay sự kết hợp Trình Quản
lý Thẻ (Google Tag Manager) và Công cụ Quảng cáo Tiếp thị lại (Google Ads Remarketing)
• Tối ưu hóa Tốc độ xử lý của hệ thống
Tối ưu hóa tốc độ tìm kiếm sản phẩm trên hệ thống, đồng thời cho kết quả tìm kiếm tốt nhất và chính xác nhất bằng việc áp dụng công nghệ Elastic Search, RabbitMQ và Sidekiq
• Phân tích khách hàng
Hệ thống tự động ghi nhận và phân tích hành vi người tiêu dùng, từ đó cung cấp các báo cáo đa chiều cho người bán
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ừ ngày 10/11/2022 tới 17/02/2023, các ngày làm việc trong tuần là 3, 5, 6 Công việc hằng ngày bắt đầu từ lúc 8:00 AM đến 6:00 PM Thời gian nghỉ trưa khoảng 1 tiếng Sau mỗi ngày làm việc em sẽ báo cáo tiến độ công việc trong ngày, đặ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 ngày làm việc tiếp theo Mỗi tuần sẽ họp tiến độ tuần 1 lần vào 8h30 sáng của mỗi ngày, mọi người sẽ ghi rõ những công việc đã làm vào hôm qua, và các công việc sẽ làm trong ngày, nếu có khó khăn gì thì mọi người sẽ bàn bạc sau cuộc họp Thỉnh thoảng sẽ có một buỗi training về quy trình phát triển phần mềm, các kỹ năng mềm trong công việc, cách viết email
Trang 11CHƯƠ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ô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 từ cao xuống thấp, cách thức tổ chức của công ty, các phòng ban về IT, HR, … 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 email trong công việc, …
Kết quả: Hiểu thêm về lịch sử của công ty, 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
2.2.1 Tuần 1
Nội dung: Thiết lập phần mềm, các kiến thức cơ bản của C#, LINQ, viết demo Kết quả: Thiết lập các phần mềm cần thiết cho công việc, củng cố lại kiến thức về ngôn ngữ C#, và viết demo
2.2.2 Tuần 2
Nội dung: Kiến thức về Entity Framework Core
Kết quả: Hiểu được các cơ bản của EF Core, cách chuyển đổi DB sang Entity và ngược lại (Code first, database first)
Trang 122.2.3 Tuần 3
Nội dung: Lazy loading, eager loading, explicit loading
Kết quả: Hiểu được lazy, eager, và explicit loading là gì và ứng dụng
2.2.4 Tuần 4
Nội dung: MVC, REST, Route
Kết quả: Hiểu được kiến trúc MVC là gì, và ứng dụng với RESTful API, Route để tạo một demo đơn giản
2.2.5 Tuần 5
Nội dung: ASP.NET Razor, middleware, application settings & configurations
Kết quả: Hiểu được Razor là gì và xây dựng một website demo, biết cách hoạt động của middleware và viết một middleware đơn giản, tại sao dùng app.config cách đọc giá trị từ nó
2.2.6 Tuần 6
Nội dung: Tìm hiểu về Dependency Injection và vòng đời của nó
Kết quả: Hiểu được D.I là gì, ưu nhược so với Service Locator, các loại vòng đời cho một service, và ứng dụng vào một demo đơn giản
2.2.7 Tuần 7
Nội dung: log4net, Automapper, SQL
Kết quả: Nắm bắt được cách lưu thông tin bằng log4net, ưu nhược so với in ra console, cách chuyển đổi một Entity sang DTO và ngược lại bằng Automapper, tìm hiểu về SQL và các loại hệ quản trị cơ sở dữ liệu quan hệ, tải ứng dụng MySQL
2.2.8 Tuần 8
Nội dung: Memory cache, unit test
Trang 13Kết quả: Hiểu được kiến thức cơ bản về cache, các cách cache có trong ASP.NET Core, cách viết unit test cho một project
2.2.9 Tuần 9 và 10
Hình 2.2.9 OTB-8199
Nội dung: OTB-8199, Postman
Kết quả: Tạo ticket OTB-8199, viết và chạy unit test đầu tiên, và commit push lên repo; tải ứng dụng Postman để gọi API OTB
2.2.10 Tuần 11
Nội dung: Nghỉ lễ Tết Nguyên Đán
Kết quả: Đã có một kỳ nghỉ thư giãn :)
2.2.10 Tuần 12
Nội dung: Viết báo cáo và làm một ứng dụng demo cuối chương trình
Kết quả: Viết báo cáo cuối chương trình thực tập và gửi lên HR, áp dụng các kiến thức đã học xuyên suốt thời gian thực tập để tạo một demo đơn giản
2.3 Thực hiện dự án cá nhân
2.3.1 Công nghệ
C#, ASP.NET Core, Razor
2.3.2 Mô tả dự án
Viết một ứng dụng quản lý công việc, bao gồm các chức năng thêm, sửa, xóa, xem chi tiết công việc, đánh dấu công việc đã hoàn thành, và xuất dữ liệu, áp dụng các
Trang 14kiến thức đã học để xây dựng ứng dụng này Đồng thời viết unit test để kiểm tra, xác định các chức năng hoạt động theo yêu cầu
2.3.3 Kết quả
Hình 2.3.3 Website quản lý công việc
Hoàn thành phát triển ứng dụng quản lý công việc, áp dụng các công nghệ, kiến thức đã học xuyên suốt chương trình thực tập
Trang 152.4 Tham gia dự án thực tế
2.4.1 Giới thiệu
Hình 2.4.1.a Orangetheory Fitness
Orangetheory Fitness là một studio nhượng quyền của Mỹ nằm tại Boca Raton, Florida Studio đầu tiên được thành lập ở Fort Lauderdale, Florida vào năm 2010 bởi nhà sáng lập, Ellen Latham Các lớp học kéo dài khoảng 1 tiếng, mỗi 1 lớp chia thành 2 nhóm, một nhóm sẽ luyện tập trên máy chạy bộ, và nhóm còn lại trên máy nâng tạ và máy kéo Tính tới năm 2023, Orangetheory Fitness đã có hơn 1,500 studio khắp các bang của nước Mỹ, và 24 đất nước khác nhau Ngay từ những ngày được khánh thành vào năm 2010, chuỗi thương hiệu đã tiếp tục mở rộng, thu về hơn $1 tỉ vào năm 2018 Tính tới năm 2020, đã có hơn 1 triệu thành viên đăng ký
Trang 162.4.2 Công việc
Team OTB đảm nhiệm vai trò trong việc phát triển phần mềm cho các thiết bị sử dụng OTbeat, sử dụng các công nghệ như ASP.NET MVC, DynamoDB
Công việc chính khi còn đang thực tập của em là viết unit test cho các module, duy trì sự ổn định của toàn bộ phần mềm, đảm bảo các chức năng hoạt động theo quy trình
Hình 2.4.c Unit tests và kết quả
Trang 17CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại TMA Solutions đã 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, quản lý ticket, làm việc nhóm, giao tiếp với cấp trên, …
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
3.1 Điểm mạnh
Sau khi hoàn tất thời gian thực tập, em nhận ra mình có khả năng tự tìm hiểu, giải quyết được vấn đề, nắm bắt, thực hiện được các công việc được giao
3.2 Điểm yếu
Cũng có một số điểm yếu em cần khắc phục như, hạn chế hoặc ít nói với những thành viên khác trong team, ít tham gia các sự kiện của công ty
Trang 183.3 Chuẩn đạt được
Goal 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 19TÀI LIỆU THAM KHẢO
1 ASP.NET MVC: Overview of ASP.NET Core MVC | Microsoft Learn
2 DynamoDB: Introduction to DynamoDB | ScyllaDB
3 Orangetheory Fitness: Group Fitness Class & HIIT Workouts | Orangetheory Fitness US
4 TMA Solutions: tmasolutions.com
5 Unit test: Unit Testing ASP.NET Web API 2 | Microsoft Learn