Nguyễn Quang Gia Bảo 19521251 `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 LẬP TRÌNH BACK END WEBSITE Công ty thực tập TMA SOLUTIONS Người phụ trách Trần Ngọc Nhã Thực[.]
`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 LẬP TRÌNH BACK-END WEBSITE Công ty thực tập : TMA SOLUTIONS Người phụ trách : Trần Ngọc Nhã Thực tập sinh : Nguyễn Quang Gia Bảo TP Hồ Chí Minh, tháng 12 năm 2022 Nguyễn Quang Gia Bảo - 19521251 Mục lục Mục lục Chương I: Giới thiệu công ty Giới thiệu công ty TMA Solutions .5 Sản phẩm công ty Chương II: Nội dung thực tập Tìm hiểu công ty kỹ công ty Giới thiệu, làm quen với thành viên nhóm dự án Kế hoạch thực tập Lịch thực tập làm việc .9 Chương III: Những kiến thức học trình thực tập 10 Kiến thức ASP.NET 10 Cấu trúc Net framework dựa thành phần sau: 10 Kiến thức RESTful Web Service 11 Kiến thức Entity Framework 12 Kiến thức Microservices 13 Kiến thức Git Technology .14 Chương IV: Chi tiết project 15 Giới thiệu TechAlliance Fleet .15 Quá trình làm việc 15 Chương V: Đánh giá nhận xét 17 Kết đạt được: .17 Những hạn chế : 17 Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 3 Định hướng tương lai: 17 Chương VI: Tổng kết 18 Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 LỜI CẢM ƠN Sau trình học tập rèn luyện trường Đại học công nghệ thông tin để trau dồi kiến thức kỹ năng, em nhận nhiều quan tâm giúp đỡ q thầy cơ, gia đình bạn bè Với lòng biết ơn sâu sắc nhất, em xin gửi lời cảm ơn đến trường quý thầy cô khoa Công nghệ phần mềm truyền đạt vốn kiến thức làm tảng cho em trình thực tập Em xin cảm ơn thầy cô Công ty cổ phần giải pháp công nghệ TMA Solutions tạo điều kiện cho em có hội tham gia thực tập cơng ty Trong q trình thực tập Công ty TMA Solutions, em trang bị kiến thức kinh nghiệm việc làm việc làm việc nhóm, làm việc với người nước ngồi, hiểu cách vận hành phát triển ứng dụng thiết bị di động nghiệp vụ khác công ty, giúp em mở mang khai sáng kiến thức có nhiều kinh nghiệm mà em chưa biết tới Em xin cảm ơn anh Trần Ngọc Nhã anh chị dự án công ty đặc biệt giúp đỡ em, bảo em tận tình qua dự án khác trình thực tập Những kiến thức kinh nghiệm giúp em hồn thiện có thêm kinh nghiệm quy trình phát triển phần mềm Tuy nhiên, kinh nghiệm thực tiễn hạn chế, báo cáo khơng thể tránh sai sót Chính vậy, em mong nhận ý kiến đóng góp Thầy, Cơ để em hồn thiện thân tốt Xin chân thành cảm ơn thầy anh chị công ty Nguyễn Quang Gia Bảo Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 Chương I: Giới thiệu công ty Giới thiệu công ty TMA Solutions • Tên cơng ty: Cơng Ty TNHH Giải Pháp Phần Mềm Tường Minh – TMA Solutions • Website cơng ty: https://www.tma.vn/ • Địa cơng ty: 84A/5 Trần Hữu Trang, Phường 10, Phú Nhuận, Thành phố Hồ Chí Minh • Điện Thoại : 028 3990 3848 • Năm thành lập : 1997 • Mục tiêu sứ mệnh công ty : TMA Solutions thành lập năm 1997, với phát triển vững mạnh suốt 25 năm qua, tự hào công ty phần mềm hàng đầu Việt Nam với 15 năm liên tiếp (2004-2019) đạt huy chương vàng xuất phần mềm, có Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 2700 kỹ sư tài làm việc, xây dựng hình ảnh TMA động chuyên nghiệp đồ công nghệ thông tin toàn cầu Trải qua 25 năm hoạt động, TMA tự hào nhận nhiều khen, giải thưởng liên tục báo chí, truyền thơng ngồi nước đưa tin Sản phẩm công ty TMA Solutions chuyên cung cấp sản phẩm phần mềm phục vụ nhiều loại hình dịch vụ khác nhau, đem lại trải nghiệm tốt cho người dùng Các dịch vụ cơng ty chun cung cấp: • Visual Design • Software Testing • Porting & Migration • Production Support • IT Managed Services • Software Development Cung cấp giải pháp cho nhiều lĩnh vực: • Telecom • Finance & Insurance • E-Commerce, Retail & Distribution • Media & Publishing • Logistics & Transportation Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 Chương II: Nội dung thực tập Tìm hiểu công ty kỹ công ty Thời gian : ngày Nội dung : Giới thiệu công ty, cách tổ chức công ty Được nghe người phụ trách giới thiệu công ty, trình thành lập phát triên (như nhắc đến trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức cơng ty Ngồi ra, thực tập sinh giới thiệu cách thức làm việc công ty thời gian làm, quy định cần phải tuân thủ, cách sử dụng email công việc… Kết : Hiểu 7hem công ty TMA số dự án, trình thành lập phát triển Có 7hem kỹ việc sử dụng email công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm Giới thiệu, làm quen với thành viên nhóm dự án Thời gian : ngày Nội dung : Giới thiệu TechAlliance, anh Trần Ngọc Nhã làm manager Giới thiệu thành viên team, sản phẩm dự án team triển khai Kết : Làm quen thành viên team hiểu sản phẩm, dự án team làm Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 Kế hoạch thực tập Tuần 1-2 Người Hướng Dẩn Kế hoạch thực tập tuần • Setup công cụ cần thiết (Git, Azure, Trần Ngọc Nhã MongoDB, SQL Server, …) • Training NET, Entity Framework • Tìm hiểu RESTful Web Service Trần Ngọc Nhã • Tìm hiểu Domain Driven Design pattern • Học 8hem Microservices Trần Ngọc Nhã • Đọc source code tài liệu hướng dẫn • Tìm hiểu Apache Kafka Trần Ngọc Nhã • Sửa lỗi quyền truy cập người dùng • Sửa lỗi thơng tin không thay đổi Trần Ngọc Nhã update hợp đồng • Viết API cho task: Create rule for Manual settings for Approval ID • Nâng cấp NET Core 3.1 lên 6.0 cho Trần Ngọc Nhã service WorkshopImportService BoschService • Investigate cho task: Fleet checks job in status Approval Missing • Viết API cho task: Reopen invoice Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 • Fix bugs, sửa lỗi Trần Ngọc Nhã • Báo cáo cuối đợt thực tập • Meeting tổng kết đánh giá Lịch thực tập làm việc Thời gian thực tập: • Ngày bắt đầu: 15/08/2022 • Ngày kết thúc: 15/10/2022 Thời gian làm việc: • Ca sáng : 8h30 -> 12h • Ca chiều 13h30 -> 18h • Số ca thực tập tuần : từ thứ -> thứ Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 10 Chương III: Những kiến thức học trình thực tập Kiến thức ASP.NET ASP.NET tảng dành cho phát triển web, Microsoft phát hành cung cấp lần vào năm 2002 Nền tảng sử dụng để tạo ứng dụng web-based ASP viết đầy đủ Active Server Pages, NET viết tắt Network Enabled Technologies Cấu trúc Net framework dựa thành phần sau: Language/Ngôn ngữ: Có nhiều ngơn ngữ lập trình khác tồn net framework Các ngôn ngữ VB.net C #, sử dụng để phát triển ứng dụng web Library/Thư viện: NET Framework gồm có lớp library chuẩn Library phổ biến sử dụng cho ứng dụng web net Web library Web library bao gồm tất thành phần cần thiết sử dụng phát triển ứng dụng web-based Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 11 Common Language Runtime/Thời gian chạy ngơn ngữ lập trình thơng thường hay CLR: Common Language Infrastructure - Cơ sở hạ tầng ngôn ngữ lập trình phổ thơng hay CLI tảng dùng để chạy chương trình Net Trong đó, CLR thực tác vụ bao gồm xử lý trường hợp cá biệt thu gom rác Kiến thức RESTful Web Service API (Application Programming Interface) tập quy tắc chế mà theo đó, ứng dụng hay thành phần tương tác với ứng dụng hay thành phần khác API trả liệu mà bạn cần cho ứng dụng kiểu liệu phổ biến JSON hay XML REST (Representational State Transfer) dạng chuyển đổi cấu trúc liệu, kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp máy Vì vậy, thay sử dụng URL cho việc xử lý số thông tin người 11hem, REST gửi yêu cầu HTTP GET, POST, DELETE, vv đến URL để xử lý liệu RESTful API tiêu chuẩn 11hem việc thiết kế API cho ứng dụng web để quản lý resource RESTful kiểu thiết kế API sử dụng phổ biến ngày ứng dụng (web, mobile…) khác giao tiếp với REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động nêu sử dụng phương thức HTTP riêng Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 12 • GET (SELECT): Trả Resource danh sách Resource • POST (CREATE): Tạo Resource • PUT (UPDATE): Cập nhật thơng tin cho Resource • DELETE (DELETE): Xố Resource Những phương thức hay hoạt động thường gọi CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa Kiến thức Entity Framework Entity Framework đời nhằm hỗ trợ tương tác ứng dụng tảng NET với sở liệu quan hệ Hay, Entity Frmework cơng cụ giúp ánh xạ đối tượng ứng dựng, phần mềm bạn với bảng sở liệu quan hệ Những tính đáng ý Entity framework: Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 13 • Entity framework hỗ trợ stored procedure • Nó làm việc với sở liệu quan hệ có Entity Framework hợp lệ • Entity Framework tạo truy vấn SQL từ LINQ to Entities • Nó phát triển sản phẩm mã nguồn mở • Entity framework sản phẩm Microsoft • EF cho phép tạo câu lệnh thêm, xóa, cập nhật • Theo dõi thay đổi đối tượng nhớ Kiến thức Microservices Trong tiếng anh, micro có nghĩa nhỏ, vi mơ Vậy Microservice, tên nó, chia khối phần mềm thành service nhỏ hơn, triển khai server khác Mỗi service xử lý phần công việc kết nối Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 14 với thông qua các giao thức khác nhau, http, SOA, socket, Message queue (Active MQ, Kafka)… để truyền tải liệu Trước Microservices xuất hiện, ứng dụng thường phát triển theo mơ hình Monolithic architecture (Kiến trúc khối) Có nghĩa tất module (view, business, database) gộp project, ứng dụng phát triển theo mơ hình kiến trúc khối thường phân chia làm nhiều module Nhưng đóng gói cài đặt thành khối (monolithic) Lợi ích mơ hình kiến trúc khối dễ dàng phát triển triển khai Nhưng bên cạnh có nhiều hạn chế ví dụ khó khăn việc bảo trì, tính linh hoạt khả mở rộng kém, đặc biệt với ứng dụng doanh nghiệp có quy mơ lớn Đó lí đời kiến trúc Microservices Kiến thức Git Technology Git hệ thống quản lý phiên phân tán (Distributed Version Control System – DVCS), hệ thống quản lý phiên phân tán phổ biến Git cung cấp cho lập trình viên kho lưu trữ (repository) riêng chứa toàn lịch sử thay đổi Command quen thuộc : git add, git push, git commit,… Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 15 Chương IV: Chi tiết project Giới thiệu TechAlliance Fleet TechAlliance Fleet ứng dụng web hỗ trợ quản lý đội xe (Fleet Management) thuộc sở hữu công ty TechAlliance TechAlliance Fleet cung cấp tính quản lý đội xe cơng việc workshop bảo trì, sửa chữa xe trang thiết bị liên quan TechAlliance Fleet cho phép thực tính tốn nhanh chóng thơng minh hóa đơn dịch vụ liên quan dự đoán trước kinh phí cho trang thiết, bảo trì sửa chữa cho xe đội xe Công nghệ áp dụng: - Kiến trúc: Kết hợp mẫu thiết kế Repository pattern, Domain Driven Design Microservice - Front-end: Ứng dụng Angular RxJS xử lý kiện bất đồng NgSX quản lý trạng thái, phối hợp với Boostrap để thiết kế giao diện người dùng; áp dụng Oauth2.0 OpenID Connect cho Authentication Authorization - Back-end: Sử dụng ASP.NET Core, Entity Framework với sở liệu MongoDB, SQLServer; áp dụng Apache Kafka; áp dụng IdentityServer4 cho Authentication Authorization Quá trình làm việc Dự án áp dụng mơ hình Scrum để quản lý cơng việc Trong đó, q trình phát triển chia thành sprint kéo dài tuần Một sprint bao gồm buổi họp sau: - buổi Sprint Planning: Diễn vào đầu Sprint, nội dung phân chia nhận task để thực thi Sprint Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 16 - Các buổi Daily Meeting: Diễn hàng ngày Sprint, báo cáo cơng việc ngày hơm khó khăn gặp phải (nếu có) - buổi Sprint Refinement: Diễn vào Sprint, nội dung chuẩn bị, thông qua task cho Sprint kế tiếp, đánh giá độ phức tạp, khả thi task - buổi Sprint Review: Diễn vào cuối Sprint, nội dung gồm demo thành tính hồn thành, lỗi phát sửa chữa Sprint; tiếp nhận góp ý khách hàng - buổi Sprint Retrospective: Diễn vào cuối Sprint, sau Sprint Review, nội dung điểm qua task tồn đọng Sprint vừa qua, góp ý, giải pháp để hồn thiện chúng vào thời gian tới Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 17 Chương V: Đánh giá nhận xét Kết đạt được: • Có thêm nhiều kinh nghiệm chuyên môn : NET, Entity Framework, Microservices • Kỹ làm việc nhóm, phân chia cơng việc, thời gian • Kỹ sử dụng review code member team, • Cơ trình hoạt động project thực tế, • Nhìn nhận vấn đề đưa giải pháp cho dự án • Biết cách xây dựng Server quản lý source git technology Những hạn chế : • Vì kĩ thuật cịn yếu nên số task chưa hoàn thành deadline Định hướng tương lai: • Cải thiện kĩ ngoại ngữ để đọc tài liệu phân tích yêu cầu liên quan Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 18 Chương VI: Tổng kết Như vậy, vòng vài tháng ngắn ngủi, em tham gia vào project TMA Solutions Hoàn thành task yêu cầu cấp đề Hoàn thành tháng thử việc trở thành nhân viên thức TMA Solutions Chân thành cảm ơn anh, chị cơng ty hỗ trợ em hồn thành tập, giúp đỡ em nhiều đời sống Trần Ngọc Nhã Nguyễn Quang Gia Bảo - 19521251 ... làm tảng cho em trình thực tập Em xin cảm ơn thầy cô Công ty cổ phần giải pháp công nghệ TMA Solutions tạo điều kiện cho em có hội tham gia thực tập công ty Trong trình thực tập Cơng ty TMA Solutions,... Bảo - 19521251 • Fix bugs, sửa lỗi Trần Ngọc Nhã • Báo cáo cuối đợt thực tập • Meeting tổng kết đánh giá Lịch thực tập làm việc Thời gian thực tập: • Ngày bắt đầu: 15/08/2022 • Ngày kết thúc: 15/10/2022... qua dự án khác trình thực tập Những kiến thức kinh nghiệm giúp em hồn thiện có thêm kinh nghiệm quy trình phát triển phần mềm Tuy nhiên, kinh nghiệm thực tiễn cịn hạn chế, báo cáo khơng thể tránh