ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠ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
ĐỀ TÀI: Hệ thống quản lý tài sản
Công ty thực tập: NashTech Part of Harvey Nash Group
Người phụ trách hướng dẫn: Lê Hằng Toàn
Thực tập sinh: Đỗ Ngọc Cường
MSSV: 18520542
Đỗ Ngọc Cường
Báo cáo thực tập
TP. Hồ Chí Minh, ngày 18 tháng 12 năm 2021
1
Đỗ Ngọc Cường
Báo cáo thực tập
NHẬN XÉT
(Của giảng viên)
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
2
Đỗ Ngọc Cường
Báo cáo thực tập
MỤC LỤC
LỜI NÓI ĐẦU ......................................................................................................................... 4
LỜI CẢM ƠN.......................................................................................................................... 5
DANH MỤC CÁC CỤM TỪ VIẾT TẮT ........................................................................................ 6
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP ......................................................................... 7
I.
Giới thiệu chung về công ty ....................................................................................................7
CHƯƠNG 2: NỘI DUNG THỰC TẬP ......................................................................................... 9
I.
Cơng nghệ, giải pháp và quy trình áp dụng ..............................................................................9
1.
2.
3.
4.
5.
6.
II.
Giới thiệu về Git ..........................................................................................................................................9
Giới thiệu về mô hình làm việc Agile – Scrum ..........................................................................................12
Tìm hiểu về RESTful API ............................................................................................................................18
Tìm hiểu về ReactJS ..................................................................................................................................19
Vịng đời ReactJS ......................................................................................................................................20
Tìm hiểu về .NET .......................................................................................................................................23
Dự án Website quản lý tài sản .............................................................................................. 25
1.
2.
3.
Bối cảnh ra đời của web ...........................................................................................................................25
Các chức năng chính của Web ..................................................................................................................25
Nhiệm vụ của sinh viên được giao............................................................................................................29
CHƯƠNG 3: NHẬT KÝ THỰC TẬP .......................................................................................... 30
CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC QUA ĐỢT THỰC TẬP ........................................................ 32
I.
Kết quả thu được................................................................................................................. 32
II.
Các điểm yếu của bản thân................................................................................................... 32
III.
Cảm nhận về công ty ............................................................................................................ 32
DANH MỤC TÀI LIỆU THAM KHẢO........................................................................................ 34
3
Đỗ Ngọc Cường
Báo cáo thực tập
LỜI NÓI ĐẦU
Ngày nay, ngành công nghiệp phát triển ứng dụng và công nghệ web là một phần
không thể thiếu của ngành công nghiệp phần mềm. với tốc độ phát triển vô cùng mạnh mẽ,
phát triển web đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế
giới, cả về vần cứng và phần mềm
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
công nghiệp phát triển web non trẻ 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ề xây dựng web trên thế giới. Bên cạch sự phát triển của web
thì những ngành nghề được tiếp cận người dung một cách nhanh chóng như những gì ta có
thể thấy là các trang web mạng xã hội, hay những web bán hàng trực tuyến cũng đang rất
thình hành trên cả thế giới lẫn Việt Nam
Sau ba năm học tập trên trường, do mong muốn có them kinh nghiệm thực tế, cũng
như muốn được tham gia làm web trong một môi trường chuyên nghiệp, em có dự định là
sẽ thực tập sau hè. Vì vậy, em quyết định chọn Công ty Trách Nhiệm Hữu Hạn NashTech
– 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
4
Đỗ Ngọc Cường
Báo cáo thực tập
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công Ty Trách Nhiệm Hữu Hạn NashTech đã tạo điều
kiện cho em có cơ hội được thực tập tại một môi trường chuyên nghiệp tại công ty.
Trong vịng ba tháng, em đã hồn thành được một trang web thương mai điện tử
gồm các chức năng đáp ứng nhu cầu của người dùng hiện nay, tham gia mô hình scrum để
phát triển một trang web quản lý tài sản cho người dùng. Các kiến thức cơ bản về code, git
và các kiến trúc phần mềm .NET, cùng với đó là các khóa học kỹ năng mềm vơ cùng hữu
ích của cơng ty. Hiểu được vị trí của một fullstack developer trong thời kỳ công nghệ hiện
đại. Chân thành cảm ơn lịng nhiệt tình giúp đỡ của các anh chị Leader, Mentor và trưởng
HR đã dìu dắt hỗ trợ, hướng dẫn từ những ngày đầu em vào cơng ty.
Vì kiến thức còn hạn chế cũng như là lần đầu tiên được tiếp xúc với các kiến thức
thực tế, áp dụng lý thuyết vào cơng việc nên bản than cịn bỡ ngỡ và lúng túng, khơng tránh
khỏi những thiếu sót, mong q Thầy (Cơ) có thể đóng góp ý kiến để em có thể hồn thiện
hơn.
Cuối cùng em xin cảm ơn thầy cô trong khoa Công Nghệ Phần Mềm đã hỗ trợ, tạo
điều kiện cho em có thể hồn thành bài báo cáo này.
Đỗ Ngọc Cường
TP. Hồ Chí Minh, ngày 18 tháng 12 năm 2021
5
Đỗ Ngọc Cường
Báo cáo thực tập
DANH MỤC CÁC CỤM TỪ VIẾT TẮT
CD
: Client Development
API : Application Programming Interface
6
Đỗ Ngọc Cường
Báo cáo thực tập
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
I.
Giới thiệu chung về công ty
-
Tên đơn vị: Công ty TNHH NashTech
-
Lĩnh vực hoạt động: Outsource nhiều lĩnh vực
-
Địa chỉ:
● Trụ sở chính: 110 Bishopgate, London, United Kingdom EC2N 4AY
● Chi nhánh thực tập: 364 Cộng Hòa, Phường Tân Bình, Thành Phố Hồ Chí
Minh, Việt Nam
-
Trang web: nashtechglobal.com
-
Email:
-
Điện thoại: +84 28 3810 6200
-
Thời gian làm việc: Thứ 2 đến thứ 6: 08h30 - 17h30
-
Slogan: “Delivering technology excellence”
7
Đỗ Ngọc Cường
Báo cáo thực tập
-
Sứ mệnh: Đưa sản phẩm cho khách hàng hồn thiện nhất
-
Nashtech là cơng ty con của tập đoàn Harvey Nash, một trong những tập đoàn dẫn
đầu về cung cấp nhân lực và các giải pháp công nghệ. Là các chuyên gia trong công
nghệ, đưa ra các giải pháp thơng minh giải quyết các bài tốn thực tế để tạo nên giá
trị của NashTech
8
Đỗ Ngọc Cường
Báo cáo thực tập
CHƯƠNG 2: NỘI DUNG THỰC TẬP
I.
Cơng nghệ, giải pháp và quy trình áp dụng
1. Giới thiệu về Git
Hình 2.1: Mơ hình cơng cụ Git.
Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version
Control System – DVCS) là một trong những hệ thống quản lý phiên bản phân tán phổ
biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ nhiều phiên
bản khác nhau của một mã nguồn được nhân bản (clone) từ một kho chứa mã nguồn
(repository), mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể ủy thác (commit) rồi đưa
lên máy chủ nơi đặt kho chứa chính. Và một máy tính khác (nếu họ có quyền truy cập)
cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới
nhất trên máy tính kia. Trong Git, thư mục làm việc trên máy tính gọi là Working Tree.
9
Đỗ Ngọc Cường
Báo cáo thực tập
Hình 2.2: Sơ đồ liên hệ giữa các máy tính.
Ngồi ra, có một cách hiểu khác về Git đơn giản hơn đó là nó sẽ giúp bạn lưu lại
các phiên bản của những lần thay đổi vào mã nguồn và có thể dễ dàng khơi phục lại dễ
10
Đỗ Ngọc Cường
Báo cáo thực tập
dàng mà không cần copy lại mã nguồn rồi cất vào đâu đó. Và một người khác có thể xem
các thay đổi của bạn ở từng phiên bản, họ cũng có thể đối chiếu các thay đổi của bạn rồi
gộp phiên bản của bạn vào phiên bản của họ. Cuối cùng là tất cả có thể đưa các thay đổi
vào mã nguồn của mình lên một kho chứa mã nguồn.
Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một “ảnh chụp” (snapshot) trên mỗi
tập tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử dụng lại một ảnh
chụp nào đó mà bạn có thể hiểu đó là một phiên bản. Đây cũng chính là lợi thế của Git so
với các DVCS khác khi nó không “lưu cứng” dữ liệu mà sẽ lưu với dạng snapshot.
Hình 2.3: Sơ đồ cơ cấu của Git.
-
Master: là nhánh chính, run trên production.
11
Đỗ Ngọc Cường
Báo cáo thực tập
Dev: là nhánh replica cho nhánh master cộng với các nhánh feature đang được phát
-
triển.
Feature: được tách từ nhánh dev, chức năng sau khi được phát triển sẽ được merge
-
vào dev trước khi merge vào master.
Hình 2.4: Git branching.
2. Giới thiệu về mơ hình làm việc Agile – Scrum
Tại sao cần Agile?
●
Sự khác nhau giữa phương pháp làm việc truyền thống-Waterfall và Agile có thể tổng
kết trong 2 từ: cứng nhắc và linh hoạt. Trong khi Waterfall là 1 process khá cứng nhắc và
nguyên tắc, thì Agile lại rất linh hoạt và khơng ngừng thay đổi sao cho phù hợp với thời
đại và ý kiến của khách hàng . Chi tiết hơn về sự khác nhau như sau:
-
Waterfall là quy trình có cấu trúc, bạn không thể bắt đầu công đoạn mới cho đến
khi công đoạn trước đấy được hồn thành. Agile là quy trình linh hoạt, cho phép
12
Đỗ Ngọc Cường
Báo cáo thực tập
bạn chạy dự án theo cách mà bạn muốn. Waterfall là tuần tự, và Agile thì khơng
ép buộc vào 1 quy trình tuần tự nào.
-
Các dự án theo quy trình Waterfall thường cần define cụ thể yêu cầu của dự án,
trong khi các yêu cầu trong các dự án Agile có thể thay đổi và phát triển.
-
Trong các dự án Waterfall, bạn không thể thay đổi những thứ bạn đã làm trong
những công đoạn trước, tuy nhiên Agile rất phù hợp và có thể đáp ứng được các
thay đổi.
Hình 2.7: Mơ hình Agile và Waterfall.
Một cách tổng quát, khi một sản phẩm được xây dựng theo mơ hình Waterfall, thì các
cơng việc trong dự án được xác định theo nguyên tắc lúc ban đầu, và không tiếp thu được
ý kiến của người sử dụng trong quá trình hình thành sản phẩm. Việc giành quá nhiều thời
gian cho một sản phẩm mà không biết được rằng mức độ khả thi cũng như những điều mà
người sử dụng quan tâm sẽ gây ảnh hưởng rất nhiều đến chất lượng sản phẩm.
13
Đỗ Ngọc Cường
Báo cáo thực tập
Trong khi đó, Agile giúp các nhà phát triển có thể nhận dạng, điều chỉnh các vấn đề và
khiếm khuyết một cách nhanh chóng. Các điểm mạnh của Agile là:
-
Thực hiện thay đổi dễ dàng: Bởi vì dự án được chia thành các phần nhỏ, riêng
biệt, không phụ thuộc lẫn nhau, nên những thay đổi được thực hiện rất dễ dàng,
ở bất kỳ giai đoạn nào của dự án.
-
Không cần phải nắm mọi thông tin ngay từ đầu: Phù hợp với những dự án
chưa xác định được mục tiêu cuối cùng rõ ràng, vì việc này không quá cần thiết
trong giai đoạn đầu.
-
Bàn giao nhanh hơn: Việc chia nhỏ dự án cho phép đội ngũ có thể tiến hành
kiểm tra theo từng phần, xác định và sửa chữa vấn đề nhanh hơn, nhờ đó việc
bàn giao công việc sẽ nhất quán và thành công hơn.
-
Chú ý đến phản hồi của khách hàng và người dùng: Cả khách hàng và người
dùng cuối đều có cơ hội để đóng góp các ý kiến và phản hồi, từ đó họ sẽ có ảnh
hưởng một cách mạnh mẽ và tích cực tới sản phẩm cuối cùng.
-
Cải tiến liên tục: Agile khuyến khích thành viên trong đội ngũ làm việc và khách
hàng cung cấp phản hồi của mình, khi đó các giai đoạn khác nhau của sản phẩm
cuối có thể được kiểm tra và cải thiện lại nhiều lần nếu cần.
Trong ngành công nghiệp phần mềm, phương thức sản xuất phần mềm có một vai trị
vơ cùng quan trọng, nó quyết định cấu trúc tổ chức, qui trình phát triển, khả năng thành
công của các dự án. Trong những năm gần đây Agile- Scrum nổi lên và thay thế mô hình
thác nước (Waterfall) truyền thống như một phương thức tổ chức sản xuất ưu việt được
nhiều công ty phần mềm áp dụng và thành công. Quản lý dự án theo nguyên tắc Agile nổi
lên như một sự thay thế tối ưu cho bất kì dự án nào.
14
Đỗ Ngọc Cường
Báo cáo thực tập
Hình 2.8: Quy trình Agile.
●
Định nghĩa mơ hình Agile.
Khái niệm Agile (viết tắt của Agile Software Development) có nghĩa là phương thức
phát triển phần mềm linh hoạt, được ứng dụng trong quy trình phát triển phần mềm với
mục tiêu là đưa sản phẩm đến tay người dùng càng nhanh càng tốt. Nguyên tắc phát triển
mô hình là phân đoạn lặp (iterative) và tăng trưởng (incremental), theo đó nhu cầu và
giải pháp tiến hóa thơng qua sự hợp tác giữa các nhóm tự quản và liên chức năng.
Rất nhiều nơi định nghĩa Agile như một phương pháp. Thực chất, Agile giống như một
phương pháp luận, một triết lý dựa trên hơn nguyên tắc phân đoạn vòng lặp (iterative) và
tăng trưởng (incremental).
Ngày nay, triết lí Agile đã vượt xa khỏi khu vực truyền thống của mình là phát triển
phần mềm để đóng góp sự thay đổi trong cách thức làm việc, quản lí, sản xuất ở các ngành
15
Đỗ Ngọc Cường
Báo cáo thực tập
khác như sản xuất, dịch vụ, sales, marketing, giáo dục... và trở thành một phương thức quản
lý dự án phổ biến nhất hiện nay với nhiều đại diện được gọi là các phương pháp “họ Agile”.
4 tôn chỉ trong Agile
●
-
Cá nhân và sự tương hỗ quan trọng hơn quy trình và cơng cụ: Trọng tâm đặt lên
con người, xây dựng tương tác và hỗ trợ giữa các thành viên trong nhóm. Những
thành viên có năng lực, chịu tương trợ nhau trong công việc sẽ mang đến thành
công cho dự án.
-
Sản phẩm dùng được tốt hơn tài liệu đầy đủ: Tập trung thời gian để làm ra phần
mềm hoàn chỉnh đáp ứng hoàn hảo yêu cầu khách hàng.
-
Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng: Hiểu được khách
hàng cần gì để tư vấn và điều chỉnh sản phẩm thay vì chỉ dựa vào các điều khoản
trong hợp đồng.
-
Phản hồi thay đổi hơn là bám sát kế hoạch: Agile khuyến khích thích nghi với sự
thay đổi, đó có thể là thay đổi về cơng nghệ, nhân sự, deadline,...
12 Ngun tắc
●
-
Đáp ứng tồn diện nhu cầu khách hàng thông qua việc giao hàng sớm và sản
phẩm có giá trị.
-
Thay đổi yêu cầu được chào đón, thậm chí là rất muộn trong q trình phát triển.
-
Giao phần mềm chạy được cho khách hàng một cách thường xuyên.
-
Nhà kinh doanh và các kỹ sư phần mềm cần làm việc cùng nhau trong suốt dự
án.
-
Xây dựng dự án xung quanh các cá nhân có động lực. Cung cấp sự hỗ trợ cần
thiết, môi trường làm việc và niềm tin để hồn thành cơng việc.
-
Trao đổi trực tiếp là cách truyền đạt thông tin hiệu quả nhất.
-
Thước đo chính của tiến độ là phần mềm chạy tốt.
-
Phát triển liên tục và bền vững.
16
Đỗ Ngọc Cường
Báo cáo thực tập
-
Cải tiến sự linh hoạt bằng cách quan tâm đến kỹ thuật và thiết kế.
-
Nghệ thuật tối đa hóa lượng cơng việc chưa xong - Sự đơn giản là cần thiết.
-
Nhóm tự tổ chức
-
Thích ứng thường xuyên với những thay đổi.
Các bước làm việc theo Agile - Scrum
●
Scrum định nghĩa quy tắc cho bốn sự kiện chủ chốt nhằm tạo môi trường và quy cách
hoạt động và cộng tác cho các thành viên trong dự án. Các sự kiện này diễn ra trước khi
Sprint bắt đầu (là sự kiện lập kế hoạch – Sprint Planning), trong khi Sprint diễn ra (sự kiện
Daily Scrum) và sau khi Sprint kết thúc (sự kiện Sprint Review và Sprint Retrospective).
-
Sprint Planning (Họp Kế hoạch Sprint- Iteration): Nhóm phát triển gặp gỡ với
Product Owner để lên kế hoạch làm việc cho một Sprint (xem thêm phần Sprint
bên dưới). Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải
phát triển, phân tích và nhận biết các công việc phải làm kèm theo các ước lượng
thời gian cần thiết để hoàn tất các tác vụ. Chia nhỏ cơng việc thành các backlog
(task) để có thể theo dõi tiến độ dự án dễ dàng hơn. Scrum sử dụng cách thức lập
kế hoạch từng phần và tăng dần theo thời gian, theo đó, việc lập kế hoạch khơng
diễn ra duy nhất một lần trong vòng đời của dự án mà được lặp đi lặp lại, có sự
thích nghi với các tình hình thực tiễn trong tiến trình đi đến sản phẩm.
-
Daily Scrum (Họp Scrum hằng ngày): Scrum Master tổ chức cho Đội sản xuất
họp hằng ngày trong khoảng 15 phút để Nhóm Phát triển chia sẻ tiến độ cơng
việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển phần mềm
suốt một Sprint.
-
Sprint Review (Họp Sơ kết Sprint): Cuối Sprint, nhóm phát triển cùng với
Product Owner sẽ rà sốt lại các cơng việc đã hồn tất (DONE) trong Sprint vừa
qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm.
17
Đỗ Ngọc Cường
-
Báo cáo thực tập
Sprint Retrospective (Họp Cải tiến Sprint): Dưới sự trợ giúp của Scrum Master,
nhóm phát triển sẽ rà sốt lại tồn diện Sprint vừa kết thúc và tìm cách cải tiến
quy trình làm việc cũng như bản thân sản phẩm.
3. Tìm hiểu về RESTful API
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo
đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác.
API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến
như JSON hay XML.
REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một
kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp
giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người
dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử
lý dữ liệu.
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ụng web
để 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 giao tiếp với nhau.
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử
dụng những phương thức HTTP riêng.
●
GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
●
POST (CREATE): Tạo mới một Resource.
●
PUT (UPDATE): Cập nhật thơng tin cho Resource.
●
DELETE (DELETE): Xố một Resource.
Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với
Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.
18
Đỗ Ngọc Cường
Báo cáo thực tập
4. Tìm hiểu về ReactJS
Hình 2.11: Logo ReactJS
React.js là một thư viện Javascript đang nổi lên trong những năm gần đây với xu hướng
Single Page Application. Trong khi những framework khác cố gắng hướng đến một mơ
hình MVC hồn thiện thì React nổi bật với sự đơn giản và dễ dàng phối hợp với những thư
viện Javascript khác. Nếu như AngularJS là một Framework cho phép nhúng code
javascript trong code html thông qua các attribute như ng-model, ng-repeat...thì với React
là một library cho phép nhúng code html trong code javascript nhờ vào JSX, bạn có thể dễ
dàng lồng các đoạn HTML vào trong JS.Tích hợp giữa javascript và HTML vào trong JSX
làm cho các component dễ hiểu hơn.
/>
19
Đỗ Ngọc Cường
Báo cáo thực tập
5. Vịng đời ReactJS
Hình 2.12: Vịng đời ReactJS
Một vịng đời sẽ có trạng thái như sau:
●
Initialization
-
Tương tự hàm khởi tạo (constructor) được gọi đến khi một thể hiện của
component được tạo ra.
●
Mounting
Là các hàm gắn kết, kết nối các component với nhau.
-
componentWillMount()
▪
Được gọi đến trước khi hiển thị component ra ngồi trình duyệt. Q trình
này diễn ra hết sức nhanh chóng, vì vậy khơng nên làm quá nhiều điều tại
đây và hàm này được thực hiện một lần duy nhất (từ phiên bản 16.3 thì hàm
này khơng được khuyến khích dùng và sẽ bị loại bỏ ở bản 17).
-
Render()
20
Đỗ Ngọc Cường
Báo cáo thực tập
▪
Được gọi khi hiển thị component ra ngồi trình duyệt.
▪
Sẽ return về nội dung mà bạn đã viết, có thể là một component hoặc null hoặc
là false (trong trường hợp khơng muốn render gì cả).
-
componentDidMount()
▪
Được gọi sau khi đã hiển thị component ra ngồi trình duyệt, và hàm này
được thực hiện một lần duy nhất.
▪
Hàm này được gọi để thông báo component đã tồn tại trên DOM, từ đó các
thao tác trên DOM có thể thực hiện bình thường với component này.
Đầu tiên khi component được gọi thì hàm hàm constructor() được gọi, sau đó đến
componentWillMount(), tiếp theo là reder() ra ngoài và cuối cùng hàm
componentDidMount được gọi khi đã render() xong.
●
Updation
Là các vấn đề khi mình update component về props, về state.
-
componentWillReceiveProps(nextProps)
▪
Hàm này được chạy khi mà props của component đã được sinh ra có sự thay
đổi.
▪
-
Phải gọi setState() nếu muốn render lại.
shouldComponentUpdate(nextProps, nextState)
▪
Được thực hiện ngay sau khi state và props thay đổi.
▪
sẽ trả về kết quả true or false. Phương thức này sẽ xác định 1 component có
được update hay khơng. Mặc định giá trị này là true. Nếu bạn không muốn
21
Đỗ Ngọc Cường
Báo cáo thực tập
component render lại sau khi update state hay props thì return giá trị thành
false.
-
componentWillUpdate(nextProps, nextState)
▪
Được gọi khi chúng ta update state của component trước khi nó render lại.
▪
Bạn khơng thể gọi this.setState trong componentWillUpdate
▪
Hàm render sẽ được gọi ngay sau hàm này.
▪
(từ phiên bản 16.3 thì hàm này khơng được khuyến khích dùng và sẽ bị loại
bỏ ở bản 17)
-
componentDidUpdate(prevProps, prevState)
▪
Được gọi khi một component instance update, componentDidUpdate sẽ được
gọi sau khi render HTML được loading xong.
●
Unmounting
-
componentWillUnmount()
▪
Được gọi trước khi một component bị remove khỏi một DOM.
22
Đỗ Ngọc Cường
Báo cáo thực tập
6. Tìm hiểu về .NET
.Net Framework là một khuôn khổ phần mềm chạy chủ yếu trên Microsoft Windows
được phát triển bởi Microsoft. Nó có khả năng tương tác ngơn ngữ qua nhiều ngơn ngữ
lập trình và bao gồm một thư viện lớp lớn có tên là Framework Class Library – viết tắt là
FCL. .Net Framework thực thi các chương trình trong mơi trường phần mềm có tên là
Common Language Runtime – viết tắt là CLR. Đây là một máy ảo ứng dụng cung cấp
các dịch vụ như: quản lý bộ nhớ, bảo mật và xử lý các ngoại lệ. Như vậy, .NET
Framework được tạo ra từ 2 môi trường FCL và CLR.
FCL cung cấp giao diện cho người dùng, kết nối cơ sở dữ liệu, truy cập dữ liệu, mật mã,
truyền thông tin mạng, các thuật toán số và phát triển ứng dụng web và thiết kế web. Các
lập trình viên tạo ra các phần mềm bằng các kết hợp các thư viện và mã nguồn .net.
Ngồi ra, Microsoft cũng đã tạo ra một mơi trường phát triển tích hợp của .net đó chính là
Visual Studio.
.Net Framework được tạo ra nhằm hoàn thành các mục tiêu sau:
• Nhằm cung cấp cho người dùng một ngơn ngữ lập trình hướng đối tượng, tương
thích hầu hết với các mã lưu trữ và thực hiện của đối tượng.
23
Đỗ Ngọc Cường
Báo cáo thực tập
• Nhằm giảm thiểu việc triển khai phần mềm và xung đột, thúc đẩy việc thực hiện
mã an toàn, cũng như loại bỏ các vấn đề về hiệu suất của các môi trường kịch bản
hoặc diễn giải bằng cách cung cấp môi trường thực thi mã.
• Nhằm làm cho trải nghiệm của nhà phát triển nhất quán trên nhiều ứng dụng như:
các ứng dụng dựa trên web, các ứng dụng dựa trên Windows.
• .NET Framework có khả năng tích hợp với bất kỳ mã khác nên có thể xây dựng
được tất cả thơng tin liên lạc về các tiêu chuẩn ngành công nghiệp.
.NET Framework bao gồm: thư viện lớp và thời gian chạy ngôn ngữ phổ biến.
Thời gian chạy phổ biến chính là nền tảng của .NET Framework, nó cung cấp các dịch vụ
cốt lõi như: quản lý luồng và remoting, quản lý bộ nhớ, thúc đẩy tính mạnh mẽ và tính
bảo mật. Nguyên tắc cơ bản của thời gian chạy đó chính là khái niệm về quản lý mã. Mã
quản lý nhắm vào mục tiêu thời gian chạy, mã không quản lý không nhắm vào mục tiêu
thời gian chạy.
.NET Framework bắt đầu thời gian chạy bằng mã được quản lý và có khả năng lưu trữ
bằng những mã không được quản lý nhằm tạo ra một một trường phần mềm có cả 2 tính
năng được quản lý và không được quản lý. .NET Framework ngoài chức ngăn cung cấp
thời gian chạy cho máy chủ còn hỗ trợ phát triển thời gian chạy.
Thư viện lớp NET Framework là tập hợp tất cả các loại tái sử dụng được tích hợp một
cách chặt chẽ với thời gian chạy thơng dụng. Đây chính là cơng cụ hướng đối tượng cung
cấp các loại tính năng mà từ đó mã được quản lý được thực hiện. Điều này không chỉ làm
cho .NET Framework dễ dàng sử dụng mà còn làm giảm thời gian kết hợp các tính năng.
Từ một thư viện hướng đối tượng của .NET Framework cho phép bạn hoàn thành các tác
vụ như: Thu thập dữ liệu, quản lý chuỗi, kết hợp cơ sở dữ liệu và truy cập tệp.
Web app là một mảng được .NET thực hiện rất nhiều đây là mảng mà các ngôn ngữ khác
khó có thể làm được hồn hảo và bảo mật bằng .net.
24