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 WEBSITE Công ty thực tập Microchip Technology Inc Người phụ trách Trần Việt Khoẻ Thực tập sinh Ngô Tấn Hoài TP Hồ[.]
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 WEBSITE Cơng ty thực tập : Microchip Technology Inc Người phụ trách : Trần Việt Khoẻ Thực tập sinh : Ngô Tấn Hồi TP.Hồ Chí Minh, ngày 22 tháng 12 năm 2022 LỜI MỞ ĐẦU Sự nghiệp giáo dục nước ta trình xây dựng phát triển nhằm bắt kịp xu giáo dục nước khu vực giới, việc học tập đôi với thực hành biện pháp hiệu đắn áp dụng trường đại học Việt Nam, không ngành kỹ thuật mà ngành kinh tế xã hội khác Đối với sinh viên việc tổ chức đợt thực tập công ty, nhà máy, xí nghiệp,… việc cần thiết giúp sính viên tiếp cận, tìm hiểu làm quen với mơi trường làm việc thực tế, từ vận dụng kiến thức học tập trường vào điều kiện làm việc thực tế cách linh hoạt sáng tạo Đồng thời hội giúp nhà trường nhìn nhận đánh giá đúng, khách quan hiệu đào tạo đánh giá trình độ, khả tiếp th, học lực sinh viên Để giúp cho sinh viên ứng dụng kiến thức kỹ có từ trình học tập vào thực tế hoạt động doanh nghiệp, Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM tổ chức cho sinh viên trường nói chung khoa Cơng nghệ phần mềm nói riêng đợt thực tập bổ ích LỜI CẢM ƠN Để hoàn thành Báo cáo thực tập này, em nhận nhiều quan tâm, giúp đỡ hướng dẫn nhiều cá nhân, tập thể trường Em xin chân thành cảm ơn thầy cô, giảng viên, giáo viên hướng dẫn Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM dành nhiều thời gian để hướng dẫn, giúp đỡ em suốt trình thực tập thực báo cáo Đồng thời em xin chân thành cảm ơn giúp đỡ nhiệt tình Ban giám đốc toàn thể thành viên CÔNG TY TNHH MTV MICROCHIP TECHNOLOGY (VIỆT NAM) Đặc biệt anh chị nhóm TD-CAD hướng dẫn truyền đạt cho em kinh nghiệm thực tiễn q báu Vì kiến thức cịn hạn chế chưa có nhiều kinh nghiệm thực tế nên báo cáo khơng tránh khỏi thiếu sót việc trình bày phân tích Kính mong nhận ý kiến đóng góp q thầy q cơng ty để báo cáo hồn thiện Em xin kính chúc q thầy cơ, Ban Giám đốc tồn thể anh chị Công ty nhiều sức khoẻ thành công lĩnh vực Em xin trân trọng cảm ơn Ngơ Tấn Hồi TP.HCM, ngày 22 tháng 12 năm 2022 NHẬN XÉT CỦA KHOA Mục lục Chương 1: Giới thiệu công ty thực tập Giới thiệu Tập đoàn Microchip Technology Inc Giới thiệu Công Ty TNHH MTV Microchip Technology (Việt Nam) Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty 1.1 Nội dung: 1.2 Hình thức: 1.3 Kết quả: Nghiên cứu kỹ thuật 2.1 Shell Programming 2.2 Javascript ES6 2.3 Webpack BabelJS 2.4 ReactJS 11 2.5 Django 13 Thực project 14 Lịch làm việc 15 Chương 3: Chi tiết dự án 16 Kiến trúc IPMS 16 Chức IPMS 16 Thực 17 Kế hoạch 17 Một số chức tham gia 17 NỘI DUNG Chương 1: Giới thiệu công ty thực tập Giới thiệu Tập đoàn Microchip Technology Inc Microchip Technology Inc tập đồn niêm yết cơng khai Mỹ, trụ sở công ty đặt Chandler, Arizona Microchip Technology Inc nhà cung cấp hàng đầu giải pháp vi điều khiển, tín hiệu hỗn hợp, analog FlashIP, cung cấp khả phát triển sản phẩm với rủi ro thấp, tổng chi phí hệ thống thấp thời gian đưa sản phẩm thị trường nhanh cho hàng nghìn ứng dụng đa dạng khách hàng tồn giới Giới thiệu Cơng Ty TNHH MTV Microchip Technology (Việt Nam) Microchip thành lập văn phòng Việt Nam vào năm 2013 với tư cách trung tâm phát triển đặt Thành phố Hồ Chí Minh Văn phịng tập trung vào R&D số thiết kế IP Các giải pháp từ văn phòng Việt Nam phục vụ 130.000 khách hàng thị trường công nghiệp, ô tơ, tiêu dùng, hàng khơng vũ trụ quốc phịng, truyền thơng điện tốn Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty 1.1 Nội dung: - Microchip Critical Policies (Những sách quan trọng Microchip) - Open Source Introduction: Intellectual Property and Open Source Licenses (Giới thiệu Mã nguồn mở: Sở hữu trì tuệ Giấy phép mã nguồn mở) - Software Installation Policy (Chính sách cài đặt phần mềm) 1.2 - Hình thức: Tham gia khoá học trực tuyến Microchip Learning Center hoàn thành câu hỏi trắc nghiệm sau khoá học 1.3 - Kết quả: Hiểu thêm cơng ty sách Microchip Nghiên cứu kỹ thuật 2.1 Shell Programming Thời gian: ngày Nội dung: Shell Shell chương trình thơng dịch lệnh hệ điều hành, cung cấp cho người dùng khả tương tác với hệ điều hành cách gõ lệnh chế độ dòng lệnh, đồng thời trả lại kết thực lệnh lại cho người sử dụng Shell cung cấp tập hợp lệnh đặc biệt mà từ tạo nên chương trình, gọi shell script Ngồi lệnh đơn giản hệ thống Unix shell bổ sung thêm cấu trúc phức tạp điều khiển rẽ nhánh,vịng lặp Trong MS-DOS shell Command, Linux có nhiều loại shell khác sh, zsh, bash, csh phổ biến bash shell (shell mặc định cho nhiều distro khác nhau) Shell types Có loại shell chính: - Bourne shell (mặc định có dấu nhắc lệnh $ trên) - C shell (dấu nhắc lệnh %) Trong Bourne shell cịn có loại khác như: - Bourne shell (sh) - Korn shell (ksh) - Bourne Again shell (bash) - POSIX shell (sh) C shell có: - C shell (csh) - TENEX/TOPS C shell (tcsh) Thực hiện: - Tìm hiểu thơng qua sách Teach Yourself Shell Programming in 24 Hours làm tập cuối chương - Soạn slide, file tổng hợp để báo cáo Kết quả: - Tiếp cận làm quen với linux command thông dụng cách viết shell script - Có khả tự tìm kiếm trợ giúp Bash shell cần - Biệt có command dùng để làm gì, cần dùng - Có thể bắt đầu tự viết script đơn giản để phục vụ mục đích học tập cơng việc 2.2 Javascript ES6 Thời gian: ngày Nội dung: JavaScript gì? JavaScript ngơn ngữ lập trình nhà phát triển sử dụng để tạo trang web tương tác Từ làm bảng tin trang mạng xã hội đến hiển thị hình ảnh động đồ tương tác, chức JavaScript cải thiện trải nghiệm người dùng trang web Là ngơn ngữ kịch phía máy khách, JavaScript công nghệ cốt lõi World Wide Web Ví dụ: duyệt internet, bạn thấy quảng cáo quay vịng dạng hình ảnh, menu thả xuống nhấp để hiển thị màu sắc phần tử thay đổi động trang web lúc bạn thấy hiệu ứng JavaScript JavaScript dùng để làm gì? Trước đây, trang web có dạng tĩnh, tương tự trang sách Một trang tĩnh chủ yếu hiển thị thông tin theo bố cục cố định không làm thứ mà mong đợi trang web đại JavaScript dần biết đến công nghệ phía trình duyệt để làm cho ứng dụng web linh hoạt Sử dụng JavaScript, trình duyệt phản hồi tương tác người dùng thay đổi bố cục nội dung trang web Khi ngơn ngữ phát triển hồn thiện, nhà phát triển JavaScript thiết lập thư viện, khung cách thức lập trình bắt đầu sử dụng ngơn ngữ bên ngồi trình duyệt web Ngày nay, bạn sử dụng JavaScript để thực hoạt động phát triển phía máy khách máy chủ Dưới số trường hợp sử dụng phổ biến: Trước đây, trang web có dạng tĩnh, tương tự trang sách Một trang tĩnh chủ yếu hiển thị thông tin theo bố cục cố định không làm thứ mà mong đợi trang web đại JavaScript dần biết đến cơng nghệ phía trình duyệt để làm cho ứng dụng web linh hoạt Sử dụng JavaScript, trình duyệt phản hồi tương tác người dùng thay đổi bố cục nội dung trang web Khi ngơn ngữ phát triển hồn thiện, nhà phát triển JavaScript thiết lập thư viện, khung cách thức lập trình bắt đầu sử dụng ngơn ngữ bên ngồi trình duyệt web Ngày nay, bạn sử dụng JavaScript để thực hoạt động phát triển phía máy khách máy chủ Cơ Javascript - Flow Control - Functions - Objects - Types - Exceptions - Modules Một số tính phiên ES6 - let const - Arrow Function - Classes - Default Parameter Values - Template Literals - Destructuring - import and export - Promises - Rest Parameter Spread Operator Thực hiện: - Đọc tài liệu - Soạn slide, file tổng hợp để báo cáo Kết quả: - Nắm khái niệm, cú pháp Javascript - Hiểu biết thêm tính Javascript phiên ES6 2.3 Webpack BabelJS Thời gian: ngày Nội dung Webpack gì? Webpack biết đến công cụ phần mềm sử dụng để quản lý module JavaScript Webpack đóng gói tất mã nguồn chương trình CSS, font, hình ảnh, hoạt động Assets tên để gọi thứ đóng gói chúng Webpack đóng gói thành file vài file Mặc dù đóng gói nhiều liệu chúng đóng gói cách cẩn thận, ngăn nắp, xếp với cấu trúc tương tự viết mã code Những liệu lập trình sẵn xem chạy trước, chạy sau phần phụ thuộc vào Tại lại cần sử dụng Webpack? Hiện với phát triển vũ bão Javascript đặc biệt đoạn mã code viết sẵn ReactJS, AngularJS, giúp giảm thiểu code CSS giúp nâng cao trải nghiệm người dùng khiến cho nhớ module JS ứng dụng khơng thể kiểm sốt gây tình trạng phình website Lúc này, vấn đề xảy xếp mã nguồn để dễ quản lý truy xuất liệu Chính vậy, việc sử dụng Webpack nhằm giúp cải thiện tình trạng bừa bãi tải lựa chọn đắn Babel JS gì? Babel hay Babel JS trình biên dịch JavaScript, mã nguồn mở miễn phí Babel sử dụng để biên dịch ECMAScript (ES) thành phiên tương thích ngược với JavaScript chạy mơi trường JavaScript cũ Babel công cụ phổ biến để sử dụng tính JavaScript Tại phải dùng Babel JS? Hãy nói ECMAScript (ES), năm họ cho “phiên bản” dành cho JavaScript, nhiều cơng nghệ cập nhật Có thể vài cập 10 nhật nhỏ, có cách mạng lớn Dù có thay đổi Vì vậy, dự án lớn liên tục phải bảo trì cập nhật tính Google, Facebook,… chẳng hạn Khi cơng nghệ thay đổi phải thay đổi theo ,do số code cũ có chạy cần cập nhật Điều tốn nhiều thời gian phát sinh nhiều lỗi Nhưng có Babel JS, giúp chuyển đổi code chuẩn code cũ Lúc đó, code chạy hệ điều hành, trình duyệt cũ,… Thực hiện: - Đọc tài liệu - Soạn slide, file tổng hợp để báo cáo Kết quả: - Nắm khái niệm phải sử dụng Webpack BabelJS 2.4 ReactJS Thời gian: ngày Nội dung: ReactJS gì? ReactJS thư viện JavaScript có tính hiệu linh hoạt để xây dựng thành phần giao diện người dùng (UI) sử dụng lại ReactJS giúp phân chia UI phức tạp thành thành phần nhỏ (được gọi component) Nó tạo Jordan Walke, kỹ sư phần mềm Facebook ReactJS ban đầu phát triển trì Facebook sau sử dụng sản phẩm WhatsApp & Instagram ReactJS dùng để xây dựng ứng dụng [single page application] (SPA) Một điểm hấp dẫn ReacJS khơng xây dựng bên phía clients mà cịn sử dụng bên phía server 11 Các khái niệm ReactJS Virtual DOM DOM Document Object Model cấu trúc trừu tượng text Các đoạn mã HTML gọi HTML DOM Mỗi elements HTML nodes DOM Khi làm việc với DOM, nodes thay đổi tất nodes phải thay đổi thay Giả sử, có list danh sách gồm 10 items, thay đổi items DOM thay đổi items cịn lại trạng thái ban đầu Điều không cần thiết, tốc độ xử lý DOM nhanh ứng dụng SPA việc thay đổi DOM liên tục nên xảy chậm khơng khả thi xây dựng ứng dụng lớn Lúc Virtual DOM dùng để thay Nó xây dựng dựa DOM thật, có vài thuộc tính DOM thật thay đổi Virtual DOM không thực thay đổi hình giống DOM thật Khi thực render JSX element, Virtual DOM object cập nhật, virtual DOM cập nhật, ReactJS so sánh virtual DOM với virtual DOM trước để kiểm tra trước thực cập nhật sau cập nhật phần DOM thật Thay đổi DOM thật hiển thị hình Components Khi làm việc với dự án lớn, UI có độ phức tạp cao chia thành phần khác Việc chia nhỏ thành phần UI điều cần thiết, phần nhỏ gọi components, cho phép render đoạn mã HTML, Trong ReactJS cách viết components chia thành loại: - class components - function components Props State 12 Props tham số chuyển qua lại React Components, props truyền qua component với cú pháp giống HTML attributes State obejct mà lưu trữ giá trị thuộc tính bên components tồn phạm vi component Mỗi bạn thay đổi giá trị state component render lại React Lifecycle React Lifcecycle vòng đời component, tiến hành render component ReactJS thực nhiều tiến trình khác nhau, tiến trình lặp lặp lại component Thực hiện: - Đọc tài liệu - Soạn slide, file tổng hợp để báo cáo Kết quả: - Nắm khái niệm ReactJS 2.5 Django Django gì? Django phần mềm bạn sử dụng để phát triển ứng dụng web cách nhanh chóng hiệu Hầu hết ứng dụng web có số chức phổ biến, xác thực, truy xuất thông tin từ sở liệu quản lý cookie Các nhà phát triển phải viết mã cho chức tương tự vào ứng dụng web mà họ viết Django giúp họ làm việc dễ dàng cách nhóm chức khác thành tập hợp lớn mơ-đun tái sử dụng, gọi khung ứng dụng web Các nhà phát triển sử dụng khung web Django để xếp viết mã họ hiệu giảm đáng kể thời gian phát triển web Tại nhà phát triển web chọn Django? 13 Có số khung web thị trường Django viết ngôn ngữ Python nhiều khung web Python Tuy nhiên, nhà phát triển thường ưu khung web Django so với khung web khác lý sau Tốc độ phát triển Django có cấu trúc hợp lý dễ cài đặt học hỏi, vậy, bạn bắt đầu sử dụng vòng vài Những nhà thiết kế Django tạo framework để nhanh chóng triển khai kiến trúc web mã Nhờ có framkwork hỗ trợ, q trình phát triển diễn nhanh chóng thiết kế nhìn gọn ghẽ, thực tiễn Phổ biến Hàng nghìn dự án nguồn mở trang web tầm cỡ sử dụng Django như: - Instagram - Mozilla Firefox - Pinterest - National Geographic Thực hiện: - Đọc tài liệu - Soạn slide, file tổng hợp để báo cáo Kết quả: - Nắm kiến thức lập trình Web Python với Django Framework Thực project IP Management System - IPMS: công cụ SST nội để phân phối package cho khách hàng Nó tương tác dạng Web Application đảm bảo an toàn bảo mật Chi tiết đồ án nói phần sau 14 Lịch làm việc Người hướng Công việc Tuần - dẫn Mức độ hồn thành Nhận xét người hướng dẫn Tìm hiểu công ty, Anh Trần Việt cách tổ chức cơng Khoẻ ty - Tìm hiểu sách quan trọng Microchip - hiểu Shell Anh Trần Việt Programming - Tìm Khoẻ Tìm hiểu Javascript Anh Trần Minh ES6 - Luận Tìm hiểu Webpack Anh Trần Minh BabelJS - Tìm hiểu Django Anh Trần Minh Luận Django Rest Luận Framework Giai đoạn 1: - Anh Trần Minh Thiết kế lập trình Luận giao diện Giai đoạn 2: - Thiết kế sở liệu Luận Giai đoạn 3: - Anh Trần Minh Anh Trần Minh Viết API thực Luận chức cho dự án 15 Chương 3: Chi tiết dự án Kiến trúc IPMS Chức IPMS IPMS hỗ trợ giao tiếp hai chiều với khách hàng SST: - SST giao tiếp với khách hàng: Thông báo cập nhật Design Kit Liệt kê cho khách hàng IP có foundry, process node với IP mà khách hàng có license Theo dõi, trao đỗi sữa lỗi mà khách hàng báo cáo - Khách hàng giao tiếp với SST: Gửi yêu cầu tải Design Kit, MRD, TAN file IP mà khách hàng có license Gửi yêu cầu để lấy thông tin IP mà khách hàng quan tâm Báo cáo lỗi IP mà khách hàng có license câu hỏi thắc mắc khách hàng IPMS hỗ trợ quản lý, giao tiếp nhóm nội SST: 16 - Hỗ trợ quản lý IP, tài khoản, yêu cầu từ khách hàng - Hỗ trợ báo cáo, trao đổi, phân công xử lý lỗi, câu hỏi thắc mắc khách hàng nhóm nội SST Thực - Trần Việt Khoẻ - Trần Minh Luận - Ngô Tấn Hoài - Bùi Quang Vinh Kế hoạch - Giai đoạn 1: Phân tích - Giai đoạn 2: Thiết kế lập trình giao diện - Giai đoạn 3: Thiết kế sở liệu - Giai đoạn 4: Hiện thực chức - Giai đoạn 5: Chạy thử - Giai đoạn 6: Phát hành Một số chức tham gia - Quản lý IP IP version - Upload file MRD, TAN, Design Kit xử lý lưu trữ file phía server - Chức tạo Bug bên phía Internal External User - Xem chi tiết Bug - Bình luận trao đổi Bug Internal External User - Chức giúp Admin quản lý Bug - Tạo Bug bình luận Bugzilla - Đồng liệu từ phía Bugzilla với Database 17 Kiến trúc quy trình báo cáo Bug 18 TỔNG KẾT Trong q trình thực tập Cơng Ty TNHH MTV Microchip Technology (Việt Nam), quý công ty tạo điều kiện đặc biệt anh chị nhóm TD-CAD giúp em học nhiều kiến thức bổ ích kinh nghiệm để giúp ích cho q trình làm việc tương lai Bên cạnh đó, Quý thầy cô khoa Công nghệ phần mềm trường ĐH Công nghệ Thơng tin – ĐHQG TP.HCM tận tình giúp đỡ, giải đáp thắc mắc trình thực tập cơng ty hướng dẫn em hồn thành báo cáo Bản thân em nhận thấy, thực tập hội để sinh viên quan sát- học hỏi cơng việc ngày, văn hố, mơi trường, gặp gỡ, giao tiếp với nhiều anh, chị đồng nghiệp xây dựng mối quan hệ làm việc cơng ty Thấy sai sót thân để có khắc phục hồn thiện Cũng hội để sinh viên hiểu thêm - áp dụng kiến thức lĩnh vực ngành nghề học, thực tập bước quan trọng để sinh viên định hướng phát triển nghiệp sau trường Đây lần em thực tập tiếp xúc với môi trường thực tế doanh nghiệp, nên trình- trình bày báo cáo khơng tránh khỏi thiếu sót Em mong nhận góp ý quý thầy cô khoa Công nghệ phần mềm ban lãnh đạo Cơng ty để giúp ích cho cơng việc tương lai em sau tốt Cuối cùng, kính chúc Quý thầy cô Quý lãnh đạo- nhân viên Công Ty TNHH MTV Microchip Technology (Việt Nam) lời chúc sức khỏe thành công công việc 19 ... ngành nghề học, thực tập bước quan trọng để sinh viên định hướng phát triển nghiệp sau trường Đây lần em thực tập tiếp xúc với môi trường thực tế doanh nghiệp, nên trình- trình bày báo cáo khơng tránh... khoa Cơng nghệ phần mềm nói riêng đợt thực tập bổ ích LỜI CẢM ƠN Để hoàn thành Báo cáo thực tập này, em nhận nhiều quan tâm, giúp đỡ hướng dẫn nhiều cá nhân, tập thể trường Em xin chân thành cảm... thực tiễn q báu Vì kiến thức cịn hạn chế chưa có nhiều kinh nghiệm thực tế nên báo cáo khơng tránh khỏi thiếu sót việc trình bày phân tích Kính mong nhận ý kiến đóng góp q thầy q cơng ty để báo