Ngành lập trình trên website non trẻ của Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty hàng đầu về ứng dụng trên thế giới.. Chỉ trong một thời gian ngắn, nhưng nh
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
LẬP TRÌNH FULLSTACK VỚI ANGULAR VÀ ASP.NET CORE
Software Outsourcing Company
Trang 2LỜI MỞ ĐẦU
Ngày nay, những ngành nghề liên quan tới công nghệ thông tin ngày càng phát triển mạng mẽ để bắt kịp với xu hướng chung Trong đó, Lập trình trên website đang trở nên phổ biến
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Ngành lập trình trên website non trẻ của Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty hàng đầu về ứng dụng trên thế giới Bên cạnh những công ty trẻ tuổi trong nước, những công ty lớn trên thế giới cũng gia nhập vào thị trường Việt Nam, góp phần rất lớn vào sự phát triển tích cực của ngành lập trình website tại Việt Nam
Ngành lập trình website được sinh ra là do nhu cầu giải trí của giới trẻ bằng những thiết bị công nghệ mới nhất Và cũng chính giới trẻ sẽ là nguồn nhân lực quan trọng cho việc phát triển của ngành sau này Vì lý do này, em quyết định chọn lập trình trên website làm định hướng cho việc học tập của mình
Sau bốn năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia làm các ứng dụng di động trong một môi trường chuyên nghiệp,
em có dự định là sẽ thực tập trong hè Vì vậy, em quyết định chọn Công ty EZtek Software Development and Software Outsourcing Company - một môi trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn EZtek Software Development and Software Outsourcing Company Việt Nam đã tạo điều kiện cho em có cơ hội được thực tập tại
công ty
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của anh chị trong nhóm hướng dẫn, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng
để có thể làm được một website ERP cơ bản Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Phạm Trường Hưng và anh Tất Cam Thịnh đã trainning cho
em những kiến thức mới để áp dụng cho công việc, hướng dẫn, giúp đỡ cho em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới,
đã chỉ dẫn chúng em về cách làm báo cáo, lên kế hoạch, những kỹ năng không thể thiếu
Ngoài ra cũng xin cảm các thầy cô trong Trường và Khoa đã dạy cho em những kiến thức không thể thiếu cho con đường này cũng như đã hỗ trợ và tạo điều kiện cho tụi em những năm qua
Em xin chân thành cảm ơn !
Nguyễn Phi Phú Thành phố Hồ Chí Minh, 11 tháng 12 năm 2020
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
Chương 1: Giới thiệu công ty thực tập 6
1 Giới thiệu công ty EZtek Software Development and Software Outsourcing Company 7
2 Sản phẩm của công ty 7
Chương 2: Nội dung thực tập 8
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8
2 Nghiên cứu kỹ thuật 8
2.1 Các công cụ làm việc 8
2.2 Tìm hiểu Framework Angular + Asp.net core nâng cao 9
2.3. Lập trình Back-end với net core 9
2.4. Lập trình Website với Angular 10
3 Thực hiện project 11
4 Lịch làm việc 12
Chương 3: Chi tiết về project 14
1 Giới thiệu về ứng dụng 14
2 Bước đầu thực hiện 14
4 Kết quả 15
TÀI LIỆU THAM KHẢO 16
TỔNG KẾT 17
Trang 6Chương 1: Giới thiệu công ty thực tập
Trang 71 Giới thiệu công ty EZtek Software Development and Software Outsourcing Company
thành lập năm 2011 tại Việt Nam, là công ty OutSourcing Sau 8 năm thành lập, đến nay Eztek đã khẳng định được vị thế là một trong những công ty dẫn đầu trong lĩnh vực phát triển phần mềm, tư vấn công nghệ, đầu tư công nghệ
2 Sản phẩm của công ty
EZtek làm đa nền tảng các công nghệ hiện có trong ngành công nghệ thông tin hiện nay:
Về lĩnh vực Web:Trade Analytics , Bus booking, Tyto, ERP Các sản phẩm từ công ty EZtek: My-pets, các dự án outsourcing: Vinda, Tech2B, easynda, woodstock-thieres,
Trang 8Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trinh Fullstack” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình Website, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường phát triển ứng dụng di động chuyên nghiệp
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 (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ủa công ty
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công
ty như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…
Kết quả : Hiểu thêm về công ty Eztek, 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 Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
Thời gian : 2 ngày
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc
Trong thời gian này, anh đã hướng dẫn thực tập sinh tìm hiểu về các công cụ
sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như Tortoise SVN - sử dụng trong làm việc nhóm, Git – công cụ quản lý source code trực quan với nhiều tính năng; Visual Studio Code, Webstorm - một chương trình soạn thảo văn bản rất hữu ích và phổ biến với lập trình viên
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên
Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công
cụ với nhau, so với việc dung các IDE
Trang 92.2 Tìm hiểu Framework Angular + Asp.net core nâng cao
Thời gian : 3 ngày (1 tuần)
Nội dung : Được training về các kỹ thuật Angular + Asp.net core nâng cao,
những kiến thức quan trọng cho việc tối ưu trên nền tảng website
- Work flow:
Flow của website là một phần quan trọng trong lập trình, vì người dùng cần phải được sử dụng một website với hiệu năng tốt nhất, ứng dụng được chạy trơn tru, không bị crash hay gây ra lỗi khi sử dụng
- State Management (NgRx):
Là một library nó thay đổi cách thức hoạt động của Angular, biết cách viết code một cách khoa học hơn, dễ quản lý các state của component dễ hơn
- Reactive Programing:
Flow của ngôn ngữ javascript xem mọi thứ là luồng sự kiện, là lý thuyết lập trình ở front end hoặc cả back end đều được
- Dependency Injection:
Design pattern ở cả Angular và Asp.net core, ở Angular thì được Implement sẵn còn ở Back end thì tự implement
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Nâng cao kỹ năng lập trình với Framework Angular + Asp.net core
- Có được những kiến thức quan trọng cho việc lập trình đa nền tảng Web sau này
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu
2.3 Lập trình Back-end với net core
Nội dung: Các kiến thức cơ bản về để có thể làm ra một các API
- Khái niệm cơ bản về net core
nguồn mở được duy trì bởi Microsoft và cộng đồng NET trên GitHub Đó là nền
Trang 10tảng chéo (hỗ trợ Windows, macOS và Linux) và có thể được sử dụng để xây dựng các ứng dụng thiết bị, đám mây và IoT
- Thế nào là một RESTful API? Và các đặt tên cho API cho đúng chuẩn.
- Một số các package hữu dụng
Được các anh trainer giới thiệu cho các package hỗ trợ cho việc lập trình như sendgird, azure storage, …
- CQRS Pattern
- Cách sử dụng Git để quản lý trong lúc thực hiện
- Cách dùng POSTMan để gọi API và dùng Swagger
Thực hiện :
- Tham gia đầy đủ các buổi trainning
- Làm các bài tập thực hành như tạo các API post, put, delele, get, patch
Kết quả :
- Tạo được một bộ API cơ bản của create, update, delete, getAll, getbyId,
2.4 Lập trình Website với Angular
Nội dung: Các kiến thức cơ bản về Angular để có thể làm ra một website
- Khái niệm cơ bản về Angular
Nắm được khái niệm cơ bản của Angular, là một framework cho các nhà phát triển website hoặc mobile với Ionic Được phát triển bởi Google Nó được sử dụng để phát triển ứng dụng di động trên đa nền tảng Ngoài ra, các trainer còn cung cấp cho em những khái niệm cơ bản như cách tạo một component,
sử dụng Angular CLI, cách xử lý các state nội bộ trong từng màn hình thông qua việc sử dụng Angular routing,…
- Cách viết styles trong Angular
Angular hỗ trợ các cách viết style component như là css, scss, sass
- Một số các package hữu dụng
Trang 11Được các anh trainer giới thiệu cho các package hỗ trợ cho việc lập trình UI của Website, dùng package có thể tiết kiệm bớt đi thời gian lập trình cho từng module cần thiết, vì là mã nguồn mở nên Angular có một lượng Package khá
là phong phú trên Github Một số các package hữu ích và đã được sử dụng trong ứng dụng khi thực tập: Ngrx, Angular Material, Nebular, ngDrag,…
Thực hiện :
- Tham gia đầy đủ các buổi trainning
- Làm các bài tập thực hành như vẽ những hình cơ bản, state management trong Website
- Tìm kiếm tài liệu trên mạng để hiểu thêm, tìm hiểu về life cycle của Angular sao cho hoạt động trơn tru nhất
Kết quả :
- Hiểu được những khái niệm cơ bản trong lập trình Web với Angular
- Vòng đời của Angular
3 Thực hiện project
Sau 2 tuần được training và thực hành, thực tập sinh đã nắm được những kiến thực
cơ bản về Angular, Asp.net core Trong hơn một tháng còn lại,các trainer đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để thực hiện một project ERP cơ bản được dựa theo một dự án của công ty
Chi tiết đồ án sẽ được nói ở phần sau
Trang 124 Lịch làm việc
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công ty, cách tổ chức của công
ty
- Làm quen với các công cụ làm việc trong công ty
- Học cách trao đổi, làm việc qua slack
Anh Phạm Trường Hưng
100%
2
- Tìm hiểu Framework Angular và net core
- Thực hành các framework
Anh Tất Cam Thịnh
100%
3
- Làm bài test
- Tìm hiểu về Postman
- Tìm hiểu git, github, tortoiseGit
Anh Phạm Trường Hưng
100%
4
- Nhận công việc qua jira
- Bắt đầu làm dự án ERP cơ bản
Anh Tất Cam Thịnh
100%
5
- Bắt đầu xây dựng mô hình sơ đồ quản hệ và
cơ sở dữ liệu
- Tạo các entities và các api cần thiết
Anh Tất Cam Thịnh
100%
6
- Hoàn thành các API cần thiết cho ERP
Anh Tất Cam Thịnh
100%
Trang 13- Cùng một bạn trong nhóm Front-end handle các xử lý ở UI
- Update lại các API ở back-end cho phù hợp với UI
Anh Tất Cam Thịnh
100%
8
- Hoàn thành project Anh Tất Cam Thịnh
Anh Phạm Trường Hưng
100%
Trang 14Chương 3: Chi tiết về project
1 Giới thiệu về ứng dụng
Đây là project của kỳ thực tập lần này, project không phải nhắm về việc dự
án đã giải quyết vấn đề gì mà là dự án lần này là dự án mà nhắm đến các kiến thức đã được training trong tháng vừa rồi, cách xây dựng một dự án từ Front-end to Back-end là như thế nào, kỹ thuật coding như thế nào là đúng Các kỹ thuật trong lập trình Angular và cả Asp.net core Mục đích chỉ nhắm tới cách mà mình tạo dựng đồ án chứ không phải là nội dung của dự án
2 Bước đầu thực hiện
Trước khi thực hiện các anh trainer đã chỉ ra hướng nên đi đầu tiên là phân tích dự án
Sử dụng kiến thức của mình tạo nên một database phù hợp nhất với dự án để tránh sự thay đổi nhiều lần ở kiến trúc database
Thống nhất framework hay các library mà mình hay sử dụng để các thành viên trong team có thể theo dõi một cách tốt nhất
Chia công việc cụ thể và có cách coding cũng như quản lý code như thế nào
3 Thực hiện:
Team front-end:
• Thiết kế giao diện
• Chia module theo smart and dumb component
• Thêm State Management vào project
• Thực hiện trang đăng nhập và các trang khác Team Back-end:
• Vẽ sơ đồ database
• Hiện thực database trên SQL
• Thêm xử lý token vào project
• Viết các CRUD API
• Viết các API để filter
Trang 154 Kết quả
- Hầu hết các tính năng trên đã được thực hiện
- Đã hoàn thành dự án đã đề ra
- Team back-end đã hoàn thành dự án và có thêm Unit test cho back-end
Trang 16TÀI LIỆU THAM KHẢO
[1] NGRX, https://ngrx.io/
[2] CQRS, https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs
[3] Restful API, https://topdev.vn/blog/restful-api-la-gi/
[4] Angular, https://angular.io/guide/lifecycle-hooks
Trang 17TỔNG KẾT
Sau đợt thực tập khoảng hơn hai tháng tại công ty, em đã kịp hoàn thành phần giao diện và cả phần back-end Em đã hoàn toàn kiểm soát được quy trình cũng như kỹ thuật trong lập trình website với Agular và Asp.net Core
Qua đó, em cũng xin chân thành cảm ơn sự giúp đỡ của các anh chị trong đội ngũ trainer của công ty, đã giúp đỡ em hoàn thành kì thực tập doanh nghiệp này một cách tốt nhất và học hỏi được nhiều kinh nghiệm quý báu để sau này có thể áp dụng trong công việc tương lai