DAVID Malan: Được rồi, chúng ta trở lại. Vì vậy, cho thú vị kết luận, phần cuối cùng của chúng tôi về lập trình web, mà tôi nghĩ chúng ta muốn sử dụng như là một thuật ngữ chung để nắm bắt một vài chủ đề còn lại. Vì vậy, vào cuối của ngày, chúng tôi sẽ thực sự làm một chút thực hành lập trình web với một ngôn ngữ được gọi là JavaScript. Và tôi nghĩ rằng chúng tôi sẽ có một cái nhìn tại một cái gì đó liên quan đến hình ảnh và khám phá một cái gì đó bí mật ẩn trong một hình ảnh, và cũng có một cái nhìn tại Google Maps API, lập trình ứng dụng giao diện, như một cái gì đó đại diện của các loại phần mềm đó là ngày càng và tự do hiện nay. Nhưng tại sao chúng ta không có một cái nhìn tại một thành phần để thế giới này mà chúng tôi đã loại được dùng cho các cấp tồn tại một thời gian, một cơ sở dữ liệu. Đối với những ngày vừa qua và một nửa, chúng tôi đã giả định rằng chúng tôi có quyền truy cập vào một cơ sở dữ liệu, nhưng những vấn đề không một cơ sở dữ liệu giải quyết? nó làm gì cho chúng ta? Nó là gì? Đung [IM LẶNG] DAVID Malan: Giữ tất cả các thông tin, OK, và những loại thông tin bạn có thể đặt vào nó? Đung [IM LẶNG] DAVID Malan: Bất kỳ thông tin bạn đặt vào nó, bạn sẽ nhận lại. Điều đó đúng. Và trên một trang web dựa trên web điển hình hoặc web ứng dụng, những loại thông tin, Cụ thể, bạn có thể đưa vào? Đung [IM LẶNG] DAVID Malan: Người dùng. Vì vậy, một người sử dụng là những gì? Đung [IM LẶNG] DAVID Malan: OK, đăng ký người dùng của trang web. Và điều đó có nghĩa là lưu trữ thông tin của người sử dụng? Những sáng tác một người sử dụng? Một người sử dụng có những gì? Đung [IM LẶNG] DAVID Malan: Yeah, cá nhân dữ liệu, và tôi thích điều đó. Chúng ta hãy là chính xác hơn. Vì vậy, người dùng thường có một cái tên, những gì khác có thể là một người sử dụng có? Đung [IM LẶNG] DAVID Malan: An OK addr--, tên vì vậy đầu tiên, cuối cùng tên. Đó là tốt. Trên thực tế, chúng ta hãy sửa chữa đó, bởi vì nó sẽ để mở ra một cơ hội cho thảo luận, vẫn còn, hơn nữa. tên đầu tiên, tên, giới tính. Một ID của một số loại. Những gì người khác? Tôi nghe thấy một cái gì đó khác trước, quá. Một email, địa chỉ bưu điện. Vì vậy, chúng ta hãy tạm dừng ở đó và bây giờ xem xét không phải những gì chúng tôi đang lưu trữ trong cơ sở dữ liệu, nhưng-- và không lý do tại sao, vì nó có lẽ Rõ ràng là một khi bạn đăng ký một người sử dụng, bạn muốn ghi nhớ họ một thời gian. Bạn không muốn nó chỉ được lưu trữ trong bộ nhớ RAM và được forgotten-- vậy hãy tập trung vào việc làm thế nào. Nó chỉ ra rằng trong thế giới của cơ sở dữ liệu, có ít nhất hai loại những ngày này. Một cái gì đó gọi là một cơ sở dữ liệu SQL, Structured Query Language, hay, dễ thương được đặt tên, NoSQL, mà không phải là SQL. Và sau này là một ví dụ về những gì có thể được gọi là một hướng đối tượng, hoặc một cửa hàng đối tượng, một cơ sở dữ liệu lưu trữ các đối tượng, và không, lý do tôi, như chúng ta sẽ sớm thấy, hàng. Vì vậy, chúng tôi sẽ tập trung cho chỉ là một khoảnh khắc trên người đầu tiên trong số này, cụ thể là, một SQL cơ sở dữ liệu, nếu chỉ vì nó là quá quen thuộc rồi, để bất cứ ai người đã sử dụng Excel hoặc Google Sheets hoặc Apple Số hay tiêu chuẩn nào chương trình bảng tính, hoặc tương đương, hoặc tinh xảo hơn, một cái gì đó giống như Microsoft Access hay Oracle hoặc MySQL hoặc PostgreSQL, tất cả đều là tên sản phẩm cho việc triển khai các ý tưởng sau đây. Một cơ sở dữ liệu quan hệ chỉ đơn giản là cái gì đó có các hàng và cột. Và bởi hàng và cột, Tôi nghĩa là một cái gì đó có ý nghĩa như thế này, vì vậy mà chúng ta có thể có các tên của một lĩnh vực và loại hình của nó ở đây. Và trên thực tế, cho tôi bây giờ bắt đầu để lập bản đồ này. Vì vậy, thực sự, tôi không biết lý do tại sao tôi đã vẽ một biểu đồ riêng biệt. Hãy giữ cho đơn giản này. Chúng tôi có quyền ở đây khởi đầu của bảng của chúng tôi, nơi đây là tên của trường và đây là kiểu dữ liệu, và bằng cách loại tôi có ý nghĩa như sau. Có một số, nó là một chuỗi, một chuỗi ngắn như một lời, nó là một đoạn văn, là nó dữ liệu nhị phân, giống như một hình ảnh? Và chúng ta hãy chỉ trêu chọc này ngoài một lát. Vì vậy, tên, số lượng, chuỗi, phần lớn các text-- Đung [IM LẶNG] DAVID Malan: Vâng, vì vậy chuỗi. Và trong bối cảnh cơ sở dữ liệu, chúng tôi sẽ thường gọi trường char này. Tôi sẽ chỉ nói char bây giờ nhưng chúng tôi sẽ tinh chỉnh này trong một thời điểm. lĩnh vực nhân vật. Họ có thể là như vậy. Giới tính? Nam hay nữ, vì vậy nó có thể là một lĩnh vực char. Nó có thể là một trong hai báo giá, unquote "Nam" và báo giá, unquote "nữ" hoặc nó có thể là m hay f. Nếu bạn muốn được mở rộng hơn, bạn có thể cần một giá trị thứ ba hoặc một số loại trường khác hoàn toàn. Và như vậy bạn có thể sử dụng đúng sai. Các lĩnh vực có thể được gọi là nam, và sau đó bạn có thể nói đúng hay sai. Nhưng điều đó không nhất thiết phải nắm bắt tất cả các thông tin mà bạn có thể muốn. Vì vậy, nó quay ra có loại khác các lĩnh vực mà có thể là hữu ích ở đây trong một cơ sở dữ liệu điển hình, được gọi là một enum, mà nó là một lĩnh vực nhân vật, nhưng bạn, các nhà thiết kế, có tới liệt kê các giá trị có thể, như báo giá, unquote "nam", báo giá, unquote "nữ" và vv. Vì vậy, bất cứ điều gì giá trị là trong cơ sở dữ liệu của bạn, thực sự là dựa trên ký tự, nhưng nó có thể là một trong những giá trị. Chúng tôi có thể sẽ không muốn một enum cho tên hoặc tên cuối cùng. Nếu không chúng ta sẽ có để liệt kê, như tên gọi xuất phát từ, nghĩa là mỗi Tên đầu tiên có thể và cuối cùng tên. OK, vậy ID gì cần một ID được? Vâng, như vậy có lẽ một số. Vì vậy, hãy gắn bó với mà bây giờ, số lượng. Và theo số, số là một chút quá rộng bây giờ. Để kết thúc thứ hai ngày, tôi cảm thấy như chúng tôi nên có một chút chính xác hơn. Số có thể có nghĩa như thế, nó có thể là một cái gì đó giống như 1,236. Và đó có lẽ không những gì chúng tôi có nghĩa là bằng một ID. Chúng ta có thể có ý nghĩa gì bởi một ID? Đung [IM LẶNG] DAVID Malan: Oh, OK, vì vậy có lẽ nó thậm chí không một số. Có lẽ nó thực sự là một định danh duy nhất đó là một chuỗi, giống như một tên người dùng. Vì vậy, hoàn toàn, có thể được. Tôi nghĩ rằng ai đó có thể có nghĩa là số, mặc dù. Vì vậy, hãy ở lại với điều đó. Những loại số? Có gì nhiều hơn một precise-- một số nguyên. Vì vậy, một số như 0, 1, 2, 3, vì vậy chúng tôi sẽ gọi đây là một số nguyên. Và thậm chí sau đó, tôi có thể được săm soi, nó không thực sự chỉ là một nguyên chung bạn muốn. Bạn có lẽ không muốn các giá trị tiêu cực, chỉ bởi vì, nó chỉ cảm thấy kỳ lạ. Có thể bạn muốn các số nguyên dương. Vì vậy, bạn cũng có thể bày tỏ rằng trong một cơ sở dữ liệu, nhưng bây giờ, chúng ta sẽ nói số nguyên. E-mail? Đây có lẽ là một just-- gì? Đung [IM LẶNG] DAVID Malan: Đây là một email, nhưng đó là nhân vật, phải không? Nó chỉ có một nhân vật funky như một "tại" biểu tượng hay cái gì khác, nhưng nó vẫn là một lĩnh vực nhân vật. Và địa chỉ bưu điện? lĩnh vực nhân vật. Vì vậy, đó là một khởi đầu tốt đẹp, nhưng chúng ta hãy là chính xác hơn một chút bây giờ. Vì vậy, nó chỉ ra rằng trong một cơ sở dữ liệu, bạn thường có một sự lựa chọn hơn tinh tế hơn phiên bản của những điều này. Trong thực tế, trong một cơ sở dữ liệu SQL điển hình, SQL, hay nói chung, cơ sở dữ liệu quan hệ, cơ sở dữ liệu với các hàng và cột, bạn thường được xác định không chỉ có các loại của field-- hãy để tôi làm cho một số đây-- phòng nhưng cũng là chiều dài. Vì vậy, bao lâu là một cái tên đầu tiên? Tôi nghĩ rằng, D-A-V-I-D. OK, có nó tôi có lẽ chỉ bị xúc phạm như một nửa của người dân trong phòng, phải, kể từ khi tên của bạn dài hơn năm chữ, vì vậy năm có vẻ hơi ích kỷ và ngây thơ, do đó, một giá trị tốt hơn là những gì? 10, tất cả các bên phải, và tôi nghĩ rằng chúng tôi OK trong phòng. 13? 30? Tại sao tôi không lấy Cách tiếp cận của chúng tôi trước khi đã nói về mảng và bộ nhớ? Tại sao tôi không chỉ cần nói như 1000? không có tên ai đi để được lâu hơn so với 1000. Đẩy lùi. Đung [IM LẶNG] DAVID Malan: Vâng, đó là lãng phí, phải, đặc biệt là nếu hầu hết các tên là chỉ có năm hoặc 10 hoặc 15 nhân vật, đó là rất lãng phí. Vì vậy, bạn biết những gì? Đây là loại một câu hỏi khó. Bây giờ, chúng tôi chắc chắn có thể phân tích tiếng Anh và tên bất kỳ ngôn ngữ khác và tìm ra, tốt, là những gì trung bình average-- không thực sự giúp đây-- những gì là tối đa là có lẽ là những gì chúng ta thực sự muốn. Nhưng hóa ra chúng ta thậm chí có một số lựa chọn qua các loại ở đây. Trong một cơ sở dữ liệu SQL điển hình, bạn đã một cái gì đó gọi là một lĩnh vực char và cũng là một varchar, V-A-R, cho lĩnh vực char biến. Và sự khác biệt là điều này. Một lĩnh vực char, bạn thiết kế, phải xác định trước chiều dài chính xác của lĩnh vực này. Vì vậy, có lẽ cái tên đầu tiên như 20 cảm thấy loại an toàn. Có thể phải làm một số googling để xem đó là đủ thực sự an toàn. Có lẽ một tên với 21 ký tự, nhưng bây giờ, giả sử 20 là an toàn. Một lĩnh vực char sẽ bao hàm trong một cơ sở dữ liệu mà bạn đang sử dụng 20 và luôn 20 ký tự. Bây giờ nếu nó chỉ là D-A-V-I-D, 15 trong số những người chỉ là đi để có ký tự trống, nhưng bạn vẫn đang sử dụng tất cả 20 byte. Một lĩnh vực varchar, ngược lại, có nghĩa là chuỗi nên thể lên đến 20 ký tự nhưng nếu nó chỉ có năm, bạn sẽ chỉ sử dụng năm, hoặc có thể sáu cho một giá trị đặc biệt ở cuối, như 0 mà chúng ta đã thảo luận rằng biểu thị sự kết thúc của một nhân vật chuỗi trong bộ nhớ. Vì vậy, khi bạn nghĩ bạn có thể chọn char so với varchar, cho rằng thương mại-off? Char sử dụng mà rất nhiều nhân vật, varchar không sử dụng nhiều hơn so với nhiều nhân vật. Đung [IM LẶNG] DAVID Malan: OK, khi bạn biết Chiều dài của chuỗi khá hấp dẫn chỉ cần sử dụng char, vì nếu bạn biết điều đó, chỉ cần đặt nó xuống. Và có lẽ đó là sự thật cho một zip mã, ở Mỹ, ít nhất, 02138, nó luôn luôn sẽ là năm nhân vật cho đến khi bạn thêm dấu gạch ngang bốn. Nhưng bạn có thể có một số giá trị cho mà bạn luôn biết chiều dài. Hoặc có thể biểu tượng của bang, như NY New York, và MA cho Massachusetts tại Mỹ. Có thể bạn có một số tình huống nơi đó là hoàn toàn hợp lý, mà bởi logic rằng, tại sao chúng tôi thậm chí overthinking này? Tại sao chúng ta không sử dụng varchar và sau đó chúng tôi sẽ chỉ luôn luôn sử dụng hai nhân vật nào, hay luôn luôn sử dụng năm nhân vật nào? Tại sao không chỉ tiết kiệm cho varchar tất cả mọi thứ, bởi logic? Có phải là một nắm bắt. Đung [IM LẶNG] DAVID Malan: Có thể viết một cái gì đó sai. Vì vậy, đó là sự thật. Nhưng thậm chí sau đó, họ không thể sử dụng nhiều bộ nhớ hơn tôi phân bổ. Tôi vẫn còn có thức nói trên chiều dài, vì vậy họ không thể vô tình làm cho mà sai lầm, nhưng một ý nghĩ tốt. Đó là tinh tế hơn, nhưng nó rất liên quan để thảo luận của chúng tôi, trên thực tế, các mảng và danh sách liên kết trước đó. Nó chỉ ra rằng một cơ sở dữ liệu, nếu nó biết rằng tất cả các giá trị là có chiều dài cố định, ngay cả khi một số những giá trị này là trống, loại thẩm mỹ trống, D-A-V-I-D và sau đó 15 chỗ trống, nó chỉ ra rằng nếu mỗi trường là chiều dài tương tự, giống như một mảng có tất cả các công cụ của nó trở lại trở lại để trở lại để trở lại để bạn có thể chỉ cần cộng thêm 1 để có được các tiếp theo giá trị, cùng ý tưởng trong một bảng cơ sở dữ liệu. Nếu tất cả các nhân vật của bạn chuỗi có chiều dài tương tự, Bạn có những gì được gọi là truy cập ngẫu nhiên. Nếu tất cả các dây là của chiều dài 20, bạn không chỉ làm cộng với 1 bạn chỉ cần làm cộng 20, cộng với 20, cộng với 20, cộng với 20, và bạn có thể rất nhanh chóng di chuyển qua hoặc tìm kiếm thông qua tất cả các dữ liệu của bạn. Một lĩnh vực char biến, ngược lại, không phải lúc nào cũng có 20 ký tự. Nó có thể có 20 và sau đó 15 rồi 19 rồi 10, và vì vậy nếu bạn muốn tìm kiếm thông qua nó, bạn không thể chỉ một cách mù quáng thêm 20 byte để có được một kế tiếp. Bạn có nghĩa là phải tìm kiếm thông qua vì các cạnh của cấu trúc dữ liệu, nếu bạn sẽ, là rách rưới. Nó loại đi vào và ra dựa vào độ dài thực tế của chuỗi. Vì vậy, khi bạn biết chiều dài, như Kareem nói, sử dụng một trường char, bởi vì bạn đạt được mà hiệu quả của việc có thể tìm kiếm thông qua nó nhanh hơn khi bạn đang tìm kiếm dữ liệu, nếu không sử dụng một biến. Thật không may, tôi không có câu trả lời tốt để tên nên bao lâu, nhưng đối với một cái gì đó như một tên, tôi sẽ nói một varchar là phổ biến bởi vì nó không phải đi có chiều dài cố định cho tất cả mọi người. 20 tuổi, tôi không biết, 20 cảm thấy một chút chặt chẽ. Hãy chỉ nói rằng 50, 50. Nó không thực sự chi phí bạn rằng nhiều hơn nữa để nói 50 thay vì 40, nhưng tại một số điểm, bạn cần để thực hiện một cuộc gọi bản án. Rất phổ biến, thẳng thắn, cho [? lịch sử?] lý do, mặc dù nó là quá nhiều, là để nói 255, bởi vì một số thời gian trước đây, trong các hệ thống cơ sở dữ liệu phổ biến, như MySQL, một công cụ mã nguồn mở miễn phí mà rất nhiều công ty như ngay cả Facebook sử dụng, đây là mặc định tối đa vì vậy mọi người chỉ cần đi với nó. Vì vậy, không hợp lý, nhưng chúng tôi sẽ sử dụng trực giác nhiều hơn một chút và nói, chắc chắn 50, đó là có thể là một chút quá mức. Giới tính, tôi làm như enum, và vì vậy chúng tôi có thể do liệt kê là nam hay nữ, hoặc có thể hiệu quả hơn, m hoặc f hoặc một số ký hiệu khác, nhưng enum cảm thấy như một sự lựa chọn tốt ở đó. Để được rõ ràng, giới tính chỉ có thể là một varchar, và chúng ta có thể chỉ cần tất cả đồng ý mọi người là tốt đẹp, luôn luôn đặt các giá trị như nhau ở đó. Nam hay nữ hay có điều gì. Nhưng vấn đề đó, là chúng ta có thể làm cho một sai lầm, như [IM LẶNG] đề xuất trước đó trong một bối cảnh khác nhau. Nếu chúng ta thực hiện một sai lầm, chúng ta có thể có được giá trị không chính xác trong cơ sở dữ liệu của chúng tôi. Vì vậy, những gì là tốt đẹp về cơ sở dữ liệu như Oracle và MySQL và những người khác, là bạn có cuối cùng này lớp phòng thủ, nơi quản trị DBA, cơ sở dữ liệu của bạn, bất cứ ai được thiết kế bảng này như chúng tôi là bằng lời nói, có thể đặt vào vị trí một enum mà bảo vệ chống lại điều đó bằng cách xác định nam, nữ, và vì vậy không ai khác không có lập trình viên có thể vô tình chèn thêm bất kỳ giá trị khác. Vì vậy, đây sẽ là một điều tốt. Đây là một tính năng. Vì vậy, một ID, giả sử một ID số, ​​nó có lẽ nên được một số nguyên dương. Và đôi khi chúng ta không có cơ hội để thảo luận về chiều dài. Bạn sẽ không thường chỉ định một số ở đây, thay vào đó bạn sẽ xác định đây là một int, hoặc một int lớn, như chúng thường được gọi là. Nhưng thông thường, một số nguyên sẽ được, hãy nói, 4 byte. Và nếu đó là 4 byte, đó là bao nhiêu bit? Đung [IM LẶNG] DAVID Malan: 32 bit. Vì vậy, có bao nhiêu người sử dụng chúng ta có thể có trong cơ sở dữ liệu của chúng tôi, nếu tất cả họ đều có một ID và ID này phải là duy nhất? 32 bit có nghĩa là chúng ta có mô hình một, hai, ba, bốn, five-- vậy làm thế nào nhiều mô hình khác nhau của số không và những người bạn có thể có nếu có 32? Đó là những điều tương tự như hỏi những gì hai với 32? Đó là một số lượng lớn mà Tôi có thể không hoàn toàn có được quyền, nhưng tôi biết đó là khoảng 4 tỷ USD. Vì vậy, điều này có nghĩa bảng cơ sở dữ liệu của bạn có thể có bốn tỷ người sử dụng và đó là nó. Vì vậy, đây là một thú vị thiết kế ý nghĩa. Một số phong nha của các công ty đã quyết định, có lẽ không quá nhiều cho bảng người dùng của họ, bởi vì có 4 tỷ người sử dụng là một vấn đề hiếm. Đây là loại một Facebook-phong cách vấn đề, không phải là một vấn đề công ty điển hình. Nhưng có lẽ nếu bạn có các bản ghi giao dịch hoặc một số loại dữ liệu liên tục được ghi vào cơ sở dữ liệu của bạn đó hoàn toàn có thể có tỷ và hàng tỷ hàng, và bạn sử dụng một số nguyên cho nó, điều gì sẽ xảy ra sớm hơn bạn có thể chèo số 4 tỷ và sau đó bạn cố gắng để chèn 4000000000 và 1, vậy để nói chuyện? Tôi đơn giản hóa các con số một chút. Bạn có thể cắt lại, tôi có nghĩa là bạn phải xử lý nó bằng cách nào đó. Và những gì một máy tính thường sẽ làm gì, nghĩ về nó và thậm chí từ sáng nay, nếu bạn có một giá trị 4-bit như 1, 1, 1, 1, trong đó, chỉ để buộc buổi sáng cùng nhau đến buổi chiều, những gì không số này đại diện trong hệ nhị phân? OK, chúng tôi sẽ làm cho nó dễ dàng hơn. Những gì số này đại diện trong hệ nhị phân? OK, chúng tôi sẽ làm cho nó dễ dàng hơn, những gì điều này không đại diện trong hệ nhị phân? Đung Ba. DAVID Malan: Ba vì chúng tôi có những column-- [CƯỜI] Whew! Chúng tôi đã có những cột và cột twos. Vì vậy, giả sử rằng, trên thực tế, chúng tôi [? nội đồng?] không 32 bit, nhưng nó là hai bit, chúng ta có thể đếm từ người sử dụng số 0, 1, 2, 3, và sau đó chúng tôi loại lại cho người sử dụng 00 lần nữa. Vì vậy, đây là những gì thường xảy ra. Nếu bạn đã từng nghe expression-- có thể có không, nhưng nếu bạn có-- tràn số nguyên, nơi bạn giữ lật tất cả các bit của bạn là giá trị lớn nhất có thể, và sau đó bạn đang trên bit, những gì thường sẽ xảy ra? Tại sao tôi nói 00? Vâng, đây là ba. Làm thế nào để đại diện cho 4? Làm thế nào để đại diện cho cho số 4 trong hệ nhị phân? Đung [IM LẶNG] DAVID Malan: cùng-- yeah, không nói 100 cho mỗi gia nhập, bởi vì nó có sai ý nghĩa, nhưng 1-0-0. Vì vậy mà số 1-0-0 thực sự là chính xác, nhưng nếu bạn chỉ có hai bit, có những gì bạn thực sự thực hiện? Bạn đã cán qua đến 00. Và quả thực, đó là những gì sẽ xảy ra. Trên thực tế, bạn có thể nghĩ về điều này thân mật hơn. Nếu bạn nhớ lại những gì, 16 năm trước, thế giới ra phải kết thúc khi sự cố Y2K đã xảy ra. Tại sao vậy? Vâng hầu hết máy tính, cho các quyết định hợp lý, được lưu trữ số như năm 1975 hoặc năm 1999 bằng cách chỉ sử dụng hai chữ số trong bộ nhớ của máy tính. Vì vậy, tất nhiên, những gì xảy ra khi bạn nhận được vào năm 2000, bạn đi đến này, hay đúng hơn, yeah. Vì vậy, bạn hãy vào năm 2000, nhưng nếu bạn chỉ sử dụng hai chữ số có vẻ như năm 00 và Vậy là bạn đã cán qua. Và đây là lý do tại sao rất nhiều hệ thống cần phải được cập nhật vào thời điểm đó. Vì vậy, với những gì đã nói, các công ty như Facebook chạy lên chống lại điều này. Vì vậy, cách duy nhất để xử lý tình, thẳng thắn, là dự đoán nó. Hoặc cách sạch để xử lý tình trạng này là dự đoán nó, do đó bạn không phải thực hiện thay đổi sau đó. Vì vậy, thay vì 8 byte, bạn biết những gì? Tôi sẽ có tư tưởng tiến ở đây, mặc dù nó một chút lạc quan rằng chúng ta sẽ có 4 tỷ và 1 người dùng trên trang web của chúng tôi. Nhưng chúng ta hãy chỉ sử dụng 8 byte, hoặc 64 bit, mà nói chung sẽ là được gọi là một số nguyên lớn, rất kỹ thuật. Và điều đó chỉ có nghĩa là bạn có thể có thậm chí nhiều hơn chữ số trong số của bạn. Nhưng đây là một quan trọng quyết định thiết kế, bởi vì nếu bạn chọn một con số có quá ít bit biểu cảm bạn thực sự có thể tạo ra một lỗi trong phần mềm của bạn. Được rồi, vì vậy hãy quấn lên với email và địa chỉ bưu điện. Vì vậy, email, làm thế nào nên dài địa chỉ email được? 50. Tôi thực sự không có ý tưởng, nhưng nó có lẽ là một cái gì đó như thế, bởi vì nếu không có ai sẽ viết cho bạn nếu nó được quá dài, vì vậy 50, chúng ta hãy đi với nó cho bây giờ. Địa chỉ bưu điện, bao lâu nên có được? Đung [IM LẶNG] DAVID Malan: Nó không phải chỉ một mã vùng, mặc dù. Địa chỉ bưu điện, tôi nghe. Vì vậy, điều này giống như 1 Brattle Square, dấu phẩy, Cambridge Mass., dấu phẩy, 02138. Và trong thực tế, tôi chỉ cần kéo lên một bảng nhỏ ở đây. Điều này cảm thấy như nó một cơ hội bị bỏ lỡ. Nếu chúng ta có 1 Brattle Square, dấu phẩy, Cambridge MA 02138, Tôi cảm thấy như chúng tôi có thể làm tốt hơn với địa chỉ bưu chính chỉ. Tại sao chúng ta không phát nổ này một chút? Tôi nhận được gì vào? Những gì chúng ta nên thay vì có cho các hàng của chúng tôi ở đây, có lẽ? Đung [IM LẶNG] DAVID Malan: Vâng, chúng ta hãy gọi nó street_number, và một gạch dưới chỉ là một phổ biến cách để có những gì trông giống như một không gian, nhưng nó không, thực sự. Street, và sau đó city-- xin lỗi? Đung [IM LẶNG] DAVID Malan: Chúng ta có thể làm điều đó. Dòng một, hai dòng. Tại sao chúng ta không sẽ giữ nó đơn giản cho bây giờ, nhưng điều đó hoàn toàn một quyết định chấp nhận được. Và sau đó nhà nước, và sau đó chúng ta hãy là một chút Mỹ làm trung tâm cho bây giờ và chỉ cần làm mã zip, chỉ vì nó sẽ dẫn đến một sai lầm thú vị hoặc vấn đề ở đây. Vì vậy, cho rằng đó là tại địa chỉ của chúng tôi. Đó là một chút khó chịu hơn chúng tôi có tất cả các lĩnh vực này nhiều hơn, nhưng bây giờ chúng tôi có thể tag điều tốt hơn một chút. số vì vậy bây giờ đường phố có lẽ không phải là một char, nên nó? nó nên được những gì? Đung [IM LẶNG] DAVID Malan: Có thể, một số như một số nguyên lần nữa? Một số nguyên lớn? Bạn có lẽ không sống 4 tỷ Main Street hoặc bất cứ điều gì điên rồ như thế. Vì vậy, số nguyên có lẽ là tốt, nhưng có ai từng sống tại một địa chỉ như 1A Brattle Square, hoặc 1 và 1/2? Những điều này tồn tại, không may, thậm chí nếu bạn đã không sống ở đó, có những bất thường như chung cư 1A, 1B, 1C. Vì vậy, bạn biết những gì, có lẽ chúng tôi không nên đi với số nguyên, nếu không chúng ta sẽ để mất một số bán hàng. lĩnh vực Char, có lẽ? Tôi không biết bao lâu. Đây có thể sẽ không được mà dài, do đó 10 hoặc một cái gì đó. Không ai sẽ viết một số dài hơn, có lẽ. Nhưng một lần nữa, chúng ta nên có lẽ đưa ra suy nghĩ nhiều hơn đến đó. Có lẽ google, làm một số nghiên cứu, nhưng chúng tôi sẽ đi với quyết tâm của chúng tôi bây giờ. Streets, char, 50, tôi không biết. Tại một số điểm, không ai đi để viết nó vào một phong bì, quá, do đó, có lẽ một số cận trên đó. Thành phố, cùng, chắc chắn, vì vậy char 50. Nhà nước, có thể là do Mỹ làm trung tâm cho bây giờ. Vì vậy, nó có thể là một danh sách, vì vậy loại của một sự tham khảo, nhà nước. Nó có thể giống như hai nhân vật. Vì vậy, trên thực tế, có lẽ, tôi cứ nói char. Tôi có lẽ có nghĩa là varchar, chỉ cho một số hiệu quả, nhưng chúng tôi sẽ trở lại mà quyết định trong một thời điểm. Có thể là một char có chiều dài 2 đối với nhà nước. Nếu ở Mỹ họ có, như MA, Massachusetts, New York, New York, New Jersey, New Jersey, và vv. Vì vậy, nó có thể được cố định ở đó. DC Washington DC. Nhưng tôi nghĩ, Olivier, bạn đề xuất cách tiếp cận khác. Đung [IM LẶNG] DAVID Malan: Vâng, đó là một ít gây phiền nhiễu để gõ vào, nhưng một enum có thể có ý nghĩa hơn, bởi vì theo cách này, ít nhất là ở Mỹ, bạn có thể liệt kê, nếu tediously, nhưng bạn làm điều đó chỉ một lần trong cơ sở dữ liệu của bạn và không bao giờ phải suy nghĩ về nó, tất cả 50 mã hai ký tự. Vì vậy, tôi muốn enum. Hãy gắn bó với đó, bởi vì nó loại thực thi chặt chẽ hơn. Và sau đó zip code? Tôi nghĩ rằng Andrew đã có một suy nghĩ về điều đó Đung [IM LẶNG] DAVID Malan: Vâng, năm hoặc chín. Hãy chỉ giữ cho nó đơn giản. Chỉ cần làm năm cho bây giờ. Nhưng có lẽ tôi có thể chỉ làm một số nguyên, phải không? Tôi có thể, nhưng bạn biết không, tôi đã thực hiện sai lầm này một lần, trong một ý nghĩa. Nhiều năm trước, tôi đã di cư từ Microsoft Outlook sang Gmail và Outlook có một cách để xuất khẩu tất cả các địa chỉ liên lạc của bạn như là một tập tin Excel, một tập tin CSV, dấu phẩy tách giá trị tập tin. Và tôi đã sai lầm, tôi nghĩ, trong click đúp vào nó, một khi tôi đã tải về xuất khẩu, chắc chắn rằng nó trông như tôi mong đợi. Tôi phải nhấn Save hoặc để tự động lưu lại đá hoặc một cái gì đó. Bởi vì khi tôi sau đó nhập khẩu nó vào Gmail, tất cả làm việc. Nhưng trong nhiều năm, cho đến ngày nay, và Tôi đã làm năm này, 10 năm trước đây, Tôi vẫn đang tìm kiếm bạn bè những người có địa chỉ mà trông như thế này. Tại sao? Đung [IM LẶNG] DAVID Malan: Phải mất 0, tốt, khá, nó mất mã toàn bộ zip như một số, và do đó nó một hàng đầu 0 có nghĩa là nó không có ý nghĩa. Và do đó, năm 2138 có vẻ là zip code của tôi. Và điều này là, thẳng thắn, một khó chịu Excel Tính năng đó tôi nghĩ rằng theo mặc định, thậm chí nếu nó có nghĩa là chỉ được văn bản, Microsoft Excel quyết định, hãy để tôi là hữu ích, và oh, tôi thấy chỉ số. Hãy đối xử với chúng như những con số. Và nó cắt các số không hàng đầu. Tôi thề với Chúa, mỗi cặp vợ chồng tháng tôi tìm thấy một địa chỉ, và ra khỏi một loại OCD, tôi quay trở lại trong và thêm 0, mặc dù tôi không bao giờ gửi người thư hoặc bất cứ điều gì. Nhưng tôi vẫn đang tìm kiếm dấu tích còn lại của điều này. Vì vậy, đây là để nói, đây là một ý tưởng tốt? OK, không có, bởi vì bất cứ ai trong Massachusetts, trong lĩnh vực này, sẽ có một o dẫn họ. Vì vậy, chúng ta hãy đi với như char, có lẽ, năm. Và ở đây, chúng tôi nhận ra có thể sử dụng một enum và chúng tôi có thể liệt kê 10.000 mã zip có thể, nhưng mà cảm thấy như nó có thể là băng qua một dòng, như thế, lợi ích. Nếu bạn cần phải nhập vào đó nhiều dữ liệu vào cơ sở dữ liệu của bạn để bảo vệ chống lại một cái gì đó. Vì vậy, char nhận ra rằng bạn có thể gõ trong H-E-L-L-O là mã vùng của bạn, mà không phải là, rõ ràng, số. Vì vậy, không có cách nào, trong một cơ sở dữ liệu điển hình, để xác định chỉ số và chỉ dài có năm nhân vật, vì vậy chúng ta sẽ có để làm điều đó trong mã. Chúng ta sẽ làm điều đó trong PHP hay Java hay bất cứ ngôn ngữ chúng tôi sử dụng trên máy chủ để thực thi rằng loại hạn chế. Whoo! Được rồi, vì vậy bất kỳ câu hỏi chỉ được nêu ra? Hãy thực hiện một quyết định thiết kế. Nó chỉ ra rằng bạn cũng có thể lựa chọn, khi thiết kế một cơ sở dữ liệu SQL, hoặc database-- quan hệ điển hình một lần nữa, quan hệ chỉ có nghĩa là các hàng và cột, đó là cách bạn tổ chức data-- của bạn và nhận ra rằng điều này có nghĩa là, Tôi đã sai lầm trong rằng, tôi drawing-- này là những gì được gọi là giản đồ cho một bảng cơ sở dữ liệu. Điều này cũng giống như thông số kỹ thuật cho table-- nhưng khi nói đến thời gian để thực sự lưu trữ dữ liệu, và chúng tôi sẽ làm điều này chỉ bằng ví dụ ở đây. Tôi sẽ mở Excel, vì Excel sẽ cho tôi hàng và cột. Và đó là chính xác những gì Oracle và MySQL và các công cụ khác sẽ cho tôi. Vì vậy, tôi chỉ cần đi để sử dụng nó vì lợi ích của thảo luận. Hãy để tôi đi trước và mở ra một tài liệu đại diện ở đây, phóng to một chút. Vì vậy, ví dụ, tiêu đề của chúng tôi bây giờ là tên đầu tiên, tên, giới tính, ID, email, số đường phố, đường phố, Lỗi chính. Đường phố, thành phố, tiểu bang, chỉ về phù hợp trên màn hình. Vì vậy, điều này có nghĩa là khi một sử dụng đầu tiên đăng ký cho trang web của tôi, nó sẽ là một cái gì đó như David, Malan, m, chúng ta hãy nói 1, malan@harvard.edu, số đường phố sẽ giống như 1 Brattle Square, Cambridge, MA, 02138, và sau đó vv. Vì vậy, khi tôi nói rằng một cơ sở dữ liệu quan hệ hoặc cơ sở dữ liệu SQL là hàng và cột, Tôi có nghĩa là đây. Đó là dữ liệu thực tế được lưu trữ trong các hàng và cột. Đây chỉ là một sự trùng hợp, mà chúng ta đã nói, và tôi đã chỉ vẽ nó ra trong các hàng và cột. Đây chỉ là các lược đồ, định nghĩa bao quát. Vì vậy, trong các lĩnh vực này ở đây, hoặc tương đương, có, đó là những lĩnh vực mà bạn nghĩ Tôi có khả năng tìm kiếm trên nếu tôi là một người dùng hoặc nếu tôi là người quản trị cơ sở dữ liệu? Giống như, những gì các lĩnh vực tôi thực sự sẽ tìm kiếm trên? Đung [IM LẶNG] DAVID Malan: Tên, yeah vậy Tôi thích thực tế mà-- yeah, email có thể là khá phổ biến. Xin lỗi, bạn cho biết tên. Vì vậy maybe-- và một lần nữa, chúng tôi loại nói một cách trừu tượng. Tôi không biết lý do tại sao bạn muốn được tìm kiếm một cái tên, nhưng mà cảm thấy hợp lý nếu bạn đang tìm kiếm một người sử dụng. Có thể khẳng định, chắc chắn, ID. Và đó là một trơn dốc, vì tôi không thể trù liệu một kịch bản mà có lẽ ông chủ của tôi đã hỏi tôi, có bao nhiêu người đàn ông nào chúng ta có trên trang web của chúng tôi? Có bao nhiêu phụ nữ chúng ta có trên trang web của chúng tôi? Và như vậy vào thời điểm đó, bạn có thể muốn để tìm kiếm trên các lĩnh vực giới tính, quá, và không có gì khác. Vì vậy, có một sự đánh đổi ở đây. Một lần nữa, không có câu trả lời đúng, nhưng có là một tính năng trong hầu hết các cơ sở dữ liệu SQL được gọi là lập chỉ mục, trong đó bạn, các nhà thiết kế, các quản trị cơ sở dữ liệu, được quyết định trước đó các lĩnh vực cơ sở dữ liệu nên tối ưu hóa cho các tìm kiếm trên. Bạn có thể rất ngây thơ nói, tối ưu hóa này, tối ưu hóa đó, tối ưu hóa này, tối ưu hóa đó và điều này, và các cơ sở dữ liệu sẽ làm một số điều kỳ diệu bên dưới mui xe, và làm điều gì đó theo cách như vậy rằng thời gian tiếp theo bạn tìm kiếm trên bất kỳ của các trường này, nó sẽ, trên thực tế, được nhanh hơn. Điều này là khả thi. Nó không hủy chính nó ra. Nhưng có phải là một giá phải trả. Nếu bạn ngây thơ, hoặc quá nhiệt tình nói, chỉ mục tất cả các lĩnh vực này, vậy để nói chuyện, làm cho họ tất cả hiệu quả tìm kiếm, giá cả những gì các bạn có thể trả tiền? Đung [IM LẶNG] DAVID Malan: Hiệu suất. Ý anh là gì? Vâng thực hiện, ít nhất là trong bối cảnh tôi đang thảo luận, là tốt hơn bây giờ. Đó là định nghĩa của chỉ mục. Nó sẽ làm cho tìm kiếm nhanh hơn. Vì vậy, thời gian giảm, vậy để nói chuyện. Đung [IM LẶNG] DAVID Malan: Space. Vì vậy, một lần nữa, đây là một thương mại thông thường. Tôi có thể tăng tốc độ tìm kiếm của bạn, nhưng nó sẽ giúp bạn chi phí nhiều byte của không gian. Tại sao? Vâng, theo mặc định, nếu chúng ta không có một trong những ngôi sao màu đỏ, không ai trong số các chỉ số, như tôi nói, làm thế nào để bạn tìm kiếm cho một tên trong cơ sở dữ liệu này? Vì vậy, hãy vẽ của chúng tôi chú ý đến ví dụ này. Nếu chúng ta có David và Scully và Kareem và Arwa và những người khác trong các hàng, ví dụ. Vì vậy, chúng ta hãy làm chính xác điều đó. Scully là ở đây, và sau đó chúng tôi có Kareem, và Arwa, và mọi người khác, nếu bạn không có một chỉ số được xác định, có thể nói, tốt nhất bạn có thể làm là tìm kiếm tuyến tính. Nếu bạn tìm kiếm Arwa, chúng tôi không sẽ có thể nhảy ngay đến cô Mau. Chúng ta sẽ bắt đầu đầu và đi tất cả các cách để phía dưới, không giống như ban đầu của chúng tôi Mike Smith ví dụ. Tuy nhiên, nếu tôi nói, hey, cơ sở dữ liệu, Chỉ số trường tên đầu tiên, sau đó nó sẽ làm điều gì đó fancier và hỗ trợ một cái gì đó như tìm kiếm nhị phân. Nó có lẽ không phải tìm kiếm nhị phân cho mỗi gia nhập. Cơ sở dữ liệu có xu hướng sử dụng một cấu trúc dữ liệu được gọi là b-cây, không nên nhầm lẫn với cây nhị phân, mà chỉ làm cho nó nhanh hơn để tìm kiếm một cái gì đó logarit tự nhiên. Nhưng giá mà bạn phải trả để xây dựng mà tính năng, cấu trúc dữ liệu trong bộ nhớ, là byte nữa. Vì vậy, nó có thể mất một số megabyte, một số gigabyte, ai biết được? Nó phụ thuộc vào dữ liệu. Vì vậy, tại một số điểm, bạn phải quyết định, nó có lẽ không phải là một trường hợp phổ biến. Vì vậy, thực tế phổ biến là gì trường hợp, nếu bạn thực sự phải lựa chọn, những gì có thể lĩnh vực yêu thích của bạn là gì? E-mail. Và tôi thích email vì email, trong lý thuyết, phải là duy nhất. Và thông thường, khi bạn biết trước rằng một trong những lĩnh vực của bạn là hoặc sẽ là duy nhất, mà xu hướng được một trường tốt để tìm kiếm trên, vì như vậy, khi bạn tìm kiếm một cái gì đó, bạn đang đi để có được trở lại một hoặc số không trả lời và sau đó bạn đang thực hiện. Bạn không cần phải giữ tìm kiếm nhưng những người khác. Và như vậy trong trường hợp này đây, email, miễn là bạn không thể đăng ký hai lần với cùng một email, là một trong những tốt. ID theo định nghĩa, trong khoa học máy tính trên thế giới, nếu bạn đang nói về một ID, mà đã tốt hơn là duy nhất. Đó là loại ý nghĩa ID hoặc nhận dạng. Và phần còn lại của những có thể, hãy gọi cho họ tốt đẹp để người giàu, nhưng không thực sự cần thiết. Và như vậy trong một cơ sở dữ liệu, bạn chỉ định chỉ số, nhưng bạn có thể thậm chí còn chính xác hơn. Bạn có thể nói, hey, cơ sở dữ liệu, đảm bảo rằng mỗi ID trong bảng này là duy nhất. Thậm chí không để cho một lập trình viên vô tình đặt trong một email trùng lặp hoặc bản sao số ID. Vì vậy, nhiều như đếm bảo vệ chúng ta tương tự, bạn có thể có những người phòng thủ cấp thấp hơn. Và do đó, thiết kế cơ sở dữ liệu, trong một số ý nghĩa, là loại thú vị, bởi vì bạn làm điều đó việc phòng thủ. Bạn loại giả định rằng bạn làm việc với, lập trình khủng khiếp khủng khiếp và bạn muốn đặt trong nhiều phòng thủ như bạn có thể để bảo vệ dữ liệu của bạn, nhưng đồng thời bạn muốn để giúp họ thực hiện tốt hơn bằng cách chọn mà lĩnh vực tối ưu hóa cho. Nhưng bạn không thể nhất thiết phải làm điều đó trong một chân không giống như chúng ta loại đang ở đây. Bạn đã biết những gì đang có những trường hợp phổ biến là. Nếu các nhà phát triển thực hiện một cuốn sách địa chỉ, bạn rất có thể cũng muốn có thể để tìm kiếm trên hầu hết các lĩnh vực, chỉ bởi bản chất của các ứng dụng. Vì vậy, có thể bạn dành không gian bổ sung. Phải, bất kỳ câu hỏi? Yeah. Đung [IM LẶNG] DAVID Malan: số Đung [IM LẶNG] DAVID Malan: OK. Đung [IM LẶNG] DAVID Malan: Oh, vì vậy chúng tôi đang nói một cách bây giờ đó là hoàn toàn ngôn ngữ bất khả tri. Vì vậy, chúng ta đang nói bây giờ về cơ sở dữ liệu quan hệ nói chung, hoặc SQL cơ sở dữ nói chung. Đung [IM LẶNG] DAVID Malan: Một từ tốt hơn để sử dụng được, có thể được sử dụng bởi bất kỳ ngôn ngữ. Vì vậy, tôi có thể viết mã JavaScript, C mã, mã C ++, Java code, mã Ruby, tất cả đều nói chuyện với một cơ sở dữ liệu và thực hiện truy vấn. Trong thực tế, đó không phải là xấu Segue với một truy vấn ví dụ. Và một lần nữa, chúng tôi sẽ không đi vào Java hay C ++ hoặc bất kỳ đó nữa, nhưng trong SQL, ngôn ngữ mà tôi giữ đề cập, Structured Query Language, này chính nó là một ngôn ngữ lập trình, nhưng nó có nghĩa là để được sử dụng cho, không có ngạc nhiên, cấu trúc truy vấn truy vấn. Bởi rằng tôi có ý nghĩa này. Cách bạn chọn dữ liệu từ một cơ sở dữ liệu MySQL là bạn có nghĩa là gõ vào chương trình của bạn một cái gì đó giống như chọn sao từ người dùng. Tôi giả định rằng bảng này, từ nay về sau được gọi là người sử dụng. Tôi có thể gọi nó là bất cứ điều gì chúng ta muốn, nhưng loại có ý nghĩa. Và vì vậy chọn là rất động từ phổ biến, nếu bạn sẽ, trong SQL, mà nghĩa đen nào đó. Bạn nghĩ gì sao có nghĩa là trong bối cảnh này? Đung [IM LẶNG] DAVID Malan: Tôi xin lỗi? Đung [IM LẶNG] DAVID Malan: Không yêu cầu, đó là hơn bao gồm hơn, thực sự. Đó là nhân vật thẻ hoang dã. Ngôi sao hầu như luôn luôn có nghĩa là bất cứ điều gì, vì vậy điều này có nghĩa là, trong trường hợp này, chọn tất cả mọi thứ từ các cơ sở dữ liệu. Vì vậy, khi tôi nói điều này, tôi có ý nghĩa cho tôi trở lại mỗi cột từ bàn của tôi được gọi là người sử dụng. Vì vậy, cho tôi một tập hợp kết quả, vì nó được gọi là. Nói cách khác, cho tôi một bản sao của bảng tính, là những gì tôi nhận được tại. Nhưng nếu tôi nói chọn sao từ người dùng nơi ID bằng 1, làm thế nào lớn nên tập hợp kết quả là sau đó? Hoặc tương đương, bao nhiêu hàng nên Tôi được giao lại từ các cơ sở dữ liệu? Có lẽ chỉ là một, nếu tôi có thực sự điều trị ID như một định danh duy nhất, và nếu David có mà ID duy nhất, tôi nên lấy lại một và chỉ có một hàng chứa tất cả các thông tin của David. Nếu tôi nói nơi này ID bằng 99, tôi sẽ nhận được trở lại, trong bối cảnh này, không hàng, ít nhất là ở thời điểm này. Tuy nhiên, nếu tôi không thực sự quan tâm về tất cả các thông tin đó, Tôi chỉ có thể nói, nơi nào David sống? Chọn mã zip từ người dùng mà ID là 1. Điều này sẽ chọn cho tôi chỉ zip của David mã và không phải là toàn bộ của hàng đó. Tại sao tôi có thể làm điều này thay vì truy vấn sao, thẻ hoang dã? Đung [IM LẶNG] DAVID Malan: Yeah, tôi chỉ có thể cần nó. Vì vậy, hiệu suất là một lần nữa câu trả lời ở đây. Tại sao yêu cầu nhiều hơn thông tin hơn bạn cần, bởi vì ngay cả khi đó là tất cả phải cùng nhau, bạn vẫn phải sao chép dữ liệu đó, nó sẽ có vẻ, từ cơ sở dữ liệu vào chương trình của bạn bằng cách nào đó, và đó chỉ là ngớ ngẩn nếu bạn chỉ cần năm của những chữ số, không phải là toàn bộ của hàng. Vì vậy, làm thế nào để chèn một người sử dụng? Giả sử một người sử dụng có chỉ đăng ký lần đầu tiên. Cú pháp thường sẽ trông như thế này. Chèn vào người sử dụng, và sau đó chúng tôi sẽ nói giá trị, và sau đó chúng ta sẽ nói giá trị như thế nào, hãy nói, Lauren Scully, quay phim của chúng tôi ngay tại đây. Và trường tiếp theo là giới tính. Vì vậy, chúng ta sẽ nói quote, unquote "F", sau đó chúng ta có một ID và tôi sẽ say-- hãy giả vờ cô ấy không thực sự ở đây, vì vậy chúng tôi sẽ tua lại trong câu chuyện. Vì vậy 2 sẽ là ID của mình. Và sau đó các trường tiếp theo đây là email của mình. Vì vậy, nó sẽ như thế nào Lauren Scully và vv, và chúng tôi sẽ chỉ chấm chấm chấm nó đi từ đây. Bây giờ nó sẽ có được một chút tẻ nhạt, nhưng truy vấn chèn cuối cùng sẽ như thế nào mà. Nếu tôi muốn thoát khỏi Scully, uh-oh, hãy xoá đăng ký cô, cô xóa tài khoản của mình, xóa từ người dùng mà ID bằng 2, sẽ được thoát khỏi Scully. Hoặc tôi có thể nói rằng bản cập nhật người dùng thiết lập, hãy nói, những gì chúng ta có thể thay đổi? Giả sử cô ấy di chuyển. Set zip bằng 021-- nope, đó là zip hiện tại của cô. 90210. Các chỉ zip code khác Tôi biết trên thế giới. Vì vậy mà có thay đổi zip cô code-- thực sự, rằng sẽ không thay đổi mã vùng của mình. đã làm tôi chỉ làm những gì? Mặc dù cú pháp có lẽ là mới. Đung [IM LẶNG] DAVID Malan: Yeah, tôi chuyển tất cả mọi người Beverly Hills, California. Vì vậy, tôi nên thực sự nói nơi ID = 2. Và kể từ đó trở đi. Vì vậy, SQL là tất cả về những các loại hướng dẫn. Chọn, chèn, xóa, cập nhật, với các vị ở cuối các điều khoản này ở đâu, vậy để nói chuyện. Và có rất nhiều bạn có thể làm, nhưng nó thực sự chỉ là nắm chỉ đơn giản là, nếu arcanely, thể hiện những gì bạn muốn các cơ sở dữ liệu để làm. Và sau đó các cơ sở dữ liệu sẽ tìm ra, khi bạn chèn Lauren Scully vào cơ sở dữ liệu, nơi để đặt mình trong bộ nhớ để chúng tôi có thể nhanh chóng có được mình dựa trên địa chỉ email của mình hoặc dựa vào số ID của mình hoặc tương tự. Yeah, Dan. Đung [IM LẶNG] DAVID Malan: Câu hỏi thực sự tốt. các kịch bản sẽ thay đổi từ Microsoft Access sang Oracle MySQL để PostgreSQL? Câu trả lời ngắn gọn là nó phụ thuộc. Về lý thuyết, có một rất tập hợp con chung quan trọng của SQL được chia sẻ trên tất cả những hiện thực. Tuy nhiên, các nhà sản xuất khác nhau có tính năng bổ sung cơ sở dữ liệu của họ để làm những việc nhất định ngoài phạm vi của các tính năng này, mà có thể, trên thực tế, phá vỡ. Vì vậy, các nhà phát triển cách hàng rào chống lại điều này, là thay vì viết nguyên mã SQL như tôi đang viết đây, thay vào đó họ sử dụng một thư viện, một thư viện chung mà bản thân là loại cao cấp và tóm tắt đi mà sản phẩm bạn đang sử dụng. Và nó mang lại cho bạn hàm và thủ tục gọi để bạn không bao giờ thực sự viết SQL nguyên. Về lý thuyết, sau đó, bạn có thể thay đổi các sản phẩm từ Oracle cho Microsoft hoặc ngược lại, hoặc bất cứ điều gì khác, và bạn có nghĩa là thay đổi gì về mã của bạn. Thực tế, mặc dù, là, đôi khi bạn bỏ các tính năng như một kết quả. Bạn có thể lựa chọn một sản phẩm vì nó có những tính năng giá trị gia tăng, và bạn chỉ là bây giờ không sử dụng chúng có ý thức. Và giai thoại, hầu hết các công ty có xu hướng không bao giờ di chuyển ra khỏi cơ sở dữ liệu của họ. Vì vậy, trong khi đây là một tốt đẹp để có tính năng, thực tế là, nếu bạn đang đại tu cơ sở dữ liệu của bạn, bạn có thể làm cho chùm thay đổi khác dù sao, bạn không nhất thiết phải cần phải lường trước đó. Vì vậy, nó được cho là quá kỹ các vấn đề, nhưng nó thực sự phụ thuộc vào ngữ cảnh. Nhưng trong lý thuyết, SQL được chia sẻ qua những sản phẩm khác nhau. câu hỏi thực sự tốt. Yeah. Đung [IM LẶNG] DAVID Malan: Yeah, vì vậy bạn có thể nghĩ rằng một cơ sở dữ liệu chỉ là một máy chủ, vào cuối ngày, và bên trong của máy chủ đó là một bó toàn bộ bảng, các hàng và cột. Và khi bạn gửi một truy vấn như thế này từ chương trình của bạn, trang web của bạn, viết bằng Java, Ruby, Python, bất cứ điều gì, máy chủ đang nhận lệnh này và giải thích nó trong nghĩa là cùng một cách chúng ta đã thảo luận trước đó với ngôn ngữ thông dịch, và sau đó thực hiện một số hành động trên không hoặc các hàng nhiều hơn trong số không hoặc nhiều bảng. Đung [IM LẶNG] DAVID Malan: Chính xác, chính xác. Vì vậy, các mã giả cho một cái gì đó như thế có thể được điều này. Trong file PHP của bạn hoặc của bạn file python hoặc tập tin Java của bạn, bạn sẽ có mã giả, hoặc khối Scratch-như là, nếu người dùng truy cập acme.com/register~~V cho lần đầu tiên, sau đó chèn vào người dùng và vv. Và chúng tôi sẽ dịch này để đang cụ thể hơn trong các kết thúc. Nhưng thực sự, chúng tôi có tất cả các khối xây dựng ở đây, mặc dù chúng ta đang bỏ qua một số các bước thực hiện. Vì vậy, hãy để tôi tìm lỗi với những gì chúng tôi tuyệt vời đã làm chỉ là một khoảnh khắc trước. Bạn đã tạo ra một đẹp bảng đầy đủ cho người sử dụng. Phải thừa nhận rằng, chúng tôi có thể thực hiện nó trong một vài cách khác nhau, nhưng bạn đã thực sự khiến chúng tôi xuống path-- và tôi nói bạn, nhưng nó có thể là fault-- của tôi về một tương đối không hiệu quả cơ sở dữ liệu thực hiện. Nó không bình thường. Và bởi bình thường tôi có ý nghĩa có là có thể được, theo thời gian, một sự thừa đáng kể, và do đó không hiệu quả, đó là sự lãng phí không gian. Dựa trên những gì bạn nhìn thấy ở đây, có thể bạn hình dung nơi này lãng phí không gian sẽ đến từ đâu, qua thời gian, khi ngày càng nhiều người sử dụng đăng ký cho trang web của bạn? Những dữ liệu có thể trở thành dư thừa? Đung [IM LẶNG] DAVID Malan: Tại sao bạn có nghĩa là? Đung [IM LẶNG] DAVID Malan: Yeah. Và chúng ta hãy giả định cho các mục đích của ngày hôm nay rằng đó là sự thật. Hóa ra, và chúng tôi đã học được điều này cách cứng, đó là không đúng sự thật. Bằng cách nào đó nhiều thành phố có, bằng cách nào đó, mã zip cùng, mà phá vỡ trực giác tuyệt vời này. Nhưng chúng ta hãy giả sử đó là sự thật, vì nó gần như luôn luôn đúng. Vì vậy, giả sử rằng một mã vùng là luôn gắn liền với cùng một thành phố và nhà nước, mà là một loại các giả định hợp lý, nhưng không chính xác, nó quay ra. Tuy nhiên, một giả thiết hợp lý cho mục đích của ngày hôm nay. Sau đó, giả sử rằng tôi sống ở Cambridge, MA, theo bảng của người dùng này và giả sử rằng Lauren Scully sống ở Cambridge, MA, và giả sử rằng Kareem sống ở Cambridge, MA, và Arwa sống ở Cambridge, MA, tất cả chúng ta trong 02138. Tại sao chúng ta nhớ lại Cambridge, MA, 02138 cho tất cả bốn chúng tôi? Những gì là đủ để nhớ? Đung [IM LẶNG] DAVID Malan: Chỉ cần mã zip. Chỉ là 02138 tồn tại, bởi vì bạn biết những gì chúng ta có thể làm gì? Chúng ta có thể có được một chút ưa thích ở đây và ở đây, xác định bảng khác nơi này sẽ là các tên, đây sẽ là loại hình, điều này sẽ là chiều dài, và từ đó trở đi, tôi sẽ gọi này bàn thành phố của tôi. Điều này đã được gọi là, của Tất nhiên, người sử dụng bảng của tôi. Và vì vậy những gì tôi nên đặt ở đây cho bảng thành phố của tôi, bạn có nghĩ? Đung [IM LẶNG] DAVID Malan: Yeah. Vì vậy, zip và nhà nước và thành phố. Và như vậy các loại ở đây, chúng tôi sẽ nói này sẽ là một char 5 một lần nữa, tùy thuộc vào các cuộc tranh luận của trước đó. Đây sẽ là một enum, có lẽ như trước, và thành phố sẽ là một varchar 50. Và vì vậy bây giờ tôi có được những gì để xóa từ bảng này để loại bỏ không hiệu quả nhất? Đung [IM LẶNG] DAVID Malan: Nice. Nhà nước và thành phố phải đi xa, vì vậy tôi đã hiện loại bỏ sự thiếu hiệu quả tiềm năng cho dư thừa nhớ, Cambridge, MA, Cambridge, MA, Cambridge, MA, Cambridge, MA, trong đó, hy vọng sẽ không bao giờ thay đổi. Và thậm chí nếu có, nó là minorly khó chịu, bây giờ rằng tôi phải thay đổi nó trong nhiều hàng, trong khi ở đây, tôi có thể chỉ thay đổi nó ở một nơi. Bây giờ thương mại-off là gì, có lẽ? Đây là siêu thuận tiện. Đã có tất cả dữ liệu của tôi độc đáo với nhau. trường hợp hiện nay nhưng những gì là rõ ràng không? Đung [IM LẶNG] DAVID Malan: Chính xác, và tôi vui mừng bạn đã dùng từ tham gia, bởi vì đó thực sự là từ khóa, trong thế giới của cơ sở dữ liệu quan hệ trong SQL, nó là một từ thực tế bạn có thể gõ hoặc ít nhất là truyền đạt. Và trên thực tế, những gì chúng ta phải làm để chọn thông tin đầy đủ của David là một cái gì đó giống như chọn sao từ người sử dụng, tham gia thành phố, on-- và bây giờ Tôi sẽ chỉ di chuyển đến một dòng thứ hai để users.zip fits-- này bằng cities.zip, nơi users.ID bằng 1. Vì vậy những gì đang xảy ra? Nó xấu xí tìm kiếm, nhưng bạn có thể loại đọc từ trái qua phải, trên xuống dưới. Chọn sao từ người dùng là giống như trước đây, nhưng nó không phải từ người dùng, mỗi se. Đó là từ người dùng tham gia thành phố. Tôi đang tham gia hai bảng vào những gì? Vâng, rõ ràng, bảng người dùng nén lĩnh vực, và giai đoạn này là chỉ đặc biệt Cú pháp để thể hiện ý tưởng đó, và đây là bảng thành lĩnh vực nén. Tôi muốn hai để được bình đẳng, nhưng tôi muốn để cuối cùng chọn chỉ những hàng nơi ID trong bảng người sử dụng bằng 1, trong đó xảy ra là của tôi. Và chỉ để được rõ ràng, một lập trình, thường khi hardcode một cái gì đó như số 1, bởi vì nếu trang web chỉ hỗ trợ David hay người sử dụng đầu tiên, bạn thay vào đó sẽ làm một cái gì đó giống như ID, nơi này đại diện cho một biến, một cái gì đó có thể thay đổi theo thời gian, tương tự trong tinh thần với những gì tôi đã nói trước đó với các loại placeholders. Nhưng bây giờ chúng tôi sẽ chỉ hardcode nó như 1. Và do đó, điều này có nghĩa là gì? Vâng, một cách tốt đẹp để hình dung đây là rằng nếu tay này là người sử dụng bảng, và bàn tay này là kéo khóa bảng, chúng tôi loại finding-- và những lời khuyên của các ngón tay của tôi là zip ở đây, và các ngón tay của tôi đây là zip, bạn loại lồng vào nhau nó để bạn lấy lại kết quả bảng ban đầu, bởi sự tham gia hai bảng trên trường chung. Và nó không phải là zip. Nó có thể là bất cứ điều gì nhất khác, nhưng zip là tốt đẹp, bởi vì một, nó ngắn, hai, nó luôn luôn cùng chiều dài, do đó một hiệu quả thực sự cho những gì Olivier đề xuất ở đây với bao thanh toán ra zip, [IM LẶNG] đề xuất rằng chúng ta thoát khỏi của thành phố và tiểu bang. Vì vậy, đây là quá trình được gọi là bình thường. Mọi thắc mắc về điều đó? Vâng chúng ta hãy để tôi chỉ ra đây là loại công cụ, mặc dù nó khá ở mức độ thấp, thảo luận này, bạn sẽ nghĩ bạn đang loại nhận bị mất trong cỏ dại, đây là một biểu hiện của phong phú cơ hội cho các nhà phát triển để được xấu. Và trên thực tế, ngay cả khi chúng ta, trong khóa học tôi đã dạy, khi chúng ta đã có, Ví dụ, thiếu kinh nghiệm lập trình viên đại học xây dựng trang web, ở cái nhìn đầu tiên, các trang web có thể nhìn tuyệt vời. Và họ có tất cả các chức năng, chúng tôi yêu cầu, các nhà phát triển đã làm một công việc tốt. Nhưng họ không nhất thiết phải biết đủ về thiết kế cơ sở dữ liệu hoặc họ không nghĩ cứng đủ về các loại dữ liệu và các loại của người sử dụng trang web sẽ phải, và chúng tôi tìm thấy, sau đó, sáu tháng sau, sau khi họ đã tốt nghiệp hay đã chuyển đi, mà nguyền rủa nó, trang web của chúng tôi thực sự, thực sự chậm. Và tôi thậm chí không nói về việc hàng triệu hoặc hàng ngàn người sử dụng. Tôi có nghĩa là một vài trăm người trong khuôn viên trường, tất cả đều muốn, ví dụ, cửa hàng cho các khóa học tại Đồng thời, họ sử dụng mà catalô nhiên ứng dụng tôi đã đề cập và điều là nhận được thực sự chậm vì không có chỉ số. Không có ngôi sao màu đỏ, do đó, để nói chuyện, hoặc chúng tôi đã không nhất thiết yếu tố ra dữ liệu chung để nhận được một số tiền tiết kiệm không gian. Và như vậy khi rà soát một nhà phát triển hoặc người sở dữ liệu hoặc các loại tương tự các loại câu hỏi để suy nghĩ thông qua thậm chí, khi xem xét mã của ai đó, để nói, không nhất thiết phải tìm qua tất cả các mã của họ, nhưng nói, chúng ta hãy xem xét thông qua các bảng cơ sở dữ liệu. bạn đang lưu trữ những gì? Và sau đó nói, tốt, chờ đợi một phút, tại sao bạn đang sử dụng một số nguyên? Nếu chúng ta có 4 tỷ và 1 của các hàng? Và các loại câu hỏi này là một cơ hội để loại đẩy lùi và có được một cảm giác, nơi nếu bạn không thoải mái làm nó, có một ai đó nhiều hơn kỹ thuật hỏi những câu hỏi, có hay không người thực sự hiểu biết công cụ của họ. Và đây là các loại công cụ, quá, mà mọi người trên internet những người là tự học, có thể học ít thường xuyên, bởi vì bạn không nhất thiết phải đi qua nó càng nhiều, bởi vì bạn có thể nhận được cơ sở dữ liệu và chạy, nhưng trừ khi bạn đã đọc lên trên hướng dẫn hoặc được nói về chuẩn hóa dữ liệu và lập chỉ mục và hiệu suất, đó là những loại vật đó sẽ làm tổn thương bạn. Và bạn có thể nghĩ, hay một kỹ sư xấu có thể nói, oh, tốt, lương chúng tôi tốt hơn cho một cơ sở dữ liệu lớn hơn hoặc một cơ sở dữ liệu nhanh hơn hay chỉ là ném tiền vào này, quy mô theo chiều dọc, không nhất thiết phải như vậy. Nếu bạn đi in-- và bạn có thể đi vào sau khi các chỉ số fact-- và thêm, và nó có thể mất một vài giờ cho cơ sở dữ liệu để xây dựng dữ liệu mới cấu trúc mà tôi đã đề cập đến trước đó, bạn vẫn có thể sửa lỗi này sau khi thực tế, rằng đây là nơi bạn bắt đầu để phân biệt nhà thiết kế tốt xấu nhà thiết kế, không chỉ về mặt thẩm mỹ, nhưng hiệu suất-khôn ngoan là tốt. Bất kỳ câu hỏi? Không? Vì vậy, cho NoSQL, mà là loại khác của cơ sở dữ liệu mà tôi đã đề cập trước đó, bạn không có hàng và cột. Thay vào đó, bạn sẽ có một cái gì đó trông hơn một chút như thế này. Tôi sẽ sử dụng cú pháp thông thường. dấu ngoặc nhọn xảy ra được sử dụng ở đây khá nhiều. Bạn có thể có một cái gì đó như tên là David, bạn có thể có trước tên là Malan, báo giá, bạn có thể có ID hợp-- tha cho tôi, ID whoops-- là 1, email là malan@harvard.edu, và tôi sẽ không bận tâm gõ ra các phần còn lại, và sau đó một số thứ khác. Nói cách khác, đây là một đại diện văn bản về những gì chúng ta thường gọi một đối tượng trong một chương trình máy tính. Và một đối tượng thường chỉ một tập các cặp giá trị quan trọng. Vì vậy, một lần nữa, chủ đề định kỳ này. Chúng tôi đã thấy các cặp giá trị quan trọng trong HTML, chúng ta đã thấy cặp giá trị quan trọng với doanh nghiệp trong bối cảnh cơ sở dữ liệu, và chúng tôi thấy cặp giá trị quan trọng trong bối cảnh của, tôi nghĩ rằng, một ngôn ngữ trước ngày hôm nay. Tiếp tục trở lên. Và quả thực, đó là thực sự những dữ liệu để nắm, dữ liệu và siêu dữ liệu, hoặc các giá trị và các phím tương ứng. Vì vậy, một không quan hệ cơ sở dữ liệu, một cái gì đó dựa đối tượng trên, nơi bạn chỉ cần cụm lại tất cả mọi thứ lại với nhau và đặt nó vào bộ nhớ, thường sẽ là hình như, hoặc nghĩ đến, vì điều này. Và tôi sẽ để lại bây giờ như một loại phương pháp thay thế. Và người ta không nhất thiết phải là tốt hơn so với người khác. Trong thực tế, rất nhiều trong Vogue những ngày này là hệ thống cơ sở dữ liệu như MongoDB và Redis và một vài các công cụ khác như vậy, tự do có sẵn, nhưng họ đang ngày càng en vogue. Một phần vì họ cung cấp thêm tính năng hơn các phương pháp tiếp cận bảng, nhưng cũng bởi vì họ một chút dễ dàng hơn để sử dụng, bởi vì bạn không cần phải suy nghĩ như cứng về rất nhiều các quyết định thiết kế. Vì vậy, mặt được, chưa. Vì vậy, nhận ra có những lựa chọn xa hơn những gì chúng ta vừa trải qua thời gian trên. Vì vậy, hãy làm điều này. Hãy chuyển một chút Bây giờ trở lại để lập trình web, để chúng tôi loại kết luận ngày hôm nay với một cái gì đó đó là một chút trên tay, làm đầy trong một số khoảng trống từ ngày hôm qua. Hãy để tôi đi đầu tiên này. Vì vậy, nhớ lại ngày hôm qua rằng chúng tôi đã có một số kinh điển HTML các trang đã bước đầu, chỉ HTML, và sau đó secondarily có CSS, Cascading Style Sheets. Đây là một thẻ mới mà chúng tôi đã không xem ngày hôm qua, hoặc ngự trên, cái gọi là thẻ script. Hóa ra bạn thực sự có thể nhúng một ngôn ngữ được gọi JavaScript trong web của bạn trang và làm cho web của bạn trang làm một cái gì đó. Vì vậy, những gì tôi có nghĩa là bằng cách đó? Vâng, hãy để tôi đi trước và chỉ mượn mã này cho một thời điểm. Tôi sẽ đi vào Cloud9, không cần đến đó mình chỉ được nêu ra, và tôi sẽ gọi alert.HTML này. Tôi sẽ dán vào tập tin của tôi ở đây. Và chỉ để làm rõ những gì tôi đã làm, để cho tôi đi đến địa chỉ này và đi đến cảnh báo, và bạn thấy những Hello World. Nhưng đây là loại underwhelming. tôi muốn làm gì đó một chút khác nhau. Vì vậy, tôi sẽ thực sự làm được điều này. Tôi sẽ đi vào đây e, và ở giữa các thẻ kịch bản của tôi, nói alert ( 'hello, world'); để thông báo đó là một chút cẩu thả, nhưng tôi đã có HTML, trong số đó là một ngôn ngữ được gọi là JavaScript, và đây là những gì được gọi là một chức năng gọi hoặc gọi thủ tục. Đây là một động từ, nghĩa là, trong trường hợp này, và tôi đang gọi chức năng đang mà người khác đã viết. Vì vậy, chức năng đó là một cảnh báo, vì vậy chúng ta hãy đi đến trang này bây giờ và nhấp vào tải lại, và bây giờ bạn thấy một chút về tương tác. Đó là loại trường học cũ và xấu xí. Điều này loại nhắc nhở bạn về những pop-up, có lẽ, của năm qua nhưng nó đã làm một cái gì đó ít chương trình hơn. Vì vậy, hơn thế nữa, chúng ta hãy làm một cái gì đó thú vị hơn. Hãy để tôi đi ở đây và thoát khỏi điều này. Và tôi sẽ đi trước và tạo ra một hình thức giống như chúng tôi đã làm ngày hôm qua. Trên thực tế, bạn biết những gì? Tôi sẽ đi vào google.html, mà chúng tôi bắt đầu vào ngày hôm qua, mà trông giống như này, qua đó chúng tôi đã tìm kiếm cho mèo Nhưng chú ý có loại một lỗi trong phiên bản hiện tại. Nó hoạt động cho mèo, nhưng giả sử rằng Tôi không hợp tác và tôi gõ không có gì, và tôi chỉ đơn giản là nhấp vào gửi. Đó là loại hành vi kỳ lạ. Đưa tôi đến Google thực, đã không cho tôi một thông báo lỗi. Tôi muốn nói cho người dùng bạn cần phải cung cấp cho chúng tôi một giá trị. Vậy làm thế nào chúng ta có thể làm được điều này? Vâng cho tôi quay trở lại vào Cloud9 và hãy để tôi đi vào phía trên cùng của trang của tôi và thêm một thẻ script như thế này, nơi Tôi sẽ gõ một số mã JavaScript. Và tôi sẽ làm như sau. Nếu (document.getelementByID-- và thu hồi mà chúng tôi nói chuyện về điều đó sớm hơn, rằng chức năng. ID những gì tôi muốn để có được? Tôi muốn nhận được q, và tôi sẽ nói là không còn gì, như này-- thực sự cho tôi sử dụng dấu ngoặc kép chỉ cho consistency-- là không còn gì, sau đó alert ( "Xin vui lòng nhập một truy vấn") ở đây. Vì vậy, tôi có những gì xuất hiện để được một cái gì đó như một điều kiện. Chúng tôi đã nhìn thấy ý tưởng này nói chung trong Scratch. Nó giống như một trong những câu đố miếng mà trông như thế này. Và tôi nói những gì? Vâng, ở đây, thấy tôi sẽ làm như sau. Tôi sẽ cung cấp cho hình thức này lĩnh vực không chỉ là một tên của q, trong đó là những gì được thông qua với Google, nhưng tôi sẽ cung cấp cho nó một định danh địa phương, cũng gọi là q. Nhưng tôi có thể gọi bất cứ điều gì này tôi muốn, tôi chỉ cần đi để giữ cho nó đơn giản và cũng gọi nó là q, chỉ vì đơn giản. Và bây giờ tôi đang đi làm một cái gì đó nhiều hơn một chút. Trên cánh đồng mẫu ở đây, tôi sẽ thêm vào những gì được gọi là một xử lý sự kiện. Mở trình, tôi muốn gọi một chức năng có tên validate. Điều này không tồn tại, này từ, hoặc validate động từ này, bởi vì những gì tôi sẽ làm lên đây bây giờ là thêm một số mã. Tôi sẽ nói rằng chức năng validate. Tôi sẽ thụt này và thêm một cú đúp xoăn ở đây và một số khác ở đây. Hãy xem xét điều này bây giờ là làm. Tôi có now-- nghĩ về điều này như tạo của tôi mảnh ghép riêng mà trước đây chưa tồn tại, và tôi đã được gọi là câu đố này mảnh mảnh validate câu đố. Mục đích của nó trong cuộc sống là để thực hiện bốn dòng mã bên trong của nó. Nếu document.getElementById nên khái niệm, có nghĩa là sẽ đi vào các yếu tố, các phần tử HTML mà độc đáo Ý tưởng chỉ là q, và sau đó mặc dù cú pháp trông hơi kỳ lạ, đó bằng bằng chỉ có nghĩa là bình đẳng. Vì vậy, đó có nghĩa là nếu các phần tử với định danh duy nhất của q, khi nhận được, không có giá trị, nó chỉ bằng quote unquote, không có gì trong đó, sau đó những gì tôi muốn làm gì? Tôi muốn hét lên với người sử dụng. Và chúng ta sẽ không đi chi tiết ở đây. Tôi sẽ trả về false. Đó là một lỗi. Khác, tôi sẽ trở thành sự thật. Vì vậy, hoặc nó làm việc hoặc nó không. Sai hoặc đúng. Và bây giờ nếu tôi không thực hiện bất kỳ sai lầm, cho tôi lưu này và tải lại này. Và hãy để tôi kiểm tra chỉ gấp đôi Tôi đã không, trên thực tế, thực hiện bất kỳ lỗi chính tả, vì vậy tôi không xấu hổ bản thân mình. Hãy xem nếu công trình này. Vì vậy, bây giờ tôi sẽ phải gõ mèo. Nó vẫn hoạt động, hoặc công trình nửa, ít nhất. Bây giờ hãy để tôi tải lại nó, và bây giờ chúng ta hãy tôi thử gửi mà không cần gõ anything-- chết tiệt, nó đã phá vỡ. Một khoảnh khắc. Hãy để tôi mở giao diện điều khiển, [IM LẶNG] đăng nhập, tải lại trang. Hãy để tôi thử này một lần nữa. Oh, chết tiệt. Tôi quên mất. Tôi đã thực hiện một lỗi đánh máy. Tôi nhớ nó là gì. .giá trị. Tôi muốn nói nếu giá trị của nguyên tố ID mà là q bằng đó, sau đó hét lên với người sử dụng. Vì vậy, bây giờ hãy để tôi giữ hơi thở của tôi một lần nữa. Ở đây chúng tôi đi. Hiện chúng tôi đi. Xin vui lòng nhập một truy vấn. Vì vậy, nó không để cho tôi qua. Tôi có thể được loại vui tươi với điều này, và thay vì kiểm tra không có giá trị, Tôi có thể nói điều gì đó như thế nào, không tìm kiếm cho mèo, và bây giờ chúng ta có thể chỉ tinh nghịch hơn chúng ta hãy người dùng tìm kiếm cho chó nếu anh ta hoặc cô muốn, hoặc nếu tôi đi ở đây và tìm kiếm cho mèo, bây giờ tôi không thể. Vì vậy, các takeaway những gì ở đây? Vì vậy, một, chúng tôi đã giới thiệu thành thế giới của chúng ta về HTML và CSS, chức năng lập trình. Tôi có thể thực hiện đưa ra quyết định trong mã. Trước đây, tất cả tôi có thể làm là đánh dấu lên nội dung văn bản hoặc nội dung đồ họa và nói với nó những gì để tìm như thế nào và để hiển thị. Bây giờ tôi thực sự có thể yêu cầu câu hỏi của trang web và đưa ra quyết định dựa trên vào nó, và nhắc nhở người dùng nếu tôi cần phải hét lên với anh ta hoặc cô. Vì vậy, hãy thử một cái gì đó riêng của chúng tôi với điều này. Về phía trước, hãy để tôi mở ra các slide tiếp theo ở đây, và chỉ cần chỉ ra một điều. Cũng giống như với CSS, chúng ta có thể yếu tố ra mã JavaScript vào một file riêng biệt, bạn có thể làm điều tương tự với JavaScript như với CSS. Và bạn sử dụng mà sử dụng một nguồn thuộc tính của các thẻ script. Nhưng chúng tôi sẽ không làm phức tạp mọi thứ cho bây giờ. Thay vào đó, nếu bạn có thể đi không trang này, nhưng-- cho tôi di chuyển xung quanh này trong order-- đi đến, nếu bạn có thể, trang này ở đây. URL này đây. Đó là trong slide hiện nay. Bạn có thể phải tải lại vì Tôi đã thêm một vài điều. Nhưng đến đó, nơi một số câu đố đang chờ đợi. Và điều này sẽ cung cấp cho chúng tôi một cơ hội, trong bối cảnh một chút vui vẻ hơn, đến lĩnh với một số JavaScript. Và khi bạn nhận được ở đó, Tôi sẽ giải thích những gì đang chờ đợi. Nhận xanh. Đặt màu xanh. Thiết lập màu xanh lá cây, đặt màu đỏ. Rất tiếc. Lấy làm tiếc. Đây là mức độ của chúng tôi tài liệu cho thử thách này. Và điều này sẽ làm việc như sau. Vì vậy, những gì bạn có trong này trang là cả một bó câu đố hình ảnh của một người bạn tại Đại học Stanford. Vì vậy, những gì bạn nhìn thấy ở đây là hầu hết loại một trong những câu đố Magic Eye, nhưng nếu bạn chỉ nhìn chằm chằm vào nó, không có gì sẽ bật ra ở bạn. Thay vào đó, một cái gì đó là ẩn trong hình ảnh này. Và nó ẩn trong các cách sau đây. Hình ảnh, bạn có thể biết, có thể là gồm chỉ có ba màu. Một số màu đỏ, một số màu xanh, và một số màu xanh lá cây. Và chúng ta có thể làm cho tất cả các màu trong cầu vồng bằng cách trộn ba màu sắc bằng cách nào đó. Vì vậy, điều này có vẻ chủ yếu là màu xanh lá cây và màu xanh, nhưng khi Nick nói ở đây, hình ảnh sắt đố này là một câu đố. Nó chứa một hình ảnh của một cái gì đó nổi tiếng, tuy nhiên, hình ảnh đã bị bóp méo. Các đối tượng nổi tiếng là trong các giá trị màu đỏ. giá trị Tuy nhiên, màu đỏ có tất cả được chia cho 10. Vì vậy, chúng quá nhỏ bởi một yếu tố của 10. Vì vậy, nói cách khác, Nick mất một hình ảnh ban đầu, và ông desaturated tất cả của màu đỏ từ nó, giảm số lượng màu đỏ mực, nếu bạn muốn, ở trong đó. Các giá trị màu xanh và màu xanh lá cây là tất cả chỉ là vô nghĩa, giá trị ngẫu nhiên, hay còn gọi là thiết kế tiếng ồn để làm mờ hình ảnh thực sự. Vì vậy, những gì Nick đã làm là ông giảm bớt các màu đỏ và sau đó ông chỉ ném ngẫu nhiên lượng của màu xanh và màu xanh lá cây vào hình ảnh để loại che khuất những gì là thực sự vẫn còn ở đó. Bạn phải hoàn tác những biến dạng để lộ hình ảnh. Đầu tiên, thiết lập tất cả các giá trị màu xanh và màu xanh lá cây để không để có được chúng ra khỏi con đường, và nhìn vào kết quả. Sau đó nhân mỗi giá trị red 10, nhân rộng trở lại lên đến khoảng giá trị cuối cùng của nó. các đối tượng nổi tiếng là gì? Vì vậy, tất cả các bạn có hình chữ nhật này trong trình duyệt của bạn ngay bây giờ. Và nhận thấy rằng có một số đang khởi động, vậy để nói chuyện. Đây là mã JavaScript Nick đã viết cho bạn. Và nhận thấy rằng có một đường ở giữa mà bắt đầu với một dấu gạch chéo slash, đó là những gì thường được gọi là một nhận xét. Nó có nghĩa là đó là một cụm từ để các lập trình viên mà không có ý nghĩa chức năng. Nó chỉ là một gợi ý trực quan đến con người. Vì vậy, bạn có thể đi trước và xóa chỉ dòng đó, và được siêu cẩn thận không để xóa hoặc thay đổi bất cứ điều gì khác. Và hãy để tôi chỉ hướng dẫn bạn thông qua những mã này không và tôi sẽ để nó cho bạn để tìm ra các hình ảnh bí mật. dòng đầu tiên này ở đây mà tôi đã chỉ đánh dấu cho bạn sau. Ở phía bên tay trái, Bạn có những gì được gọi là một biến mà Nick đã tùy tiện, nhưng hợp lý gọi là im cho hình ảnh. Bên phía tay phải đó dấu bằng, anh ấy nói cho tôi một mới quote, unquote "hình ảnh đơn giản". hình ảnh đơn giản, trong bối cảnh này là những gì được gọi là một lớp, tốt, nó giống như là một class-- Về kỹ thuật prototype-- nhưng thực sự, này đem lại cho tôi một đối tượng mới, các nội dung trong đó là các tập tin, sắt puzzle.png. Nói cách khác, Nick đã tạo khái niệm về một hình ảnh đơn giản để chúng tôi có thể, sư phạm mục đích, chơi với các hình ảnh và thay đổi màu đỏ của nó, màu xanh lá cây, và màu xanh giá trị. Và làm thế nào chúng tôi làm điều đó? Đây cú pháp hơi khó hiểu ở đây là loại giống như các khối lặp lại rằng một số bạn đã thấy trong Scratch trước ngày hôm nay, nơi bạn có thể lặp lại 10 lần. Trong trường hợp này, Nick đã không hardcoded một số như 10. Thay vào đó, ông đang nói, khởi tạo một biến gọi là x 0, kiểm tra nếu x là ít hơn chiều rộng của hình ảnh. Và do đó, để có thể thích hợp hơn, là hình ảnh biến, dấu chấm là đi bên trong của nó và có được chiều rộng của nó, và sau đó dấu ngoặc mở, đóng cửa Dấu ngoặc đơn chỉ là cách của một lập trình nói đây là một chức năng. Đây là một thủ tục. Đây là chức năng người khác đã viết. Sử dụng nó và cho tôi trở lại một câu trả lời. Và sau đó x ++ là một cách ưa thích của nói, sau khi bạn đã làm điều này một lần, tăng x 1. Nói cách khác, điều này là cách của một lập trình gây ra một vòng lặp đó là sẽ lặp trên tất cả các cột trong một hình ảnh. Một hình ảnh chỉ là một mạng lưới các dấu chấm, các hàng và cột của các chấm. Đây là một cách iterating trên tất cả các cột. Và bên trong, Trong khi đó, chúng tôi đang lặp lại trên những đỉnh cao, ở đây và ở đây và ở đây. Vì vậy, đây chỉ là một cách để traipsing, gần giống như một chiếc máy đánh chữ trường học cũ, chỉ cần đi qua toàn bộ hình ảnh lặp đi lặp lại. Thậm chí đó là không hoàn toàn hoàn toàn rõ ràng, chỉ cần mang về đức tin cho bây giờ, mà những ba dòng mã với nhau là sẽ cho phép bạn lặp đi lặp lại tìm kiếm tại mỗi điểm ảnh, mỗi chấm trong hình ảnh. một điểm ảnh là gì? Vâng, để được rõ ràng, nếu chúng ta nhìn tại gốc và phóng to, nếu bạn thực sự đưa đôi mắt của bạn vào màn hình máy tính, đó là chỉ là một bó toàn bộ các dấu chấm, một số ngàn chấm đóng gói lại với nhau ở đó. Và vì vậy bạn có những gì về để làm gì? Mỗi một trong những dấu chấm, một định nghĩa chính thức, là kết quả của những gì thường gọi là RGB, đỏ, xanh lá cây, màu xanh, mà một lần nữa, có thể được kết hợp để cung cấp cho bạn bất kỳ số lượng màu sắc. Trong thực tế, nếu bạn nhớ từ nhiều người, nhiều năm trước đây, màn hình máy chiếu như những điều này sử dụng để không chỉ có một ống kính nhưng ba. Một trong số đó nhổ ra ánh sáng màu đỏ, một trong những họ nhổ ra ánh sáng màu xanh lá cây, một trong số họ nhổ ra ánh sáng màu xanh. Và nếu bạn đang ở trong một trường trung học như tôi là nơi mà họ chưa bao giờ đúng đắn phù hợp, bạn đã luôn xem phim lịch sử đó là hơi bị bóp méo, bởi vì ba màu sắc không kết hợp đúng cách. Nhưng nó chỉ ra rằng mỗi các giá trị màu đỏ, xanh lá cây, và màu xanh, có thể có một số liên kết với chúng. Ví dụ, 0 cho màu đỏ có nghĩa là không có đỏ, 0 cho màu xanh lá cây có nghĩa là không có màu xanh lá cây, và 0 cho màu xanh có nghĩa là không có màu xanh. Vì vậy, nếu bạn không có màu đỏ, không có màu xanh lá cây, và không có màu xanh, màu gì làm bạn có? Đung [IM LẶNG] DAVID Malan: Bạn sẽ hy vọng như vậy, đó là màu trắng. Thật không may, điều này vận hành-- xin lỗi? Đung [IM LẶNG] DAVID Malan: Vì vậy, bạn thực sự có màu đen, trong trường hợp này. Vì vậy, nếu bạn không có một trong những màu sắc bật, bạn có màu đen. Tuy nhiên, nếu bạn có, hãy nói rất nhiều của họ, giống như rất nhiều màu đỏ, 255 của nó, rất nhiều màu xanh lá cây, và rất nhiều màu xanh, đó là màu trắng. Vì vậy, đây là hai thái cực. Vì vậy, theo logic này, nếu tôi có rất nhiều của màu đỏ và màu xanh lá cây không có và không có màu xanh, màu gì vậy? Đung [IM LẶNG] DAVID Malan: Đúng, rõ ràng. Và sau đó không có màu đỏ, rất nhiều màu xanh lá cây, không có màu xanh, và sau đó nếu bạn có-- tốt, chúng tôi sẽ chỉ kết thúc nó, chỉ vì, nhưng điều này, tất nhiên, bây giờ, là màu xanh. Và bây giờ bạn có thể kết hợp những màu sắc. Bây giờ là một sang một bên, nếu có của bạn có từng làm một số thiết kế trang web thực tế, bạn có thể thực sự nhìn thấy biểu tượng như thế này. FFF-- và trên thực tế, đó là có lẽ thậm chí là không. Đó là FFFFFF. Bất cứ ai từng nhìn thấy F và E và A through-- để nó quay ra, chúng tôi nói chuyện ngày hôm qua về số thập phân, và ngày nay, loại về số thập phân. Hôm nay chúng ta nói về nhị phân. Hóa ra, thập lục phân là rất hệ thống cơ sở chung để sử dụng trong tính toán. Nhị phân là hai, số thập phân là 10, hex là 16. Và hóa ra, làm thế nào bạn đếm thập lục phân? Zero, một, hai, ba, bốn, năm, sáu, bảy, tám, chín, làm những gì bạn sử dụng sau khi chín? số tiếp theo là gì? Chúng tôi đã sử dụng bằng không. Tôi cần 16 trong số này. Zero, một, hai, ba, bốn, năm, sáu, bảy, tám, chín, bạn cần một số quy ước tùy ý. Và những gì loài người quyết định một thời gian trước rằng sau chín đến thư A và sau đó B và sau đó C. Vì vậy, các cách bạn đếm thập lục phân là số không, một, hai, ba, bốn, năm, sáu, bảy, tám, chín, A, B, C, D, E, F, và điều đó sẽ đếm bạn tất cả các cách, nó quay ra, đến 15. Vì vậy, bằng không đến 15 là số không qua F. Bây giờ tại sao là đáng kể? Vâng, khi bạn có hai F, đó là cách bạn thể hiện 255. Vì vậy, dài truyện ngắn, trong thế giới của Photoshop, là phần mềm thiết kế đồ họa, trong thế giới phát triển web, nơi bạn có rất nhiều màu sắc, tất nhiên, để chơi với, thường các lập trình viên sẽ thể hiện những người trong hệ thập lục phân, chỉ vì nó có xu hướng để đơn giản một chút. Mặc dù ở cái nhìn đầu tiên nó phức tạp hơn nhiều. Vì vậy, trong mọi trường hợp, điều này là quan trọng vì Nick tại Stanford đã cho chúng ta sáu miếng chức năng bạn, các lập trình viên vừa chớm nở, bây giờ sẽ có khả năng sử dụng. Được xây dựng vào web này Trang là sáu chức năng, sáu thủ tục mà Nick đã viết. Ba trong số họ sẽ giúp bạn có được một số, một màu đỏ, một màu xanh lá cây, hoặc một giá trị màu xanh. Ba trong số họ sẽ thiết lập giá trị đó. Và những dấu gạch chỉ giữ chỗ, vì vậy bạn cần phải biết đó là gì. Vì vậy, với ba chức năng, đầu tiên của những điều này sẽ là một tọa độ x, và thứ hai của những điều này sẽ là một y phối hợp. Nói cách khác, trong đó dấu chấm, mà điểm ảnh nào bạn muốn để có được màu xanh của, có được màu xanh của, có màu đỏ của. Và sau đó ở đây, điều này sẽ là x, đây sẽ là một giá trị y, và điều này sẽ là một con số. Vì vậy, chúng ta hãy làm việc đầu tiên dòng này lại với nhau và sau đó tôi sẽ để lại nó cho bạn để cố gắng suy ra phần còn lại. Vì vậy, theo các hướng dẫn trên trang này, chúng ta cần để tăng màu đỏ bởi một yếu tố của 10, và chúng ta cần phải loại bỏ các màu xanh lá cây và loại bỏ các màu xanh. Hãy bắt đầu với những tình huống sau. Vì vậy, nếu tôi muốn, và tôi sẽ indent bằng cách sử dụng một số không gian, nếu tôi muốn thiết lập các màu đỏ, màu xanh lá cây, hoặc giá trị màu xanh, Tôi sẽ làm như sau. Hình ảnh, im.setBlue, và sau đó dựa trên hướng dẫn của tôi ở đây, những gì ba điều tôi nên gõ bên trong dấu ngoặc đơn bây giờ? Tôi cần các giá trị x, giá trị y, và những gì số Tôi nên đặt ở đây nếu tôi muốn được thoát khỏi màu xanh, dựa trên câu chuyện này ở đây? Chỉ số không. Nếu tôi muốn không có màu xanh, tôi chỉ sẽ thay đổi thành không. Bây giờ chúng ta hãy tóm tắt lại những gì này là làm. Tôi đã ở đây trên những dòng thứ hai và thứ ba, Tôi tuyên bố hai vòng, vòng lồng nhau, nếu bạn sẽ, mà sẽ có tác dụng tiến triển từ trái sang phải, trên xuống dưới trên tất cả các x giá trị và tất cả các giá trị y. Bởi vì một lần nữa, một bức tranh chỉ là một mạng lưới các hàng và cột. Vì vậy, đây là sẽ nhận được thoát khỏi tất cả các màu xanh. Hãy để tôi ra đi trong dòng bên cạnh bạn. Làm thế nào để thoát khỏi tất cả các màu xanh lá cây? Đung [IM LẶNG] DAVID Malan: Nice. Đung [IM LẶNG] DAVID Malan: Nice. Và tôi sẽ thu nhỏ, và chỉ mất quan tâm của các bạn đã không thực hiện bất kỳ lỗi chính tả. Và nếu bạn cảm thấy thoải mái với những gì bạn đã làm, đi trước và bấm nút Chạy / Lưu và xem những gì bạn nhận được. Và một lần nữa, chúng tôi đã thực hiện chỉ ba thay đổi. Chúng tôi đã xóa mà đầu tiên bình luận và thay thế nó với hai dòng mã. Và đó là OK nếu bạn cần phải nhấn nút Run / Lưu một vài lần để sửa chữa một cái gì đó. Và hãy để tôi cũng phóng to của tôi mã để bạn có thể ghi lại. Tốt. Vì vậy, tôi thấy Andrew có gì có vẻ là một sai lầm. Anh ấy chỉ có một màu đen lớn hình chữ nhật trên màn hình của mình. Có ai khác có một hình chữ nhật màu đen lớn? Đung thê. DAVID Malan: Big hình chữ nhật màu đen? OK, vì vậy hãy suy nghĩ về ý nghĩa gì. Chúng tôi cho rằng, không, không, không, vì vậy không có màu xanh lá cây, không có màu đỏ, không có màu xanh, sẽ cung cấp cho bạn màu đen. Và nó chỉ ra rằng hầu hết các máy tính xách tay của chúng tôi chỉ cần không có đủ lòng trung thành. Bạn có thể không hoàn toàn nói có thực sự là một cái gì đó. Và nếu bạn có loại có thể dựa màn hình phía trước và sau, có lẽ bạn thấy có một chút gì đó không? Có lẽ, loại, loại? Nó không hoàn toàn màu đen. Đung [IM LẶNG] DAVID Malan: Spoiler! Có một số màu đỏ ở đó, nhưng nhớ từ những thông số kỹ thuật của vấn đề, Nick săn chắc nó xuống. Ông desaturated nó một chút, nhưng không phải tất cả các cách để không. Vì vậy, nếu chúng ta muốn phóng đại số tiền màu đỏ, hãy để tôi đề xuất trick này. Hãy để tôi phóng to trên màn hình của tôi. Và hãy để tôi đi trước và nói lượng bằng im.getRed (x, y). dòng mã này là cho tôi một cái gì đó gọi là một biến. Tôi có một cách tùy tiện, nhưng, tranh cãi, hợp lý gọi là biến của tôi những gì, rõ ràng? Số tiền. Chỉ cần số tiền. Tôi có thể đã gọi nó là bất cứ điều gì tôi muốn, nhưng tôi sử dụng chức năng này khác mà tôi đã mô tả trước đó để có được số lượng màu đỏ tại x dấu phẩy y. Tại sao tôi lại làm điều đó? Bạn muốn làm ở đây là gì? Bạn cần phải add-- Đung [IM LẶNG] DAVID Malan: Vâng, có lẽ nhân nó bằng 10. Và nếu bạn không biết điều này, tôi sẽ đi trước và làm điều này. Tôi sẽ đi trước và nói, tôi muốn số lượng màu đỏ Tôi muốn có bất cứ điều gì là màu đỏ, lần 10, và ngôi sao, dấu hoa thị trên của bạn bàn phím là là-- không sử dụng x. Sử dụng các ngôi sao. Đó là cách bạn nhân vật trong hầu hết các ngôn ngữ lập trình. Vì vậy, theo trực giác của Kareem, lưu trữ trong biến này được gọi là số tiền, là bao nhiêu đỏ mà tôi muốn ở vị trí xy. Làm thế nào, bây giờ, tôi làm cho rằng Pixel có con số đó? Bạn đã làm điều này trước. Bạn thiết lập các màu xanh lá cây và các màu xanh để không có giá trị, không. Đung [IM LẶNG] DAVID Malan: Vâng, cũng bạn không muốn nó đến 10. Bạn đã làm toán ở đây. Vì vậy, chúng tôi đang nhận được giá trị của màu đỏ, đó là một số lượng thấp, có lẽ. Chúng tôi đang nhân lên 10. Những gì bạn muốn làm với các biến số lượng bây giờ? Đung [IM LẶNG] DAVID Malan: Nice. Vì vậy im.set-- gì? Đung setRed. DAVID Malan: setRed, tại vị trí xy. Yeah. Và chỉ cần số tiền. Nói cách khác, một biến là một giữ chỗ tạm thời rằng bạn có thể đặt bất cứ điều gì bạn muốn trong. Chúng tôi tình cờ được đặt một số trong đó, tại thời điểm này. Chúng tôi đã nhân với nó bằng cách 10 để làm cho nó lớn hơn. Và bây giờ tôi đang thay thế biến như số thứ ba, hoặc đầu vào để thiết lập màu đỏ. Và như vậy, một khi bạn kết thúc mà, và chú ý của dấu chấm phẩy và dấu ngoặc đơn. Hãy kích chạy / lưu lại, và bạn sẽ thấy, kỳ diệu, những gì đã thực sự chỗ đó. [? Arwa,?] Gì đó? Tháp Eiffel ở chính thức màu đỏ, không hoàn toàn tối. nó nên được rõ ràng hơn bây giờ, đúng không? ĐƯỢC. Và Andrew, hộp không có màu đen hơn? Đung [IM LẶNG] DAVID Malan: Tất cả các quyền. Vì vậy, tôi sẽ giữ điều này trên màn hình. Nếu bạn muốn chơi với điều này sau đó, tôi sẽ tái tạo này cho bạn. Tuy nhiên, mã này ở đây đã làm chính xác điều đó. Tại sao chúng ta không làm một khác. Hãy để tôi di chuyển xuống một chút. Vì vậy, trong trường hợp này, máy chiếu không thực sự làm điều đó công lý. Nhưng trên màn hình của bạn, bạn có thể có một hộp rất đỏ và rất đen. Điều này cũng là một câu đố cho thấy một cái gì đó nổi tiếng. Tuy nhiên, hình ảnh đã bị bóp méo. Những hình ảnh thật, lần này, là trong các giá trị màu xanh và màu xanh lá cây. Tuy nhiên, tất cả họ đã được chia 20 nên các giá trị rất nhỏ. Các giá trị màu đỏ chỉ số ngẫu nhiên, tiếng ồn. Undo những biến dạng để lộ những hình ảnh thật. Nick sau đó nói với bạn những gì để làm. Đặt các giá trị màu đỏ để không, và sau đó không làm hỏng nó là gì. Sau đó, nhân màu xanh và các giá trị xanh 20. Vì vậy, nó gần như cùng một chương trình như trước, nhưng bạn đảo ngược quá trình này. Và tôi sẽ đưa mã của tôi từ trước trên màn hình trong trường hợp bạn muốn tham chiếu về nó hoặc chơi tiếp tục với một. Hãy để tôi phóng to trên đó. Nhưng giải quyết hình ảnh đồng câu đố, số hai. Đung [IM LẶNG] DAVID Malan: OK, vì vậy một điều này tôi sẽ không để cho nhiều gợi ý. Vì vậy, tôi would-- oh, hãy thấy, bạn có một lỗi đánh máy ở đây. Vì vậy, hãy nhớ rằng, điều này ở đây thực sự cần đến đó. Vì vậy, những gì tôi sẽ đề xuất, nếu bạn muốn tập trung vào một này, có những câu trả lời. Nếu bạn muốn ghi lại rằng, đó sẽ nhận được một trong những hoạt động đầu tiên. Và sau đó bạn có thể sử dụng như là nguồn cảm hứng cho một thứ hai. Tốt đẹp. Tốt. Và đối với những tò mò, đây là một ví dụ đơn giản của một khoa học hay nghệ thuật gọi là steganography, nghệ thuật che giấu thông tin trong ảnh. Thông thường, hình ảnh có thể là thủy ấn rất trắng trợn với một biểu tượng ở phía dưới góc, nhưng rõ ràng, bạn có thể phức tạp hơn nhiều về nó và thực sự ẩn các ảnh khác trong hình ảnh bằng cách nào đó với kỹ thuật này. Lấy nhau 30 giây, và sau đó chúng tôi sẽ ít nhất là thông báo những gì bạn sẽ thấy. Và tôi sẽ để lại thứ ba một như một bài tập ở nhà, nếu bạn muốn biết thêm về một thách thức vào cuối tuần này. Và tôi nghĩ rằng Andrew might đã nhận được nó đầu tiên. hình ảnh thứ hai là gì, Andrew? Đung Statue of Liberty. DAVID Malan: Tượng Nữ thần Tự do sẽ là câu trả lời lần này. Vì vậy, một lần nữa, chỉ một số đơn giản ví dụ, mục đích của nó là để cung cấp cho bạn một cảm giác như thế nào chúng tôi đã dịch cào bằng hình ảnh khối để gây phiền nhiễu nhiều hơn và nhiều hơn nữa mã phức tạp, nhưng tất cả các ý tưởng vẫn giống hệt nhau, mặc dù với việc giới thiệu tại của khái niệm của một biến, được có thể lưu trữ một cái gì đó tạm thời. Hãy làm nhiều hơn một bàn tay-on, chỉ để bây giờ kết nối các dấu chấm một cái gì đó nhiều hơn một chút thực tế. Khi bạn đã sẵn sàng, nếu bạn có thể đi đến URL này trên màn hình. Đó cũng là trong bản sao của slide, developers.google.com/maps~~V. Hãy thực sự làm điều gì đó thực, có thể nói, trên web bằng cách sử dụng API của Google Maps, hoặc giao diện lập trình ứng dụng, theo cách sau. Google, giống như nhiều công ty, cung cấp rất nhiều chức năng miễn phí mà bạn có thể sử dụng để xây dựng của bạn ứng dụng thú vị riêng. Trong thực tế, nếu bạn đã từng sử dụng Uber để có được một chiếc taxi hay xe hơi, bạn có thể biết rằng Uber có một bản đồ và nó cho thấy chiếc xe trên đó. Đó là, như là tốt nhất như tôi có thể cho biết, Google Maps API. Họ đang thực sự sử dụng bản đồ của Google, nhưng Uber không phải là một công ty lập bản đồ, hay đó sẽ là một Vấn đề đặc biệt thú vị để giải quyết trên đầu của họ vấn đề dịch vụ xe. Và vì vậy họ đang đứng, một lần nữa, trên vai của người khác, của Google trong trường hợp này. Vì vậy, họ sử dụng bản đồ của Google nhưng chính họ dịch vụ xe và các tính năng khác như vậy. Vì vậy, chúng ta sẽ tận dụng lợi thế điều này để làm như sau. Và nếu tôi đã đi quá nhanh, chỉ cần gọi cho tôi hơn trong một thời điểm. Happy để tóm tắt lại một số công cụ hình ảnh. Bạn sẽ thấy mình tại một trang như thế này. Vì vậy của Google tốt đẹp, và họ là một trong những tốt nhất cung cấp không chỉ API, nhưng API miễn phí mà bạn có thể chơi với hoặc sử dụng thương mại. Họ bắt đầu thu phí nếu sử dụng của bạn là cao, nhưng tôi đã đi trước trước và ký kết chúng tôi ký một tài khoản miễn phí rằng, hy vọng, 10 máy tính sẽ không bị loại với chúng tôi để bất ngờ. Vì vậy, hy vọng điều này trình diễn sẽ làm việc. Và nhận thấy rằng họ có các API cho Android, iOS, dịch vụ web, và web, bất kể đó là. Hãy tập trung vào web. Vì vậy, nhấp vào hộp màu hồng, web, và rằng sẽ dẫn bạn, hy vọng, đến trang đây. Và họ đã có một bó toàn bộ các API. Và nó có thể là một chút áp đảo lúc đầu, nhưng tôi sẽ hướng chúng ta thông qua những gì chúng ta muốn. Ở phía trên cùng bên trái là Google Maps Javascript API, API JavaScript. Vì vậy, đi trước và bấm vào một. Và điều đó sẽ dẫn bạn nay đến sau trang, trình diễn và mẫu mã. Hãy để tôi thu nhỏ ở đây. Và hãy để tôi nhận được chúng tôi đối với: di chuyển xuống đến nơi nó nói bước khởi đầu nhanh chóng. màn hình của bạn sẽ giống như tôi. Và có hai bước, có được một chìa khóa và bắt đầu phát triển. Tôi đã làm một bước cho chúng ta, lấy chìa khóa cái gọi là. Và đây là một ý tưởng chung. Một API key thường là chỉ một số ngẫu nhiên lớn hoặc chuỗi rằng bạn có nghĩa vụ để dán vào code của bạn, để Google biết bạn là người thế nào khi bạn đang sử dụng dịch vụ của họ, họ API. Không có nghĩa là chúng tôi bị tính phí bất cứ điều gì. Và bây giờ, nhấp chuột, thay vì một, nhấp vào bắt đầu phát triển. Nếu bạn chỉ có thể vẫy tôi hơn nếu không chắc chắn mà chúng ta đang có. Vì vậy, chúng tôi sẽ chỉ xước bề mặt, ở đây, nhưng những gì Tôi nghĩ rằng sẽ là hấp dẫn là thật sự có tất cả chúng ta, sử dụng Cloud9 trong một cửa sổ và hướng dẫn này trong một cửa sổ khác, cho phép thực sự nhận riêng của chúng tôi ứng dụng và chạy nhúng một tùy chỉnh của Google bản đồ trong trang web của riêng của chúng tôi, và sau đó thêm một hoặc hai tính năng. Nhưng chúng tôi sẽ chỉ xước bề mặt của những gì chúng ta có thể làm. Vì vậy, chỉ kiểm tra sự tỉnh táo nhanh chóng. Là tất cả mọi người tại trang này, Google Maps API JavaScript? Nên nói bắt đầu. Chúng tôi sẽ không đi qua toàn bộ điều bằng phương tiện nào. OK, ở tab khác, nếu bạn không có nó mở, không đi vào Cloud9 và có được cho mình để chỉ một tab mới, cuối cùng. Vì vậy, một lần nữa, c9.io từ ngày hôm qua, c9.io, và chỉ cần tạo một tập tin mới. Và đi trước và gọi nó bất cứ điều gì bạn muốn. Tôi gọi map.html mỏ. Gọi nó là bất cứ điều gì có đuôi .html. Và bạn sẽ có khoảng nơi mà tôi đang trong quá trình này chỉ với một dấu nhắc nhấp nháy trong một sản phẩm nào tab gọi là một cái gì đó giống như map.html. Hoặc tập tin, tập tin mới thời gian này. Và bây giờ, hơn trên Google Maps API JavaScript, chúng tôi sẽ bỏ qua đọc qua tất cả các văn bản này. Nhưng chú ý rằng hello thế giới là thực sự ở khắp mọi nơi, bạn sẽ thấy nó bây giờ. Xin chào thế giới đã lớn này đầy màu sắc ví dụ về một bó toàn bộ của HTML. Đi trước và sao chép và dán chỉ rằng HTML, vì vậy từ các loại doc ở đầu tất cả các cách để các thẻ HTML gần, đi trước và sao chép tất cả các mà-- một lần nữa, đó là thuộc thế giới hello ví dụ điển và dán vào tab Cloud9 của bạn, vậy mà bây giờ màn hình của bạn nên nhìn gần như tôi. Và bạn có thể lưu nó, nhưng không tải nó chỉ được nêu ra. Hãy nhìn đầu tiên mã và xem nếu chúng ta không thể suy ra hoặc tìm hiểu từ những gì nó là Google đã có chúng tôi một cách mù quáng sao chép và dán. Họ chỉ muốn giúp đỡ, nghĩa đen, có được chúng tôi bắt đầu, nhưng không phải là nhiều phức tạp thực sự ở đó. Bất kỳ câu hỏi chỉ được nêu ra? Chúng tôi đang an toàn để giả mạo trước? ĐƯỢC. Vì vậy, một cách nhanh chóng, chúng ta chỉ cần làm một số kiểm tra sự tỉnh táo nhanh chóng. Một dây chuyền của những gì tôi nhìn thấy, và hy vọng, bạn thấy, có nghĩa là gì, loại tài liệu HTML? Kareem, nhớ lại? Đung [IM LẶNG] DAVID Malan: Có. Ở đây có HTML 5. Trong khi đó, dòng hai trên màn hình ở đây có nghĩa là trình duyệt hey, ở đây có sự HTML thực tế. Dòng ba là hey trình duyệt, ở đây có người đứng đầu. Dòng bốn là, tất nhiên, hey trình duyệt, ở đây có tiêu đề. không đường năm làm gì? Trên thực tế, điều này không thực sự làm bất cứ điều gì cho chúng ta. Trong trường hợp này, nó chỉ thay đổi kích thước trang để mặc định. Dòng sáu, chúng tôi đã không nói đến, nhưng nó quy định cụ thể mã hóa ký tự. Có nhiều cách khác nhau để mã hóa các tập tin, đặc biệt là ngoại ngữ. UTF-8 chỉ có xu hướng được mặc định. Vì vậy, bây giờ chúng ta sẽ thấy trong dòng bảy qua 16, một số CSS. Và mặc dù chúng tôi đã không nhìn thấy tất cả những điều này trước khi, chúng ta có thể loại suy luận. Vì vậy, dòng tám phương tiện, hey trình duyệt, áp dụng tất cả những điều sau đây mà hai thẻ, rõ ràng? HTML và thân văn bản. Vì vậy, các dấu phẩy là điều mới ở đó. Và đó chỉ là một cách xác định nhiều thẻ cùng một lúc. Sau đó, chúng tôi đã có các dấu ngoặc nhọn. Vì vậy, rõ ràng, điều này nói với các trình duyệt, làm cho chiều cao của trang 100%. Vì vậy, ngay cả khi có rất ít nội dung, làm cho toàn bộ trang, làm cho điều đó điền trang. Làm bản đồ cuối cùng điền trang. Margin, có nghĩa là gì? Đó thường là như tùy ý khoảng trắng xung quanh các cạnh rằng một số nhà thiết kế trình duyệt chỉ quyết định cần phải có, bởi vì nó loại làm cho mọi thứ trông sạch hơn. Nhưng chúng tôi không muốn điều đó. Chúng tôi muốn bản đồ đi tất cả các cách để các cạnh. Padding, tinh thần tương tự lợi. Lợi nhuận có nghĩa là bên ngoài, phương tiện đệm bên trong, nhưng đó là cùng một loại thỏa thuận. Đó là một chút của một bộ đệm giữa bạn và các cạnh. Và sau đó dòng 13 là tốt cơ hội cho một đánh giá nhanh chóng. Những gì hiện bản đồ sắc nét dấu có nghĩa là, hoặc bản đồ hashtag nghĩa là gì? Điều đó ám chỉ gì, về nguyên tắc? Đung [IM LẶNG] DAVID Malan: Chính xác. Khách sạn này, tài sản này là CSS áp dụng để chỉ một điều, các thẻ HTML rằng có một ID của báo giá, unquote "bản đồ". Và bây giờ hãy nhanh chóng chuyển tiếp, cuộn xuống phía dưới cùng của file, không phải là quá xa, và thông báo trên đường 19, nếu bạn dán nó chính xác như tôi đã làm, dòng 19 có chỉ là một div, mà là một bộ phận của trang, mà hôm qua tôi được gọi là một khu vực hình chữ nhật. Nó có gì trong đó. Đây là một thẻ mở, tag gần. Nhưng nó không có một ID duy nhất. Vì vậy, những gì có vẻ là xảy ra ở đây là Google đang sẵn sàng trang web của chúng tôi để có một chiều cao hoàn thành 100%, và không có đệm, không có lợi nhuận, bởi vì những gì chúng ta sẽ đặt bên trong của div này, có ID duy nhất là bản đồ, là một bản đồ thực tế nhúng. Và chúng tôi muốn nó để điền trang và không chỉ có một số hình chữ nhật nhỏ ở giữa. Vì vậy, dòng 14 tương tự như nhấn mạnh, các bản đồ riêng của mình nên có chiều cao 100%. Vì vậy bây giờ nhận thấy giữa các dòng 20 và 28, đây là mã JavaScript. Và đây là, mặc dù nó cú pháp một chút lạ, có không gì nhiều xảy ra ở đây. Trong dòng 21, điều này được khai báo một cái gì đó gọi là một biến. Thay vì gọi nó số tiền, như chúng tôi đã làm trước đây, chúng ta đang nói chính xác hơn var, mà chỉ có nghĩa là biến. Chúng ta có thể đã sử dụng mà trong Mã của Nick, nhưng anh đã không làm, vì vậy tôi không bận tâm làm điều đó. Đó là một biến gọi là bản đồ, và sau đó có một chức năng mà hình như gọi là initMap. Vì vậy, điều này giống như tùy chỉnh riêng của chúng tôi mảnh ghép trong Scratch. Chúng tôi đã tạo ra một mảnh chức năng gọi initMap, và bạn có thể loại suy luận những gì đang xảy ra ở đây. Ở phía bên tay trái, chúng tôi đã có một biến, vì vậy chúng tôi đang đi để đưa những điều sau đây điều bên trong biến đó, từ phải sang trái. Phía bên tay phải nói, hey trình duyệt, cho tôi một bản đồ mới của Google. Và google.maps.map chỉ là một cách sôi nổi chỉ định rằng chức năng này thuộc về Google Maps. Sau khi các dấu ngoặc đơn, chúng tôi đã nhìn thấy điều này trước, hey trình duyệt, có được tôi các yếu tố trong trang, thẻ trong trang mà độc đáo ID hợp-- Đung [IM LẶNG] DAVID Malan: --map. Và những gì đang xảy ra, tốt, dòng này với nhau, dòng 23, về cơ bản nói, hey trình duyệt, hãy lấy tôi rằng div trống trên trang có ID duy nhất là bản đồ, bởi vì tôi muốn chèn vào it-- tiêm vào nó, nếu bạn will-- một bó toàn bộ nội dung điều đó xảy ra là đến từ các trang web, sau đó. Và Google đang làm tất cả điều đó cho chúng ta. Vì vậy, một lần nữa, vào cuối ngày, chúng ta có ví dụ trừu tượng này. Tôi không có ý tưởng những gì một bản đồ là hoặc làm thế nào để thực hiện một API đồ. Chúng tôi không cần. Chúng tôi chỉ cần nói với bản đồ nơi để đặt chính nó, và để lại những cơ bản thực hiện chi tiết cho Google. Bây giờ có vẻ như là hai mẩu dữ liệu rằng ví dụ này là cung cấp cho các API của Google. Rõ ràng các trung tâm của bản đồ, và mức độ zoom, vậy để nói chuyện. Và không ai nhận ra những tọa độ, vĩ độ và kinh độ? Có lẽ là không, nhưng chúng ta có thể quay trở lại để hướng dẫn, theo nghĩa đen xem. Nhưng chúng ta sẽ thấy nó chỉ trong một khoảnh khắc. mức độ zoom là một giá trị giữa, tôi không đã biết, một trong 13 hoặc một cái gì đó như thế. Nó chỉ cần có để làm với bao xa bạn zoom vào hoặc ra, và đó là nó. Và bây giờ vào cuối của trang, dòng thông báo 29-- đó là một chút xấu xí vì nó wraps-- dòng mã này là những gì tải đến trình duyệt API thực tế của Google. Tất cả các mã mà Google các kỹ sư đã viết rằng thực hiện toàn bộ tính năng này của bản đồ nhúng. Bây giờ chúng ta không thay đổi bất cứ điều gì. Nếu bạn đang theo dõi, đi trước và chỉ cần lưu tập tin đó, nếu bạn thực sự có tôi có gì. Tới URL của nó. Bạn có thể nhấp vào nút Run lên hàng đầu và đó sẽ cho bạn URL của máy chủ web của bạn một lần nữa. Và nó sẽ dẫn bạn đến một tab mới. Nếu bạn nhấn Open để map.html, và tỷ lệ cược là bạn sẽ nhận được một cảnh báo, một thông báo lỗi, có? Thông báo lỗi, thông báo lỗi? Vì vậy, thật không may, các lỗi nhắn mà không phải là khai sáng trừ khi bạn thực sự mở giao diện điều khiển, mà tab đặc biệt chúng tôi giữ mở ngày hôm qua và một chút sớm hôm nay. Nhưng tôi vấp trên này trước đó, vì vậy tôi đã tìm ra những giải pháp là. Trong slide hiện nay, hoặc đúng hơn, trong Cloud9, thông báo rằng chúng tôi đã không làm một cái gì đó cố tình. Chú ý rằng kịch bản này thẻ trong dòng 29, nếu bạn đọc qua nó, nó giống như maps.googleapis.com/ một cái gì đó, một cái gì đó, một cái gì đó, sau đó thông báo một người nào đó, một trong những nhà phát triển, đã viết trong tất cả các nguồn vốn chữ cái, API key của bạn. Chúng tôi cần phải dán một cái gì đó trong đó. Và đây là bước đi Tôi đã làm cho chúng tôi trước, và một lần nữa họ có thể danh sách đen chúng tôi nếu đột nhiên, 12 hoặc nhiều người trong chúng ta bắt đầu sử dụng cùng khóa, nhưng chúng ta hãy xem những gì sẽ xảy ra. Vì vậy, nếu bạn đi vào ngày hôm nay slide, một slide sau, có này chuỗi rất funky-tìm kiếm văn bản. Đi trước và chỉ cần sao chép đó và dán nó mà nó nói API key của bạn. Đó là một trong tôi đăng ký. Và chắc chắn không thử gõ nó ra bằng tay, bởi vì nó cảm thấy đầy với lỗi chính tả, có khả năng. Vì vậy, chỉ cần sao chép và dán. Và nó sẽ làm cho dòng dài hơn, nhưng bây giờ, chỉ để được rõ ràng, nó nên nhìn nhiều hơn một chút như thế này, mà chính bằng không vốn la mắng bạn. Lưu trang của bạn, quay trở lại để các tab khác, nạp lại, và hy vọng sẽ nhìn thấy một bản đồ về nơi? Đung Úc. DAVID Malan: Australia. Vì vậy, dường như đó là những Tọa độ GPS của Úc. Và hãy để tôi đi dạo xung quanh chỉ là một khoảnh khắc và giúp đỡ bất cứ ai không hoàn toàn ở đó, nhưng hãy để tôi đề nghị, thông qua Google, tìm các tọa độ GPS của quê hương của riêng bạn hoặc quốc gia nhà riêng của bạn. Và có lẽ Google có thể tắt chức năng này lên, hoặc Wikipedia có thể cho bạn biết. Nhưng chọn hai giá trị khác nhau cho vĩ độ và kinh độ, đi lại và dán chúng, và sau đó tải lại trang sau khi tiết kiệm và xem nếu bạn có thể có một bản đồ cho quê hương của riêng bạn. Và khi bạn đang thực hiện với đó, theo dõi challenge-- và tôi sẽ cung cấp cho một chút ít hướng, cố ý, vì vậy mà bạn cố tình phải đấu tranh cho một cặp vợ chồng phút với các tài liệu, thay đổi các bản đồ có không này mặc định hoạt hình, nhưng một bản đồ vệ tinh. Vì vậy, bạn thực sự thấy vệ tinh hình ảnh thay vì các màu sắc đẹp. Và những gợi ý, tôi sẽ cung cấp cho bạn là thay đổi loại của bản đồ. Quay trở lại rằng nhận được bắt đầu trang để tìm cảm hứng. Như bạn có thể lượm lặt, nếu bạn đang tìm kiếm, Vẫn còn nhiều nữa những điều bạn có thể làm. Một số trong các bạn có đã thay đổi các loại bản đồ. Nhưng bạn có thể do-- ví dụ, cho tôi đi đến một cái gì đó chúng tôi đã làm cho khóa học Tôi teach-- maps.cs50.net. Một trong các sinh của chúng tôi đã làm điều này. Chúng tôi trung tâm bản đồ của chúng tôi trên Harvard Yard và che phủ tất cả các tên tòa nhà, và chúng tôi đã có anh thêm này. Vì vậy, nếu tôi muốn tìm kiếm, Ví dụ, Matthews Hall, chúng ta có một chút đơn thả xuống. Và tôi nghĩ rằng ông sử dụng Bootstrap, các thư viện, chúng tôi đã thảo luận trước đó cho việc này. Và nếu bạn click vào Matthews Hall, nó ngay lập tức nhảy bản đồ để một số vị trí, và nó show bạn một hình ảnh trong này ít pop-up. Nhưng ngay cả điều này ít pop-up, chúng tôi đã không thực hiện. Nếu tôi di chuyển xuống trên đầu của chúng tôi bắt đầu trang và tìm kiếm cửa sổ thông tin, bạn sẽ thấy rằng một số các chức năng bản thân bạn có thể thêm, mặc dù với một phức tạp hơn một chút, là một cái gì đó gọi là một cửa sổ thông tin. Và nếu tôi nhấp một ví dụ ở đây, và đây là những gì thú vị, bạn có thể làm những việc như thế này, nhấp vào một điểm đánh dấu và sau đó thì đấy, thông tin hiện lên. Vì vậy, chúng tôi đã không hoàn toàn giới thiệu đủ tính năng của JavaScript để vẽ một bức tranh chính xác làm thế nào bạn có thể dây tất cả những thứ này với nhau, nhưng chúng tôi đã loại trầy xước bề mặt. Trong thực tế, những gì tôi chỉ cần làm khi Tôi nhấp vào điểm đánh dấu đó, đã gây ra một sự kiện, một cái gọi là về sự kiện nhấp chuột. Và chúng tôi thực sự thấy một sự kiện trước đó ngày hôm nay, cái gọi là trình sự kiện, khi chúng ta bị ngăn chặn người sử dụng từ tìm kiếm về mèo. Vì vậy, chúng tôi đã loại được chọn và chọn lựa trong số tất cả những tính năng khác nhau, để cung cấp cho bạn một cảm giác, hy vọng, về những gì bạn có thể thực sự làm với nhiều hơn một chút thoải mái trong lập trình, và các nguồn lực hoàn toàn miễn phí. Bất kỳ câu hỏi? Không? Đây là cơ hội cuối cùng của bạn, ít nhất là ngày hôm nay, vào ngày thứ sáu, để có được bất cứ thứ gì ra khỏi ngực của bạn để bạn bước ra khỏi đây cảm thấy tự tin và thoải mái. Vâng. Đung Tại sao không bạn thêm một điều nữa? DAVID Malan: Ôi lòng tốt. Tôi cần phải nghỉ ngơi vào cuối tuần này, tôi nghĩ. Câu hỏi khác? Đung [IM LẶNG] DAVID Malan: Bạn can-- trong Internet Explorer, phần còn lại trong hòa bình, bạn sử dụng để có thể đưa VB kịch bản, kịch bản cơ bản ảo, nhưng đó thực sự không bao giờ bị bắt về. Vì vậy, câu trả lời ngắn chỉ là JavaScript. Câu hỏi khác? Được rồi, tốt, hãy để tôi làm điều này. Hãy để tôi lấy các đồng nghiệp của chúng tôi bên ngoài. Họ có một số đánh giá hình thức mà họ muốn tất cả mọi người để dành một vài phút điền. Họ muốn thu thập hình thức đó và bất kỳ miễn là bạn có thể có bên ngoài. Họ cũng sẽ có giấy chứng nhận. Tôi đoán có vẫn còn một số đồ ăn nhẹ bên ngoài. Hãy để tôi vượt qua những hiểu, và nếu bạn có bất kỳ câu hỏi trong khi chờ đợi, Tôi sẽ đi bộ xung quanh cá nhân hơn và chúng tôi có thể giúp bạn bắt đầu. Phải, tất nhiên. Đung [IM LẶNG] DAVID Malan: Đó là thường đúng những ngày này. Chắc chắn với web phần mềm, bạn đang nghiêng vào người khác bạn đang hoặc thẩm mỹ sử dụng điều như Bootstrap, do đó bạn không phải thực hiện các mức thấp thông tin chi tiết của các menu và nút và tất cả đó. Bạn đang dựa vào một ai đó như Google để bạn không cần phải xây dựng một Uber kinh doanh và một doanh nghiệp lập bản đồ, và bất kỳ số lượng tương tự ứng dụng là tốt. Trong thực tế, thông tin đăng nhập được phổ biến, quá. Nếu bạn đã sử dụng Spotify hay bất kỳ số lượng các trang web, bạn sẽ đăng nhập vào một số website sử dụng Facebook. Vì vậy, những gì là tốt đẹp, có các API cho thông tin đăng nhập ngày nay, do đó bạn không có có bảng người dùng của riêng bạn và tất cả các cơ sở dữ liệu của riêng bạn nhất thiết phải đến mức như vậy. Bạn có thể để Facebook làm tất cả của sự phức tạp cho bạn. Vì vậy, nó là một thời gian thú vị, chân thành, trong chương trình, bởi vì có rất nhiều bên thứ ba dịch vụ mà bạn có thể xây dựng trên đầu trang của. Và một lần nữa, giá mà bạn phải trả là hoặc tài chính hoặc thời gian chết. Nếu Google đi xuống, do đó, hiện Uber, tranh cãi, nhưng có lẽ đó là một hợp lý thương mại-off. Và một lần nữa, đó là một trong các chủ đề, hy vọng, trong vài ngày qua, là những đánh đổi. Và hiếm khi là có đi là một câu trả lời đúng. Nó thực sự là tốt hơn của hai hay nhiều câu trả lời. Vượt qua những xung quanh. Và các tài khoản này sẽ tiếp tục Cloud9 làm việc, trong lý thuyết, vĩnh viễn. Bạn có thể tìm thấy nếu bạn chờ đợi một vài ngày hoặc một tuần hoặc nhiều hơn để đăng nhập lại vào chúng, nó có thể mất như một hoặc năm phút để mở trở lại, nhưng đó chỉ là vì họ đặt nó ngủ để tiết kiệm tài nguyên.