[MUSIC]
Trước khi chúng ta bắt đầu kiểm tra Angular một cách chi tiết hơn, chúng ta hãy tự hỏi mình
câu hỏi cơ bản, tại sao chúng ta cần các framework JavaScript này?
Chính xác họ là gì, và những gì họ giúp chúng tôi
thực hiện mà chúng tôi không thể làm bằng cách sử dụng JavaScript chuẩn?
Chúng ta hãy xem xét một số câu hỏi trong một chút chi tiết trong bài giảng này.
Đầu tiên, tại sao các framework JavaScript?
Rõ ràng, từ kinh nghiệm trước đây của bạn với JavaScript và
cũng có thể trải nghiệm với các framework dựa trên giao diện người dùng web như Bootstrap và việc
sử dụng jQuery, bạn nhiều hơn hoặc ít nhận ra rằng bạn có thể
nhận được hầu hết những điều mà bạn muốn thực hiện trên một trang web hoàn thành,
sử dụng tất cả các công cụ này và kỹ thuật mà bạn đã có trong tay.
Thật vậy, nhiều trang web thành công có thể được thực hiện bằng cách sử dụng
các kỹ thuật và công cụ đơn giản này.
Nhưng khi sự phức tạp của ứng dụng của bạn phát triển,
số lượng thao tác DOM cần phải được thực hiện và số lượng
cập nhật dữ liệu cần phải xử lý thủ công trở nên phức tạp đáng kể.
Các phương pháp tiếp cận đơn giản như sử dụng thư viện jQuery có thể
không đủ giải quyết các nhu cầu mà bạn có trong tay.
Đây là nơi mà sự sẵn có của các framework cấu trúc tốt
như Angular dựa vào tiêu chuẩn, mô hình
kỹ thuật phần mềm hoặc mô hình kỹ thuật phần mềm như bộ
điều khiển xem mô hình hoặc mô hình xem mô hình hoặc xem mô hình bất cứ điều gì, giúp chúng tôi
thực hiện các web ứng dụng một cách hiệu quả và có thể mở rộng.
Bây giờ trong bối cảnh này, chúng ta sẽ có thể nói về điều này một chút chi tiết hơn
khi chúng ta tiến hành trong khóa học này.
Chúng ta cũng sẽ nói về cách chúng ta ràng buộc các mô hình với một cái nhìn và
việc sử dụng các bộ điều khiển và các mô hình xem để thực hiện những điều này.
Sẽ được thảo luận chi tiết hơn một chút khi chúng tôi kiểm tra góc trong khóa học này.
Hãy để tôi nhanh chóng nhắc nhở bạn về một thư viện phần mềm là gì,
một thư viện phần mềm là một tập hợp các triển khai
hành vi mà bạn sử dụng nhiều lần trong các ứng dụng của bạn.
Vì vậy, những hành vi này có thể được thực hiện bằng cách sử dụng các hàm với các
giao diện được xác định rõ
ràng để sử dụng chúng trong việc triển khai ứng dụng của bạn trở nên đơn giản.
Nếu bạn đã thực hiện lập trình bằng bất kỳ ngôn ngữ nào, bạn sẽ thường
thấy rằng nhiều chức năng tiêu chuẩn được hỗ trợ
trong các ngôn ngữ này được thực hiện thông qua các thư viện mà bạn sử dụng.
Ví dụ, các thư viện đầu ra đầu vào và có lẽ ngay cả
các thư viện GUI mà nhiều ngôn ngữ lập trình chuẩn hỗ trợ.
Đây là nơi mà khái niệm tái sử dụng hành vi rất,
rất hiệu quả vì chúng ta có thể thực hiện nó một lần trong thư viện và
sau đó tái sử dụng hành vi đó bất cứ nơi nào chúng ta cần trong ứng dụng phần mềm của chúng ta.
Điều này cũng mang lại mô đun cho cách ứng dụng của chúng tôi được thực hiện.
Một ví dụ điển hình về một thư viện phần mềm được sử dụng trong thế giới web là jQuery.
Nếu bạn đã tham gia khóa học Bootstrap trước đó,
bạn sẽ thấy một số yếu tố của jQuery trong khóa học đó.
Trong bối cảnh này,
hãy để tôi cũng phân biệt một thư viện phần mềm với một khung phần mềm.
Một khung phần mềm là một trừu tượng
trong đó phần mềm cung cấp chức năng chung chung như vậy và
sau đó cung cấp cho bạn khả năng tùy chỉnh chức năng đó để
thực hiện các giải pháp cho ứng dụng cụ thể của bạn.
Vì vậy, bạn sẽ tăng cường khung phần mềm với mã của riêng bạn
để thực hiện bất cứ điều gì mà bạn đang cố gắng để thực hiện.
Vì vậy, đây là một cách khác để suy nghĩ về cách bạn
cố gắng để giải quyết vấn đề như trái ngược với việc sử dụng một thư viện phần mềm.
Bây giờ, khuôn khổ phần mềm này cung cấp một môi trường phổ quát, có thể tái sử dụng
với một số chức năng nhất định là một phần của một nền tảng phần mềm lớn hơn.
Chúng ta sẽ xem Angular như một ví dụ về cách thực hiện điều này một cách chi tiết hơn.
Có một số khuôn khổ phần mềm khác được sử dụng trong thế giới web
bao gồm Ember, Backbone, và nhiều khuôn khổ khác.
Bây giờ ở đây, bạn rõ ràng có thể nghĩ đến câu hỏi.
Làm thế nào để bạn phân biệt một thư viện với một framework?
Các đặc điểm nổi bật của mỗi loại là gì và
tại sao bạn lại phân loại một như một thư viện và một trong những khác là một khuôn khổ?
Bạn rút ra sự phân biệt giữa hai người ở đâu?
Bây giờ điều này tôi nên nói,
có một dòng nhỏ tách một thư viện từ một khuôn khổ.
Tùy thuộc vào cách bạn tiếp cận này, bạn có thể xem một hoặc
khác như một thư viện, hoặc một khuôn khổ, và
tùy thuộc vào người bạn yêu cầu, một số người có thể phân loại một
cách tiếp cận cụ thể như một cách tiếp cận thư viện như trái ngược với một cách tiếp cận khung.
Một lần nữa, chúng ta không chia tóc của chúng ta về việc cố gắng
phân loại chính xác mọi thứ vào một thư viện hoặc một khuôn khổ.
Theo quan điểm của chúng tôi, nếu điều gì đó giúp chúng tôi hoàn thành nhiệm vụ của mình,
thì chúng tôi hài lòng với cách tiếp cận đó.
Một lần nữa, khi nói rằng, chúng ta hãy phân biệt giữa một thư viện và
một khuôn khổ chi tiết hơn một chút.
Để hiểu cách bạn tiếp cận
toàn bộ cách viết đơn của bạn.
Khi bạn sử dụng một thư viện như trái ngược với việc sử dụng một framework.
Vì vậy, trong bối cảnh này định nghĩa sau đây mà tôi đã mượn
từ tài liệu AngularJS loại, Tôi cảm thấy
cho một chút khác biệt rõ ràng hơn giữa một thư viện và một khuôn khổ.
Vì vậy, định nghĩa này nói rằng một thư viện là một tập hợp các chức
năng hữu ích cho việc viết các ứng dụng web, jQuery là một ví dụ.
Vì vậy, đây là một tập hợp các chức năng có sẵn cho bạn.
Bạn sử dụng các chức năng này khi bạn thực hiện
giải pháp phần mềm của bạn cho vấn đề của bạn.
Khi bạn sử dụng phương pháp này, nó là bạn lập trình viên luôn kiểm soát
cách bạn tận dụng các chức năng được cung cấp
bởi thư viện để thực hiện bất cứ điều gì bạn đang cố gắng để làm.
Mặt khác, một framework là một thực hiện cụ thể hoặc thực hiện cụ thể
của một ứng dụng web, trong
đó bản thân framework cung cấp một cấu trúc chung rộng cho
ứng dụng của bạn và sau đó bạn được yêu cầu điền vào các chi tiết.
Các chi tiết cần thiết để tùy chỉnh ứng dụng đó
để giải quyết vấn đề cụ thể mà bạn đang cố gắng giải quyết.
Vì vậy, ở đây, khuôn khổ có quyền kiểm soát hoàn toàn như thế nào các ứng dụng này chạy và
sau đó nó sẽ gọi vào người dùng cung cấp mã giúp nó để có được công việc hoàn thành.
Các ứng dụng cụ thể mã là một cái gì đó mà bạn sẽ viết và
cung cấp nó và đó sẽ trở thành một phần của toàn bộ ứng dụng,
cùng với khuôn khổ, và nó giúp để hoàn thành nhiệm vụ của bạn.
Một lần nữa, điều này có thể không hoàn toàn, rõ ràng cho phép bạn
hiểu được sự khác biệt giữa một khuôn khổ và một thư viện.
Hãy một lần nữa, như tôi đã nói, chúng
ta không lây lan lông của chúng tôi cố gắng tìm ra tất cả những chi tiết này.
Những gì chúng ta cần hiểu là Angular là một ví dụ về một framework và
khi bạn viết các ứng dụng trong Angular, framework sẽ kiểm soát và
về cơ bản bạn cung cấp các phần còn thiếu của mã được yêu cầu
để tùy chỉnh framework để thực hiện ứng dụng web cụ thể của bạn.
Kiểm tra khung từ một chút chi tiết hơn.
Khi chúng ta nói về một khuôn khổ, một trong những khía cạnh quan trọng về cách một khuôn khổ
hoạt động được tóm tắt bởi thuật ngữ này được gọi là Nguyên tắc Hollywood.
Ý tôi chính xác là gì theo nguyên tắc Hollywood?
Bây giờ, nếu bạn biết cách một đặc vụ Hollywood hoạt động, khi một diễn viên hay
một nữ diễn viên muốn tìm việc ở Hollywood,
họ sẽ tiếp cận một đặc vụ và đặc vụ thường nói với bạn,
chúng tôi sẽ gọi lại cho bạn khi chúng tôi có việc cho bạn.
Đừng gọi cho chúng tôi, chúng tôi sẽ gọi lại.
Vì vậy, về cơ bản một khuôn khổ là phản ánh cùng một loại nguyên tắc.
Framework nói, bạn cung cấp bất cứ điều gì bạn có thể làm và
framework sẽ gọi mã cung cấp của bạn bất cứ khi nào nó cần phải làm điều gì đó.
Đó là lý do tại sao chúng tôi sử dụng thuật ngữ này Nguyên lý Hollywood trong thế giới phần mềm.
Điều này cũng có thể được tóm tắt bằng cách sử dụng
biểu thức khác này gọi là Inversion of Control.
Khi bạn sử dụng một thư viện, bạn, các lập trình viên là trong kiểm soát, và
bạn dictate làm thế nào các mã hoạt động và làm thế nào các mã thực thi.
Khi bạn sử dụng một framework,
bạn về cơ bản là đầu hàng đặc quyền của bạn cho framework và
cho phép framework đó chịu trách nhiệm và sau đó dictate làm thế nào các ứng dụng được chạy.
Bây giờ trong khi bạn có vẻ như điều này giống như đầu hàng độc lập của bạn,
chắc chắn đó không phải là trường hợp, nếu khuôn khổ có một lý do nhất định để nhận
trách nhiệm hoàn thành bất cứ điều gì nó cần làm thay mặt bạn.
Vì vậy, đây là một nơi mà chúng tôi sẽ phân biệt giữa
hai cách tiếp cận để viết các chương trình.
Một người được gọi là cách bắt buộc của việc viết các chương trình, và
thứ hai được gọi là cách khai báo để viết các chương trình.
Nếu bạn đã thực hiện bất kỳ khóa học ngôn ngữ lập trình nào,
bạn sẽ thấy rằng các ngôn ngữ lập trình thường sử dụng một hoặc
cách tiếp cận khác mà điều này hỗ trợ trong việc viết các chương trình.
Trong lập trình bắt buộc,
bạn sẽ chỉ định các chức năng của chương trình theo cách từng bước.
Vì vậy, bạn hoàn toàn và kiểm soát và
sau đó bạn đang về cơ bản nói, đây là cách bạn phải hoàn thành nhiệm vụ và
sau đó bạn sẽ viết xuống từng bước cách để hoàn thành nhiệm vụ.
Vì vậy, bạn là một lập trình viên là hoàn toàn kiểm soát trong việc xác định các bước chính xác
để giải quyết vấn đề.
Trong lập trình khai báo mặt khác,
được sử dụng hiệu quả bởi các framework như Angular.
Bạn đang về cơ bản nói đây là những gì tôi muốn đạt được, và
đây là cách tôi tùy chỉnh những gì đặc biệt tôi muốn đạt được.
Làm thế nào nó được thực hiện không phải là mối quan tâm với tôi.
Nhưng tôi sẽ bàn giao trách nhiệm đó cho khuôn khổ.
Vì vậy, về cơ bản, bạn đang cung cấp mã cung cấp người dùng của bạn cho khuôn khổ và
nói, bây giờ đây là những gì tôi muốn bạn làm, bạn chịu trách nhiệm và làm cho điều này xảy ra.
Vì vậy, theo cách đó trong lập trình khai báo, bạn chỉ tuyên bố
ý định của bạn là gì và để cho khuôn khổ quyết định làm thế nào điều đó sẽ được thực hiện.
Hai cách suy nghĩ khác nhau về cách bạn tiếp cận giải quyết vấn đề của mình.
Đây là một cái gì đó mà bạn phải có được đầu của bạn xung quanh khi bạn học
Angular bởi vì nếu bạn đang đến từ thế giới lập trình bắt buộc,
xu hướng chung của bạn sẽ là để kiểm soát tất cả mọi thứ và
dictate từng bước như thế nào bạn muốn thực hiện.
Vì vậy, phải mất một thời gian để quấn đầu của bạn xung quanh khái niệm này mà bạn
không nhất thiết phải kiểm soát từng bước.
Thay vào đó, bạn nói với khuôn khổ những gì bạn muốn trở thành, để được hoàn thành.
Và trao trách nhiệm cho khuôn khổ để hoàn
thành nhiệm vụ thay mặt bạn.
Một lần nữa, đừng lo lắng quá nhiều về nó, và đừng đọc quá nhiều vào định nghĩa này.
Đây là từ một mối quan tâm học thuật, đây là cơ sở của việc xác định các
mẫu hành vi khác nhau từ quan điểm của một nhà phát triển ứng dụng web.
Tất cả những gì bạn quan tâm là làm thế nào bạn
hoàn thành công việc của bạn bằng cách sử dụng Angular như khung ứng dụng web.
Đến với thế giới JavaScript framework,
bạn sẽ nghe thấy rất nhiều thuật ngữ đang được sử dụng với JavaScript framework.
Bạn thường sẽ nghe mọi người nói về một cái gì đó được gọi là
ứng dụng PPage đơn lẻ hoặc một thuật ngữ đồng minh được gọi là ứng dụng internet phong phú.
Một lần nữa, chúng tôi sẽ kiểm tra ý nghĩa của điều này trong một trong những
bài học sau này trong khóa học này trong bối cảnh của Angular.
Tương tự như vậy, bạn cũng sẽ nghe mọi người nói về Model-View-Controller,
Model-View-ViewModel, Model-View-Whatever, v.v.
Một lần nữa, đây là như tôi đã nói, một mô hình kiến trúc phần mềm
mà chúng tôi sử dụng để phát triển các ứng dụng phần mềm.
Chúng ta sẽ nói thêm một chút chi tiết về điều này trong bối cảnh Angular,
trong một trong những bài học sau này.
Và trong bối cảnh này, bạn sẽ nghe thấy trong Angular, những thứ như ràng buộc dữ liệu
, định tuyến, ràng buộc dữ liệu một chiều và hai chiều, v.v.
Một lần nữa, đừng bị loại bỏ bởi tất cả các điều khoản này.
Chúng tôi sẽ hiểu họ khi chúng tôi đi cùng trong khóa học này.
Tương tự như vậy, bạn sẽ thường nghe về
mã JavaScript có thể mở rộng, có thể tái sử dụng, có thể duy trì, v.v.
Đây là những khái niệm tuyệt
vời hoặc thuộc tính tuyệt vời mà chúng tôi muốn đạt được với ứng dụng của chúng tôi.
Chúng ta sẽ thấy cách Angular giúp chúng ta làm điều này trong khóa học cụ thể này.
Và một thuật ngữ khác mà bạn thường nghe mọi người nói đến là
sự phát triển theo hướng thử nghiệm.
Góc thực sự hỗ trợ kiểm tra hướng phát triển, vì vậy ngay cả trước khi
bạn phát triển ứng dụng của bạn, bạn sẽ viết bài kiểm tra để đảm bảo rằng các mã
mà bạn thực hiện thực sự hoàn thành những gì bạn đang cố gắng để thực hiện.
Chúng tôi sẽ kiểm tra một chút phát triển theo hướng thử nghiệm hướng tới phần sau
của khóa học này.
Mặc dù, nếu bạn muốn áp dụng phương pháp phát triển điều khiển thử nghiệm này để
thực hiện các ứng dụng, đó là một cách tiếp cận tuyệt vời.
Nhưng trước khi chúng ta đi đến thời điểm đó, tốt hơn là
chúng ta nên hiểu những gì bản thân khuôn khổ giúp chúng ta hoàn thành.
Vì vậy, trong khóa học này, tôi sẽ giải quyết một thời gian ngắn với thử nghiệm hướng phát triển.
Nhưng nếu bạn đang thực hiện một ứng dụng Angular thực sự, bạn sẽ áp dụng
một cách tiếp cận phát triển thử nghiệm điều khiển để phát triển các ứng dụng Angular.
Có rất nhiều, rất nhiều khuôn khổ JavaScript có sẵn trong thế giới thực.
Góc là một khởi đầu.
AngularJS là một trong những framework JavaScript phổ biến nhất.
Chúng ta sẽ xem xét Angular chi tiết hơn khi chúng ta đi cùng.
Tương tự như vậy, nếu bạn nhìn vào thế giới JavaScript framework,
bạn sẽ nghe mọi người nói về Ember, Backbone, React.
Mặc dù, một số người phân loại React như một thư viện chứ không phải là một khuôn khổ. Một
lần nữa, tùy thuộc vào người bạn yêu cầu,
một số người có thể nói đó là một khuôn khổ và một số người có thể nói nó chỉ là một thư viện.
Một lần nữa, chúng ta đừng lo lắng quá nhiều về nó là gì nhưng nó có sẵn cho
chúng tôi như một cách tiếp cận để thực hiện các ứng dụng web phức tạp.
Tương tự như vậy, các khuôn khổ nhỏ hơn khác như Aurelia, Meteor,
Polymer, Google là một khuôn khổ sắp tới, Knockout, Vue và nhiều người khác.
Và ngày càng có nhiều người được thêm vào điều này mỗi ngày.
Khung JavaScript của ngày hôm nay là gì?
Góc.
Nó chỉ bước ra khỏi giai đoạn phát triển và đi vào thế giới thực.
Và mọi người đang tranh giành để phát triển các ứng dụng bằng cách sử dụng Angular.
Vì vậy, đó là lý do tại sao chúng tôi quan tâm đến Angular trong khóa học đặc biệt này.
Bây giờ một khi bạn học được một trong số họ,
bạn sẽ bắt đầu hiểu cách tiếp cận nhẹ nhàng mà khung này sử dụng.
Bạn có thể chọn các khuôn khổ khác tương tự bằng cách sử dụng
các khái niệm chung mà bạn học trong khóa học cụ thể này.
[ NHẠC]