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

BÁO CÁO THỰC TẬP LẬP TRÌNH FULLSTACK VỚI ANGULAR VÀ .NET C#

21 9 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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 372,48 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đặc biệt cảm ơn anh Phạm Như Ngọc đã training Angular và .Net, cách sử dụng Angular,CkEditor, Docker, VCS,… hướng dẫn, giúp đỡ cho em tận tình cả những khó khăn trong côngviệc, đến những

Trang 2

LỜI MỞ ĐẦU

Ngày nay, không một ai là không thừa nhận rằng, công nghiệp hoá, hiện đại hoá đã vàđang trở thành xu thế tất yếu của toàn xã hội, với tốc độ chuyển giao nhanh chóng mặt, gắn liềnvới sự phát triển của ngành Công nghệ thông tin Với nhu cầu ngày càng tăng, cùng với sự pháttriển sôi động của những công nghệ mới, ngành Công nghệ Phần mềm gần như trở thành độnglực chính cho sự phát triển của ngành Công nghệ thông tin nói chung, và trở thành cánh tay đắclực cho công cuộc hiện đại hoá đất nước

Việt Nam không những không nằm ngoài xu thế này, mà còn thích nghi vô cùng tốt với

sự phát triển đó Kể từ khi Internet được du nhập và trở nên phổ biến, nhu cầu tiếp cận vớithông tin, làm chủ công nghệ, tận dụng sự tiện ích của máy tính điện tử ở nước ta tăng lênnhanh chóng, và bùng nổ trong thập niên 2010 Các ông lớn công nghệ từ nước ngoài tranhnhau bước vào cuộc chơi này, bên cạnh đó là những công ty hoàn toàn hoặc một phần của ngườiViệt cũng xuất hiện nhiều như nấm sau mưa Hàng loạt hướng phát triển của Công nghệ Phầnmềm cũng được định hình, trong đó phải kể đến lập trình web app

Nhu cầu về lập trình phần mềm rất đa dạng, rất nhiều doanh nghiệp thuộc về gần nhưmọi ngành nghề đều đang có nhu cầu số hoá ở một mức độ nào đó Đặc điểm chung của thịtrường này là dễ tiếp cận, dễ nắm bắt, tăng trưởng nhanh nhưng cũng không quá trở nên chuyênbiệt, phức tạp Mặt khác, sự phát triển không ngừng của các công nghệ lập trình web, tốc độ cho

ra đời ứng dụng nhanh hơn, đa dụng hơn, thuận tiện hơn, đáp ứng được thông lượng lớn hơn, cóthể thấy lập trình Web app gần như hoàn toàn đáp ứng được những nhu cầu trên Vì lý do này,

em quyết định chọn lập trình web làm định hướng cho việc học tập của mình

Sau ba 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 web app trong một môi trường chuyên nghiệp, em có dự định là sẽthực tập trong học kì 2 này Vì vậy, em quyết định chọn Alpaca Vietnam - một môi trường năngđộng, chuyên biệt - là nơi sẽ giúp em thực hiện được dự định này

Trang 3

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty TNHH Alpaca 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 nhóm trainer, nhómthự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 webapp 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 Như Ngọc đã training Angular và Net, cách sử dụng Angular,CkEditor, Docker, VCS,… hướng dẫn, giúp đỡ cho em tận tình cả những khó khăn trong côngviệc, đến những khó khăn việc làm quen với môi trường mới; cảm ơn chị Vũ Minh Anh đãtraining Scrum, hỗ trợ em rất nhiều về các vấn đề Schedule Management trong quá trình làmviệc; cảm ơn anh Trần Hồng Hải đã chỉ dẫn 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 để có thể làm ra một sản phẩm trong thời gian qua

Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điềukiện em làm bài báo cáo này

Trần Quốc ThịnhTpHCM, ngày 12 tháng 05 năm 2022

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

MỤC LỤC

Trang 6

1 CHƯƠNG 1: CÔNG TY THỰC TẬP

1 Giới thiệu công ty Alpaca Vietnam

Alpaca, tiền thân là công ty Unicorn Solutions, được thành lập vào năm 2014 Unicorn là đối tác chiến lược, đóng vai trò là nhà thầu phụ của một tập đoàn cung cấp CNTT toàn cầu cho ngành bảo hiểm Nhiều dự án của Unicorn được thực hiện với các công ty bảo hiểm hàng đầu Việt Nam (Bảo Việt, Bảo Minh) và các công ty insurtech tại Singapore (MyInsurer, Zensur, 360F)

Tháng 6 năm 2020, Alpaca chính thức được thành lập với nguồn nhân lực chủ chốt từ Unicorn, với mục tiêu trở thành nhà cung cấp giải pháp CNTT lõi cho ngành bảo hiểm phi nhân thọ tại thị trường Việt Nam Hiện Alpaca có 2 văn phòng tại Hà Nội và TP HCM

2 Sản phẩm của công ty

Hiện đại hóa hệ thống bảo hiểm lõi

Các công ty bảo hiểm nhận thấy rằng các hệ thống cốt lõi, như hệ thống đánh giá rủi ro, quản lý đơn bảo hiểm, xử lý bồi thường, v.v hiện nay đang dần lỗi thời Hiện đại hóa các hệ thống kế thừa cho phép họ điều chỉnh các chiến lược kinh doanh phù hợp với mục tiêu, tận dụng công nghệ mới và cải thiện việc cung cấp sản phẩm Nền tảng của việc hiện đại hóa hệ thống cốt lõi là sự chuyển đổi từ cơ sở mã và phần cứng được kiểm soát chặt chẽ thành các ứng dụng đám mây được mô-đun hóa, trong

đó các lớp truyền thống được chuyển đổi thành các thành phần chỉ sử dụng khi cần thiết Alpaca làm việc với khách hàng để cung cấp các giải pháp kỹ thuật số toàn diện Hiện tại, khách hàng của Alpaca gồm có Bảo hiểm Bảo Long, Bảo hiểm

Trang 7

Dịch vụ tư vấn chiến lược/ IT

Những công ty đối thủ mới gia nhập thị trường và sự đổi mới trong chuỗi giá trị bảo hiểm đang chuyển hóa ngành bảo hiểm bằng những quan điểm mới, từ trải nghiệm kỹ thuật số và phân tích rủi ro đến InsurTech và hơn thế nữa Vì vậy các công ty bảo hiểm cần khai thác sức mạnh của công nghệ và nắm bắt cơ hội mới để hợp lý hóa quy trình kinh doanh Tại Alpaca, chúng tôi hợp tác chặt chẽ với bạn để phát triển chiến lược CNTT tập trung vào nhu cầu của doanh nghiệp Từ việc đánh giá ban đầu đến thực hiện chiến lược bằng những hành động cụ thể, phương pháp tư vấn và kiến thức sâu rộng của chúng tôi sẽ đóng góp vào thành công của công ty bạn

Dịch vụ cung cấp nhân sự

Không phải tất cả các tổ chức đều có nguồn lực CNTT và bộ kỹ năng cần thiết để triển khai công nghệ hoặc giải pháp phù hợp Các dịch vụ CNTT chuyên nghiệp của Alpaca cung cấp các giải pháp hiệu quả cho các vấn đề kinh doanh phức tạp nhất củabạn Chúng tôi cung cấp kiến thức chuyên môn về các giải pháp phần cứng và phần mềm, đồng thời chia sẻ các kỹ năng vận hành cần thiết để đáp ứng các thách thức CNTT của doanh nghiệp Chúng tôi sẽ cùng làm việc với bạn để lập kế hoạch, thiết

kế, triển khai và hỗ trợ chiến lược CNTT, nhằm thực hiện thành công các dự án trongtương lai

Trang 8

2 CHƯƠNG 2: NỘI DUNG THỰC TẬP

Đợt thực tập với chủ đề “Lập trình fullstack với Angular và Net C#” nhằm mục đíchgiúp sinh viên thực tập được đào tạo toàn diện về lập trình backend trên nền tảng .NetFramework, đồ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, giaotiế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ườngphát triển ứng dụng web 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ủacô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 tynhư 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ôngviệc…

Kết quả : Hiểu thêm về công ty Alpaca, 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áchnhiệm hơn

2 Nghiên cứu kỹ thuật

a Các công cụ làm việc

Thời gian : 4 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, supervisor đã 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ư Jira

-sử dụng trong làm việc nhóm; Git Kraken – một phần mềm Git UI với cách -sử dụngrất dễ dàng, trực quan, giúp developer dễ dàng quản lý phiên bản và tương tác với git;Docker - một chương trình ảo hoá môi trường rất hữu ích và phổ biến với lập trìnhviê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 9

b Tìm hiểu ngôn ngữ C# và Typescript

Thời gian : 5 ngày (1 tuần)

Nội dung : Được training về các kỹ thuật C#, những kiến thức quan trọng cho việc tối

ưu API, viết service

- Lập trình hướng đối tượng:

Các kiến thức về lập trình hướng đối tượng như khái niêm, các đặc tính như tính

kế thừa, tính đóng gói, tính trừu tượng hóa, tính đa hình

- Service:

Angular Service là những đoạn code mà ta có thể sử dụng nhiều lần từ các component khác nhau Nó có chức năng sử dụng lại Những đoạn code này sẽ thực hiện một nhiệm vụ cụ thể cho một ý định nào đó Chúng ta sử dụng service cho những mục đích:

• Những nhiệm vụ độc lập của component như ghi log, gọi api từ bên ngoài vv

• Chia sẻ code logic hoặc data để các component có thể dùng chung

• Lợi thế của Service:

• Dễ dàng thực hiện các việc test cho component và service

• Dễ dàng debugs khi có vấn đề

• Có thể được sử dụng lại ở nhiều module

- API:

API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác Nó

là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng.API cung cấp khả năng cung cấp khả năng truy xuất đến một tập các hàm haydùng Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng

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 ngôn ngữ C# và Typescript

- Có được những kiến thức quan trọng cho việc lập trình 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 đúngchuẩn, dễ đọc, dễ hiểu

c Lập trình Frontend với Angular

Nội dung: Các kiến thức cơ bản về Angular để có thể làm ra một web UI đơn giản.

- Khái niệm cơ bản về Component.

Trang 10

Component là một lớp nó thường hiểu như là controller tương tác giao diện người dùng Một component thường có 3 thành phần chính là code TypeScript, template HTML và CSS.

- Typescript:

TypeScript được xem là một phiên bản nâng cao hơn của JavaScript vì nó đượcthiết kế thêm nhiều chức năng tiện lợi hơn, cải tiến hơn từ những điểm yếu củaJavaScript như các lớp hướng đối tượng và Static Structural typing, bên cạnh đóTypeScript còn có thể hoạt động rộng rãi cho các ứng dụng của ngôn ngữAngular2 và Nodejs

- Module:

Module là cách chia nhỏ các thành phần ứng dụng (giống package trong Java).Với Angular sử dụng đến decorator có tên là @NgModule để khai báo, Module làmột lớp chứa các thành phần để thực hiện các chức năng nào đó

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 1 project Angular, thêm 1 trang, thêm model,

- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm

Kết quả :

- Hiểu được những khái niệm cơ bản trong lập trình frontend với Angular

- Có thể đọc và hiểu được các phần trong cấu trúc code dự án

d Lập trình Backend với Net Framework

Nội dung: Các thành phần trong một dự án backend với Net, một số design pattern

được sử dụng như Dependency Injections, …

- Định nghĩa về Resful Api:

RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụngweb để quản lý các resource RESTful là một trong những kiểu thiết kế API được

sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giaotiếp với nhau

Trang 11

Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method(như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụngweb để quản các resource RESTful không quy định logic code ứng dụng vàkhông giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặcframework nào cũng có thể sử dụng để thiết kế một RESTful API.

- Entity Framework:

Entity Framework là một khung ORM(Object Relational Mapper) mã nguồn mởcho các ứng dụng NET được Microsoft hỗ trợ là 1 phần của NET Framework làmột Open source ORM Framework

Note: ORM là một công cụ tự động tạo ra các Objects trong ứng dụng từtables,views, store procedures của một Relational Database

Emntity Framework giúp các nhà phát triển Web tương tác với dữ liệu quan hệtheo phương pháp hướng đối tượng với ít mã hơn so với các ứng dụng truyềnthống Lợi ích lớn nhất của nó là giúp lập trình viên giảm thiểu việc lập trình mãnguồn để thực hiện truy cập và tương tác với cơ sở dữ liệu

Hiện nay, Entity framwork là 1 framework mạnh để phát triển ứng dụng Web với

sự hỗ trợ đông đảo của cộng đồng

- Migrations:

Migration là kỹ thuật trong việc tương tác với cơ sở dữ liệu, theo đó việc thay đổi

về cấu trúc CSDL ở code sẽ được cập nhật lên CSDL đảm bảo dữ liệu đang tồn tạikhông bị mất, lịch sử (phiên bản) cập nhật được lưu lại sau mỗi lần cập nhật

Trang 12

Thường khi sử dụng EF làm việc với DB, có hai cách đó là làm việc với mộtCSDL đang tồn tại (gọi là database first) - việc cập nhật database thực hiện kháđộc lập với ứng dụng - tình huống này Migration ít hữu ích, tuy nhiên trường hợpbạn tạo database từ code, thay đổi cấu trúc database bằng code thì migration rấthữu ích Tất nhiên ta vẫn có cách để sử dụng EF Migration trên database đã tồntại.

Với migration khi bạn cập nhật Model, yêu cầu database cập nhật thì nó sẽ lưuthông tin phiên bản hiện tại của cấu trúc Model (database) ở Server DB - ví dụphiên bản a, sau đó thay đổi các Model, lại yêu cầu cập nhật thì nó sẽ đọc thôngtin phiên bản cuối trên DB, so sánh sự khác biệt và cập nhật sự khác biệt đó để lênphiên bản mới, phiên bản b

- Dependency Injections:

Trong kỹ thuật phần mềm, dependency injection là một kỹ thuật theo đó một đốitượng (hoặc static method) cung cấp các phụ thuộc của đối tượng khác Một phụthuộc là một đối tượng có thể được sử dụng (service)

Dependency injection (DI) là một kỹ thuật lập trình giúp tách một class độc lậpvới các biến phụ thuộc Với lập trình hướng đối tượng, chúng ta hầu như luôn phảilàm việc với rất nhiều class trong một chương trình Các class được liên kết vớinhau theo một mối quan hệ nào đó Dependency là một loại quan hệ giữa 2 class

mà trong đó một class hoạt động độc lập và class còn lại phụ thuộc bởi class kia

Thực hiện :

- Tham gia đầy đủ các buổi training

- Clone dự án về, thực hiện những bài tập thực hành như thêm 1 model, tạo mộtcontrollers, tạo migrations để cập nhật database, …

Kết quả:

Đã có thể hiểu được các thuật ngữ mới, biết cách đọc và hiểu code backend của dự án, thamgia vào việc thêm và chỉnh sửa tính năng, tương tác với database

e Làm việc với một số công cụ, framework khác

Nội dung: Các công cụ liên quan như Docker để tạo môi trường mô phỏng có thể

chạy được backend, thư viện CkEditor để phát triển một editor cho trang chỉnh sửa,…

Trang 13

- Docker:

Docker là một open platform cung cấp cho người sử dụng những công cụ vàservice để người sử dụng có thể đóng gói và chạy chương trình của mình trên cácmôi trường khác nhau một cách nhanh nhất

Chúng ta sẽ thiết lập cho app của mình các môi trường cần thiết với docker Khi ai

đó muốn chạy app đó thì chỉ cần chạy docker mà không cần phải cài môi trườngcho app nữa vì docker đã giúp ta rồi

Docker gồm 2 thành phần:

o Docker Engine: dùng để tạo ra Docker image và chạy Docker container

o Docker Hub: dịch vụ lưu trữ giúp chứa các Docker image

Các khái niệm khác:

• Docker Machine:tạo ra các Docker engine trên máy chủ

• Docker Compose: chạy ứng dụng bằng cách định nghĩa cấu hình các Docker container thông qua tệp cấu hình

• Docker image: một dạng tập hợp các tệp của ứng dụng, được tạo ra bởi Docker engine Nội dung của các Docker image sẽ không bị thay đổi khi di chuyển Docker image được dùng để chạy các Docker container

• Docker Container: một dạng runtime của các Docker image, dùng để làm môi trường chạy ứng dụng

- CkEditor:

CKEditor là một trình soạn thảo văn bản HTML sẵn sàng cho sử dụng được thiết

kế để đơn giản hóa việc tạo ra nội dung web Đó là một trình soạn thảoWYSIWYG mang lại các tính năng xử lý văn bản phổ biến trực tiếp đến trangweb của bạn

CKEditor là một ứng dụng mã nguồn mở, có nghĩa là bạn có thể sửa đổi nó theo

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

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w