Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
1,05 MB
Nội dung
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 LẬP TRÌNH BACK-END VỚI FASTAPI CHO LOTTERY WEBSITE Công ty thực tập : Công ty TNHH Giải pháp Phần mềm TISOHA Người phụ trách : Phạm Xuân Bách Thực tập sinh : Trương Gia Thạch TP Hồ Chí Minh, tháng 12 năm 2022 Mentor: Phạm Xuân Bách Trương Gia Thạch LỜI MỞ ĐẦU Trong cách mạng công nghiệp 4.0, công nghệ thơng tin nói chung ngành Cơng nghệ phần mềm nói riêng ln nhân tố đóng vai trị quan trọng q trình phát triển xã hội Cơng nghệ Web, hay công nghệ sản xuất trang web phục vụ hầu hết nhu cầu người từ bán hàng, dạy học đến thông tin liên lạc, Hiện có đến 1.7 tỷ trang web, nhu cầu tạo trang web chưa có dấu hiệu giảm Do đó, trang web muốn nhiều người sử dụng phải đáp ứng yếu tố hình thức nội dung Làm để sản phẩm tạo đạt chất lượng cao hai yếu tố làm đội ngũ phát triển website cần phải suy nghĩ đau đầu Để thử thách thân ngành công nghiệp web, em lựa chọn thực tập với vị trí Back-end định hướng cho việc học tập nghiên cứu sâu quy trình sản xuất web FastAPI framework web đại, nhanh (hiệu suất cao) để xây dựng API với Python 3.6+ Tuy phát hành năm framework tạo tiếng vang lớn có cộng đồng phát triển đảo Bên cạnh thời gian học tập trường, mong muốn có thêm kinh nghiệm thực tế, muốn tham gia làm việc môi trường chuyên nghiệp, em có dự định thực tập kì Vì vậy, em định chọn cơng ty TISOHA nơi giúp em thực dự định Mentor: Phạm Xuân Bách Trương Gia Thạch LỜI CẢM ƠN Trân trọng gửi lời cảm ơn Công ty TNHH Giải pháp Phần mềm TISOHA tạo điều kiện cho em có hội thực tập công ty Chỉ thời gian ngắn, nhờ dẫn nhiệt tình anh trainer, nhóm thực tập chúng em tiếp thu kiến thức quan trọng để thành thạo việc lập trình Web Back-end với FastAPI Đặc biệt cảm ơn anh Phạm Xuân Bách, training FastAPI, hướng dẫn, hỗ trợ em nhiều từ vấn đề kỹ thuật đến khó khăn cơng việc; cảm ơn anh Đặng Hải Thịnh anh Đỗ Công Bá, giúp đỡ cho em tận tình khó khăn việc làm quen với môi trường Cảm ơn anh Đỗ Công Bá lần tạo văn hóa cơng ty lành mạnh, chuyên nghiệp, đầy động giúp em hồn thành thực tập có thêm niềm đam mê, nhiệt huyết với lập trình Web Cũng xin cảm ơn thầy cô 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 Trương Gia Thạch TpHCM, ngày 20 tháng 12 năm 2022 Mentor: Phạm Xuân Bách Trương Gia Thạch NHẬN XÉT CỦA KHOA Mentor: Phạm Xuân Bách Trương Gia Thạch MỤC LỤC MỤC LỤC CHƯƠNG GIỚI THIỆU CÔNG TY THỰC TẬP GIỚI THIỆU CÔNG TY TNHH GIẢI PHÁP PHẦN MỀM TISOHA SẢN PHẨM CỦA CÔNG TY CHƯƠNG NỘI DUNG THỰC TẬP TÌM HIỂU CƠNG TY VÀ CÁC KỸ NĂNG CƠ BẢN TRONG CÔNG TY NGHIÊN CỨU KỸ THUẬT 2.1 Các công cụ làm việc 2.2 Tìm hiểu ngôn ngữ Python 10 2.3 Nghiên cứu tài liệu kỹ thuật FastAPI 11 2.4 Nghiên cứu tài liệu kỹ thuật Docker 13 2.5 Thực hành xây dựng máy chủ API cho dự án Lottery Website 14 THỰC HIỆN PROJECT 14 LỊCH LÀM VIỆC 15 CHƯƠNG CHI TIẾT VỀ PROJECT 17 GIỚI THIỆU VỀ PROJECT 17 CÁC CÔNG VIỆC ĐÃ LÀM 17 2.1 Cài đặt, chạy thử dự án 17 2.2 Tạo API Distributor channel: 18 2.3 Xử lý Agency API, resource 19 2.4 Một số công việc khác 21 KẾT QUẢ 21 TÀI LIỆU THAM KHẢO 22 TỔNG KẾT 23 Mentor: Phạm Xuân Bách Trương Gia Thạch Chương Giới thiệu công ty thực tập Giới thiệu Công ty TNHH Giải pháp Phần mềm TISOHA Công ty TNHH Giải pháp phần mềm TISOHA doanh nghiệp thành lập vào 10/2020 đến hoạt động gần năm Trong thời gian hoạt động, công ty nhận cung cấp dịch vụ cho nhiều khách hàng Mỹ, Malta, Úc Singapore nơi tập trung phát triển ứng dụng web lập trình ứng dụng cho điện thoại thơng minh TISOHA đem lại cho khách hàng dịch vụ lập trình, gia cơng phần mềm uy tín chất lượng với độ an toàn cao, khả mở rộng tiết kiệm chi phí cho khách hàng Sản phẩm công ty Sản phẩm công ty chủ yếu dự án outsource giáo dục, giải trí, thương mại Mentor: Phạm Xuân Bách Trương Gia Thạch Công ty mang đến cho khách hàng dịch vụ phát triển, gia cơng phần mềm hồn hảo từ hỗ trợ, tư vấn, bảo trì đến phát triển ứng dụng, phần mềm cách toàn diện Các sản phẩm giải pháp công ty triển khai đảm bảo mức độ an tồn cao, có khả mở rộng, mang lại hài lòng chất lượng thỏa mãn chi phí Mentor: Phạm Xuân Bách Trương Gia Thạch Mentor: Phạm Xuân Bách Trương Gia Thạch Chương Nội dung thực tập Đợt thực tập với chủ đề “Lập trình Web Back-end với FastAPI cho Lottety Website” nhằm mục đích giúp sinh viên thực tập đào tạo tồn diện lập trình Back-end, đồng thời rèn luyện kỹ mềm làm việc nhóm, thuyết trình, giao tiếp Tại cơng ty, sinh viên có hội học tập, khám phá làm việc môi trường phát triển web chuyên nghiệ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, cách ước tính thời gian hồn thành cơng việc, sử dụng phần mềm chun nghiệp cho công việc,… Kết quả: Hiểu thêm công ty TISOHA, q trình thành lập phát triển Có thêm kỹ việc sử dụng email, phần mềm cơng việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc Thời gian: ngày Nội dung: Tìm hiểu cơng cụ sử dụng trình làm việc Trong thời gian này, người phụ trách hướng dẫn thực tập sinh tìm hiểu cơng cụ giúp ích cho công việc sau Một số phần mềm số Mentor: Phạm Xuân Bách Trương Gia Thạch 10 Slack – Phần mềm chat, report công việc hàng ngày công ty, Jira – Ứng dụng theo dõi quản lý quy trình phát triển phần mềm, Redmine – Công cụ quản lý theo dõi, kiểm soát vấn đề dự án, Visual Studio Code – Trình chỉnh sửa mã nguồn, Git – Hệ thống quản lý phiên mã nguồn phân tán, Gitlab – Phần mềm quản lý kho mã nguồn Git,… Thực hiện: Thực hành sử dụng phần mềm nêu Kết quả: Làm quen sử dụng phần mềm nêu 2.2 Tìm hiểu ngơn ngữ Python Thời gian: ngày (1 tuần) Nội dung: Được training Python - Python ngôn ngữ cấp cao, thông dịch, tương tác hướng đối tượng Python thiết kế để dễ đọc Nó sử dụng từ khóa tiếng Anh thường xuyên ngơn ngữ khác sử dụng dấu chấm câu có cấu trúc cú pháp ngơn ngữ khác - Kiểu liệu khai báo biến Python - Các toán tử Python - Các cấu trúc điều kiện vòng lặp Python - Hàm, Class Mơ-đun Python - Lập trình hướng đối tượng Python - Ngồi cịn có case-study nâng cao để sinh viên thực tập tìm hiểu thêm Decorators, Error Handling, Generators, Testing,… Thực hiện: - Tham gia đầy đủ buổi training công ty - Nghiên cứu, kết hợp thực hành tài liệu mà công ty cung cấp Kết quả: - Nắm kiến thức Python Mentor: Phạm Xuân Bách Trương Gia Thạch 11 - Có thể tạo ứng dụng nhỏ Python 2.3 Nghiên cứu tài liệu kỹ thuật FastAPI Thời gian: ngày (2 tuần) Nội dung: Các kiến thức FastAPI framework - REST APIs Là tiêu chuẩn dùng việc thiết kế API cho ứng dụng web (thiết kế Web services) để tiện cho việc quản lý resource Nó trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, liệu động…), bao gồm trạng thái tài nguyên định dạng truyền tải qua HTTP - Pydantic Pydantic thư viện để xác định xác thực liệu, hóa tài liệu (sử dụng JSON Schema) dựa kiểu liệu Python FastAPI sử dụng để: - Xử lý tất xác thực liệu, hóa liệu tài liệu mơ hình tự động (dựa JSON Schema) - FastAPI lấy liệu JSON Schema đặt vào OpenAPI Starlette Starlette framework/bộ công cụ ASGI (Asynchronous Server Gateway Interface) nhẹ, lý tưởng để xây dựng dịch vụ khơng đồng hiệu suất cao Nó đơn giản trực quan Nó thiết kế để mở rộng dễ dàng có thành phần mơ-đun FastAPI sử dụng để: - Xử lý tất phần web cốt lõi Thêm tính hàng đầu Mentor: Phạm Xuân Bách Trương Gia Thạch 12 - Bản thân lớp FastAPI kế thừa trực tiếp từ lớp Starlette Uvicorn Uvicorn máy chủ ASGI nhanh (như chớp), xây dựng uvloop httptools Nó web framework, mà máy chủ Ví dụ: khơng cung cấp cơng cụ để định tuyến theo đường dẫn Đó thứ mà framework Starlette (hoặc FastAPI) cung cấp Đây máy chủ đề xuất cho Starlette FastAPI FastAPI sử dụng để: - - Máy chủ web để chạy ứng dụng FastAPI - Có thể kết hợp với Gunicorn để có máy chủ đa xử lý không đồng FastAPI Là web framework đại, nhanh (hiệu suất cao) để xây dựng API với Python 3.6+ dựa kiểu liệu Python tiêu chuẩn Đứng vai hai người khổng lồ Starlette Pydantic FastAPI có tất tính mà hai người khổng lồ có Ngồi tính bậc như: - Tự động tạo giao diện tài liệu đặc tả API từ mã - Hệ thống định tuyến đơn giản, sử dụng trực tiếp tên phương thức HTTP - Có giá trị mặc định hợp lý, tùy chỉnh cách mạnh mẽ (Path/Query parameters, Body, Form Data, Request Files,…) - Có hệ thống dependency injection mạnh mẽ Tìm cách giảm thiểu việc lặp lại mã Mentor: Phạm Xuân Bách Trương Gia Thạch 13 Thực hiện: - Tham gia đầy đủ buổi trainning - Làm tập thực hành từ hướng dẫn tài liệu - Tìm kiếm tài liệu mạng để tìm hiểu thêm Kết quả: - Hiểu khái niệm API - Xây dựng máy chủ có API đơn giản với FastAPI - Hiểu lập trình Web Back-end 2.4 Nghiên cứu tài liệu kỹ thuật Docker Thời gian: ngày Nội dung: Các kiến thức Docker - Docker container Là quy trình sandboxed máy chủ, quy trình tách biệt khỏi tất quy trình khác máy chủ - - Là thể image - Có thể chạy máy cục bộ, máy ảo triển khai cloud - Có thể triển khai hệ điều hành - Được tách biệt khỏi container khác thực thi mơi trường riêng Container image Khi tạo container, sử dụng hệ thống tệp bị cô lập Hệ thống tệp tùy chỉnh container image Vì image chứa hệ thống tệp container nên phải chứa thứ cần thiết để thực thi ứng dụng - tất phụ thuộc, cấu hình, tập lệnh, Mentor: Phạm Xuân Bách Trương Gia Thạch 14 tệp nhị phân, Image chứa cấu hình khác cho container, chẳng hạn biến môi trường, lệnh mặc định để chạy, siêu liệu khác - Docker Compose - Là công cụ phát triển để giúp xác định chia sẻ ứng dụng đa container Với Compose, tạo tệp YAML để xác định service với lệnh nhất, xoay chuyển thứ phá bỏ tất Thực hiện: - Tham gia đầy đủ buổi training - Containerize máy chủ với FastAPI tạo trước - Quản lý container tạo Docker Compose Kết quả: - Nắm kiến thức Docker - Biết cách tạo container image quản lý chúng Docker Compose 2.5 Thực hành xây dựng máy chủ API cho dự án Lottery Website Thời gian: tháng Nội dung: Thực hành kiến thức học tìm hiểu để xây dụng máy chủ API theo yêu cầu người hướng dẫn Kết quả: Xây dựng máy chủ API đáp ứng yêu cầu đặt Thực project Sau tháng training thực hành, thực tập sinh nắm kiến thực API, Python, FastAPI, Docker Trong tháng thứ hai, trainer hướng dẫn Mentor: Phạm Xuân Bách Trương Gia Thạch 15 thực tập sinh áp dụng kiến thức học để tham gia thực chiến dự án công ty Chi tiết thực dự án nói phần sau Lịch làm việc Tuần Cơng việc Người hướng dẫn Tìm hiểu cơng ty, cách tổ chức công ty - Làm quen với công cụ làm việc công ty - Học cách trao đổi, làm việc qua email, Slack, Jira - Tìm hiểu ngơn ngữ lập trình Python nâng cao - Thực hành Python - Làm ứng dụng demo - Tìm hiểu FastAPI - Tìm hiểu FastAPI - Làm ứng dụng demo với FastAPI - Tìm hiểu Docker Lottery Website spring 1: - Đọc tài liệu, đọc mã Anh Phạm Xuân Bách, Đặng Hải Thịnh - Mentor: Phạm Xuân Bách Mức độ hoàn thành Nhận xét người hướng dẫn Anh Phạm Xuân Bách Anh Phạm Xuân Bách Anh Phạm Xuân Bách Anh Phạm Xuân Bách Trương Gia Thạch 16 nguồn dự án - Tham gia Meeting - Chạy thử dự án - Tạo API task Distributor channel Lottery Website spring 1(tiếp): - Viết hàm xử lý gửi hình ảnh - Xử lý pagination, filter cho API - Testing API Lottery Website spring 1(tiếp): - Viết hàm xử lý business logic - Migrate database - Tạo API task Agency - Testing API Lottery Website spring 1(tiếp): - Hỗ trợ front end testing API giao diện - Testing phiên deployment - Xử lí Plugout API dự án Vict-Module - Báo cáo cuối đợt thực tập Mentor: Phạm Xuân Bách Anh Phạm Xuân Bách Anh Phạm Xuân Bách Anh Phạm Xuân Bách Trương Gia Thạch 17 Chương Chi tiết project Giới thiệu project Lottery tảng hỗ trợ quản lí đại lí chiến dịch quảng bá, khuyến mại doanh nghiệp Lottery bao gồm tảng ứng dụng mobile (Android/IOS) web Các công việc làm 2.1 Cài đặt, chạy thử dự án Nội dung: Clone source code chạy thử dự án Thực hiện: - Cài đặt Docker, Git đăng nhập Gitlab - Đọc tài liệu dự án tài liệu hướng dẫn - Cài đặt pre-commit Mentor: Phạm Xuân Bách Trương Gia Thạch 18 2.2 Tạo API Distributor channel: Nội dung: Tạo API Distributor Channel Thực hiện: - Đọc tài liệu yêu cầu task - Tạo model, schema, router - Migrate database - Testing API Mentor: Phạm Xuân Bách Trương Gia Thạch 19 2.3 Xử lý Agency API, resource Mentor: Phạm Xuân Bách Trương Gia Thạch 20 Nội dung: Viết API Agency máy chủ theo yêu cầu tài liệu Tạo template tương ứng với kiện Tạo API hàm xử lí cho resource sử dụng dự án Thực hiện: - Đọc tài liệu yêu cầu task - Viết hàm xử lý API - Đọc code thêm hàm xử lí vào API - Viết hàm xử lí cho resource - Tạo model migration cho ứng dụng Mentor: Phạm Xuân Bách Trương Gia Thạch 21 - Tạo template email tương ứng với kiện 2.4 Một số công việc khác - Testing API - Xử lý pagination, filter cho API - Tạo API Plug out container cho dự án Vict-Module Kết Xây dựng thành công API theo yêu cầu người hướng dẫn Mentor: Phạm Xuân Bách Trương Gia Thạch 22 TÀI LIỆU THAM KHẢO - Python Tutorial – https://www.tutorialspoint.com/python/index.htm [Lần truy cập cuối: 20/12/2022] - FastAPI Documentation – https://fastapi.tiangolo.com/ [Lần truy cập cuối: 20/12/2022] - Pydantic Documentation – https://docs.pydantic.dev/ [Lần truy cập cuối: 20/12/2022] - Starlette Documentation – https://www.starlette.io/ [Lần truy cập cuối: 20/12/2022] - Awesome FastAPI, A curated list of awesome things related to FastAPI – https://github.com/mjhea0/awesome-fastapi [Lần truy cập cuối: 20/12/2022] - FastAPI Best Practices – https://github.com/zhanymkanov/fastapi-best- practices [Truy cập lần cuối: 20/12/2022] - Docker Guides – https://docs.docker.com/get-started/ [Lần truy cập cuối: 20/12/2022] - Python-emails Documentation – https://python-emails.readthedocs.io/en/latest/ [Lần truy cập cuối: 20/12/2022] Mentor: Phạm Xuân Bách Trương Gia Thạch 23 TỔNG KẾT Như vậy, sau tháng thực tập TISOHA, em học nhiều kinh nghiệm bổ ích lập trình back-end web với FastAPI Docker hoàn thành nhiệm vụ giao Nhờ đó, em hiểu quy trình phát triển dự án, đồng thời hiểu trải nghiệm làm dự án thực tế, tăng kĩ giao tiếp, xử lí tình Chân thành cảm ơn Cơng ty TNHH Giải pháp Phần mềm TISOHA tạo điều kiện cho em thực tập công ty Đặc biệt cảm ơn giúp đỡ anh nhóm trainer TISOHA giúp đỡ tận tình cho em thời gian thực tập công ty Mentor: Phạm Xuân Bách Trương Gia Thạch ... Chương Nội dung thực tập Đợt thực tập với chủ đề ? ?Lập trình Web Back- end với FastAPI cho Lottety Website? ?? nhằm mục đích giúp sinh viên thực tập đào tạo toàn diện lập trình Back- end, đồng thời... kiện cho em có hội thực tập công ty Chỉ thời gian ngắn, nhờ dẫn nhiệt tình anh trainer, nhóm thực tập chúng em tiếp thu kiến thức quan trọng để thành thạo việc lập trình Web Back- end với FastAPI. .. triển website cần phải suy nghĩ đau đầu Để thử thách thân ngành công nghiệp web, em lựa chọn thực tập với vị trí Back- end định hướng cho việc học tập nghiên cứu sâu quy trình sản xuất web FastAPI