1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO THỰC TẬP LẬP TRÌNH .NET WEB

22 5 0

Đ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

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 NET WEB Công ty thực tập : NashTech Vietnam (Công ty TNHH Harvey Nash Việt Nam) Người phụ trách : Lê Hằng Toàn Thực tập sinh : Trần Thị Hà Phương - 18521279 TP Hồ Chí Minh, tháng năm 2022 LỜI MỞ ĐẦU Trong thời điểm mà ngành công nghệ thông tin nói chung phát triển phần mềm nói riêng phát triển với tốc độ chưa có tiền lệ Nhu cầu cho sản phẩm phần mềm thuộc nhiều lĩnh vực ngày tăng Từ giai đoạn đầu phát triển phần mềm đến NET Framework ln cơng nghệ sử dụng rộng rãi toàn giới Theo số liệu thống kê khơng thức số lượng lập trình viên sử dụng ngôn ngữ C# NET rơi vào khoảng triệu, cho thấy mức độ hấp dẫn NET lập trình viên lớn Để nắm vững sử dụng hiệu NET, tránh lỗi khó xử lý cần phải hiểu kiến trúc NET cách thức hoạt động Vì mong muốn có thêm kinh nghiệm thực tế em định chọn NashTech - môi trường lý tưởng, đại, chuyên nghiệp - nơi giúp em trau dồi kiến thức kinh nghiệm tế LỜI CẢM ƠN Trân trọng gửi lời cảm ơn NashTech VN tạo điều kiện cho em có hội thực tập mơi trường chun nghiệp cơng ty Trong vịng ba tháng, em hoàn thành trang web thương mại điện tử gồm chức bản, trải nghiệm làm việc mơ hình scrum để phát triển trang web quản lý tài sản cho người dùng Các kiến thức code, git kiến trúc phần mềm NET, với khóa học kỹ mềm vơ hữu ích cơng ty Hiểu vị trí full stack developer thời kỳ công nghệ đại Chân thành cảm ơn lịng nhiệt tình giúp đỡ anh chị Leader, Mentor trưởng HR giúp đỡ tận tình thời gian qua Vì kiến thức cịn hạn chế lần tiếp xúc với kiến thức thực tế, áp dụng lý thuyết vào cơng việc nên thân cịn bỡ ngỡ lúng túng, khơng tránh khỏi thiếu sót, mong q Thầy (Cơ) đóng góp ý kiến để em hồn thiện Cuối em xin cảm ơn thầy cô khoa Công Nghệ Phần Mềm hỗ trợ, tạo điều kiện cho em hoàn thành báo cáo Trần Thị Hà Phương TpHCM, ngày 15 tháng 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 công ty NashTech Vietnam Sản phẩm công ty Chương 2: Nội dung thực tập Kiến thức kỹ thuật 1.1 Git 1.2 HTML/CSS/JS 1.3 .NET 1.4 SQL 1.5 ReactJS 10 1.6 Unit Test, Integration Test 12 1.7 Scrum 13 Thực project 14 Lịch làm việc 14 Chương 3: Chi tiết project 16 Project kỳ 16 Project cuối kỳ 17 2.1 Đề tài 17 2.2 Kế hoạch 18 2.3 Kết thu 19 Chương 1: Giới thiêu công ty thực tập Giới thiệu công ty NashTech Vietnam NashTech cơng ty thuộc tập đồn Harvey Nash, có trụ sở Anh NashTech công ty công nghệ hàng đầu Việt Nam với bề dày kinh nghiệm việc tư vấn, cung ứng giải pháp cơng nghệ có quy mơ tồn cầu cho nhiều khách hàng tập đoàn lớn Ford, Google, Nestle, Honda, Prudential,… Sản phẩm công ty Trong 20 năm qua, NashTech doanh nghiệp góp phần thúc đẩy vị Việt Nam đồ công nghệ giới Doanh nghiệp kinh doanh với bốn mảng chủ chốt gồm: tư vấn giải pháp phát triển phần mềm, giải pháp quy trình kinh doanh, bảo trì hỗ trợ kỹ thuật ứng dụng quản lý chất lượng, kiểm thử phần mềm Chương 2: Nội dung thực tập Đợt thực tập với chủ đề “Lập trình NET” 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 fullstack NET Web, đồ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 chuyên nghiệp Kiến thức kỹ thuật 1.1 Git Thời gian: tiếng Nội dung: • Tìm hiểu khái niệm Git, command cần biết sử dụng Git (rebase, merge, reset, revert, stash, cherry pick) • Làm quen với Git GUI Clients Sourcetree, GitHub Desktop, Tortoise Git • Các workflow Git: o Centralized Workflow sử dụng repository trung tâm đầu vào cho thay đổi project Nhánh để code mặc định master thay đổi commit vào master, không cần tạo thêm nhánh khác o Feature Branch mở rộng có logic Centralizes Workflow Ý tưởng nằm sau Feature Branch Workflow việc phát triển tính nên thực nhánh riêng thay nhánh master Việc giúp cho nhiều dev phát triển tính khác mà khơng làm rối tung codebase Điều giúp cho nhánh master không chưa code hỏng, khiến cho việc tích hợp liên tục trở nên dễ dàng o Gitflow Workflow mơ hình phân nhánh chặt chẽ xung quanh việc release Workflow không bao gồm khái niệm hay lệnh nằm sử dụng cho Feature Branch Workflow Điểm khác biệt gán vai trò, nhiệm vụ cụ thể cho nhánh khác quy định nhánh cần tương tác với o Forking Workflow t sử dụng server-side repository để làm codebase trung tâm, developer có server-side repository riêng 1.2 HTML/CSS/JS Thời gian: 14 tiếng Nội dung: Giới thiệu sơ đồ hoạt động đơn giản trang web, giới thiệu browser • Tìm hiểu HTML, tags HTML thực hành viết Hello World! • Tìm hiểu CSS: o Cú pháp o CSS selectors o CSS combinator (phần tử kết hợp) o CSS – Pseudo o Cách sử dụng CSS với HTML o Responsive web CSS • Tìm hiểu Javascript o Cú pháp o Các kiểu liệu o Operator o Function Giữa kiến thức Javascript toán thực hành nhỏ giảng viên hướng dẫn thực 1.3 .NET Thời gian: 12 tiếng Nội dung: • Net Core • ASP Net Core MVC • Entity Framework Core 1.4 SQL Thời gian: 14 tiếng Nội dung: • Giới thiệu SQL • Tìm hiểu query như: SELECT, JOINS, SET, GROUP BY, HAVING Cách viết functions • Tìm hiểu Common Table Expressions • Giới thiệu Index Clustered Index Non-Clustered Index o Clustered Index lưu trữ xếp liệu vật lý table view dựa giá trị khóa chúng Các cột khóa định định nghĩa index Mỗi table view có Clusterd Index thân dịng liệu lưu trữ xếp theo thứ tự vật lý dựa cột loại Index Khi liệu table view cần lưu trữ xếp theo thứ tự định lúc cần dùng đến Clustered Index Khi table có Clusted Index table gọi Clustered Table Giống bạn có mục lục, bạn tìm kiếm đến mục việc click vào expand thông tin xong, không cần phải đâu khác o Non-Clustered Index có cấu trúc tách biệt với data row table view Mỗi index loại chứa giá trị cột khóa khai báo index, ghi giá trị key index chứa trỏ tới dòng liệu tương ứng table Mỗi trỏ từ dòng Non-Clustered index tới dòng liệu table gọi “row locator” Cấu trúc row locator phụ thuộc vào việc trang liệu lưu HEAP hay Clustered Table diễn giải mục Clustered Index Đối với HEAP, row locator trỏ tới dòng liệu, với clustered table, row locator khóa index clustered index 1.5 ReactJS Thời gian: 10 tiếng Nội dung: • JSX: Đây đơn giản syntax extension Javascript Với bạn viết Javascript với tag giống XML (XML-like) Về chất, tag thực lời gọi hàm, chuyển đổi React code end up dạng HTML Javascript DOM 10 • Component: React xây dựng xung quanh component, không dùng template framework khác Bạn tạo component gọi phương thức createClass đối tượng React, điểm bắt đầu tiếp cận với thư viện • Prop vs State: Có hai kiểu data React props state Sự khác biệt hai kiểu khó khăn để hiểu từ ban đầu, mặt khái niêm Nhưng bạn bắt đầu code, bạn nhanh chóng tách biệt hai loại Điểm mấu chốt khác state private thay đổi bên thân component Props mang tính external, khơng bị kiểm sốt thân component Nó truyền từ component cao theo phân cấp, hay hiểu đơn giản truyền từ component cha xuống component con, mà điều khiển liệu trước truyền xuống Vì component thay đổi props cách trức tiếp (điều làm cách gián tiếp để vào phần sau), tự thay đổi state thân • Vịng đời o React: Tìm hiểu giai đoạn giai đoạn chính: Mounting, Updating Unmounting vòng đời component class liên quan đến o React Hook: giới thiệu phiên React 16.8.0 Khi hook đời cung cấp cho api gọi useState useState giúp stateless component trở thành stateful component Hook giúp thiện hạn chế sử dụng lifecycle method functional component cách cung cấp cho api useEffect sử dụng để thay cho lifecycle method componentDidMount, componentDidUpdate, componentWillReceiveProps, componentWillUnMount • React router DOM: Tìm hiểu ứng dụng React Router - thư viện định tuyến (routing) tiêu chuẩn React Nó giữ cho giao diện ứng dụng đồng với URL trình duyệt React Router cho phép bạn định tuyến "luồng liệu"(data flow) ứng dụng cách rõ ràng 11 • Axios: Sử dụng Axios dễ dàng gửi request HTTP bất đồng đến REST endpoint thực chức CRUD • Redux: Làm quen với để quản lý state có ứng dụng javascript Hỗ trợ giải toán quan trọng chia sẻ state Việc chia sẻ state component với dựa theo thức truyền khác 1.6 Unit Test Thời gian: tiếng Nội dung: Unit Test loại kiểm thử phần mềm đơn vị hay thành phần riêng lẻ phần mềm kiểm thử Kiểm thử đơn vị thực trình phát triển ứng dụng Mục tiêu Kiểm thử đơn vị lập phần code xác minh tính xác đơn vị Các khái niệm thường gặp Unit test: • Assertion: Là phát biểu mô tả công việc kiểm tra cần tiến hành, thí dụ: AreEqual(), IsTrue(), IsNotNull()… Mỗi UT gồm nhiều assertion kiểm tra liệu đầu ra, tính xác lỗi ngoại lệ vấn đề phức tạp khác như: – Sự tồn đối tượng – Điều kiện biên: Các giá trị có vượt ngồi giới hạn hay khơng – Thứ tự thực luồng liệu … • Test Point: Là đơn vị kiểm tra nhỏ nhất, chứa đơn giản assertion nhằm khẳng định tính đắn chi tiết mã Mọi thành viên dự án viết test point Test Case: Là tập hợp test point nhằm kiểm tra đặc điểm chức cụ thể, thí dụ toàn giai đoạn người dùng nhập liệu thông tin nhập vào sở liệu Trong nhiều trường hợp kiểm tra đặc biệt khẩn cấp khơng cần đến test case • Test Suite: Là tập hợp test case định nghĩa cho module hệ thống • Regression Testing (hoặc Automated Testing): Là phương pháp kiểm nghiệm tự động sử dụng phần mềm đặc biệt Cùng loại liệu kiểm tra giống tiến hành nhiều lần lặp lại tự động nhằm 12 ngăn chặn lỗi cũ phát sinh trở lại Kết hợp Regression Testing với Unit Testing đảm bảo đoạn mã đáp ứng yêu cầu thay đổi đoạn mã cũ không bị ảnh hưởng hoạt động bảo trì • Production Code: Phần mã ứng dụng chuyển giao cho khách hàng • Unit Testing Code: Phần mã phụ để kiểm tra mã ứng dụng chính, khơng chuyển giao cho khách hàng 1.7 Scrum Thời gian: tiếng Nội dung: Scrum phương pháp Agile dùng cho phát triển sản phẩm, đặc biệt phát triển phần mềm Scrum khung quản lý dự án áp dụng rộng rãi, từ dự án đơn giản với nhóm phát triển nhỏ dự án có yêu cầu phức tạp với hàng trăm người tham gia, kể dự án đòi hỏi khung thời gian cố định Đặc thù Để dùng Scrum, cần hiểu rõ vận dụng thành tố tạo nên Scrum bao gồm giá trị cốt lõi đặc thù Scrum gồm: • Minh bạch (transparency): Muốn thành công với Scrum, thông tin liên quan tới trình phát triển phải minh bạch thơng suốt Các thơng tin là: tầm nhìn (vision) sản phẩm, yêu cầu khách hàng, tiến độ công việc, khúc mắc rào cản v.v • Thanh tra (inspection): Cơng tác tra liên tục hoạt động Scrum đảm bảo cho việc phát lộ vấn đề giải pháp để thơng tin đa dạng hữu ích đến với bên tham gia dự án Truy xét kĩ liên tục chế khởi đầu cho việc thích nghi cải tiến liên tục Scrum • Thích nghi (adaptation): Scrum linh hoạt phương pháp Agile khác Nhờ mang lại tính thích nghi cao Dựa thơng tin minh bạch hóa từ q trình tra làm việc, Scrum phản 13 hồi lại thay đổi cách tích cực, nhờ mang lại thành công cho dự án Đội ngũ Trong Scrum, đội ngũ tham gia phát triển phần mềm phân chia ba vai trò với trách nhiệm rõ ràng để đảm bảo tối ưu hóa cơng việc đặc thù sau: • Product Owner (chủ sản phẩm): Là người chịu trách nhiệm thành công dự án, người định nghĩa yêu cầu đánh giá cuối đầu nhà phát triển phần mềm • Scrum Master: Là người có hiểu biết sâu sắc Scrum đảm bảo nhóm làm việc hiệu với Scrum • Development Team (Đội sản xuất, hay Nhóm phát triển): Một nhóm liên chức (cross-functional) tự quản lý để tiến hành chuyển đổi yêu cầu tổ chức Product Backlog thành chức hệ thống Thực project Sau training tuần, mentor cá nhân thực project web thương mại áp dụng kiến thức học Khi hoàn thành project kỳ, intern chia vào nhóm gồm dev tester để bắt đầu giai đoạn đầu project cuối Chi tiết đồ án nói chương 3 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 chương trình thực tập Training Tiếng Anh Ms.Kim Git Mr Thien Nguyen Lập trình Web Mr Toan Le HTML/CSS Mr Tuan Mai 14 Mức độ hoàn thành 100% Javascript C# Workshop thực hành trang web tĩnh sử dụng HTML/CSS/JS Training Tiếng Anh Net Core Lập trình ASP Net Core MVC SQL Server Workshop viết query cho database Training Tiếng Anh Enity Farmework Core Unit Test sử dụng xUnit Thực project kỳ Training Tiếng Anh Kỹ giao tiếp Kỹ quản lý thời gian Kỹ tư giải vấn đề Kỹ lập kế hoạch Thực project kỳ Training Tiếng Anh Lập trình React JS Giới thiệu Automation Test Thực project kỳ Training Tiếng Anh Thực project kỳ Training Tiếng Anh Azure Workshop động lực nơi làm việc công sở Training Tiếng Anh Giới thiệu Scrum Azure DevOps Thực project cuối kỳ Training Tiếng Anh Thực project kỳ 15 Mr Tuan Mai Mr Phong Nguyen Mr Tuan Mai Ms Kim Mr Loc Nguyen Mr Huy Ho Mr Long Hoang Mr Long Hoang Ms Kim Mr Nghia Dinh Mr Hung Nguyen Mr Toan Ms Kim 100% 100% 100% Mr Toan Ms Kim Mr Tuan Mai Chung Mr Tien Nguyen Mr Toan Ms Kim Mr Toan Ms Kim Mr Phuc Nguyen 100% 100% 100% Ms Kim Mr Phuc Nguyen Mr Toan Ms Kim Mr Toan 100% 100% Chương 3: Chi tiết project Project kỳ Link Github dự án: https://github.com/TTph18/E-commerce/tree/alternate Dự án cá nhân với đề tài: Xây dựng trang web thương mại điện tử Trang web phải gồm thành phần sau: • Trang khách hàng (sử dụng mơ hình MVC): o Trang chủ: Menu loại sản phẩm, sản phẩm bật o Xem sản phẩm theo loại o Xem chi tiết sản phẩm o Đánh giá sản phẩm o Đăng ký tài khoản o Đăng nhập/ Đăng xuất • Trang admin (Single Page Application gồm: API + ReactJS): o Đăng nhập/Đăng xuất o Quản lý loại sản phẩm o Quản lý sản phẩm o Xem danh sách tài khoản khách hàng • Yêu cần sử dụng nhiều kỹ thuật như: TagHelpers, ViewComponents,… • Viết UnitTest 16 Figure 1: Sơ đồ cấu trúc dự án Project cuối kỳ 2.1 Đề tài Trong công ty tổ chức lớn có vật phẩm thiết bị điện tử ( điện thoại, máy tính, đồng hồ, ) với số lượng lớn cần phải đưa cho 17 nhiều người Vì cần phải có ứng dụng để người dùng yêu cầu mượn trả vật phẩm Web app cơng ty đưa mục đích để đáp ứng nhu cầu vay mượn trả sản phẩm liên quan tổ chức kiểm sốt hành vi liên tục nhanh chóng khơng phải qua bên trung gian thứ Ở NashTech với số lượng vật phẩm máy tính, điện thoại cung cấp cho nhân viên việc cần có ứng dụng để quản lý sản phẩm việc cần thiết nên công ty đưa ứng dụng quản lý tài sản cho sinh viên thực tập có hội thử sức Trang web bao gồm chức năng: • Đăng nhập/Đăng xuất • Đổi mật • Quản lý người dùng (xem danh sách, xem chi tiết, thêm/sửa, xóa) • Quản lý tài sản (xem danh sách, xem chi tiết, thêm/sửa, xóa) • Chức cho mượn tài sản: Người Admin giao tài sản cho nhân viên khác sử dụng • Chức u cầu hồn trả tài sản: Người admin yêu cầu người mượn tài sản hoàn trả tài sản 2.2 Kế hoạch Thành viên thực gồm NET developer, QC/QA/Tester Dự án hồn thành vịng tuần, tuần tương đương với sprint • Sprint 1: Setup Database môi trường cho dự án • Sprint 2: Chức thêm người dùng, người dùng login vào hệ thống, người dùng login vào hệ thống lần đầu phải đổi mật • Sprint 3: Chức thêm tài sản quản lý chức cho mượn tài sản • Sprint 4: Chức yêu cầu hoàn trả tài sản, đưa release demo sản phẩm 18 2.3 Kết thu Figure 2: Màn hình đăng nhập Figure 3: Màn hình đổi mật 19 Figure 4: Màn hình quản lý người dung 20 Figure 5-7: Màn hình quản lý tài sản 21 TỔNG KẾT Như vậy, vịng tháng ngắn ngủi, nhóm hồn thành dự án theo mơ hình scrum Những thời gian đầu, nhóm lần đầu tiếp cận với mơ hình scrum, nên tốn nhiều thời gian làm việc dự định Sau nhiều lần họp, làm quen nhóm đưa sản phẩm cuối, thời gian có hạn nên web khơng có chức nâng cao, đột phá, web có chức bản, sử dụng đủ kiến thức học Chân thành cảm ơn giúp đỡ anh chị mentor NashTech thành viên nhóm để hoàn thành dự án 22 ... quy trình kinh doanh, bảo trì hỗ trợ kỹ thuật ứng dụng quản lý chất lượng, kiểm thử phần mềm Chương 2: Nội dung thực tập Đợt thực tập với chủ đề ? ?Lập trình NET” nhằm mục đích giúp sinh viên thực. .. ty chương trình thực tập Training Tiếng Anh Ms.Kim Git Mr Thien Nguyen Lập trình Web Mr Toan Le HTML/CSS Mr Tuan Mai 14 Mức độ hoàn thành 100% Javascript C# Workshop thực hành trang web tĩnh sử... giúp sinh viên thực tập đào tạo tồn diện lập trình fullstack NET Web, đồ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

Ngày đăng: 17/08/2022, 20:58

Xem thêm:

w