[MUSIC CHƠI]
ROGER ZURAWICKI: Hi, my tên là Roger Zurawicki,
và tôi sẽ được bao gồm Hội thảo CS50 Meteor.
Meteor là một khuôn khổ mới dành cho các loại mới của web,
không phải là PHP tạo các yêu cầu qua lại loại
của web chúng ta đã thấy trong các bộ PHPP, nhưng JavaScript năng động hơn
các bộ phận của web.
Những điều có thể làm Meteor bao gồm webcam Đang cập nhật
và ngay lập tức liên lạc giữa người sử dụng cùng một trang web.
>> Đối với hội thảo này, chúng tôi có đang lưu trữ tại GitHub của tôi.
Bạn có thể đi đến URL này và tải về nó.
Nếu bạn biết làm thế nào để sử dụng Git, bạn có thể sao chép các kho lưu trữ.
Nếu bạn không biết làm thế nào để sử dụng Git hoặc đã không được sử dụng GitHub,
đó là hoàn toàn tốt đẹp.
Tôi sẽ cho bạn thấy thực sự nhanh chóng làm thế nào chúng ta có thể đi đến GitHub,
và có một tùy chọn để tải về một file zip ngay tại đó.
Khi bạn tải về thư mục này, bạn có thể bắt đầu chơi với mã của chúng tôi.
>> Thông tin thêm về Meteor có thể được tìm thấy tại meteor.com.
Trong thư mục Hội thảo, tôi thực sự có một số dự án Meteor chúng ta có thể sử dụng.
Một trong các thư mục của chúng tôi, chúng tôi có trong Hội thảo dự án là ứng dụng todos.
Vì vậy, nếu tôi đi vào nó tôi, có Meteor được cài đặt.
Vì vậy, để chạy nó, tôi chỉ cần gõ Meteor, và Meteor sẽ cài đặt.
Như bạn có thể thấy, chúng ta phải chắc chắn rằng chúng ta cài đặt Meteor.
Vì vậy, tôi chỉ cần đi tới chạy nó một lần nữa
để đảm bảo rằng Meteor được cài đặt đúng cách.
>> Trong khi tôi có Meteor cài đặt, tôi có thể chỉ cho bạn
một số trình diễn trực tiếp của các trang web Meteor sẽ trực tiếp ngay bây giờ trên internet.
Tôi có một bản demo của ứng dụng của chúng tôi.
Bạn có thể truy cập nó tại URL sau đây.
Đây là ứng dụng để làm điều đó, chúng tôi có trong thư mục hội thảo của chúng tôi.
Các URL cho điều này là rozu-rabbit.meteor.com.
Bạn sẽ thấy rằng Meteor sẽ thực sự chủ dự án Meteor của bạn miễn phí.
Và vào cuối buổi hội thảo, bạn sẽ có thể làm được điều này.
>> Đây là một ứng dụng để làm danh sách.
Và bạn có thể đăng nhập, tạo tài khoản, và thêm các công việc.
Bạn có thể tạo một tài khoản như vậy.
Và bây giờ, khi bạn có một tài khoản, bạn có thể thêm các công việc.
Ví dụ, một trong những nhiệm vụ tôi có thể cần phải đi nhặt giặt của tôi.
Và nếu bạn đang ở trên này trang web trực tuyến, bạn sẽ thấy
thực sự thấy nhiệm vụ này trên máy tính của bạn trong thời gian thực.
>> Tôi có thể cho bạn một bản demo nhanh điều này bằng cách mở rozu-thỏ
trong tab khác với cùng một URL.
Và chúng ta thấy rằng các dữ liệu cùng đi lên.
Chúng tôi cũng có thể chạy nó trong một trình duyệt khác nhau.
Nói rằng tôi chạy nó trong Safari.
Bằng cách đó, chúng tôi không đăng nhập.
Vì vậy, chúng tôi có các Meteor cùng ứng dụng, và một khi nó tải,
chúng ta sẽ thấy cùng một dữ liệu chúng tôi đã làm trong lần đầu tiên.
Như bạn có thể thấy, tôi không đăng nhập vào đây.
Và khi các dữ liệu kiểm tra khán giả, nó cập nhật trên tất cả các trình duyệt
đồng thời.
Đây là một trong những thực sự Các tính năng thú vị về Meteor.
Với hầu như không có công việc, bạn có một cập nhật ứng dụng trực tiếp
rằng những thay đổi trên tất cả các thiết bị của bạn cùng một lúc.
>> Nếu tôi chọn check box ở đây trong danh sách để làm của tôi, chúng tôi sẽ có,
trong trình duyệt Chrome khác của tôi, các mục kiểm tra ra.
Và điều này xảy ra ngay lập tức.
Được rồi.
Vì vậy, nó trông giống như Meteor cài đặt sẵn sàng.
Vì vậy bây giờ chúng ta hãy quay trở lại todos ứng dụng và chạy này tại địa phương.
>> Nếu bạn có một dự án Meteor, bạn có thể chỉ cần chạy nó với lệnh Meteor.
Một khi bạn làm điều này, Meteor sẽ làm một số chuẩn bị
để đảm bảo tất cả các mã của bạn là trong kiểm tra.
Và sau đó nó sẽ cho bạn biết rằng dự án đã sẵn sàng để được phục vụ.
Bạn có thể cần phải cho phép của bạn tường lửa, nếu khối máy tính của mình.
>> Vì vậy, những gì Meteor là nói cho tôi bây giờ là tại trang web này
địa phương để máy tính của tôi, tôi có thể nhìn thấy những gì dự án này là Meteor.
Lưu ý rằng ngay bây giờ, ứng dụng của tôi là không thể truy cập vào internet.
Chúng tôi sẽ giới thiệu như thế nào để mang lại Meteor của bạn ứng dụng cho một trang web sống một chút sau này.
Vì vậy, tôi chỉ cần đi để sao chép này URL bây giờ và đi vào Google Chrome.
>> Và điều này là để làm liệt kê từ các ví dụ.
Bạn có thể thấy họ thực hiện thêm một vài tính năng ở đây.
Chúng tôi có các tab khác nhau, chúng tôi có các tính năng tương tự tài khoản,
và chúng ta có thể thêm vào danh sách mới.
Bây giờ, một trong những thực sự tính năng thú vị về Meteor
là không chỉ có thể này làm việc trên trình duyệt web của bạn,
nhưng bạn cũng có thể tạo ra bản iPhone và Android
ứng dụng thông qua một công cụ gọi là PhoneGap.
>> Vì vậy, một số dự án sẽ gia được cấu hình sẵn để chạy
trên iOS, như ứng dụng todos này.
Vì vậy, tất cả tôi cần phải làm gì để chạy nó trong iOS được gõ Meteor, chạy, và sau đó iOS.
Và khi tôi làm điều đó, Meteor sẽ chuẩn bị gói lại.
Và sau đó, một khi nó sẵn sàng, nó sẽ thấy tải trình giả lập iOS trên lệnh của tôi.
Lưu ý bạn chỉ có thể chạy các ứng dụng iOS nếu bạn có một máy tính Mac.
Bạn có thể chạy các ứng dụng của bạn trên Android trên tất cả các nền tảng.
>> Vì vậy, bây giờ bạn có thể thấy rằng iPhone của tôi giả đã đưa ra trên màn hình của tôi.
Và chỉ trong một khoảnh khắc, nó sẽ tải các ứng dụng.
Nếu chúng ta làm cho nó một chút nhỏ hơn để phù hợp trên màn hình,
chúng ta thấy chúng ta có ứng dụng iPhone của chúng tôi.
Và chỉ như vậy chúng tôi không bị lẫn lộn, chúng ta hãy làm
chắc chắn chúng tôi đang trên cùng một website, host nội bộ 3000.
>> Vì vậy, ngay ở đây là một ví dụ của các ứng dụng Meteor tôi có,
ứng dụng todos, chạy cả trên một điện thoại và trên một trình duyệt web.
Và khi tôi thay đổi thứ trong các trình duyệt web,
nó ngay lập tức đi vào điện thoại.
Và tôi có thể xóa một cái gì đó trên điện thoại, và nó thay đổi trong trình duyệt web.
>> Bây giờ, thông thường để tạo ra nguồn gốc điện thoại ứng dụng cho iOS hay Android,
bạn cần phải biết, hoặc Java hoặc Mục tiêu C. Công nghệ này sử dụng Meteor
để cho phép JavaScript để chạy như ứng dụng của bạn được gọi là PhoneGap.
Ứng dụng của bạn cơ bản là là một trình duyệt web.
Và Meteor xử lý tất cả những phần khó khăn tham gia
cho rằng việc đưa trình duyệt web để iPhone của bạn hoặc thiết bị Android của bạn.
Bạn có thể thấy rằng Giao diện người dùng được mịn màng,
và nó trông và cảm thấy rất giống như một ứng dụng bản địa.
Chú ý rằng nếu tôi đi đến nhà màn hình bây giờ, tôi cũng nhận được một biểu tượng.
Đây không phải là một trang web như thế bạn muốn tìm thấy trong Safari.
Đây là ứng dụng của riêng mình.
Bạn có thể cài đặt và xóa nó nếu bạn muốn.
>> Chúng tôi cũng đã có thể hiển thị cho bạn những gì các mã cho loại todos ứng dụng như thế nào.
Nếu bạn nhìn vào các thư mục todos, bạn sẽ thấy có rất nhiều thư mục.
Nhưng qua khóa học hội thảo, chúng tôi sẽ
hiểu những gì mỗi thư mục được sử dụng cho.
Chúng ta hãy đi vào nhà ga vì vậy chúng tôi có thể xem các tập tin một chút tốt hơn.
>> Tôi sẽ nhấn Control C để ngăn chặn các máy chủ,
và bây giờ tôi trở lại trong các ứng dụng todos.
Tôi có các thư mục khác nhau ở đây, giống như folder client, các thư mục máy chủ.
Và các thư mục này chỉ đơn giản có nghĩa là tất cả mọi thứ trong thư mục client
được thực hiện trên trình duyệt web của bạn.
Tất cả mọi thứ trong một thư mục máy chủ được thực hiện trên một máy chủ.
>> Những gì tôi muốn chỉ ra là những gì chúng tôi đã có
khi chúng tôi đã có điện thoại của chúng tôi chạy và Trình duyệt web của chúng tôi, đây là những khách hàng.
Nhưng những gì đang chạy trong một thiết bị đầu cuối, đó là các máy chủ.
Chúng tôi có các thư mục khác, như lib, đó là mã thư viện,
như helper của bạn chức năng, trong đó bạn có thể
sử dụng trên cả máy khách và máy chủ.
Và sau đó bạn có một công thư mục và tài nguyên
thư mục cần thiết cho việc hình ảnh của bạn và CSS khác nạp.
>> Nếu bạn đã cài đặt Meteor, chúng tôi sẽ tiếp tục hướng dẫn cho Meteor.
Bạn có thể vào URL này, meteor.com/install,
để có được những dòng lệnh mà tôi cho thấy rằng bạn cài đặt Meteor.
Chúng tôi sẽ đi qua đầu tiên vài bước để có được một tốt hơn
cảm nhận về làm thế nào để cài đặt Meteor.
>> Nhưng trước tiên, tôi nghĩ rằng điều quan trọng là chúng tôi xem xét một chút JavaScript.
Để hiển thị cho bạn một số ví dụ về cách kiến thức C của chúng tôi có thể được dịch
để Javascript, tôi đã tạo ra một vài ví dụ.
Họ đang có trong thư mục js.
Vì vậy, nếu trong các cuộc hội thảo thư mục bạn nhìn, có một thư mục gọi là js.
Và ở đây, chúng tôi có một vài ví dụ.
>> Hãy mở đầu ví dụ và xem rất nhanh chóng.
Tiêu chuẩn của bạn những gì chúng ta thấy là chào lệnh thế giới.
Bạn thông báo trong C mà bạn có khá một vài dòng.
Và như sinh viên CS50 biết, chúng tôi cần một chức năng chính,
và chúng ta phải bao gồm các tiêu chuẩn I / O thư viện để gọi printf.
>> Hãy nhìn vào cách so sánh JavaScript.
Tôi sẽ mở ex1.js.
Nhận xét ra là những gì C mã sẽ trông như thế nào,
và các dòng dưới đây là tất cả bạn cần phải chạy trong Node.
Bạn không cần phải có chức năng chính, bạn không cần phải bao gồm bất kỳ tập tin,
và bạn không cần phải trả lại.
Bạn chỉ cần gọi console.log.
Điều này là tương đương với printf của bạn.
>> Và nó có cùng đối số printf sẽ.
Và để chạy nó, thay vì chạy làm EX1,
bạn sẽ chỉ cần gọi Node ex1.js.
Bạn viết Node và sau đó các tập tin, và nó được chạy.
Nó không nhận được biên soạn.
JavaScript là một ngôn ngữ giải thích.
Vì vậy, nó không cần phải được biên dịch trước khi nó chạy.
Nếu tôi muốn chạy ex1.c, Tôi phải làm cho nó lần đầu tiên,
và sau đó tôi có thể chạy file thực thi để có được đầu ra tương tự.
>> Hãy nhanh chóng bao gồm một số khái niệm JavaScript khác.
Hãy nhìn vào ví dụ hai.
Trong ex2.js, trong ex2.c, chúng ta có thể thấy rằng chúng tôi có một số mã.
Hãy để tôi nhanh chóng đi đến một trình soạn thảo văn bản tốt hơn
đó sẽ hiển thị các đường mới tốt hơn một chút.
Được rồi.
Ở đây chúng ta có ví dụ 2.c.
Ở đây chúng ta có các loại khác nhau rằng chúng tôi đang in ra.
Và như chúng ta đã biết, printf mất đối số phần trăm khác nhau
để truy cập vào các phần khác nhau của dữ liệu.
Nếu chúng ta muốn in một chuỗi, chúng ta gọi là% s.
Nếu chúng ta muốn gọi một nổi số điểm, chúng tôi gọi là% f.
Và không có cách nào dễ dàng để gọi một Boolean bằng giá trị đúng hay sai của nó.
Nhưng nếu bạn sử dụng% d, bạn có thể nhận được 0 hoặc 1 cho sai và đúng sự thật.
>> JavaScript là một chút đẹp hơn cho chúng ta.
Trong JavaScript, chúng ta hãy nhìn vào những sự khác biệt, chúng tôi có trong file này.
Đầu tiên, bạn nhận thấy rằng trong C chúng ta phải khởi tạo tất cả các biến có một kiểu.
S là một ngôi sao char.
Đó là một chuỗi, và nó không thể được bất kỳ loại khác.
N là một phao.
B là một Bool.
>> Nhưng trong JavaScript, có nhiều loại động.
Điều đó có nghĩa rằng bạn không cần phải nói với JavaScript
những loại biến của bạn sẽ được.
Bạn chỉ cần nói var cho biến, tên của biến, và sau đó giá trị của nó.
Vì vậy, một var có thể là bất cứ điều gì thực sự.
Nó có thể là một chuỗi.
Nó có thể là một số điểm nổi.
Nó có thể là một nhân vật.
Nó có thể là một Boolean.
Và ghi giao diện hơi khác.
Nếu bạn muốn in một số, bạn gọi% d.
Nhưng hầu hết các giá trị có thể được in như dây tốt.
>> Hãy chạy trong Node để xem những gì sẽ xảy ra.
Tôi có thể gọi Node ex2.js, và chúng tôi nhận được printf
với các giá trị CS50, N là số điểm nổi,
và sau đó B là Boolean chuyển thành một chuỗi đúng.
Còn nếu chúng ta làm ví dụ 2.c?
Vâng, chúng tôi vẫn có một số nhiều phiền toái với printf.
Chú ý rằng điểm nổi số phải được định dạng đúng,
và rằng Boolean không thể đơn giản được hiển thị như là đúng hay sai.
Được rồi.
Bây giờ chúng ta hãy nhìn vào ví dụ ba.
Trong ví dụ ba, chúng tôi đang hiển thị làm thế nào bạn sẽ sử dụng một vòng lặp for.
Trong thực tế, nó rất đơn giản.
Một trong những điều tốt đẹp về JavaScript là nó được dựa trên C.
Điều đó có nghĩa là rất nhiều bạn mã sẽ trông rất giống nhau
và cảm thấy rất nhiều như nhau.
Trong vòng lặp for, điều duy nhất mà đã thực sự thay đổi ở đây
là thay vì int i, chúng tôi có var i.
Chúng tôi vẫn có thể gán cho nó giá trị gia bằng không, kiểm tra xem nó ít hơn năm,
và tăng nó bằng một với các nhà điều hành ++.
Chúng tôi gọi console.log trên i, và rằng sẽ in cho chúng tôi một số với mỗi dòng.
Hãy chạy nó thực sự nhanh chóng để xem những gì nó ra.
Chúng tôi nhận được một số mới trong mỗi dòng.
Một điều tôi muốn bạn để thông báo với console.log
là bạn không phải viết backslash n cho các dòng mới.
Console.log sẽ in tất cả mọi thứ trên một dòng riêng.
Đó là một tính năng đẹp JavaScript cho chúng ta.
>> Bây giờ chúng ta hãy mở ra ví dụ bốn.
Trong ví dụ bốn, lần đầu tiên trong C, chúng tôi đang kêu gọi một vài chức năng.
Chú ý rằng chúng ta phải khai báo chức năng trước khi chúng ta sử dụng chúng trong chính.
Nếu chúng ta có chính đầu tiên và sau đó thêm và sau đó cao, thực hiện,
kêu vang, hay GCC sẽ cung cấp cho chúng tôi một lỗi nói
mà nó không biết những gì là cao.
Nó không biết là gì add.
Vì vậy, trong C, bạn phải cầu kỳ về thứ tự mà bạn gọi chức năng của bạn.
>> Chúng ta hãy xem làm thế nào bạn có thể làm điều này trong JavaScript.
Chúng tôi có các file khác nhau vì có là một vài cách khác nhau để làm điều này.
Một cách là khá nhiều một bản dịch trực tiếp.
Bởi vì chức năng trong C loại trở lại, và JavaScript
không thực sự biết hoặc chăm sóc về những gì loại bạn quay trở lại,
bạn không viết một kiểu.
Thay vào đó, bạn chỉ cần để viết chức năng,
và tất cả mọi thứ là khá nhiều như trước.
>> Khi bạn có một biến, như trong thêm, chúng ta chỉ cần viết x và y.
Chúng tôi không cần phải nói x là một int.
Chúng tôi không cần phải nói y là một int.
Chúng tôi trở lại với cú pháp tương tự.
Đối với cao, chúng tôi tuyên bố nó với chức năng thay vì void.
Chú ý rằng cho dù nó có giá trị hoặc không có hiệu lực,
nó vẫn còn tất cả các chức năng tương tự.
Và chúng tôi chỉ đơn giản là không đặt bất cứ điều gì trong dấu ngoặc đơn,
và nó trông rất giống với mã C.
Và dưới đây, chúng ta có thể gọi nó bên dưới.
>> Nếu chúng ta nhìn vào ví dụ 4b, chúng tôi nhận thấy rằng tôi đã thay đổi một vài điều.
Điều duy nhất tôi đã thay đổi thực sự mặc dù là thứ tự.
Chúng tôi có cùng một chức năng, nhưng bây giờ họ đang
tuyên bố sau khi chúng được sử dụng trong console.log và cao trên dòng 18, 19.
Nếu bạn đã làm điều này trong C, thực hiện sẽ ném ra một lỗi.
Ở đây, điều này chỉ hoạt động tốt.
Và tôi có thể hiển thị này cho bạn bởi gọi Node trên ví dụ 4b.
>> Một cách khác chúng ta có thể gọi chức năng là bằng cách tiết kiệm năng như các biến.
Giống như tôi đã nói, một biến có thể có bất kỳ loại.
Một trong những loại một biến có thể có là một chức năng.
Vì vậy, nếu bạn nhìn vào ví dụ 4c, những gì tôi đã thay đổi
đây là var thêm thay vì chức năng add.
Và bây giờ thêm bằng một chức năng.
Chức năng này ở đây là vô danh.
Nó không có tên, vì vậy nó chỉ chức năng và sau đó các dấu ngoặc đơn.
Các cú pháp sau đó không thay đổi, nhưng bạn
đừng có để giữ trong tâm trí rằng bạn có một biến mà bạn
lưu trữ các chức năng add vào, và một biến mà bạn đang lưu trữ vào cao.
>> Bởi vì bây giờ cao thêm và là các biến và không chức năng, một cái gì đó thay đổi.
Đây là một lỗi phổ biến mà tôi thấy trong rất nhiều JavaScripts của người dân,
và một cái gì đó để giữ trong tâm trí.
Khi tôi chạy này, chúng ta hãy xem những gì sẽ xảy ra.
Tôi nhận được một lỗi.
Nó nói không xác định vào thời điểm này.
Vì vậy, nó nói nó không biết gì thêm là.
>> Bởi vì bây giờ không nằm trong một chức năng, thêm vào đó là một biến.
Và bạn đã không cung cấp cho thêm một giá trị nào khi bạn sử dụng nó.
Điều đó mang lại cho chúng tôi để dụ 4d, nơi mà nếu bạn muốn sử dụng các biến như các chức năng,
bạn chỉ cần phải chắc chắn rằng họ có giá trị trước khi chúng được sử dụng.
>> Hãy di chuyển để dụ năm sau đó.
Ở đây, chúng ta nói về struct trong C. Trong C, cấu trúc
có cấu trúc cố định này đối với họ bởi vì bạn phải khai báo
trước khi bạn sử dụng nó, và bạn nói rằng tôi có một sinh viên,
và mỗi học sinh có chính xác một tên, một năm, một giới tính.
Nó phải có tất cả chúng.
Nó có thể không có bất kỳ giá trị khác, và họ phải được loại cụ thể.
>> Sau đó, chúng ta có thể khởi tạo struct trong cú pháp này tốt đẹp
bởi vì nó biết thứ tự.
Vì vậy, nó biết rằng Roger là một cái tên.
Nó biết rằng năm 2016 là một năm và M là một giới tính
bởi vì chúng tôi nói với nó điều này danh sách là một sinh viên struct.
Và sau đó bạn có thể in nó, truy cập s.name.
Hãy xem cách chúng tôi sẽ chuyển đổi đó để JavaScript.
Chú ý rằng bây giờ là một là biến, và không có loại.
Nó chỉ là một var nữa.
Bởi vì nó không quan trọng nếu kiểu của biến này là một con trỏ,
nó là một cấu trúc, hoặc bất cứ điều gì khác.
Chúng tôi có một cú pháp hơi khác nhau.
Cú pháp này là cú pháp đối tượng.
>> Bạn có thể đã thấy nó trong JSON.
JSON thực sự là viết tắt của các JavaScript Object Notation.
Đây là cách bạn định nghĩa đối tượng trong JavaScript.
Chúng tôi có một chìa khóa, mà là giá trị, như tên.
Và chúng tôi cung cấp cho nó giá trị trên phía bên kia của đại tràng.
Và một điều cần lưu ý là bạn không cần phải có một cái tên và một năm
và giới tính cho một đối tượng.
Một đối tượng có thể không có giá trị.
Nó có thể có như nhiều như bạn muốn.
>> Chúng tôi có thể sử dụng các đối tượng này chỉ trong cùng một cách mà chúng ta sẽ sử dụng một cấu trúc, s.name.
Chúng tôi có thể chạy nó thực sự nhanh chóng bằng cách làm nút dụ 5.c.
Chúng tôi có thể không thực sự chạy một tập tin C trong Node.
Nó không biết những gì là C.
Nó chỉ biết JavaScript.
Khi chúng tôi chạy ex5.js, chúng tôi nhận được giá trị, mà chúng ta mong đợi.
>> Hãy chuyển sang ví dụ sáu.
Ở đây tôi chỉ muốn nói một chút hơn chút về mảng JavaScript
bởi vì họ là một chút khác so với những gì bạn đang
sử dụng để trong C. Mảng được ký hiệu, không có dấu ngoặc như trong C,
với các dấu ngoặc nhọn, nhưng dấu ngoặc đơn.
Bạn có thể có một mảng trống rỗng, arr như trong dòng bốn.
Bạn có thể có mảng với nhiều giá trị.
Và bạn truy cập chúng chỉ cùng một cách trong C.
>> Up cho dòng bảy, tất cả mọi thứ có vẻ khá đơn giản.
Một sự khác biệt nhỏ là ở đây tại dòng 10.
Cách bạn có được một chiều dài của một mảng chỉ đơn thuần bằng cách gọi .length.
Một mảng có thể thực sự đối xử như một đối tượng,
và đối tượng này có một tài sản dài mà bạn gọi để có được chiều dài của nó.
Chú ý rằng điều này là khác nhau trong C bởi vì trong C bạn
phải biết chiều dài của đối tượng của bạn trước thời hạn.
>> Vì vậy, một điều tốt đẹp về mảng là bạn có thể có các loại khác nhau.
Nếu bạn có một mảng trong C, có là mảng của một giá trị cụ thể,
hoặc một con trỏ struct hoặc nổi hoặc [không nghe được].
Ở đây, bạn có thể có giá trị khác nhau.
Lần đầu tiên tôi đã có một số điểm nổi, sau đó một Boolean, sau đó một số nguyên.
Và trên thực tế, họ có thể thay đổi loại quá.
Hãy xem dòng 16.
Mảng hai đang thay đổi từ việc một số, một số nguyên, với một chuỗi.
>> Một điều tốt đẹp về mảng là đây tại dòng 19, họ có kích thước vô hạn.
Bạn chỉ có thể nói rằng tôi muốn một trăm yếu tố để là chuỗi legit.
Và điều này dường như không làm cho ý nghĩa bởi vì mảng chỉ
có không gian cho ba yếu tố, để cuối cùng phải có hai.
Nhưng khi bạn làm điều này, chúng ta hãy xem những gì sẽ trở thành ba mảng.
Chúng tôi sẽ chạy một cách nhanh chóng với nút dụ six.js.
Chúng tôi có được điều này thực sự lâu dài mảng, và những gì xảy ra
là chúng tôi có một vài yếu tố đầu tiên và sau đó là một loạt các khoảng trống
cho đến khi chúng ta nhận được chuỗi của chúng tôi.
JavaScript điền vào trong mảng như nó cần thiết.
>> Hãy để cuối cùng đi đến ví dụ cuối cùng của chúng tôi.
Ở đây chúng ta có một danh sách học sinh khác nhau.
Tôi muốn nói một chút chút thông tin về một số khía cạnh đẹp
của cho các vòng trong JavaScript.
Trong C, cho vòng được loại giới hạn.
Họ có một cấu trúc cố định, nơi bạn có một biến, bạn có tình trạng,
và sau đó bạn làm điều gì đó ở phần cuối của vòng lặp.
Và tất nhiên điều này làm việc trong JavaScript, như chúng ta đã thấy trong các ví dụ trước.
Nhưng chúng ta cũng có những cách đẹp hơn làm điều này trong JavaScript.
Điều này được gọi là vòng lặp foreach.
>> Xin lỗi, chúng ta hãy quay trở lại để dụ bảy ở đây.
Chúng tôi cũng có thể nói phần là một danh sách.
Vì vậy, cho tôi mỗi i hay mỗi chỉ số trong danh sách đó.
Sau đó, chúng ta có thể nhận được các sinh viên bởi chỉ cần gọi phần của tôi.
Vì vậy, tất cả các mã của thiết i bằng không và đảm bảo i
là ít hơn so với chiều dài và thêm một đến i mọi thời gian, đó là
chăm sóc của bạn chứ không phải độc đáo với vòng lặp foreach này.
>> Không chỉ làm vòng foreach làm việc trong danh sách hoặc mảng,
họ cũng làm việc trong các đối tượng, đó cũng là tốt đẹp.
Bạn có thể lấy tên của mỗi tài sản bằng cách ôm
một từ điển hay một đối tượng, như sinh viên, và sau đó chỉ cần nói cho tôi mỗi phím.
Một khóa sẽ là những tài sản, tên hay nhà ở.
Vì vậy, những gì sẽ xảy ra ở đây là chúng tôi in ra đầu tiên tên và sau đó
nhà của mỗi học sinh.
>> Tôi có thể chạy trong Node thực sự nhanh chóng cho bạn.
Chúng tôi nhận được đầu tiên theo phong cách C cho vòng lặp, nơi chúng tôi nhận được mỗi đối tượng được in ra.
Và sau đó chúng ta có JavaScript phong cách, nơi bạn có thể chỉ
in ra mỗi phím và giá trị cá nhân.
>> Được rồi.
Bây giờ chúng ta đề cập Node.js, tôi nghĩ chúng tôi đã sẵn sàng để bắt đầu với Meteor.
Giống như tôi đã nói, Meteor đã làm một công việc tuyệt vời viết một số ví dụ làm sẵn
cho bạn biết rằng bạn có thể khám phá thông qua hướng dẫn này hoặc trong các thư mục thảo.
Nhưng ở đây tôi muốn bắt đầu nhiều từ đầu.
>> Hãy tạo ra một ứng dụng đơn giản để làm.
Đây là loại của các cơ sở của những gì để làm ứng dụng đã được nói đến là.
Trong hướng dẫn này, bạn sẽ thấy rằng có
Meteor một lệnh để tạo ra tạo ra một dự án mới Meteor.
Bạn cần phải gọi này để để chạy dự án Meteor vì nó
sẽ chạy các lệnh để tạo ra các Meteor
tập tin cần thiết cho dự án của bạn.
>> Nếu bạn đi vào các thiết bị đầu cuối, chúng ta có thể đi vào thư mục gọi là bước một.
Và bước một sẽ tương ứng với bước đầu tiên trong hướng dẫn.
Thông báo có thư mục, bước một, bước hai, tất cả các cách đến năm.
Và mỗi người tương ứng để một bước trong hướng dẫn này.
Tôi sẽ mở nó trong trình soạn thảo văn bản của tôi ở đây
vì vậy chúng tôi có thể nhìn thấy một chút về những gì đã được tạo ra.
Chúng tôi nhận thấy rằng có bốn phần chính.
Có một thư mục Meteor, .meteor.
Và bạn thường không cần phải chạm vào.
Meteor chăm sóc thư mục đó, và nó chỉ
làm cho chắc chắn rằng bạn dự án sẽ làm việc một cách chính xác.
>> Chúng tôi cũng có ba file, một file HTML, một tập tin JavaScript, và một file CSS.
Đầu tiên chúng ta bắt đầu với các tập tin HTML.
Ngay từ cái nhìn đầu tiên, điều này có vẻ như một tài liệu HTML bình thường.
Nhưng cần chú ý rằng có là một vài sự khác biệt.
One, đây không phải là thực sự một tài liệu HTML đầy đủ.
Chúng ta đang thiếu các thẻ HTML.
Điều này là bình thường.
Trong Meteor, bạn không mong đợi để tạo ra các thẻ HTML.
Điều đó làm cho bạn.
Bạn muốn begin-- nếu bạn muốn tạo ra một trang web,
bạn chỉ cần bắt đầu với các từ khóa đầu,
xác định điều đó, và sau đó xác định các tag cơ thể.
>> Nhưng nếu bạn thông báo trong này Tập tin HTML, chúng ta có một thẻ mới.
Chúng tôi có thẻ mẫu.
Đây không phải là HTML thông thường.
Đây là một phiên bản đặc biệt của HTML Meteor mà làm cho có sẵn cho bạn.
Nó được gọi là các thanh không gian.
Bạn có thể định nghĩa các mẫu ít mô-đun, giống như chức năng trợ giúp,
trong C hoặc mã JavaScript.
Mẫu này sẽ có tên gọi là nhiệm vụ.
Và bạn có thể thấy ngay trên đường 13 bạn có thể gọi những mẫu này.
Và những gì Meteor sẽ làm chỉ là điền vào các nhiệm vụ cho bạn.
>> Một điều bạn có thể nhận thấy là một bit khác nhau này là mỗi chức năng.
Mỗi người sẽ có những biến nhiệm vụ và loại đi qua nó
trong đó foreach vòng lặp chúng tôi thấy trong ví dụ bảy.
Điều này có thể mất mỗi một từ điển hoặc một danh sách, một đối tượng hoặc một danh sách,
và nó sẽ chỉ đi qua tất cả các giá trị như một vòng lặp foreach sẽ.
Vì vậy, nếu chúng tôi có một loạt các nhiệm vụ, điều này sẽ gọi các mẫu trên mỗi công việc.
>> Hãy chạy các dự án Meteor chỉ để thấy rằng điều này sẽ xảy ra.
Tôi chạy các dự án với Meteor chỉ Meteor hoặc Meteor chạy.
Và bây giờ Meteor sẽ chỉ cần để nhanh chóng chuẩn bị dự án,
bắt đầu các cơ sở dữ liệu khi cần thiết, và sau đó gửi các ứng dụng tại địa phương.
Chúng tôi có thể vào trình duyệt web của chúng tôi bây giờ.
Và chúng ta sẽ thấy rằng chúng ta có một ứng dụng rất đơn giản.
Vì vậy, những gì chúng ta đã thấy xuất hiện đã thực sự bước một, bước một tập tin.
>> Chúng ta hãy chuyển sang bước hai chỉ vì Tôi nghĩ rằng nó sẽ phục vụ cùng một mục đích.
Tôi chỉ cần đi để thay đổi sang bước hai thư mục
và chạy Meteor lần nữa vì vậy chúng tôi có thể nhìn thấy các mẫu chúng tôi chỉ làm việc với.
Vâng, một câu hỏi?
>> Đung Nếu chúng ta đang nhận được sự cho phép bị từ chối, là that-- đó là những gì
gọi cho điều đó?
ROGER ZURAWICKI: Nếu bạn đang chạy Meteor chạy,
và bạn có quyền bị từ chối, một số tập tin của bạn
có thể không có sự cho phép thiết lập đúng.
Vì vậy, bạn phải kiểm tra nơi có quyền hạn ra.
Họ có thể được tắt trong dự án Meteor của bạn,
hoặc họ có thể được tắt trong Meteor tập tin bản thân.
>> Đung Nếu tôi tải về nó ngay bây giờ từ GitHub của bạn, sau đó tôi nên làm gì
[Không nghe thấy]?
>> ROGER ZURAWICKI: Nếu bạn muốn để chắc chắn rằng bạn có thể truy cập vào nó,
có một lệnh, bạn có thể chạy.
Hãy để tôi viết nó ra một cách nhanh chóng để người khác có thể nhìn thấy nó.
Tôi sẽ mở một tab mới đây và đi vào thư mục hội thảo của tôi.
Chmod là lệnh để thay đổi điều khoản,
và bạn có thể nói cho r làm điều đó đệ quy cho mỗi tập tin.
Và khoản, bạn có thể thử 0755 để chắc chắn rằng bạn có quyền truy cập đầy đủ,
và những người khác có thể đọc.
Và nếu bạn chỉ cần chạy lệnh này, nó sẽ làm cho
chắc chắn có quyền hạn trong kiểm tra toàn bộ thư mục.
Chạy ls-l có thể hiển thị cho bạn quyền chi tiết hơn.
Điều này có vẻ OK.
>> Có gì quan trọng nhất là rằng bạn có tất cả ba
rwx cho tất cả các tập tin trong các thư mục thảo.
Điều đó có giải quyết vấn đề?
>> Đung Nó nói mất tích operant [không nghe được].
[Không nghe thấy]
ROGER ZURAWICKI: Bạn phải chắc chắn rằng bạn
có một dấu chấm ở cuối lệnh của bạn.
Đung [không nghe được].
ROGER ZURAWICKI: Được rồi.
Hãy để chúng tôi nhanh chóng quay trở lại chủ của địa phương, các ứng dụng chúng tôi có.
Và bạn sẽ thấy rằng chúng ta có một vài nhiệm vụ ở đây, như mong đợi.
Chúng tôi có một loạt các CSS, mà bạn không cần phải lo lắng.
The Meteor hướng dẫn chỉ cho phép này để bạn
để làm cho bạn để làm danh sách một cái nhìn chút đẹp hơn đồng bằng HTML.
Và chúng ta có file JavaScript, mà Tôi sẽ đi vào chi tiết hơn một chút sau đó,
nhưng nó chỉ cung cấp những công việc này.
Đây là công việc làm một.
Đây là nhiệm vụ hai.
Đây là nhiệm vụ ba.
Vì vậy, đây là số liệu của Meteor nhận.
>> Một trong những điều thú vị về Meteor là rằng những thay đổi có thể xảy ra tự động.
Nếu tôi muốn thay đổi tên của nhiệm vụ đầu tiên,
do đó, nó sẽ nói điều này không phải là nhiệm vụ một, và tôi lưu nó,
sau đó khi tôi đi đến web trình duyệt, bạn có thể làm mới nó,
và nó sẽ tự động nói đây không phải là có thể thao tác một.
Bạn có thể làm điều tương tự trong bất kỳ của những tập tin này.
Thực hiện một sự thay đổi, thay vì phải làm danh sách, tôi sẽ có nó tôi để làm danh sách.
>> Và một điều bạn chỉ nhận thấy, mà tôi thậm chí không cần phải làm mới.
Ý tưởng làm mới là loại của giải quyết cho bạn với Meteor.
Bất cứ khi nào nó phát hiện những thay đổi tập tin, nó sẽ tải các thay đổi cho bạn.
Điều này hoạt động trên tất cả các file, cho dù đó là HTML, CSS, JavaScript hay.
Để hiển thị cho bạn những gì ứng dụng này sẽ xem xét như không có CSS, tôi có thể loại bỏ tất cả.
Và khi nó được nạp lại, bây giờ bạn có một không phải là tốt đẹp, tìm cách để làm danh sách.
Hãy đặt nội dung trở lại.
Và chắc chắn đủ, nó làm mới, và CSS của chúng tôi là trở lại.
Tuyệt vời.
>> Bây giờ chúng ta có thể di chuyển trên với hướng dẫn.
Hãy nói về bước hai, mẫu.
Đây là những gì chúng ta chỉ nhìn thấy với những nhiệm vụ khác nhau.
Meteor sẽ giải thích cho bạn những gì các mẫu và cách logic này hoạt động.
Nhưng chúng ta hãy nhìn vào các mã để xem nếu chúng ta có thể làm cho ý nghĩa của nó.
>> Trong các ứng dụng rất đơn giản, giống như những gì chúng tôi có trong đơn giản
để làm, bước một, bước hai, bước ba, bốn bước, bước năm,
chúng tôi không có bất kỳ thư mục.
Chúng tôi không có máy chủ thư mục tôi đã đề cập.
Chúng tôi không có khách hàng thư mục đã được đề cập.
Vì vậy, Meteor sẽ chạy tất cả các file.
Nó sẽ chạy trên cả các khách hàng, cả trên máy chủ.
>> Và nếu bạn muốn phần của JavaScript mã để chạy chỉ trên máy khách,
họ cần phải chắc chắn rằng bạn có một tuyên bố nếu, giống như những gì
chúng tôi có trong tập tin JavaScript của chúng tôi ở đây.
Vì vậy, Meteor, chỉ khi đó là khách hàng, sau đó tôi
muốn xác định một mẫu helper được gọi là nhiệm vụ.
Những mã này thực sự không có gì nó nói có
một đối tượng gọi là template Meteor cung cấp.
Và chúng ta sẽ thêm một người trợ giúp.
Helpers là những nhiệm vụ, những điều này như các nhiệm vụ.
>> Bạn sẽ thấy rằng nếu chúng ta quay trở lại Tập tin HTML, chúng tôi gọi nhau về nhiệm vụ.
Nhiệm vụ không được định nghĩa trong HTML.
Nó được định nghĩa trong JavaScript.
Và Meteor cần biết là nhiệm vụ gì khi chúng ta đi vào JavaScript đây.
Nhiệm vụ là helper này.
Helper, bạn có thể nghĩ nó như là một biến mẫu.
Và điều đó làm nhiệm vụ?
Vâng, nó sẽ trả về danh sách các giá trị.
Bởi vì đó là một danh sách, chúng ta có thể gọi nhau trong đó.
Vì vậy, đó là lý do tại sao chúng tôi gọi nhau về nhiệm vụ.
Và bây giờ chúng tôi có nhiệm vụ.
>> Không việc làm những gì?
Vâng, nó có mũi tên này ở đây sau khi các dấu ngoặc nhọn.
Điều đó có nghĩa là nhiệm vụ là một bản mẫu.
Nó không phải là một người trợ giúp, giống như những gì chúng ta vừa thấy.
Đó là một mẫu chúng ta đã xác định.
Và nơi mà chúng ta đã định nghĩa nó?
Chúng tôi đã xác định dưới đây ngay tại đây.
>> Tất cả mẫu này không có gì làm một mục danh sách, và nó gọi văn bản.
Bây giờ, văn bản có vẻ là một helper, nhưng tôi sẽ cho bạn thấy
rằng điều này là thực sự vẫn còn một thành viên dữ liệu của nhiệm vụ.
Khi bạn gọi nhau, nó đi vào cấu trúc dữ liệu một chút.
Cũng giống như các vòng lặp foreach, nó bây giờ chỉ trông tại phần tử đầu tiên trong đối tượng của chúng tôi.
Chúng ta thấy rằng văn bản là định nghĩa ở đây trong đối tượng của chúng tôi.
Vì vậy, Meteor là thông minh để biết rằng chúng ta đang nói về văn bản này,
không phải là helper gọi văn bản.
Nó chỉ được giá trị của việc này văn bản ở đây và nó sẽ hiển thị như HTML,
và đó là cách các dữ liệu đi từ JavaScript với HTML.
>> Di chuyển trên mặc dù, trong ví dụ này chúng tôi cứng mã hoá những giá trị.
Meteor hiện hai thực sự những điều tốt đẹp cho chúng ta.
Bên cạnh việc làm mới sống mà chúng ta cho thấy, nó còn quản lý cơ sở dữ liệu của chúng tôi.
Nếu bạn phải làm việc với PHP, bạn phải cấu hình phpMyAdmin.
Bạn phải chắc chắn rằng bạn bảng đều trong tầm kiểm soát.
Bạn đã phải làm rất nhiều công việc để làm đảm bảo dữ liệu của bạn đã được định dạng chính xác,
PHP và có thể giao tiếp với nó.
>> Bây giờ, Meteor sử dụng một mô hình mới.
Đây là một cách hiện đại hơn xử lý một cơ sở dữ liệu.
Đó là một công nghệ gọi là MongoDB.
Cũng giống như trong JavaScript, chúng ta đã thấy rằng nó không có vấn đề gì loại các dữ liệu đã có.
Tất cả mọi thứ là một var.
Nó không phải là một charstar.
Nó không phải là một int.
Nó không phải là một cấu trúc.
Đó chỉ là var này, var.
>> MongoDB cũng hoạt động theo cùng một cách.
Bạn không cần phải xác định các bảng của bạn.
Bạn không cần phải nói một bảng có một cái tên, trong đó có một int.
Nó có, tôi không biết, một đồng đô la, đó là một số thập phân.
Nó chỉ là những đối tượng JavaScript, tất cả các vars, về cơ bản.
Và đây là một thực sự mạnh mẽ cách để chế tạo thử nghiệm ứng dụng của bạn.
Và đó là lý do tại sao Meteor lợi dụng điều này.
>> Nếu chúng ta đi đến bước ba, chúng ta hãy xem những gì đã thay đổi.
Nếu chúng ta nhìn vào các todos HTML, không nhiều.
CSS đã không thay đổi ở tất cả.
Nhưng sự thay đổi nhỏ, chúng tôi nhìn thấy trong HTML là chúng tôi đã thay đổi như thế nào nhiệm vụ được xác định.
Nhiệm vụ bây giờ là một chức năng.
Điều đó có nghĩa là mỗi Hiện chúng tôi muốn nhận được nhiệm vụ,
chúng tôi đang đi để chạy chức năng này.
Nó không trả lại chức năng như một giá trị.
>> Meteor là thông minh để thực sự chạy chức năng để xem những gì chúng tôi nhận ra.
Và nó sẽ trả về điều này được gọi là nhiệm vụ.
Chúng tôi đã xác định nhiệm vụ trên một dòng, và đó là một bộ sưu tập Mongo.
Mongo là đề cập đến cơ sở dữ liệu sử dụng Meteor,
và mới này chỉ có nghĩa là chúng ta hãy làm một bộ sưu tập mới, gọi nó là nhiệm vụ.
Trong MySQL, điều này sẽ tương đương với tìm kiếm các bảng gọi là nhiệm vụ.
Mongo có bộ sưu tập, không bàn.
Vì vậy, đây chỉ trông cho nhiệm vụ.
>> Bây giờ, mẫu trong chúng tôi helper trong template, tất cả
chúng ta phải làm gì để có được tất cả các nhiệm vụ được chức năng này, hãy tìm
và cú đúp trống này.
Điều này là đặc biệt hơn với Mongo cú pháp.
Có rất nhiều tài liệu trực tuyến như thế nào
bạn có thể thực hiện hiệu quả và thực sự hữu ích Mongo truy vấn.
Nhưng một cái gì đó như thế này là tốt đủ để chỉ việc tìm kiếm tất cả các dữ liệu.
>> Bây giờ, một trong những vấn đề mà bạn có thể nhìn thấy là chúng ta không bao giờ thực sự thêm dữ liệu.
Vì vậy, những gì sẽ xảy ra khi chúng ta thực sự chạy bước thứ ba?
Hãy nhanh chóng đi vào bước ba và chạy Meteor.
Chú ý rằng tôi đã có một Meteor dự án đang chạy ở một nơi khác,
nên Meteor không thích điều đó.
Tôi chỉ cần đi để nhanh chóng gần Meteor khác với điều khiển C,
đi vào bước thứ ba, và chạy Meteor lại.
Chú ý nó bắt đầu MongoDB vì MongoDB
là một phần của mỗi dự án Meteor.
>> Vì vậy, nó nói ứng dụng của tôi có lỗi.
Đó là một tính năng đẹp Meteor có.
Nó đảm bảo của bạn HTML cũng được xác nhận.
Hãy nhanh chóng xem xét tại sao điều này có thể được.
Có vẻ như tôi đã vô tình sao chép mã HTML sai.
Nếu tôi lưu ngay bây giờ, Meteor tự động khởi động lại máy chủ,
và bây giờ các ứng dụng đang chạy như mong đợi.
Chú ý để khắc phục điều này, bạn chỉ có thể chạy các tập tin HTML tương tự từ bước hai,
sao chép nó vào bước thứ ba.
>> Chúng tôi có thể quay trở lại để lưu trữ địa phương của chúng tôi.
Và bây giờ chúng ta thấy, chúng ta có của chúng tôi để làm danh sách.
Tuyệt vời, nhưng nó trống.
Chúng tôi không thực sự có bất kỳ nhiệm vụ trong cơ sở dữ liệu của chúng tôi Mongo.
Vì vậy, chúng ta hãy nói về một vài cách chúng ta có thể làm điều đó.
Nếu chúng ta trở lại những thiết bị đầu cuối, chúng tôi có thể đóng nó và chạy Meteor Mongo.
>> Nếu bạn đang quen thuộc với cách làm việc Meteor,
này cho phép bạn có quyền truy cập đến MongoDB đầy đủ cho Meteor.
Chú ý rằng bạn phải chạy Sao băng đầu tiên để làm việc này.
Vì vậy, nếu tôi chạy trong một tab mới, tôi có thể quay trở lại để cùng một thư mục.
Và bây giờ Meteor chỉ hoạt động tốt.
Đây là một dấu nhắc.
Hãy để tôi làm cho nó một chút lớn hơn vì vậy chúng tôi có thể nhìn thấy.
Điều này có vẻ hơi khác so với những gì bạn có thể được sử dụng để bạn
không thực sự cần phải sử dụng Mongo.
Điểm chung của tôi ở đây là để bạn có thể sử dụng JavaScript.
Nhưng nếu bạn đang tò mò, API Mongo không
sử dụng SQL, truy vấn cấu trúc ngôn ngữ.
Nó sử dụng ngôn ngữ riêng của mình mà trông rất giống JavaScript.
Rất nhanh chóng, chúng ta có thể tìm thấy bảng qua db.tasks.
Và nó nói với tôi Hóa ra nếu chúng ta chạy tìm,
loại tương tự như những gì chúng ta đã có với Meteor, chúng ta có thể tải tất cả các yếu tố.
Vấn đề là, chúng ta không thực sự có bất kỳ nhiệm vụ quy định.
Vì vậy, nó không thể có được chúng.
>> Chúng tôi có thể chèn, mặc dù.
Vì vậy, chúng ta có thể chạy chèn với lệnh insert.
Và chúng ta chỉ cần cho nó một đối tượng, và chúng tôi chỉ
đảm bảo định dạng là những gì chúng tôi mong đợi.
Nếu chúng ta nhìn vào bước hai, chúng ta thấy rằng mọi công việc
là một đối tượng với một văn bản như là chìa khóa và bất cứ điều gì
để làm mục của bạn là như một biến.
Vì vậy, chúng ta có thể làm một cái gì đó ở đây.
>> Chúng tôi có thể có nó chèn một nhiệm vụ gọi tôi đến từ Mongo.
Và chúng tôi nhấn Enter, và nó chạy.
Chúng tôi có thể chạy tìm một lần nữa, và chúng tôi thấy rằng có một đối tượng ở đây.
Mongo gán cho nó một ID, mà bạn không thực sự cần phải lo lắng.
Các dữ liệu gì quan trọng với bạn bạn đặt vào, là các dữ liệu bạn nhận ra.
>> Hãy quay trở lại trang web của chúng tôi, và hey, nhiệm vụ của chúng tôi nạp.
Và bạn có thể thấy rằng vì Meteor là rất thông minh
và luôn luôn cập nhật cho bạn, tôi không phải chạm trang.
Nó tự động nạp.
>> Hãy chạy một số mã trong JavaScript mặc dù để làm được điều này.
Giống như chúng ta có Node ở phía sau kết thúc để thực hiện JavaScript,
chúng ta cũng có thể chạy JavaScript trực tiếp trong trình duyệt của chúng tôi.
Bạn có thể làm điều này bằng một tính năng gọi là Kiểm tra Element.
Nếu tôi phải bấm vào một phần của trang,
có một tùy chọn gọi là Kiểm tra Element.
Nếu bạn đang chạy một trình duyệt như Safari, bạn
có thể cần phải kích hoạt phát triển của bạn công cụ trước khi bạn có được tính năng này.
>> Giao diện điều khiển những gì chúng tôi quan tâm là.
Vì vậy, chúng tôi sẽ chỉ đi đến giao diện điều khiển ở phía dưới.
Bây giờ chúng ta có thể chạy bất kỳ JavaScript ở đây, giống như JavaScript
file tôi thấy trong ví dụ js.
Nhưng bây giờ chúng ta hãy nhìn vào công việc.
Chúng tôi có thể chạy lệnh của chúng ta.
Và tôi hy vọng sẽ có thể làm cho nó lớn hơn một chút vì vậy chúng tôi có thể nhìn thấy tất cả.
>> Nếu chúng ta chạy tasks.find, và bạn sẽ thấy rằng đây là mã chính xác cùng
rằng các tập tin sử dụng JavaScript trong bước thứ ba, task.find này.
Chúng tôi có thể chạy cùng một điều, và bây giờ chúng ta có được một số thứ lạ.
Làm thế nào để chúng ta thực sự có được các dữ liệu?
Vâng, chúng tôi phải chạy này lệnh gọi là lấy.
>> Điều này là rất hữu ích để gỡ lỗi.
Những gì bạn nhận được ở đây là một con trỏ, và điều này là
một cách tốt đẹp Meteor có dữ liệu fetching tối ưu.
Con trỏ này có tất cả các tính năng cho cập nhật trực tiếp và làm mới trang
khi một cái gì đó đã thay đổi.
Nhưng nó sẽ không cho chúng ta những dữ liệu.
Chúng ta có thể lấy dữ liệu qua lấy.
Và bạn thấy chúng ta có một đối tượng, và nó chỉ giống như những gì chúng ta đã có trong Mongo,
với một ID và các văn bản chúng ta đưa vào.
>> Vì vậy, làm thế nào để chúng ta chèn một mục trong Meteor?
Vâng, chúng tôi chỉ có nhiệm vụ.
Và sau đó chúng ta có thể chạy cùng một lệnh chèn,
đưa ra một từ điển hay một đối tượng với các định dạng tương tự, văn bản
và sau đó tôi đến từ giao diện điều khiển.
Hãy xem ở trên bởi vì khi tôi làm điều này, nó hiển thị trên các trang web
tự động.
>> Chú ý rằng bạn có thể đặt bất cứ điều gì bạn muốn trong những mục này.
Nó không phải có một cấu trúc cố định.
Tôi có thể có một bằng số ba và b bằng giả.
Và tất cả các công trình.
Tôi thậm chí có thể chọn không bao gồm một văn bản nào cả.
Đây chỉ là không được khuyến khích mặc dù bởi vì sau đó Meteor
sẽ không biết những gì để hiển thị.
Nhưng trong mỗi trường hợp, chúng tôi nhận được một ID, và đó là
ID của đối tượng bạn có thể sử dụng.
>> Như chúng ta tiếp tục với bước bốn bước năm,
hướng dẫn sẽ chỉ cho bạn những cách mà bạn có thể tạo ra các yếu tố giao diện người dùng sử dụng
HTML bạn biết đến tạo ra các nhiệm vụ khác nhau.
Hãy nhìn vào bước thứ thực sự nhanh chóng.
Chúng ta sẽ thấy rằng chúng tôi đã thêm một phần về sự kiện.
Mẫu có thể có người giúp đỡ, trong đó có chúng tôi dữ liệu.
Nhưng nó cũng có thể gọi các sự kiện.
Và đây là nơi mà các công cụ trở nên hữu ích, bởi vì sự kiện
được những gì xảy ra khi bạn nhấp chuột vào điều khác nhau trên trang web của bạn.
>> Ở đây, mã của chúng tôi là nói chúng tôi để thêm sự kiện này.
Thêm nó khi bạn đã gửi một cái gì đó với nhiệm vụ class mới.
Một bộ chọn CSS những gì bạn có ở đây là.
Vì vậy, đây chỉ trông cho một HTML phần tử có nhiệm vụ class mới.
Và nó trông cho sự kiện này, như trình.
Các sự kiện khác bao gồm nhấp chuột, di chuột, nhấp đúp chuột,
tương tự như những gì bạn nhận được trong HTML bình thường.
>> Những gì bạn cung cấp cho nó ở đây bây giờ là một chức năng.
Và bạn có thể có của bạn mã trong chức năng đó.
Chức năng này là những gì kết thúc lên nhận gọi khi bạn gửi nhiệm vụ mới này.
Hãy nhìn vào HTML chỉ vì vậy chúng tôi hiểu những gì nhiệm vụ mới này là.
Chúng tôi đã thêm một mẫu ở đây với lớp nhiệm vụ mới.
Và nó có một đầu vào mà phải mất văn bản.
Và đây là nơi mà chúng ta sẽ bổ sung thêm nhiệm vụ mới của chúng tôi.
>> Hãy chạy bước bốn trong trang web để xem nó trông như thế nào.
Chúng ta có thể bỏ ra đầu tiên của chúng tôi đã có MongoDB
từ trước đó của chúng tôi Ví dụ với điều khiển C.
Và chúng ta hãy thay đổi nó thành bước bốn thư mục.
Chúng tôi sẽ chạy lại Meteor để khởi động máy chủ.
Và thật không may, tôi đã Meteor chạy trong thiết bị đầu cuối khác.
Vì vậy, tôi chỉ cần đi tới đảm bảo điều này đóng cửa.
Hãy bỏ này và thay đổi đến phần bốn, bốn bước.
OK.
>> Bây giờ đang Meteor của chúng tôi đang chạy.
Và bạn có thể thấy rằng nó được cập nhật, mà không chúng tôi thậm chí phải làm mới trang.
Điều gì đã thay đổi ở đây bây giờ là rằng chúng tôi không có bất kỳ nhiệm vụ,
nhưng chúng ta có một mẫu ở đây, điều này hộp văn bản, để thêm nhiệm vụ mới của chúng tôi.
Và chúng ta có thể gõ nhiệm vụ của chúng tôi ở đây.
Tôi đến từ các trang HTML.
Khi tôi nhấn Enter, nó đã nộp.
>> Chúng ta có thể nhìn thấy những gì đã xảy ra như được xác định bởi mã JavaScript.
Hàm này đã làm được có văn bản từ hình thức,
và sau đó chỉ cần gọi tasks.insert, như chúng ta đã làm trong console.
Họ cũng đã chọn để thêm một ngày createdAt.
Đây là cách bạn sẽ xác định thời gian hiện tại.
Sau đó, nó sẽ xóa các hình thức bằng cách làm chắc chắn giá trị là chuỗi rỗng.
>> Và sau đó nó gọi trở lại sai để đảm bảo không có gì khác xảy ra.
Khi bạn trở về sai từ một sự kiện hình thức, mà dừng thực hiện.
Nói một hình thức có một hành động, như gửi đến một trang PHP.
Nếu bạn đã không quay trở lại sai, bạn sẽ trở thành sự thật.
Nó sẽ kết thúc làm cho yêu cầu đó.
False chặn nó và dừng lại ngay.
>> Vì vậy, đó là một bản demo ít về Meteor cách làm việc, và chúng tôi đã
được sau bài hướng dẫn trong một thời gian.
Và bạn có thể xin vui lòng miễn phí để tiếp tục làm điều này.
Có rất nhiều tài nguyên, và các hướng dẫn thực giống
rất tốt về giải thích những gì đang xảy ra.
Tôi muốn cho bạn thấy bây giờ, trong vài phút chúng ta đã để lại,
một số là gì tính năng mát của Meteor,
và một số là gì gói hữu ích hơn.
Một trong những điều tuyệt vời về Meteor là bạn có một hệ thống trọn gói.
Bạn có thể dễ dàng kết hợp mã rằng nhiều ngàn nhà phát triển
đã viết trên toàn thế giới vào dự án Meteor của bạn.
Một ví dụ của việc này là những gì bạn có thể làm trong bước chín của hướng dẫn, nơi
bạn đang cố gắng để thêm tài khoản để dự án của bạn Meteor.
Nếu chúng ta có một CS50 PHP dự án, chúng ta sẽ có
dựa vào khuôn khổ hoặc mã riêng của chúng tôi để làm cho
chắc chắn chúng tôi xử lý một cách an toàn mật khẩu và tên người dùng
và lưu trữ cơ sở dữ liệu và tất cả điều đó.
>> Hóa ra Meteor có một số gói để làm điều đó cho bạn,
và để làm điều đó rất dễ dàng.
Những gì chúng tôi có thể làm là thêm một vài gói.
Vì vậy, hãy làm ngay mà bây giờ trong giao diện điều khiển của chúng tôi.
Tôi sẽ bỏ dự án và ngay bây giờ đi vào, đơn giản todos.
Bây giờ, đơn giản là todos dự án mà bạn
sẽ có sau khi được thực hiện với bước 11 hoặc 12 bước,
ở phần cuối của hướng dẫn này.
Và chúng ta hãy nhanh chóng nhìn vào nó để xem các tính năng khác nhau, chúng tôi có là gì.
Chúng ta chỉ cần chắc chắn rằng nó đang chạy.
Đôi khi phải mất một lúc để làm mới, nhưng ở đây nó được.
>> Chúng tôi có tùy chọn để ẩn hoàn thành nhiệm vụ, và chúng tôi có thể đăng nhập.
Và điều này đã được thực hiện với gói Meteor.
Thật tuyệt vời.
Hiện chúng tôi đã username và dấu mật khẩu trong.
Nhưng nếu chúng ta muốn thêm một loại cơ chế đăng nhập?
Hãy nói rằng tôi muốn đăng nhập với tài khoản Meteor của tôi.
Tôi sẽ chạy sao băng add, và điều này là cú pháp cho việc thêm gói.
Tôi có thể nói rằng các tài khoản, và accounts.meteor.
Nó sẽ thấy bây giờ gói và tải nó.
Bạn có thể thấy rằng tôi có không tìm thấy tên gói phải.
>> Vậy làm thế nào để bạn tìm hiểu về các gói?
Cũng có một trang web tuyệt vời, làm sẵn có của người dân Meteor,
gọi atmospherejs.com.
Atmospherejs, một từ, dot com, là một kho lưu trữ lớn
cho việc tìm kiếm tất cả các Meteor gói trong kho.
Tôi có thể tìm kiếm các tài khoản, và sau đó nó sẽ cho tôi tất cả những thứ có liên quan,
tất cả các gói có tên của tài khoản.
>> Trong khi đó tải, chúng tôi có thể thử thêm một số gói khác.
Có lẽ các gói Meteor không làm việc ngay bây giờ, nhưng tôi có thể thêm vào Facebook.
Tôi có thể thêm các tài khoản và sau đó chạy các dự án Meteor lại.
Một khi điều này bắt đầu, chúng ta hãy xem những gì đang thay đổi trên trang web.
Bạn có thể see-- tôi có thể phải làm mới nó ở đây.
>> Tôi có một nút để cấu hình Facebook đăng nhập.
Và ở đây, tôi có tất cả hướng dẫn Meteor
đã chuẩn bị sẵn sàng cho bạn thiết lập một ứng dụng Facebook.
Và bạn có thể sử dụng thông tin thêm ID của bạn.
Khi đã xong, bạn sẽ có Đăng nhập Facebook làm việc trong ứng dụng của bạn.
>> Tôi chỉ cần đi để có được một ID ứng dụng và một bí mật,
chỉ để cho bạn thấy làm thế nào điều này có thể làm việc.
Bạn sẽ cần một tài khoản Facebook để sử dụng Facebook tùy chọn nhà phát triển.
Hãy để tôi chỉ nhanh chóng tìm thấy Phím Meteor đó là cần thiết.
Tôi có một dự án Meteor rằng tôi sẽ sử dụng,
và tôi chỉ cần đi để có các phím từ tập tin đó.
>> Và một khi tôi tìm thấy nó, tôi sẽ chỉ có thể để sao chép các phím vào Facebook của tôi.
Vì vậy, đây là một chìa khóa.
Và đây là bí mật.
Bạn không nên chia sẻ điều này với mọi người.
Và sau đó bạn cho nó bí mật ứng dụng của bạn.
Và điều này là để Facebook biết bạn là bạn.
Và bạn lưu lại cấu hình.
>> Tôi nghĩ rằng trong quá trình tôi đã ngừng ứng dụng Meteor của tôi.
Vì vậy, tôi chỉ muốn làm chắc chắn nó vẫn còn đó.
OK, hãy chắc chắn rằng máy chủ của chúng tôi Meteor chạy rất trang web đang chạy.
Chú ý nếu chúng ta dừng Meteor máy chủ, trang web vẫn còn đó.
Nó chỉ sẽ không cập nhật nữa.
Các máy chủ Meteor là cần thiết cho việc bảo đảm trang được sống.
>> OK, tôi đã gửi nó, và bây giờ Tôi có thể đăng nhập bằng Facebook.
Bây giờ nó chỉ là một vấn đề có một cửa sổ pop up Facebook
và đưa vào tài khoản của bạn thông tin và đăng nhập.
Một khi bạn làm điều đó, Facebook có thể nag bạn cho một số bảo mật hơn.
Vì vậy, chúng tôi sẽ chỉ dừng lại ở đó.
Vấn đề là khi bạn đang thực hiện với điều đó, bạn sẽ phải đăng nhập Facebook.
>> Meteor có một bó gói khác.
Bạn có thể đăng nhập với Google+.
Bạn có thể đăng nhập với GitHub.
Bạn có thể đăng nhập với Twitter.
Hoặc nếu bạn tìm kiếm, bạn sẽ thấy tìm thấy nhiều điều khác
như Meetup, LinkedIn, và Meteor Developer.
Vì vậy, Meteor Developer là gói tôi đang tìm kiếm.
sao băng thêm tài khoản-sao băng-phát triển.
Trong khi chờ đợi, tôi cũng muốn giới thiệu
một số gói khác cho các dự án của bạn.
Nó có thể hữu ích để bao gồm các gói jQuery.
Điều này cho phép bạn sử dụng jQuery trong các khách hàng của bạn.
Bạn chỉ có thể làm điều đó với một dòng, và Meteor sẽ chắc chắn rằng bạn đã được cập nhật
về jQuery.
Tôi cũng khuyên houston: admin.
>> Đây là loại giống như một phpMyAdmin loại công cụ cho MongoDB của bạn.
Điều này cho phép bạn chỉnh sửa dữ liệu của bạn khá dễ dàng
mà không cần phải đi đến các vỏ Mongo, như tôi đã thực hiện trước đó trong các buổi hội thảo.
Vì vậy, bây giờ mà đang chạy, hãy chạy Sao băng lại và xem những gì chúng tôi có thể làm.
>> Bạn nhận thấy rằng việc thêm một số gói có thể có họ trình bày một số cảnh báo.
Bạn sẽ không cần phải lo lắng về điều đó với houston.
Vì vậy, bây giờ chúng ta có thể có các tùy chọn để cấu hình Meteor admin.
Và họ cung cấp cho bạn các hướng dẫn nếu bạn muốn thiết lập mà lên.
>> Chúng tôi cũng có thể bây giờ đi đến / admin.
Điều này mang lại cho bạn bởi gói houston.
Và đây là giao diện quản trị Meteor.
Bạn chỉ cần tạo một tài khoản admin, như vậy.
Và nếu bạn refresh trang web, bạn có thể có một số bộ sưu tập hiển thị lên.
>> Đó là một công cụ rất hữu ích, và tôi mạnh mẽ khuyên bạn nên nó.
Bạn có thể thấy rằng vì houston đã đưa ra một số sai sót,
chúng tôi không có bất kỳ bộ sưu tập hiển thị ngay bây giờ.
Cách bạn sẽ sử dụng là houston đảm bảo chức năng này được
gọi đơn giản-todos của bạn.
Vì vậy, houston không biết nhiệm vụ của tôi là.
>> Chúng tôi thiết lập một Mongo Bộ sưu tập được gọi là nhiệm vụ.
Chúng ta hãy đi vào, đơn giản và chỉ cần todos chắc chắn rằng trong JavaScript,
chúng tôi đã bổ sung thêm nhiệm vụ cho các bộ sưu tập của chúng tôi.
Bây giờ chúng ta đã lưu lại, và nó đang xây dựng các ứng dụng, làm mới.
Và chúng ta hãy xem.
Bây giờ chúng tôi có một số nhiệm vụ.
Và chúng ta có thể thêm một số nhiệm vụ mới.
Nhưng nếu chúng ta muốn thêm nhiệm vụ, chúng ta hãy làm điều đó với các ứng dụng riêng của mình.
>> Bây giờ chúng ta có thể thêm một số dữ liệu.
Hi, đây là một nhiệm vụ.
Có vẻ như loại lạ mà chúng tôi không nhìn thấy bất kỳ nhiệm vụ.
Chúng tôi có thể muốn kiểm tra xem chúng có bất kỳ lỗi ở đây, hoặc có thể ở một nơi khác.
Nếu chúng ta đi vào admin, mà có vẻ kỳ lạ.
Nếu bạn kéo các kho lưu trữ Sau hội thảo này,
Tôi sẽ đảm bảo rằng đơn giản-todos làm việc với houston.
Thật không may, nó dường như không được làm việc tại thời điểm này.
>> Có bất kỳ câu hỏi khác?
Houston thường là một công cụ đó hoạt động rất tốt.
Houston cụ thể là một chút buggier hơn những người khác,
nhưng tôi khuyên bạn nên nó khi nó hoạt động.
Yeah.
>> Đung gì bạn có thể làm với các gói Facebook
một khi người dùng được đăng nhập với Facebook của họ?
>> ROGER ZURAWICKI: Khi một người sử dụng của đăng nhập,
bạn có thể thực hiện cuộc gọi đến các API Facebook.
Rất nhiều nằm ở cách Facebook mở API của họ.
Meteor, hãy chắc chắn bạn có kết nối.
Nhưng tất cả mọi thứ sau đó là một vấn đề học tập như thế nào để sử dụng Facebook API.
Đung [không nghe được].
ROGER ZURAWICKI: Được rồi.
Cảm ơn bạn rất nhiều cho Hội thảo CS50 này trong Meteor.
Nếu bạn có bất kỳ câu hỏi, bạn có thể gửi email cho tôi
tại địa chỉ email của tôi được liệt kê dưới đây các hội thảo.
Và tôi sẽ được hạnh phúc để trả lời câu hỏi của bạn.
Tôi cũng sẽ có mặt tại CS50 Hackathon nên
Bạn cần giúp đỡ dự án Meteor của bạn.
Cảm ơn bạn đã xem.