DAVID MALAN: Pekala, biz geri döndük. heyecan verici Yani Sonuç, son bölüm Web programlama, I Biz genel bir terim olarak kullanmak istiyorum düşünce kalan birkaç konu yakalamak için. sonunda bu yüzden gün, biz aslında yapacağız eller web programlama biraz JavaScript adında bir dille. Ve ben bir göz atacağız düşünüyorum Görüntülere ilişkin bir şey de ve bir şey keşfetmek gizlice bir görüntü gizli, ve ayrıca Google'da bakmak Google Maps API, uygulama programlama arayüz, bir şey olarak yazılım tipi için temsili o giderek ve Bugün serbestçe kullanılabilir. Ama neden bir göz atmıyoruz Bu dünyaya bir madde de biz tür been verilen alarak mevcut Bir süre için, bir veri tabanı. Geçtiğimiz gün ve Biz kabul ettik bir buçuk Biz veritabanına erişimi var, ama bu Bir veritabanı sorun ne çözdü mü? Bizim için ne yapar? Bu ne? İZLEYİCİ: [Duyulmaz] DAVID MALAN: tüm bilgileri tutar, bilgi Tamam, ve ne tür bunu koymak olabilir? İZLEYİCİ: [Duyulmaz] DAVID MALAN: her türlü bilgi bunu koymak, geri alırsınız. Bu doğru. Ve tipik bir web tabanlı site veya web üzerinde Uygulama, ne tür bilgiler, Özellikle, sen koymak olabilir? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Kullanıcılar. Yani bir kullanıcı ne? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Tamam, kayıtlı Sitenin kullanıcı. Ve ne anlama geliyor mağaza kullanıcıların bilgi? Ne bir kullanıcı oluşturur? Bir kullanıcı ne var? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, kişisel veri ve ben böyle. en daha hassas olalım. Yani bir kullanıcı tipik bir adı vardır, Bir kullanıcı başka ne olabilir? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Bir addr-- Tamam, bu yüzden ilk isim, soyadı. Bu iyi. Aslında, en düzeltmek edelim , O gidiyor, çünkü için bir fırsat açmak için Tartışma, yine de daha da. Ad, soyadı, cinsiyet. çeşit bir kimlik. Başka? Ben de daha önce başka bir şey duydum. Bir e-posta, posta adresi. Yani orada durup şimdi düşünelim Biz veritabanında depolamak değil, ne belki beri, neden Ama-- değil bariz bir üyeyi beyan kez o, Eğer bir süre onları hatırlamak istiyorum. Sen bunu istemiyorum Sadece RAM saklanabilir ve bu forgotten-- edilmesi en how odaklanalım. Bu o çıkıyor veritabanlarının dünyası, Bugünlerde en az iki türleriyle var. Bir şey, bir SQL veritabanı olarak adlandırılan Yapılandırılmış sorgu dili, ya da şirin adlı SQL değildir NoSQL. Ve ikincisi bir örneği ne olabilir Bir nesne yönelimli çağrılabilir, ya da bir nesne deposu, bir veritabanı Bu nesneleri saklar değil, bahane Benim gibi biz yakında, satır göreceksiniz. Yani biz sadece bir an için ele alacağız Bunlardan ilki, yani, bir SQL Veritabanı, o sadece çünkü eğer çok tanıdık zaten kimseye Excel kullandı kim ya da Google E-Tablolar veya Apple Sayılar ya da herhangi bir standart elektronik tablo programı, veya eşdeğeri, ya da daha sofistike, Microsoft gibi bir şey Access veya Oracle MySQL veya PostgreSQL veya hepsi uygulamaları için ürün adları Aşağıdaki fikir. Bir ilişkisel veritabanı basitçe satır ve sütunları olan bir şey. Ve satırlar ve sütunlar ile, Ben tam anlamıyla bir şey ifade Bu gibi, çok nerede olabilir Bir alan ve buraya kendi türünde adı. Ve aslında, bana izin Şimdi bu harita başlar. Yani aslında, bilmiyorum neden ayrı bir grafik çizdi. Şimdi bu basit tutalım. Biz burada var Masamıza, başlangıçları Bu alanın adıdır ve bu veri türüdür, ve türüne göre ben aşağıdaki demek. o bir sayıdır, bu bir dize bir kelime gibi kısa bir dize, Bir paragraf, o bir görüntü gibi ikili veri? Ve Sadece bu kızdırmak izin birbirinden sadece bir an için. Yani ilk adı, numarası, dize text-- büyük yığın İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, bu yüzden dize. Ve bir veri tabanı bağlamda şunlar genellikle bu karakter alanı diyoruz. Ben sadece biz değiliz ama şu an için kömürü söyleyeceğim Bir an bu rafine olacak. Karakter alanı. Soyadı muhtemelen aynı. Cinsiyet? Erkek veya kadın, o yüzden Bir karakter alanı olabilir. Ya alıntı olabilir, unquote "Erkek" ya da alıntı unquote "kadın" ya da m veya f olabilir. Eğer daha kapsayıcı olmasını istiyorsanız, Üçüncü değer gerekebilir ya da tamamen başka bir alanda çeşit. Ve böylece gerçek false kullanabilirsiniz. alan erkek denilen ve olabilir o zaman doğru veya yanlış söyleyebiliriz. Ama bu mutlaka yakalamak değil isteyebileceğiniz tüm bilgileri. Başka bir tip var dışarı yüzden döner alanın burada yararlı olabileceğini Tipik bir veritabanında, bir adlandırılan Bir karakter alandır enum, ancak, tasarımcı, olsun olası değerleri numaralandırmak, , Alıntı, unquote "erkek" alıntı gibi vb unquote "kadın" ve. Böylece herhangi bir değer Senin veritabanında Gerçekten, karakter tabanlı ama bu o değerlerden biri olmak zorundadır. Biz muhtemelen istemem ad veya soyadı için numaralama. Aksi takdirde olurdu isim olarak, numaralandırmak için kelimenin tam anlamıyla her, türemiştir Mümkün ad ve soyadı. Tamam, ID böylece bir kimlik ne olmalıdır? Evet, belki bir numara. Yani sopa ile izin Şimdilik bu, numarası. Ve sayısına göre, numara Şimdi biraz çok geniş. ikinci sonu için gün, biz gibi hissediyorum Biraz daha hassas olmalıdır. Numara gibi anlamına gelebilir, bunu 1.236 gibi bir şey olabilir. Ve muhtemelen değil Biz bir kimlik ne demek. Biz muhtemelen bir kimlik ile ne demek istiyorsunuz? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Tamam, Ah bu yüzden belki hatta bir sayı değil. Belki de aslında benzersiz bir tanımlayıcı var bir kullanıcı adı gibi bir dize, var. Yani, kesinlikle olabilir. Birisi muhtemelen düşünüyorum olsa da, sayısal geliyordu. Yani bununla kalmasına izin ver. sayı ne tür? Ne var bir daha bir tamsayı precise--. Bu yüzden, bir sayı 0 gibi, 1, 2, 3, bu yüzden biz bu bir tamsayı arayacağım. Ve o zaman bile, I could nitpicking olmak, bu kadar gerçekten sadece bir İstediğiniz genel tamsayı. Muhtemelen, negatif değerler istemiyoruz sırf, sadece tuhaf hissediyor. Muhtemelen pozitif tamsayılar istiyorum. Bu yüzden de ifade edebiliriz bir veritabanında bu, ama şimdi, biz tamsayı söyleyeceğim. E-posta? Bu ne sadece- muhtemelen? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Bu bir e-posta var, ama bu doğru, karakterler değil mi? Bu tıpkı bir korkak karakteri vardır Bir "at" sembolü veya başka bir şey, ama yine de bir karakter alan bulunuyor. Ve posta adresi? Karakter alanı. Yani güzel bir başlangıç, ama Şimdi biraz daha hassas olalım. Bu yüzden çıkıyor bu Bir veritabanı, sık sık daha rafine üzerinde bir seçim var Bunlardan sürümleri. Aslında, tipik bir SQL veritabanında, SQL, veya daha genel olarak, bir ilişkisel veri tabanı, satırlarıyla veritabanları ve sütunlar, sık sık türünü sadece belirtmek olsun field-- bana biraz oda burada-- yapalım ama aynı zamanda uzunluğu. Bir isim Peki ne kadardır? Ben D-A-V-I-D, düşünüyorum. Tamam, anladım muhtemelen sadece yarısı gibi rahatsız odada kişi, sağ, senin isimleri beş daha uzun olduğundan harfler, yani beş küçük bencil görünüyor ve naif, bu yüzden daha iyi bir değer nedir? 10, tamam, ve bence Odaya iyisin. 13? 30? Neden yapmayız Daha önce yaklaşımı biz diziler ve bellek hakkında konuşuyorduk? Neden sadece 1.000 gibi demiyorsun? Kimse adını gidiyor 1000 daha uzun olması. Geri itmek. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, öyle savurgan, sağ, özellikle En isimler ise sadece beş ya da 10 ya da 15 karakter, çok savurgan. Yani biliyor musun? Bu zor bir soru türüdür. Şimdi, biz kesinlikle İngilizce analiz edebilirsiniz ve diğer dilin isimleri ve de, nedir, anlamaya average-- ortalama gerçekten değil maksimum budur us-- yardım Muhtemelen biz gerçekten ne istediğini. Ama bu bile var çıkıyor Burada tür üzerinde bazı seçim. Tipik bir SQL veritabanında, char alan denilen şey var ve aynı zamanda bir varchar V-a-R, Değişken karakter alan için. Ve fark budur. Bir karakter alanı, tasarımcı, önceden belirtmek zorunda alanın tam uzunluğu. Yani belki ilk isim gibi 20 tür güvenli hissediyor. için bazı googling yapmak gerekebilir Bu aslında yeterince güvenli olup olmadığını görmek. 21 ile bir isim muhtemelen var karakterler, ama şimdi, 20 varsayalım güvenlidir. Bir karakter alanı ima bir veritabanında size 20 ve her zaman 20 karakter kullanarak vardır. Şimdi bu sadece D-A-V-I-D, 15 ise Sadece boş karakterler olacak, ama yine de 20 byte kullanıyoruz. Varchar alan, aksine, anlamına gelir dize en fazla 20 karakter olmalıdır ama bu beş sadece eğer, Sadece kullanmak için gidiyoruz Bir beş, ya da belki altı sonunda özel bir değer, Bu 0 gibi biz ele Bir karakterin sonunu belirtir belleğe sırası. Peki ne zaman düşünüyorsun Eğer kömürü tercih edebilirsiniz varchar karşı, bu trade-off verildi? Char birçok karakter, varchar kullanır birçok karakterden fazla kullanır. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Tamam, ne zaman biliyor dizenin uzunluğu oldukça zorlayıcı Sadece eğer kömürü, 'neden kullanmak Eğer sadece bir yere koymak, bunu biliyorsun. Ve belki de bir zip için doğru Kod, ABD'de, en azından 02138, her zaman beş olacak Size kadar karakterler çizgi dört ekleyin. Ama bazı değerlere sahip olabilir hangi zaman uzunluğunu biliyor. Ya da belki devlet sembolleri, New York NY gibi, ve MA ABD'de Massachusetts. Belki bazı durumlar var mı nerede, tamamen makul ama bu mantığa göre, neden biz bile bu overthinking? Neden sadece kullanmayın varchar ve sonra biz sadece edeceğiz zaten her zaman iki karakter kullanın veya Her zaman zaten beş karakterleri kullanın? Neden sadece için varchar kurtarmak değil Her şey o mantık tarafından? bir catch olmalı. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Could Yanlış bir şey yazmak. Yani doğrudur. Ama o zaman bile, onlar kullanamazsınız Ben tahsis fazla bellek. Hala kesin var , Uzunluğu boyunca söylemek bu yüzden yanlışlıkla yapamaz Bu hata, ama iyi bir düşünce. Daha ince, ama çok ilgili olduğunu Bizim tartışma, aslında, diziler ve önceki listeleri bağlantılı. Bu ise, bir veritabanı çıkıyor o değerlerin hepsi olduğunu bilir sabit uzunlukta, olsa bile, Bu değerlerin bazıları, boş tür estetik boş, D-A-V-I-D ve 15 boşlukları, çıkıyor her eğer Alan aynı uzunlukta olan, bir dizi gibi çok onun şeyler vardı geri böylece geri geri geri Sadece artı 1 sonraki almak için olabilir değer, bir veritabanı tablosundaki aynı fikir. Karakterinin eğer tüm dizeleri aynı uzunlukta, Eğer rasgele erişim denen var. tüm dizeleri arasında ise uzunluğu 20, sadece yok yapmak artı 1 Sadece yapmak artı 20 artı 20 artı 20 artı 20, ve çok hızlı bir şekilde gezinebilirsiniz veya tüm verileri üzerinden arama. Bir değişken karakter alanı, aksine, Her zaman 20 karakter yok. Daha sonra, 20 ve sahip olabilir 15 ve daha sonra 19 ve 10, daha sonra ve böylece aramak istiyorsanız, içinden, sadece körü körüne olamaz bir sonraki almak için 20 bayt ekleyin. Kelimenin tam anlamıyla aracılığıyla aramak zorunda Çünkü veri yapısı kenarı, eğer sen, düzensiz olduğunu. Bu tür gider ve dışarı tabanlı dize gerçek uzunluğu. Yani uzunluk olarak biliyorum Kareem, bir karakter alanını kullanın, diyor Bunu kazanmak için olma etkinliği Daha hızlı içinden arama yapmak mümkün veri ararken, Aksi takdirde bir değişken kullanın. Ne yazık ki, ben hiç iyi cevap adı olmalıdır ne kadar süre, ancak böyle bir şey için Bir isim, diyorum ki varchar yaygındır o gitmiyor çünkü herkes için sabit bir uzunlukta olması. 20, Bilmiyorum, 20 Biraz sıkı hissediyor. Sadece 50, 50 diyelim. Gerçekten size mal olmaz 50 yerine 40 söyleyecek çok daha fazla, ancak bir noktada ihtiyacınız Bir karar arama yapmak için. Çok yaygın, açıkçası, için [? tarihi ?] nedenleri, aşırı olsa bile, Çünkü bir süre önce, 255 söylemektir popüler veritabanı sistemlerinde, gibi MySQL, bir açık kaynak aracı Bu şirketler bir sürü gibi hatta Facebook, kullanılan Bu maksimum varsayılan oldu bu yüzden insanlar sadece onunla gitti. Yani mantıksız, ama yaparız değil Biraz daha sezgi kullanın 50 Emin, o, söylemek muhtemelen biraz aşırı. Cinsiyet, ben enum gibi yapmak, ve bu yüzden biz bu nedenle can Erkek veya kadın numaralandırmak, ya da belki daha verimli, m veya ön ya da başka bir sembolojisi ancak enum orada iyi bir seçim gibi hissediyor. Açık olmak gerekirse, cinsiyet Sadece bir varchar olabilir, ve biz sadece tüm olabilir Gibi güzel insanlar katılıyorum her zaman orada aynı değerleri koymak. Erkek veya kadın veya etajer. Ama sorun o zaman, biz olabilir ki [Duyulamaz] önerildiği gibi, bir hata yapmak Daha önce farklı bir bağlamda. Bir hata yaparsanız, biz alabilir Bizim veritabanı yanlış değerler. Yani veritabanları hakkında güzel ne Oracle ve MySQL ve diğerleri gibi, Eğer bu son olması savunma nerede katman DBA, veritabanı yöneticisi, kim gibi biz bu tabloyu tasarlıyor sözlü olan, koyabilirsiniz bir enum yerine o belirterek buna karşı korur erkek, kadın ve böylece hiç kimse Başka hiçbir programcı yanlışlıkla can başka herhangi bir değer alınır. Yani bu iyi bir şey olurdu. Bu bir özelliktir. Yani bir kimlik, bir sayısal kimliği varsayarak, bunu Muhtemelen bir pozitif tam sayı olmalıdır. Ve biz bazen var uzunluğu görüşmek üzere fırsat. Genellikle olmaz Burada bir sayı belirtin yerine belirtmek istiyorum Bu bir int, ya da büyük bir int, Onlar konum olarak genellikle denir. Ancak, tipik olarak, bir tam sayıdır olurdu, en, demek 4 bayt bildirin. Ve bu 4 bayt ise, kaç bit var? İZLEYİCİ: [Duyulmaz] DAVID MALAN: 32 bit. Bu yüzden kaç kullanıcı olabilir Bizim veritabanı hepsi bir kimlik varsa ve bu kimlik benzersiz olmak zorunda? 32 bit biz desenler var demektir biri, iki, üç, dört, five-- sıfır yani kaç farklı desen 32 varsa ve olanları olabilir? Aynı şey soran 32 iki nedir? Bu büyük bir sayı olduğunu Ben oldukça doğru alınamıyor ama kabaca 4 milyar olduğunu biliyorum. Yani bu veritabanı tablo anlamına gelir dört milyar kullanıcı var ve o kadar. Yani bu bir ilginç tasarım ima. şirketlerin iyi bir sayı belki çok değil, karar verdik kullanıcıları tablo için, sahip çünkü 4 milyar kullanıcıları nadir bir sorundur. Bu bir Facebook tarzı bir tür olduğunu Sorun değil, tipik bir şirket sorunu. Ama işlem günlüklerinin var belki ya da sürekli veri çeşit veritabanına yazılır alır kesinlikle milyarlarca olabileceğini ve satır milyarlarca ve Eğer bunun için bir tamsayı kullanın Ne kadar kısa sürede ne olacak Eğer sayı 4 milyar satır olsun ve sonra eklemek deneyin 4000000000 ve 1, tabiri caizse? Ben sayıları biraz basitleştirerek ediyorum. Geri kesebilir, seni kastediyorum nasılsa hallederim zorunda. Ve bir bilgisayar genellikle ne yapacağını, Hatta bu sabah düşün, Eğer 4-bitlik bir değer varsa , 1, 1, 1, 1 gibi olan Sadece sabah kravat Birlikte öğleden sonra ne Bu sayı ikili temsil ediyor? Tamam, biz daha kolay yapacağız. Bu sayıyı ne yapar ikili temsil? Tamam, biz daha kolay yapacağız ne Bu ikili temsil ediyor? İZLEYİCİ: Üç. David MALAN: Üç nedeniyle Biz olanlar column-- [KAHKAHA] Vay! Biz olanları sütun vardı ve ikiler sütunu. Yani, gerçekten, varsayalım bizim [? infield?], 32 bit değildi ancak iki bit biz vardı kullanıcı sayısı 0, 1, 2, 3 saymak, ve sonra biz tür konum kullanıcıya geri 00 tekrar. Yani bu tipik ne olur. Hiç expression-- duydum eğer Eğer have-- eğer muhtemelen, ama tamsayı taşması, seni senin bitlerin tüm saygısız tutmak mümkün olan en büyük değerler için, ve sonra bit bitti, tipik ne olurdu? Neden 00 diyorsun? Peki, bu üç olduğunu. Nasıl 4 temsil ediyor? Ben temsil nasıl ikili sayı 4? İZLEYİCİ: [Duyulmaz] DAVID MALAN: evet Şehre, başına 100 söyleme, bu yanlış, çünkü çağrışım, ama 1-0-0. Bu nedenle bu sayı 1-0-0 gerçekten de Doğru, ama sadece iki bit varsa, Gerçekten ne yaptın? Sen 00 takla attı ettik. Ve gerçekten de, o ne olacağını var. Aslında, aklınıza gelebilecek Bu daha alışkın hakkında. Eğer hatırlayacak olursak, ne 16 yıl önce dünya ne zaman sona gerekiyordu Y2K problemi oldu. Nedendi? Peki çoğu bilgisayar için makul kararlar, gibi sayıları saklamak edildi yıl 1975 ya da 1999 yılı sadece iki basamak kullanarak bilgisayarın belleğinde. Tabii Peki, ne olur Eğer 2000 yılına olsun, evet, yerine bu gitmek ya. Yani 2000 yılına gitmek, ama eğer Sadece görünüyor iki basamak kullanıyorsanız yıl gibi 00 ve böylece takla attı ettik. Ve bu yüzden sistem bir sürü gerekli zamanda güncellenmesi. Yani bu, söz konusu şirketler gibi Facebook bu karşı çalıştırın. işlemek için tek yolu bu yüzden durum, açıkçası, bunu tahmin etmektir. Ya da en temiz yolu Bu durumun üstesinden Bunu yapmazsanız öyle tahmin etmek Daha sonra değişiklik yapmak zorunda. Bunun yerine 8 bayt, biliyor musun? Ben ileri görüşlü olacağım Burada, öyle olsa bile bu biraz iyimser Biz 4 milyar zorunda gidiyoruz ve web sitemizde 1 kullanıcılarının. Ama sadece 8 byte kullanmasına izin veya Genellikle olacaktır 64 bit, Çok teknik, büyük bir tamsayı denir. Ve bu sadece sahip anlamına gelir senin sayı daha da rakam. Ama bu bir önemli tasarım kararı, Eğer bir sayı seçerseniz çünkü anlamlılık çok az bit vardır aslında oluşturabilirsiniz Yazılımda bir hata. Pekala, en tamamlamayı edelim E-posta ve posta adresi ile. Yani e-posta, ne kadar olmalıdır Bir e-posta adresi? 50. Gerçekten hiçbir fikrim yok, ama bu Muhtemelen böyle bir şey, Aksi takdirde hiç kimse gidiyor çünkü çok uzun alırsa size yazmak, böylece 50, Şimdi onunla gidelim. Posta adresi, ne kadar uzun olmalı? İZLEYİCİ: [Duyulmaz] DAVID MALAN: O değil Sadece bir posta kodu, gerçi. Posta adresi, duydum. Yani bu 1 Brattle Meydanı gibi, virgül, Cambridge Mass., virgül, 02138. Ve aslında, bana sadece çekin izin burada küçük bir çalışma sayfasına kadar. öyle gibi bu hissediyor kaçırılmış bir fırsat. Biz 1 Brattle Meydanı varsa, virgül, Cambridge, MA 02138, Biz daha iyisini yapabiliriz gibi hissediyorum sadece posta adresi yerine. Neden bu biraz patlayabilir değil mi? Ne de alıyorum? bunun yerine ne olmalı Buradaki satırlar için, belki? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, bu yüzden atalım street_number diyoruz, ve bir alt bir ortak bir boşluk gibi göründüğünü sahip yolu, ama aslında, değil. Sokak ve ardından özür city--? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Biz bunu yapabilir. Satır bir satır iki. Neden tutacak yok Şimdi basit o ama kesinlikle var: kabul edilebilir bir karar. Ve sonra devlet ve ardından atalım Şimdilik biraz ABD-merkezli olmak ve sadece sırf posta kodu yapmak ilginç bir hata neden olacak Burada ya da sorun. Yani şimdi bizim adres olduğunu varsayalım. O biraz daha sinir bozucu Biz tüm bu daha fazla alan var ama şimdi biz etiketleyebilirsiniz işler biraz daha iyi. Yani şimdi sokak numara muhtemelen olması gerektiği, bir karakter olmamalı? Ne olmalıdır? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Belki, bir numara Yine bir tamsayı gibi? Büyük bir tamsayı? Muhtemelen canlı yoktur 4 milyar Main Street ya da buna benzer deli şey. Yani tamsayı muhtemelen ince, ama kimse vardır Hiç böyle bir adreste yaşayan 1A Brattle Square, ya da 1 ve 1/2? Bunlar, ne yazık ki, mevcut Hatta eğer, orada yaşamış değil Bu anomaliler vardır daire 1A, 1B, 1C gibi. Peki ne biliyoruz, biz muhtemelen tamsayı ile gitmek gerekir, aksi takdirde biz gidiyoruz Bazı satış kaybetmek. Char alan, belki? Ben ne kadar bilmiyorum. Muhtemelen olacak değil yani 10 ya da bir şey, o kadar uzun. Kimse yazacak Daha uzun bir sayı belki. Fakat yine de, biz muhtemelen gerektiğini Buna daha fazla düşünmek. Belki, google biraz araştırma yapmak, ama şimdi bizim cesaret ile gidersiniz. Sokaklar, karakter, 50, bilmiyorum. Bir noktada, hiç kimse gidiyor Bir zarfın üzerine yazmak için, çok, bu yüzden muhtemelen var Orada bazı üst sınırları. Şehir, aynı, tabii, bu yüzden 50 Char. Devlet, şimdi ABD-merkezli olabilir. Bu yüzden çok nazik bir liste olabilir Bir yargı çağrısı, devlet evi. İki karakter gibi olabilir. Yani aslında, belki, ben kömürü söylüyordu. Muhtemelen varchar demek, sadece bazı verimlilik için, ama biz geri geleceğiz bir anda bu karar. devletin uzunluğu 2 bir karakter olabilir. MA gibi sahip oldukları ABD, varsa, Massachusetts, New York, New York, New Jersey, New Jersey ve benzeri. Yani o da sabit olabilir. Washington DC DC. Ama bence, Olivier, sen başka bir yaklaşım önerdi. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, bu yüzden bir var yazmanız biraz can sıkıcı, ancak bir enum, daha mantıklı olabilir Bu şekilde, çünkü ABD'de en azından Eğer, numaralandırmak tediously, ama eğer olabilir Eğer veritabanı sadece bir kez bunu ve bir daha asla düşünmek zorunda o, 50 iki karakter kodları. Yani enum gibi. Çünkü orada o sopa ile yapalım o tür daha titizlik zorlar. Ve sonra posta kodu? Andrew bu konuda bir düşünce olduğunu düşünüyorum İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, beş ya da dokuz. Sadece basit tutalım. Şimdilik sadece beş yapmak. Ama belki ben sadece olabilir Doğru, bir tamsayı mı? I could, ama ne biliyorsun, ben yapılan Bir anlamda kez bu hata. Yıllar önce, ben göç oldu Gmail için Microsoft Outlook, ve Outlook ihracat bir yolu vardır Excel dosyası olarak tüm kişilerinizi, değerler dosyası virgülle ayrılmış bir CSV dosyası. Ve ben, hata yaptım çift ​​tıklayarak arasında düşünmek, Ben ihracat, indirilen kez emin olun Beklediğim gibi görünüyordu. Ben kaydetme veya izin vurmak gerekir tekme falan otomatik kaydetme. Sonra ithal çünkü ne zaman Gmail'de içine, tüm çalıştı. Ama yıllardır, bu güne kadar, ve Ben, 10 yıl önce, bu beş yaptım Hala var arkadaşlar buluyorum Bu gibi görünen adresleri. Niye ya? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Bu sürdü 0, iyi, daha doğrusu, onu olarak tüm posta kodu aldı bir sayı, ve bu nedenle, bu anlamına lider 0 hiçbir anlamı yoktur. Ve böylece 2138 benim posta kodu gibi görünüyor. Ve bu, açıkçası, rahatsız edici bir Excel olduğunu Ben varsayılan olarak düşünüyorum bu sayede özelliği, sadece anlamına olsa bile olmak metin, Microsoft Excel, Bana yardımcı olalım karar verir, ve oh, ben sadece numaralarına bakın. en numaraları gibi bu tedavi edelim. Ve baştaki sıfırları keser. Yemin ederim, her çift ay ben bir adresi bulmak, ve OKB bir tür dışarı, geri dönmek ve 0 eklemek bile asla I rağmen insanlar harf ya da bir şey gönderin. Ama yine de bu kalıntıları buluyorum. Yani bu, demek ki bu iyi bir fikir mi? hayır, tamam, çünkü herkes içinde Massachusetts Bu alanda, Onları lider bir o sahip oluyor. Yani en benzeri gidelim Char, muhtemelen, beş. Ve burada, biz farkında bir enum ve biz kullanabilirsiniz 10.000 numaralandırmak olabilir Mümkün posta kodları, muhtemelen gibi ama hissediyor yararları gibi, bir çizgi kapısı. Eğer girişine varsa o veritabanına kadar veri bir şeye karşı korumak için. Yani karakter yazabilirsiniz fark şehir kodu olarak H-E-L-L-O, hangi değil açıkçası, sayısal. Yani hiçbir şekilde içinde, orada Tipik bir veri tabanı, Sadece sayısal belirtmek için ve Uzun sadece beş karakter, bu yüzden biz gidiyoruz kodda bunu. Biz PHP bunu gidiyoruz ya da Java ya da hangi dili we ' sunucuda kullanarak zorlamak için kısıt bu tür. Vaay böylece herhangi bir soru henüz tamam? Başka bir tasarım kararı yapalım. Bu sizin çıkıyor Ayrıca seçim olsun, Bir SQL veri tabanı tasarımı veya Tipik ilişkisel database-- nerede Yine, ilişkisel sadece Satır ve sütunları anlamına gelir, Bu sizin verilerinin-- düzenlemek nasıl ve, bunun ne anlama geldiğini olduğunu fark Ben yanıltıcı oldum Ben bu drawing-- olduğumu şema denir ne Bir veritabanı tablo için. Bu gibi table-- için teknik özellikler ama zamanı geldiğinde Aslında veri depolamak için, ve biz burada sadece örnek yapacağım. Çünkü, Excel açmak için gidiyorum Excel bana satır ve sütun verecektir. Ve bu tam olarak ne Oracle ve MySQL ve diğer araçları bana verecektir. Ben sadece kullanmak için gidiyorum o bu görüşmelerin aşkına. Beni devam edelim ve açmak bir Burada örnek bir belge, biraz yakınlaştırmak. Yani örneğin, bizim başlıkları şimdi ad, soyad, cinsiyet, kimlik, E-posta, sokak numarası, sokak, hoppala. Sokak, şehir, eyalet, sadece yaklaşık ekranda uyuyor. Peki bunun anlamı olduğunu ne zaman kullanıcı ilk, benim web sitesi için kaydeder o gibi bir şey olacak David, Malan, m, en 1 diyelim malan@harvard.edu, sokak numarası olacak 1 Brattle Square, Cambridge, MA gibi olmak, 02138 ve sonra ileri böylece. Yani diyorum o zaman bir ilişkisel veritabanı veya SQL veritabanı satırlar ve sütunlar olduğunu Ben bu demek. Bu gerçek verilerin depolandığı satırlar ve sütunlar halinde. Bu, sadece bir tesadüf mü Biz konuşurken o, ve ben sadece çizim oldu satırlar ve sütunlar halinde dışarı. Bu, sadece şema kapsamlı tanım. Burada bu alanların Yani, ya da eşdeğer olarak, orada, hangi sizce alanlardır Ben kullanıcı yaşıyorum arama olasılığı değilim ya da ben veritabanı yöneticisi olduğum olur? Gibi ne alanları am I Aslında arama gidiyor? İZLEYİCİ: [Duyulmaz] DAVID MALAN: adı, evet çok Ben, evet ki-- gerçeği gibi E-posta oldukça yaygın olabilir. Maalesef, ad söyledi. Yani belki-- ve yine, biz konum tür soyut konuşuyor. Ben neden olur bilmiyorum Bir isim için arama, ama eğer makul hissediyor Eğer bir kullanıcı arıyoruz. Belki emin, kimlik, ifade eder. Ve bu bir kaygan eğim, I could çünkü bir senaryo nerede icat Belki patronum beni istedi, kaç adam bizim sitede var mı? Kaç kadın Sitemizde var? Ve böylece bu noktada, istediğiniz olabilir Çok cinsiyet alanında aramak için, Başka hiçbir şey. Yani bir trade-off burada var. Yine, orada hiçbir Doğru cevap, ama orada Çoğu SQL veritabanları bir özelliktir dizin, burada adı Eğer, tasarımcı, veritabanı yöneticisi, önceden karar almak hangi Veritabanı optimize etmelidir alanlar aramalar için. Çok safça, optimize söyleyebiliriz Bu, o, bu duruma optimize Bu ve bu duruma, ve veritabanı olacak altında bazı sihirli bir şey yapmak Kaput ve böyle bir şekilde bir şeyler yapmak Bu arama dahaki sefere Bu alanlardan herhangi, Bu, aslında, daha hızlı olacaktır. Bu mümkün. Kendini dışarı iptal etmez. Ama ödenen bir bedel var olmalıdır. Eğer safça ya aşırı coşkuyla diyelim ki, endeks bu alanların hepsi, öylesine yapmak, konuşmak için hepsini verimli aranabilir, muhtemelen ne fiyat ödüyoruz? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Performans. Ne demek istiyorsun? Peki performans, en azından Ben tartışırken ediyorum bağlam, şimdi daha iyidir. Bu indeksleme tanımıdır. Daha hızlı arama yapacaktır. Yani zaman tabiri caizse, azalır. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Uzay. Yani yine, bu ortak bir ticaret vardır. Ben senin aramaları hızlandırabilir, ama bu Size alanı daha fazla bayt mal olacak. Niye ya? Eh, varsayılan olarak, eğer hiçbiri var Bu kırmızı yıldız, bu indeksler hiçbiri, Ben söylüyorum olarak, nasıl arama yaparım Bu veritabanındaki bir isim? Yani çizelim bizim Bu örnekte dikkat. Biz David ve Scully ve Kareem varsa ve bu satırlara Arwa ve diğerleri, Örneğin. Yani tam olarak yapalım. Scully burada ve daha sonra Biz Kareem, ve arwa var ve herkes, bunu yaparsanız değil , Bir dizin tabiri caizse, tanımlanmış olması Yapabileceğiniz en iyi doğrusal arama motorudur. Eğer Arwa için arama, biz değiliz hakkını atlamak mümkün olacak onu hızlı bir şekilde. Biz üst başlatmak için gidiyoruz ve alt tüm yol gitmek, bizim orijinal aksine Mike Smith örnek. Ancak, ben derseniz, hey, veritabanı, endeks ilk adı alanını, o zaman bir şey yapmak için gidiyor meraklısı ve bir şeyler destek ikili arama gibi. Muhtemelen kendi başına ikili arama değil. Veritabanları başka kullanma eğiliminde b- ağaçlar denilen veri yapısı, İkili ağaçları ile karıştırılmamalıdır, Sadece daha hızlı arama yapmak Doğada logaritmik bir şey. Ama fiyat bunu kurmak için ödeme özelliği, bellekte veri yapısı, Daha fazla bayt. Bu yüzden bazı megabayt alabilir, Bazı gigabayt, kim bilir? Bu verilere bağlıdır. bir noktada Yani, karar vermek zorunda, muhtemelen ortak bir durum değildir. Yani gerçek ortak nelerdir durumlarda, gerçekten seçim olsaydı, En sevdiğiniz alanlar ne olabilir? E-posta. Ve ben, e-posta, çünkü e-posta gibi teoride, benzersiz olmalıdır. Ve böylece genellikle, ne zaman biliyor önceden alanlardan birine o bu, ya da benzersiz olacaktır İyi bir alan olma eğilimindedir , Arama bu şekilde çünkü, ne zaman bir şey aramak, geri almak için gidiyoruz ya da yanıtları sıfır ve sonra bitirdiniz. Sen tutmak zorunda değilsiniz Henüz diğerleri arıyor. Ve işte bu durumda, e-posta, iki kez kayıt olamaz sürece Aynı e-posta ile iyi bir tanesidir. tanım ile kimliği bilgisayar dünyası, Bir bahsediyoruz eğer daha benzersiz olan kimliği. Bu çağrışım çeşit Kimlik veya tanımlayıcı. Ve bunlar geri kalanı, olabilir , En zenginler onları güzel diyelim ama gerçekten gerekli değildir. Ve böylece bir veritabanında, Eğer, indeksler belirtmek ancak daha hassas olabilir. Sen hey, veritabanı, emin olun, diyebiliriz bu tablodaki her kimlik tektir. Hatta bir programcı izin vermeyin yanlışlıkla yinelenen bir e-posta koymak veya kimlik numarası çoğaltmak. çeteleler gibi o kadar çok Benzer şekilde sizi bizi korumak Bu alt düzey savunma olabilir. Ve böylece veritabanı tasarımı, içinde bir anlamda, tür eğlenceli, Eğer savunmaya bunu çünkü. Sen bir çeşit işe varsayalım korkunç, korkunç programcılar ile ve birçok savunma koymak istiyorum Verilerinizi korumak için olabildiğince ama aynı zamanda istediğiniz onları daha iyi performans göstermesine yardımcı olacak hangi seçerek alanlar için optimize etmek. Ama ille de bunu yapamaz biz böyle bir vakum tür burada. Sen ne olduğunu bilmek lazım Bu ortak olgular olmak. geliştiriciler ise Bir adres defteri uygulanması, Eğer çok iyi muktedir isteyebilirsiniz Hemen hemen her alanda aramak için, Uygulamadan hemen niteliğine göre. Yani belki harcamak Bu ek alan. Sağ, herhangi bir sorunuz var mı? Evet. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Hayır İZLEYİCİ: [Duyulmaz] DAVID MALAN: Tamam. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Ah, biz bu yüzden Bir şekilde konuşuyorsun Şimdi bu tamamen dil agnostik olduğunu. Bu yüzden hakkında şimdi bahsediyoruz daha genel ilişkisel veritabanları, veya SQL daha genel veritabanları. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Daha iyi bir kelime kullanmak Herhangi bir dilde tarafından kullanılabilir olduğunu. Bu yüzden, C JavaScript kodu yazabilirsiniz Kod, C ++ kod, Java kodu, Ruby kodu, bunların tümü, bir konuşma Veritabanı ve yürütmek sorguları. Aslında, bu bir kötü değil Bir örnek sorguya segue. Ve yine, biz gitmek etmeyeceğiz Java ya da C ++ veya artık o herhangi ancak SQL, dil hangi ı tutmak Structured Query Language, atıfta Bu kendisi bir programlama dilidir, ama hayır, kullanılmak üzere pinti sürpriz, sorgu sorguları yapılandırılmış. Bununla ben bu demek. Verileri seçmek yolu Bir MySQL veritabanı kelimenin tam anlamıyla programda yazın edilir kullanıcıların seçin yıldızı gibi bir şey. Bu tabloda varsayarak yaşıyorum, bundan böyle kullanıcıların denir. Ben, istediğimiz her şey diyebiliriz ama bu tür mantıklı. Ve böylece seçme çok olduğunu Ortak fiil, eğer olacak, SQL, o tam anlamıyla bunu yapmaz. Eğer yıldız sizce ne terimi bu bağlamda? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Üzgünüm? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Gerekli değil, öyle Bundan daha kapsayıcı, aslında. Bu joker karakter. bir anlamı hemen hemen her zaman yıldızı, bu nedenle bu, bu durumda, demek veritabanından her şeyi seçin. Bunu söylemek Yani, demek Her sütun geri ver Tablom kullanıcıları çağırdı. denir Yani, bana bir sonuç kümesi verir. Diğer bir deyişle, bana bir kopyasını vermek tablo, ben de alıyorum budur. Ama dediğim eğer kullanıcılara seçin yıldız ID 1 eşittir, ne kadar büyük olmalıdır benim sonuç kümesi sonra olacak? Veya eşdeğer, kaç satır olmalıdır Veritabanından geri teslim? Muhtemelen sadece bir, ben gerçekten varsa benzersiz bir tanımlayıcı olarak kimliği muamele, ve David benzersiz kimliği varsa, ben bir ve yalnızca bir satır geri almalısınız David'in tüm bilgileri içeren. Dediğim Eğer bu yerde kimliği 99 eşittir, ben geri almalısınız Bu bağlamda, sıfır sıra, en azından şu anda. Ancak, gerçekten umurumda değil Tüm bu bilgiler hakkında, Ben sadece nerede David yaşıyor, söyleyebiliriz? seçin posta kodu ID 1 kullanıcı. Bu benim sadece David'in zip için seçecektir Kod ve bu satırın değil tamamı. Neden yerine bunu yapabilirsiniz Yıldız sorgusu, joker? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, ben sadece bunu gerekebilir. Yani performans yine burada cevaptır. Neden sormak için daha fazla bilgiler, ihtiyacınız olandan Bunun doğru hep birlikte olsa bile, çünkü Hala, bu verileri kopyalamak zorunda veritabanından, görünüyor her nasılsa senin programa, ve bu eğer sadece saçma sadece bu rakamlardan beş gerekir, satırın değil tamamı. Peki nasıl bir kullanıcı eklerim? Bir kullanıcı sadece olduğunu varsayalım ilk defa tescil. sözdizimi genellikle bu gibi görünecektir. Kullanıcılar içine yerleştirin ve o zaman biz, değerleri söyleyebilirim ve sonra değerleri söyleyebilirim gibi, diyelim Lauren Scully let Burada bizim kameraman. Ve bir sonraki alan cinsiyet olduğunu. Bu yüzden alıntı unquote söylerim "F", o zaman bir kimliğe sahip ve ben haydi açarsanız gidiyorum O aslında burada değil taklit bu yüzden hikayede geri sarma edeceğiz. Yani 2 onun kimliği olacaktır. Ve sonra bir sonraki alan burada onun e-posta olduğunu. Yani böyle olacak vb Lauren Scully ve, ve biz sadece nokta nokta olacak Burada uzak nokta. Şimdi biraz alacak sıkıcı, ama insert sorgusu sonuçta böyle olmazdı. Ben kurtulmak istiyorsanız Scully, ah-ah, en kayıttan edelim onu, onun hesabını siler, ID 2 eşit kullanıcılardan silmek, Scully kurtulacaksınız. Ya da ben güncelleme, kullanıcıların set diyebilirim, ne değişebilir, diyelim ki? O hamle varsayalım. Set zip eşittir 021-- hayır, bu onun şimdiki zip var. 90210. Sadece diğer posta kodu Dünyada biliyorum. Yani değiştirmek istiyorum Onun zip, aslında code-- bu onun posta kodunu değiştirmek olmaz. Ben sadece ne yaptın? Olsa sözdizimi muhtemelen yeni. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, herkes taşındı Beverly Hills, California. Yani aslında gerekir ID 2 eşittir söylüyorlar. Ve benzeri. Yani SQL bunlar hakkında tüm Talimatların türlü. , Güncelleme, seçin eklemek, silmek sonunda bu yüklemleri ile Bu nerede hükümler, tabiri caizse. Ve daha bir çok yapabilirsiniz var yapmak, ama gerçekten sadece aşağı kaynar basitçe, eğer arcanely eksprese ne veritabanı yapmak istiyorum. Ve daha sonra veritabanı anlamaya olacak, ne zaman içine Lauren Scully eklemek veritabanı, nerede bellekte onu koymak için biz çok hızlı bir şekilde alabilirsiniz, böylece onu e-posta adresine dayalı ya da onu kimlik numarası veya benzeri dayalı. Evet, Dan. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Gerçekten iyi bir soru. Bu komut dosyaları değişecek Oracle, Microsoft Access MySQL PostgreSQL için? Kısa cevap duruma göre değişir olduğunu. Teorik olarak, çok orada SQL önemli ortak alt kümesi Bu tamamında paylaşılan Bu uygulamaların. Ancak, çeşitli üreticilerin ekledi özelliklere sahip kendi veritabanlarına bazı şeyler yapmak Bu özelliklerin kapsamı dışında, Bu, aslında, bozabilir. yolu geliştiriciler Yani Buna karşı korunmak, bu oldukça çiğ yazı daha SQL kodunu Ben burada yazıyorum gibi bunun yerine bir kütüphane kullanımı, ortak bir kütüphane kendisi ise çeşit üst düzey ve özetler uzakta Kullanmakta olduğunuz ürün. Ve size verir fonksiyonlar ve prosedürler bu yüzden size böyle asla aramak için aslında ham SQL yazma. Teoride, o zaman, değiştirebilir Oracle Microsoft'a ürünler ya da tam tersi ya da bir şey Başka, ve kelimenin tam anlamıyla Kodunuzdaki hakkında hiçbir şey değiştirin. gerçeklik olsa da, bazen, bir bir sonucu olarak özellikleri vazgeçmek. Eğer bir ürün çünkü seçmiş olabilir bu katma değerli özellikler var, ve artık sadece değiliz bilinçli bunları kullanarak. Ve anecdotally, çoğu şirket eğilimi uzakta kendi veritabanına taşımak asla. Bu güzel iken Yani özelliğine sahiptir, gerçeklik Eğer elden eğer, ise veritabanı, sen Muhtemelen diğer değişiklikler demet yapma Neyse, mutlaka bilmediğimiz tahmin etmek gerekir. Yani belki var aşırı mühendislik problemi, ama gerçekten koşullara bağlıdır. Ama teoride, SQL paylaşılır bu çeşitli ürünler arasında. Gerçekten iyi sorular. Evet. İZLEYİCİ: [Duyulmaz] David MALAN: Evet, Eğer bir veritabanı aklınıza gelebilecek sadece bir sunucu sonunda, bir Ve bu sunucunun içinde bir gün bütün bir demet tablolar, satırlar ve sütunlar. Ve böyle bir sorgu göndermek programınızdan, web sitenizin, Java ile yazılmış, Ruby, Python, ne olursa olsun, Sunucu bu komutu alıyor ve bunu yorumlamak kelimenin tam anlamıyla aynı şekilde Bu daha önce açıklandığı yorumlanmış diller, ve daha sonra sıfıra bazı eylemi gerçekleştirmek sıfır veya daha fazla tablolarda veya daha fazla satır. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Kesinlikle, kesinlikle. bir şey için pseudocode Yani gibi bu olabilir. PHP dosyası veya senin içinde Python dosya veya Java dosyası, Eğer pseudocode kodu var, ya da olurdu Çizilmeye benzeri bloklar olarak, kullanıcının ziyaret ettiği takdirde İlk kez acme.com/register~~V, Daha sonra kullanıcılar içine ve benzeri takın. Ve biz bu çevirmek Sonunda daha somut kodu. Ama gerçekten, hepimizin var Burada yapı taşları, bazı atlıyorsun olsa bile uygulama adımları. Bu yüzden bana ne ile hata bulalım biz harika sadece bir an önce yaptı. Sen güzel yarattık kullanıcı için tam bir tablo. Kuşkusuz, biz uygulamak Bir kaç farklı şekilde o ama aslında bize yol açmıştır ve path-- aşağı seni demek ama oldukça muhtemelen benim fault-- var verimsiz veritabanı uygulama. Bu normalize değil. Ve normalize tarafından Demek olacak, zaman içinde önemli bir fazlalık, ve bu nedenle verimsizlik, bu alanın kaybıdır. Burada gördüğünüz sadece ne olabilir dayalı Eğer uzayın nerede bu atık öngörülüyor zamanla, gelen gidiyor, daha fazla kullanıcı kayıt olarak Web siteniz için? Hangi verileri gereksiz hale gelebilir? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Neden böyle demek istiyorsun? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet. Ve amaçları için varsayalım bugün bu doğru olduğunu söyledi. çıkıyor ve biz bu öğrendim zor yoldan, bu doğru değil. Her nasılsa birden şehirler var her nasılsa, aynı posta kodu, hangi bu harika sezgi kırar. Ama, en doğrudur varsayalım hemen hemen her zaman doğrudur, çünkü. Yani bir posta kodu olduğunu varsayalım hep aynı şehir ile ilişkili tür ve devlet, makul varsayım, ama yanlış, o çıkıyor. Ama makul bir varsayım Bugünün amaçlı. Sonra Cambridge yaşadığını varsayalım, MA, bu kullanıcının tabloya göre, ve varsayalım Lauren Scully, Cambridge, MA yaşıyor ve varsayalım Kareem Cambridge, MA yaşıyor, ve Arwa, Cambridge yaşıyor MA, hepimiz 02138 yılında. Neden, Cambridge hatırlayarak MA, hepimiz dört 02138? Ne hatırlamak yeterli olacaktır? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Sadece posta kodu. 02138 mevcut sadece, çünkü biz neler yapabileceğini biliyor musunuz? Biz burada küçük bir fantezi alabilir ve buraya, başka bir tablo tanımlamak Bu olacak nereye adı, bu tip olacak Bu olacak uzunluk ve bundan böyle, ben Benim şehirler tablo bu arayacağım. Bu, bir denirdi Tabii ki, benim kullanıcı tablo. Ve bu yüzden buraya ne üzerine koymak gerekir Benim şehirler tablo için, sizce? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet. Yani devlet ve şehir ve zip. Ve işte tipi, biz söyleyeceğim Bu, yine bir karakter 5 olacak Daha önce bir tartışma konusu. Bu belki de gibi bir enum olacak önce ve şehir varchar 50 olacaktır. Ve şimdi ne alabilirim Bu tablodan silmek için Bu verimsizliği ortadan kaldırmak için? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Güzel. Devlet ve şehir gitmek, bu yüzden şimdi var Potansiyel verimsizliği ortadan için yedekli, Cambridge hatırlayarak MA, Cambridge, MA, Cambridge, MA, Cambridge, MA, umarım ki, asla değişecek. öyle bile, öyle minorly can sıkıcı, şimdi Ben değiştirmek zorunda birden fazla satır, Burada ise, ben sadece olabilir tek bir yerde değiştirin. Şimdi trade-off belki ne var? Bu süper kullanışlı oldu. güzel hep birlikte benim veri vardı. Ama şimdi durum açıkça ne var? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Kesinlikle, ve ben memnunum, kelime katılmak kullanılan , Aslında anahtar kelime çünkü ilişkisel veri tabanları dünyasında SQL, gerçek bir kelime sen yazın ya da en azından iletmek olabilir. Ve aslında, ne şimdi yapmak zorunda David'in tam bilgi seçmek için seçin yıldızı gibi bir şey Kullanıcıların, Firefox veya şimdi, şehirler katılmak Ben sadece ikinci satıra geçmek için gidiyorum Bu fits-- users.zip eşit olacak şekilde users.ID 1 eşittir cities.zip. Yani ne oluyor? Bu seyir çirkin, ama ne tür can bu alt sağ üst soldan okuyun. kullanıcılardan seçin yıldız , Daha önce olduğu gibi aynı ancak başına kullanıcılardan değil. Kullanıcıların şehirler katılmak dan öyle. Ne ben bu iki tablo birleştirme ki? Eh, görünüşe göre, Kullanıcıların tablo alanını zip, ve bu süre sadece özel sözdizimi fikrini ifade etmek, ve bu şehirler tablolar alanını zip olduğunu. Ben, bu iki eşit olmak istiyorum ama sonuçta seçmek istediğiniz sadece bu satırları nerede Kullanıcıların tablosundaki ID benim için oldu, hangi 1 eşittir. Ve sadece temiz olması için, bir programcı, tipik zaman numarası gibi bir şey hardcode 1, çünkü aksi takdirde web sitesi sadece David ya da destekler İlk kullanıcı, sen Bunun yerine yapardı Kimliği, gibi bir şey Bu temsil eden bir Değişken bir şey olduğunu zaman içinde değişebilir, benzer Daha önce de söylediğim ne ruhu içinde tutucuların bu tür. Ama şimdi biz sadece 1 olarak hardcode edeceğiz. Ve böylece bu ne anlama geliyor? Eh, bu görselleştirmek için güzel bir yoldur bu el kullanıcıları tablo ise o, ve bu el fermuarlar ise masa, biz finding-- tür konum ve benim parmak uçları zip vardır Buraya, ve benim parmak uçları Burada sen, zip vardır Bunu birbirine tür Eğer ortaya çıkan geri almak, böylece gerçekten katılarak orijinal tablo, Ortak alanda iki tablo. Ve bu zip olmak zorunda değildir. O başka pek çok şey olabilir, ama zip, kısa değil, çünkü bir güzel İki, her zaman var aynı uzunlukta, yani var gerçek bir verimlilik nedir Olivier burada önerilen zip dışarı Faktoring ile ve [Duyulamaz] biz kurtulmak olduğunu öneren şehir ve devletlerin. Yani bu süreç normalleştirme olarak da bilinir. Bu konuda herhangi bir sorunuz? Peki beni işaret izin Bu, malzeme türüdür oldukça düşük seviyeli olsa bile, Eğer düşünürdüm bu tartışma, Eğer tür alıyoruz otların kaybetti, Bu geniş bir tezahürüdür geliştiriciler için bir fırsat kötü olması. Ve aslında, hatta ne zaman biz, içinde biz aldık zaman kurslar ben öğrettim, Örneğin, deneyimsiz lisans programcılar İlk bakışta, web siteleri inşa, web siteleri müthiş görünebilir. Ve hepsi var işlevselliği biz talep geliştiriciler iyi bir iş yaptı. Ama ille de bilmiyordu veritabanı tasarımı hakkında yeterli ya da zor düşünmüyordu veri türleri hakkında yeterli ve kullanıcı tipleri Web sitesi, için gittiğini ve biz o zaman, bulmak, altı ay sonra, mezun oldukları ya da hareket ettik sonra, Bu kahretsin, web sitemizi Gerçekten, gerçekten yavaş. Ve ben bile sahip bahsetmiyorum milyonlarca ya da binlerce kullanıcı. Ben, kampüste birkaç yüz kullanıcıları ortalama bunların hepsi mi, örneğin, dersler için alışveriş Aynı zamanda, onlar Bu ders katalog kullanarak Uygulama bahsettiğim ve bir şey gerçekten oluyor hiçbir indeksleri vardı çünkü yavaş. Hiçbir kırmızı yıldız vardı bu yüzden konuşmak, ya da biz vardı mutlaka ortak verileri çarpanlarına uzayın bazı tasarruf olsun. Ve böylece bir geliştirici güvenlik araştırması yaparken veya veritabanı kişi ya da bu gibi, düşünmeye tür sorular Hatta olduğunu birinin kodunu incelerken, mutlaka görünmüyor, demek kendi tüm kodu, ama demek aracılığıyla, veritabanı tabloları üzerinden bakalım. Ne depolamak? Ve sonra söylemek, iyi bir bekle dakika, neden bir tamsayı kullanıyorsunuz? Ne 4 milyar varsa ve bu satırların 1? ve bu tür sorular bir fırsattır tür geri itin ve Nerede bir anlamda olsun Eğer yaparken rahat değilseniz o sahip birisi daha teknik Bu soruları sormak olsun ya da olmasın kişinin gerçekten kendi bilir. Ve bu tür şeyler de insanların internet üzerinde kimin belki, kendi kendini eğitmiş olan Sık sık az öğrenmek çünkü sen ille rastlamak yok alabilirsiniz, çünkü çok Veritabanı yukarı ve çalışan, ancak okudum sürece Öğreticiler veya hiç yukarı Veritabanı normalleştirme anlattı ve indeksleme ve performans, Bunlardan türlü size zarar edeceğiz. Ve sizce, yoksa kötü bir mühendis olabilir oh, iyi, daha iyi ücret, diyebilirsiniz Daha büyük bir veritabanı ya da daha hızlı bir veritabanı ya da sadece, bu para atmak dikey ölçek, ille o kadar. Eğer kırmızı alt çizgi gitmek ve gitmek durumunda fact-- ve ekleme endeksler sonra, ve birkaç saat sürebilir Bu yeni veriler oluşturmak için veritabanı Daha önce ima yapısı, Hala, aslında sonra bu çözebilirsiniz Bu nereye olduğunu ayırt başlar kötüden iyi tasarımcılar tasarımcılar, sadece estetik, ancak performans bilge de. Sorusu olan? Yok hayır? Diğer tip olan NoSQL, Yani veritabanının ki ben, daha önce ima etmek satır ve sütun yok. Bunun yerine, bir şey olurdu bu böyle biraz daha görünüyor. Ben ortak bir sözdizimi kullanmak için gidiyorum. Kaşlı başına Burada oldukça çok kullanılacak. Sen bir şey olabilir ilk isim David gibi, Son olabilir adı, tırnak Malan olduğunu Eğer kimliğine sahip olabilir o-- afedersiniz, whoops-- kimlik, 1 E-posta malan@harvard.edu, ve ben olmaz sonra geri kalanı yazmaya zahmet ve başka şeyler. Diğer bir deyişle, bu metinsel gösterimi genellikle dediğimiz Bir bilgisayar programında bir amacı. Ve bir nesne sadece genellikle anahtar değer çiftleri bir koleksiyon. Yani yine, bu yinelenen tema. Biz, HTML anahtar değer çiftleri gördüm Şimdi anahtar değer çiftleri gördüm veritabanlarının bağlamında ve biz de bağlamda anahtar değer çiftleri gördüm , ben bir dil bugün erken saatlerde, düşünüyorum. geliyor tutar. Ve gerçekten de, bu gerçekten hangi verilerin aşağı kaynar, veri ve meta ya da değerler sırası ile ve anahtarlar. Yani olmayan bir ilişkisel Veritabanı, bir şey dayalı Sadece tutam nesneler üzerinde Birlikte her şeyi ve koymak belleğe genellikle olacaktır olarak resmedilmiştir, ya da bu gibi düşündüm. Ve ben bir şekilde şimdi bırakacağım alternatif bir yaklaşım tür. Ve bir zorunlu değildir diğerinden daha iyi. Aslında, çok rağbet Bugünlerde veritabanı sistemleri MongoDB ve REDIS ve birkaç gibi serbestçe kullanılabilir gibi diğer araçlar, ancak en vogue giderek bulunmaktadır. Kısmen bunlar ek sunuyoruz çünkü Bu tablo yaklaşımlara göre özellikleri, ama aynı zamanda çünkü kullanmak için biraz daha kolay, Eğer gibi sert düşünmek zorunda değilsiniz, çünkü Bu tasarım kararlarının bir çok konuda. artıları ve eksileri bu yüzden. Yani seçenek vardır farkındalar ötesinde biz sadece zaman ne harcanan. Yani bu yapalım. Hadi biraz geçiş yapalım şimdi geri web programlama, bu yüzden biz tür sonuçlandırmak olduğunu şey bugün Bu dolgu, biraz eller var dün bazı boşlukları. Beni bu ilk gidelim. Böylece dün hatırlamak bazı kanonik HTML vardı Başlangıçta vardı sayfalar, sadece HTML ve ardından ikincil, CSS vardı Basamaklı Stil Şablonu. Bu we did not yeni etiketi Dün bakın veya üzerinde durmak, Komut dosyası etiketi sözde. aslında bir gömebilirsiniz çıkıyor dil web JavaScript denilen sayfa ve web yapmak sayfaları bir şeyler yapmak. Yani ben ne demek istiyorsunuz? Peki, beni önde ve sadece gidelim Bir an için bu kodu ödünç. Ben Cloud9 gitmek için gidiyorum, gerek Henüz orada kendinizi gitmek için, ve ben bu alert.HTML arayacağım. Burada benim dosyaya yapıştırmak için gidiyorum. Ve sadece ben ne yaptık netleştirmek için, izin Bana, bu adrese gidin ve uyarmak için gitmek ve Merhaba Dünya bkz. Ama bu underwhelming türüdür. bir şeyler yapmak istiyorum biraz farklı. Yani aslında bunu yapmak için gidiyorum. Ben, burada e gidiyorum ve benim komut dosyası etiketleri arasında, ( 'Merhaba dünya') uyarı söylemek; bu yüzden ihbar biraz özensiz, ama HTML var, içinde olan a, JavaScript denilen dil, ve bu bir adlandırılan şeydir işlev çağrısı veya yordam çağrısı. Bu, bu durumda, kelimenin tam anlamıyla bir fiildir ve ben kod işlevi yürütmesini başkasının yazdığı. Böylece işlevsellik bir olduğunu uyarısı, bu yüzden bu sayfaya gidelim ve şimdi artık yeniden yüklenmesini tıklatın ve etkileşim biraz bakın. Bu eski okul ve çirkin tür. Bu tür hatırlatıyor pop-up'lar, belki de geçmişin ama bir şey a yaptın daha programlı küçük. bundan çok daha yapalım daha ilginç bir şey. Beni buraya gitmek ve bu kurtulmak edelim. Ve ben önde gidiyorum ve Dün yaptığımız gibi bir form oluşturun. Aslında, biliyor musun? Ben içine gidiyorum google.html, burada biz gibi görünüyordu, dün başladı Bu, hangi aracılığıyla biz kedi için aradı Ama tür bir orada olduğunu fark geçerli sürümünde hata. Bu kediler için çalışır, ancak varsayalım Ben işbirliği yapmayan ve hiçbir şey yazın ve ben sadece teslim tıklayın. Bu garip davranış türüdür. Gerçek Google götürdü Bana bir hata mesajı vermedi. Ben kullanıcı anlatmak istiyorum Bize bir değer vermek gerekir. Bu yüzden bu nasıl olabilir? Su kuyusu beni Cloud9 ve içine geri dönelim benim sayfanın üst içine gidelim ve böyle bir komut dosyası etiketi ekleyin nerede Bazı JavaScript kodunu yazın gidiyorum. Ve ben aşağıdakileri yapmak için gidiyorum. (Document.getelementByID-- ve hatırlama eğer biz bu erken konuştuk o, Bu işlev. Ne ID ben almak istiyorsun? Ben q almak istiyorum, ve ben gidiyorum diyelim ki paha gibi, hiçbir şey eşittir Aslında bana çift tırnak kullanmasına izin sadece consistency-- için hiçbir şey eşittir, Daha sonra uyarı burada ( "bir sorgu girin"). Bu yüzden gibi görünen var bir koşulu gibi bir şey. Biz Sıfırdan bu genel bir fikir gördüm. Bu, bu bulmacanın biri gibi Bu gibi görünüyordu adettir. Ve ben ne söylüyorum? Eh, burada, ben fark aşağıdakileri yapacak. Bu formu vereceğim q alan bir isim değil, sadece hangi Google'a geçti alır, ama ben ne o yerel bir tanımlayıcı vereceğim, Ayrıca q denir. Ama bu şey diyebiliriz ben istiyorum, ben sadece basit tutmak için gidiyorum ve de sadece basitlik için, q diyoruz. Ve şimdi yapacağım Biraz daha bir şey. Burada form alanları, ben gidiyorum Bir olay işleyicisi ne denir ekleyin. göndermek, ben seslenmek istiyorum validate adında bir işlev. Bu, henüz bu yok kelime, ya da bu fiil doğrulamak, Ben yapacağım çünkü ne Burada şimdi bazı kod ekleyin. Ben fonksiyon validate söylemek için gidiyorum. Ben bu girinti ve başka eklemek için gidiyorum kıvırcık burada bağ ve burada bir tane. Bu şimdi ne yapıyor düşünün. Ben yarattığı gibi, bu düşünmek şimdi-- var benim Daha önce vermedi kendi yapboz parçası var ve ben bu bulmaca aradım doğrulamak bulmaca parçası piece. Hayatta amacına yürütmek için bunun içinde kod dört satır. document.getElementById Eğer böylece kavramsal, Bu elemanın içine gidecek kimin benzersiz HTML öğesi Fikir olsa o zaman sadece q, ve sözdizimi, biraz garip görünüyor Bu eşit sadece equals anlamına eşittir. Yani bunun anlamı eğer element q benzersiz tanımlayıcı, kazanılmış zaman, hiçbir değeri yoktur, sadece eşittir unquote alıntı, hiçbir şey orada, sonra ne yapmak istiyorsun? Ben kullanıcı bağırma istiyorum. Ve biz burada büyük detay gitmeyecek. Ben return false gidiyorum. Bu bir hatadır. Else, ben doğru dönmek için gidiyorum. Yani ya o amele ya da yoktu. Yanlış ya da doğru. Ve ben hiç hata yapmadığını şimdi ise, Beni bu kaydetmek ve bu yeniden edelim. Ve bana sadece çift çek izin vermenizi Ben, aslında, herhangi bir yazım hatası yapmamıştır, bu yüzden kendimi rezil yok. Bu işe yararsa görelim. Yani şimdi ben kedileri yazın gidiyorum. Hala çalışıyor, ya da en azından yarım işleri. Şimdi bana yeniden ve şimdi let Beni yazmadan göndermeyi deneyin herhangibirşey kahretsin, o kırdı. Bir dakika. Bana konsolu açalım, [Duyulamaz], log sayfayı yeniden yükleyin. Beni tekrar deneyelim. Ah, kahretsin. Unuttum. Ben bir yazım hatası yapmış. Ne olduğunu hatırlamıyorum. .value. Ben değer olmadığını söylemek istedim elemanın kimin İD q , Daha sonra kullanıcı bağırma olduğunu eşittir. Yani şimdi beni tekrar nefesimi tutayım. İşte başlıyoruz. Oraya gidiyoruz. bir sorgu girin. Yani beni içinden izin vermiyor. Ben, bu konuda biraz eğlenceli olabilir ve bunun yerine hiçbir değeri denetimi, Ben, böyle bir şey söyleyebiliriz artık kedi ararken, ve şimdi sadece daha fazla oynayarak sağlayabilirsiniz Köpekler için kullanıcı arama eğer o istiyor, ya da ben burada giderseniz ve şimdi yapamam, kediler için arayın. Yani paket burada ne var? Yani bir, biz içine sunduk HTML ve CSS bizim dünyamız, programlama işlevselliği. Ben şimdi gerçekten can kod kararlar. Daha önce, ben yapabileceği tüm işaretlemek olduğunu metinsel içerik veya grafik içerik ve ne bakmak için bunu söylemek gibi ve nerede görüntülemek için. Şimdi ben aslında sorabilirsiniz Web sayfasının sorular ve dayalı kararlar Üzerinde, ve kullanıcı istemi Ben onu ya da onun bağırma gerekiyorsa. Yani bir şeyler deneyelim Bu bizim kendi. Devam et, beni sonraki slaytı açmak izin Burada, sadece bir şey işaret etmektedir. Sadece CSS ile olduğu gibi, biz faktör olabilir ayrı bir dosyaya JavaScript kodu, Eğer aynı şeyi yapabilirsiniz CSS ile olduğu gibi JavaScript. Ve bir kaynağı kullanarak kullanan komut etiketinin bağlıyor. Ama biz şimdi şeyler karmaşık olmayacaktır. Bunun yerine, eğer sen-ebil değil bu sayfaya gidin ama- bana order-- bu etrafta hareket edelim eğer yapabilirsen burada, bu sayfayı gidin. Buradaki URL. Bugünün slaytlar var. Nedeniyle yeniden gerekebilir Ben bir şey bir çift ekledik. Bazı bulmacalar bekliyor yerde ama oraya gitmek. Ve bu bize bir şans verecek, biraz daha eğlenceli bağlamda Bazı JavaScript ile uğraşmak. Ve ne zaman oraya, Ben nelerin beklediğini anlatacağım. yeşil olsun. Mavi ayarlayın. yeşil, kırmızı setleri. Üzgünüz. Üzgünüm. Bu ölçüde olduğunu bizim Bu sorun için belgeler. Ve bu şu şekilde çalışmaya gidiyor. Yani bu konuda ne var sayfa bir sürü olduğunu Bir dostum ile resim bulmaca Stanford Üniversitesi'nde. Yani burada ne görüyorsanız neredeyse Bu sihirli göz bulmaca birinin tür ama sadece ona bakıyorum eğer, hiçbir şey size dışarı pop gidiyor. Aksine, bir şey Bu resimde gizli. Ve şu şekilde gizli. Görüntüler, bildiğiniz gibi, olabilir, Sadece üç renk besteledi. Bazı kırmızı, bazı mavi ve bazı yeşil. Ve hepimiz yapabilirsiniz Gökkuşağının renkleri nedense bu üç renk karıştırılarak. Yani bu çoğunlukla yeşil görünüyor ve mavi, ancak Nick burada söylediği gibi, Bu demir bulmaca resim bulmaca. Bu bir görüntü içeriyor Ünlü bir şey, ancak, görüntü bozuk edilmiştir. Ünlü nesne kırmızı değerler yer almaktadır. Bununla birlikte, kırmızı değerleri Tüm 10 ile ayrılmıştır var. Bu yüzden, 10 kat kadar küçüktür. Bu yüzden, diğer bir deyişle Nick Orijinal görüntü aldı, ve o bütün desaturated bundan kırmızı, kırmızı miktarını düşürücü Mürekkep, eğer sen, o. mavi ve yeşil değerler , Hepsi sadece anlamsız rastgele değerler, aka gürültü tasarlanmış Gerçek görüntü gizlemek için. Peki Nick yaptım o oldu sonra kırmızı ve tonda o sadece rastgele attı mavi ve yeşil miktarları karanlık türüne görüntüsüne hala orada aslında ne. Bu bozulmaları geri almanız gerekir Görüntüyü ortaya çıkarmak için. İlk olarak, tüm mavi ve yeşil değerleri ayarlamak sıfıra yolumdan onları almak için, ve sonuç bak. Sonra 10 ile her bir kırmızı değeri çarpın, kadar geri ölçekleme Yaklaşık son değer. Ünlü nesne nedir? Yani hepiniz bu dikdörtgen var Şu anda tarayıcınızda. Ve bazı olduğunu fark Marş kod, tabiri caizse. Bu JavaScript kodu olduğunu Nick sizin için yazmıştır. Ve orada olduğunu fark ortada bir çizgi olduğunu o, bir eğik çizgi eğik çizgi ile başlar genellikle ne bir açıklama denir. O programcıya bir cümle var demektir bu işlevsel anlama sahiptir. Bu insan sadece görsel bir ipucu var. Yani sen devam et ve olabilir sadece bu satırı silin, ve süper dikkatli olmak silmek ya da başka bir şey değişmez. Ve bana sadece size yol izin Bu kod yapar ve ben onu bırakacağım neler Size gizli görüntü anlamaya. Ben sadece ettik burada bu ilk satırı Vurgulanan size aşağıdaki verir. Sol tarafta, Eğer ne denir var Nick keyfi olduğunu değişken, ama makul görüntü için im çağırdı. Sağ tarafta Bu eşittir işareti, bana yeni bir ver söylüyor alıntı, unquote "basit bir görüntü". Bu bağlamda basit bir görüntü, Iyi bir sınıf olarak adlandırılan şeydir Bir class-- gibi bir şey teknik olarak bir prototype-- ama gerçekten, Bu, bana yeni bir nesne veriyor Dosya olan içeriği, Demir-puzzle.png. Diğer bir deyişle, İsim oluşturdu Basit bir görüntünün bu kavramı Biz pedagojik için, can ve böylece amaçları, görüntü ile oynamak ve onun kırmızı değiştirmek yeşil ve mavi değerleri. Ve nasıl bunu yapıyorsun? Burada bu biraz şifreli sözdizimi tür tekrar bloğu gibi Size bazı eski Scratch içinde gördüm 10 kez tekrarlayabilirsiniz bugün. Bu durumda, Nick var 10 gibi bir sayı kodlanmış. Onun yerine, başlatmak diyor 0 x adında bir değişken, x az olup olmadığını kontrol görüntünün genişliği. Ve böylece daha uygun olacağı, görüntü Değişken, nokta bunun içinde gitmek anlamına gelir ve genişliğini almak ve Daha sonra açık parantez, kapalı parantez sadece bir programcı yoludur Bu bir fonksiyonudur söyleyerek. Bu bir işlemdir. Bu işlevsellik başkası yazdı. kullanın ve bir cevap bana geri ver. Ve daha sonra x ++ bir fantezi yoludur Bir kez bu yaptıktan sonra, söyleyerek, 1 ile x artırmak. Diğer bir deyişle, bu Bir programcının yoludur ve bu bir döngü uyaran üzerinde yineleme olacak Görüntüdeki tüm sütunlar. Bir resim sadece bir ızgara noktalar, satır ve nokta sütunlar. Bu iterating bir yoludur Bu sütunların her yerinde. Ve iç, Bu arada, biz yineleme ediyoruz yükseklikleri, buraya ve burada ve burada. Yani bu traipsing sadece bir yoludur, neredeyse bir eski okul daktilo gibi, Sadece üzerine gitmek iteratif resmin tamamını. Hatta oldukça tamamen değil net, şimdi iman almak, Bu üç satır olduğunu kod birlikte iteratif bakmak için izin gidiyor Her pikselin her görüntüde nokta. Bir piksel nedir? biz bakmak buysa, açık olmak Orijinal olarak ve yakınlaştırmak, Eğer gerçekten gözlerini koyarsanız bilgisayar ekranına, o nokta sadece bir sürü, birkaç bin nokta orada birlikte paketlenmiş. Ve böylece yapmak üzere nelerdir? Bu noktaların her biri, son bir tanım, genellikle ne sonucudur Kırmızı, yeşil, mavi denilen RGB, hangi Yine, kombine edilebilir Size renklerin herhangi bir sayı verir. Aslında, eğer hatırlarsanız , Yıllar önce gelen birçok Bu şey gibi projektör ekranları değil bir lense ama üç olması için kullanılır. Bunlardan biri biri kırmızı ışık tükürmek Onları içlerinden biri, yeşil ışık tükürmek mavi ışığı dışarı tükürmek. Ve bir ortaokulda olsaydı onlar asla nerede gibi oldu düzgün hizalanmış, öyleydin Her zaman tarih film izlerken Bu, biraz bozuk olduğu üç renk değildi çünkü düzgün bir şekilde bir araya getirilmesi. Ama her çıkıyor Kırmızı, yeşil ve mavi bu değerler, onlarla ilişkili bir sayı olabilir. Örneğin, kırmızı için 0 hayır anlamına gelir kırmızı, yeşil için 0 hiçbir yeşil anlamına gelir, ve mavi için 0 hiç mavi anlamına gelir. Yani hiçbir kırmızı, hiçbir yeşil varsa, ve mavi hayır, ne renk var mı? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Verirsin yani, beyaz umuyoruz. Ne yazık ki, bu üzgün operates--? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Size Yani aslında Bu durumda, siyah sahiptir. Yani bunların hiçbiri varsa Renkleri siyah var, döndü. Ancak, varsa, en çok diyelim Bunlardan kırmızı bir sürü gibi, bunun 255, yeşil bir sürü, ve daha bir çok mavi, o beyaz. Peki bu iki uç vardır. Ben çok şey var bu mantıkla Yani, eğer kırmızı ve hiç yeşil ve hiçbir mavi, bu ne renk? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Doğru, tabii ki. ve daha sonra hiçbir kırmızı, çok Yeşil hiçbir mavi, ve sonra İyi have-- eğer, biz sadece bitireceğim Bu sırf, ancak bu, tabii ki, Şimdi, mavi. Ve şimdi bu renkleri birleştirebilirsiniz. Şimdi bir kenara, size herhangi birine sahipseniz olarak Hiç bazı gerçek web sitesi tasarımı yapılır, Aslında belki Böyle sembolleri bakın. FFF-- ve aslında, bu kadar muhtemelen bile. Bu FFFFFF var. Hiç kimse F en ve E 's görüldü ve A through-- o çıkıyor yani Biz ondalık ilgili dün konuştuk ve bugün, tür ondalık ilgili. Bugün ikili hakkında konuştuk. çıkıyor onaltılık bir çok olduğunu ortak temel sistem bilgisayar kullanmak için. İkili iki ondalık 10, onaltılık 16'dır. Ve bunu nasıl çıkıyor Eğer onaltılık saymak? Sıfır, bir, iki, üç, dört, beş, altı, yedi, sekiz, Dokuz, sen dokuz sonra ne kullanıyorsunuz? Bir sonraki sayı nedir? Biz zaten sıfır kullanılır. Ben bu 16 ihtiyacımız var. Sıfır, bir, iki, üç, dört, beş, altı, yedi, sekiz, dokuz, Bazı keyfi kuralını gerekir. Peki insanlığın biraz zaman karar önce dokuz harf olduğunu geldikten sonra A ve O zaman oda ve sonra C yolu onaltılık saymak sıfır, bir, iki, üç, dört, beş, altı, yedi, sekiz, dokuz, A, B, C, D, E, F ve sayar tüm yol, bu 15, çıkıyor. Yani 15 sıfır sıfır geçer F. Şimdi neden önemlidir? Eh, iki F adlı varken, Eğer 255 nasıl ifade bu. lafın kısası, çok uzun Photoshop dünyası, Bu grafik tasarım yazılımları, web geliştirme dünyasında, renkler çok var burada, Elbette oynamak, genellikle programcılar olacak , Onaltılık olanlar ifade sadece eğilimi nedeniyle Biraz daha basit olması. Hatta ilk bakışta rağmen çok daha karmaşık. Yani her halükarda, bu önemli Stanford'da Nick çünkü Bize işlevsellik altı adet vermiş Sen misin, tomurcuklanan programcılar, Şimdi kullanabilme becerisine sahip olur. Bu web içine yerleşik sayfa altı işlevleri, Nick yazdı altı prosedürleri. Üçü bir numara alacaksınız, kırmızı, yeşil veya mavi bir değer. Üç tanesi bu değeri ayarlar. Ve bu çizgi Sadece tutuculardır, bu yüzden o ne olduğunu bilmek gerekir. Bu üç fonksiyon Yani, Bunlardan ilk x-koordinatı olacak, ve bunlar ikinci Bir y koordinatı olacak. dot Başka bir deyişle, hangi pixel Eğer yeşil almak istiyorsun, , Mavisini get kırmızı olsun. Ve daha sonra burada, bu olacak x, bu y değeri olacak, ve bu bir numara olacak. Yani ilk yapalım Bu çizgi bir araya ve sonra ben size bırakacağım gerisini anlamak için denemek için. talimatlara göre Yani Bu sayfada, ihtiyacımız bir faktör ile kırmızı geliştirmek için 10 ve biz yeşil kaldırmak gerekir ve mavi çıkarın. en son senaryolar ile başlayalım. Ben istiyorum, ve ben gidiyorum Yani Bazı boşluklar kullanılarak girinti için, Ben kırmızı ayarlamak istiyorsanız, yeşil veya mavi değer, Ben aşağıdakileri yapmak için gidiyorum. Görüntü, im.setBlue ve Burada benim talimatlara göre, Ne üç şey yapayım Şimdi içeride parantez yazın? Ben x değerini ihtiyaç Ne numarası y değeri ve Ben kurtulmak istiyorsanız buraya koymak gerekir mavi, burada bu hikaye dayanmaktadır? Sadece sıfır. Ben hiçbir mavi istiyorsanız, ben sadece sıfıra değiştirmek için gidiyor. Şimdi sadece bu ne yaptığını özetleyelim. Ben bu üst burada var İkinci ve üçüncü satır, Ben, iki döngüler iddia İç içe döngüler, eğer O etkiye sahip olacak olacak sağa soldan ilerliyor, X tümü üzerinde yukarıdan aşağıya Değerler ve y değerlerinin her. Yine Çünkü, bir resim satır ve sütun sadece bir ızgara. Yani bu almak için gidiyor tüm mavi kurtulmak. Sana sonraki satırda bırakalım. Nasıl bütün yeşil kurtulurum? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Güzel. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Güzel. Ve ben uzaklaştırmak için gidiyor ve sadece almak ediyorum Eğer herhangi bir yazım hatası yapmadı ettik bakımı. Ve sen rahat iseniz Ne yaptığına ile, devam edin ve düğmesine tıklayın / Çalıştır Kaydet ve ne olsun bakın. Ve yine, biz yaptık sadece üç değişir. Biz ilk silinmiş Yorum ve yerini bu iki kod hatları ile. Eğer vurmak gerekir ve eğer Tamam Çalıştır / Kaydet düğmesi birkaç kez bir şey düzeltmek için. Ve ben de yakınlaştırmak izin benim kodu yazıya böylece. İyi. Yani Andrew ne var bakın Bir hata gibi görünüyor. O sadece büyük bir siyah var onun ekranda dikdörtgen. Başkasının var mı büyük bir siyah dikdörtgen? İZLEYİCİ: Evet. DAVID MALAN: Büyük siyah dikdörtgen? Tamam, bu yüzden düşünelim Bu ne anlama geldiği hakkında. Biz sıfır olduğunu, sıfır, sıfır, dedi böylece hiçbir yeşil, hiçbir kırmızı, hayır, mavi, Size siyah verecek. Ve o çıkıyor Bizim dizüstü bilgisayarlar en yeterli sadakat yok. Oldukça orada söyleyemem Aslında orada bir şeydir. Ve ne tür belki yalın ileri ve geri ekran, belki bir görüyor musun Orada küçük bir şey? Belki, biraz, çeşit? Bu mükemmel siyah değil. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Spoiler! bazı kırmızı, orada ama özelliklerine hatırlıyorum Sorunun, Nick aşağı tonda. O, biraz o desaturated ancak sıfıra tüm yol. Bu yüzden miktarını büyütmek istiyorsanız kırmızı, bana bu hileyi teklif edelim. benim ekranda yakınlaştırmak edelim. Ve beni go ahead ve diyelim miktarı im.getRed (x, y) 'a eşittir. Bu kod satırı, beni veriyor bir şey bir değişken çağırdı. Ben, belki, keyfi var, ama makul benim değişken ne denir, görünüşe göre? Tutar. Sadece miktar. Onu aradım olabilir şey istediğim, ama ben Bu diğer işlevini kullanarak Daha önce tarif edilen x virgül y de kırmızı miktarını almak için. Neden bunu yaptın? Burada ne yapmak istiyorsun? Sen DİNLEME EKLE gerekir İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet, belki 10 ile çarpın. Eğer bu bilmiyorsanız eğer, ben go ahead ve bunu yapmak için gidiyor. Ben devam edeceğim ve diyelim ki, ben kırmızı miktarını istiyorum Ben ne olursa olsun olmak istiyorum , Kırmızı olan, 10 kez ve yıldız, minik yıldız senin Klavye Şeyin x kullanabilirsiniz kalmamasıdır. yıldız kullanın. Yani bir şeyler çarpma nasıl çoğu programlama dillerinde. Yani Kareem'in sezgi göre, miktar olarak adlandırılan bu değişkende saklanır, Konumu xy de istiyorum ne kadar kırmızıdır. Nasıl, şimdi, bunu yapabilirim Bu dizi var piksel? Zaten daha önce yaptık. Yeşil ve set sıfıra, hiçbir değere mavi. İZLEYİCİ: [Duyulmaz] DAVID MALAN: iyi, Evet Eğer 10 bunu istemiyorum. Zaten burada matematik yaptım. Bu yüzden, kırmızı değerini alıyorsanız hangi muhtemelen düşük bir sayıdır. Biz 10 tarafından çarparak ediyoruz. Eğer yapmak istediğiniz ne Şimdi değişebilen miktarda? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Güzel. Peki im.set--? İZLEYİCİ: setRed. DAVID MALAN: konum xy de, setRed. Evet. Ve sadece miktarı. Diğer bir deyişle, bir değişken geçici bir yer tutucudur Bu size istediğiniz her şeyi koyabilirsiniz. Biz koyarak için ne Şu anda o sayı. Biz bunu çarpılır ettik 10 daha büyük hale getirmek için. Ve şimdi bu değişken ikame ediyorum üçüncü argüman, ya da girdi olarak kırmızı ayarlamak için. Ve böylece size bir kez Bu bitirmek ve dikkat Yarı kolon ve parantez. Devam edin ve tıklayın / Run tekrar kaydetmek ve görmelisiniz, sihirli, aslında neydi Orada. [? Arwa?] Ne var ki? tam teşekküllü Eyfel Kulesi kırmızı, oldukça karanlık değil. evet, şimdi daha açık olmalı? TAMAM. Ve Andrew, artık kara kutu? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Pekala. Yani ekranda bu tutacağız. Bununla oynamak istiyorsanız Daha sonra, ben senin için bu yeniden edeceğiz. Ama bu kod burada tam olarak yaptım. Neden diğerini yapmıyoruz. beni biraz aşağı ilerleyin edelim. Bu durumda, projektör Yani gerçekten adalet yapmaz. Ama ekranlarında, muhtemelen Bir çok kırmızı ve çok siyah bir kutu var. Bu da, bir bulmaca olduğunu Ünlü bir şey gösteriyor. Ancak, görüntü tahrif edilmiştir. Gerçek görüntü, bu sefer, bir mavi ve yeşil değerleri. Ancak, tüm ayrılır ettik 20 bunu değerleri çok küçüktür. Kırmızı değerler sadece vardır rastgele sayılar, gürültü. Bu bozulmaları geri al Gerçek görüntü ortaya çıkarmak için. Yani Nick sonra ne söyler. sıfıra kırmızı değerleri ayarlayın ve Daha sonra ne olduğunu yağma yok. Sonra mavi çarpma ve 20 yeşil değerleri. Yani neredeyse var Aynı program daha önce olduğu gibi, ancak süreci tersine ediyoruz. Ve ben kod adlı koyacağız önce durumda ekranda ona geri başvurmak istiyorum ya da biri ile daha oynar. Bana bu konuda yakınlaştırmak edelim. Ama bakır görüntü çözmek bulmaca, iki numaralı. İZLEYİCİ: [Duyulmaz] DAVID MALAN: Tamam, ben bu bir gibi birçok ipuçları vermek için gitmiyorum. Yani oh, haydi ben-- Burada bir yazım hatası var, bakın. Yani bu, burada hatırlamak aslında oraya gitmek gerekiyor. isterseniz Yani, teklif ne Bu bir odaklanmak, yanıt var. Bunu, o uyarlamak istiyorsanız İlki çalışma almak gerekir. Ve sonra da onu kullanabilirsiniz İkinci biri için ilham. Güzel. İyi. Ve meraklı için, Bu basit bir örnek Bir bilim veya sanat steganography denilen Görüntülerde bilgi gizleme sanatı. Tipik haliyle, görüntü olabilir çok pervasızca filigranlı altındaki bir logo ile Köşe ama açıkça, sen çok daha sofistike olabilir Bu konuda aslında Görüntüler diğer görüntüleri gizlemek nedense bu teknikle. Başka bir 30 saniye sürebilir ve sonra yaparız En azından ne görmeniz gerektiğini duyurdu. Ve üçüncü bırakacağım Bir evde egzersiz biri, Bir daha isterseniz Bu hafta sonu meydan. Ve ben Andrew olabilir düşünüyorum ilk önce aldık. İkinci görüntü, Andrew nedir? İZLEYİCİ: Özgürlük Anıtı. DAVID MALAN: Özgürlük Anıtı Cevap, bu sefer olacak. Yani yine, sadece bazı basit örnekler, hedef olan Size nasıl bir fikir vermek Biz resimsel Scratch tercüme ettik daha rahatsız edici ve daha bloklar karmaşık kod, ama fikirlerin hepsi Tam hala aynı, giriş ile de olsa Şimdi bir değişkenin kavramının, varlık geçici bir şey saklamak mümkün. Hadi bir daha eller yapalım şimdi noktalar bağlamak için bir şey biraz daha gerçek dünya için. Hazır olduğunuzda, eğer sen-ebil Ekranda bu URL'ye gidin. Bu sizin kopyası da var slaytlar, developers.google.com/maps~~V. en gerçekten bir şeyler yapalım Gerçek, bu yüzden web üzerinde, konuşmak Google Maps API kullanarak veya uygulama programlama Arayüzü, şu şekilde. Google, birçok şirket gibi, serbest işlevsellik bir sürü sağlar Eğer oluşturmak için kullanabileceğiniz bu senin Kendi ilginç uygulamalar. Aslında, hiç kullandıysanız Uber taksi veya araba almak için, muhtemelen Uber olduğunu biliyor Bir harita ve bunun üzerinde araba gösterir. Yani, ben mümkün olduğunca en iyi olarak Google Maps API söyle. Onlar aslında, Google'ın haritalar kullanıyor ama Uber bir haritalama şirketi değil, ne bu olurdu Özellikle ilginç bir problem üstünde çözmek için onların araba servisi sorunu. Ve böylece duruyoruz, Yine, omuzlarında diğerleri, bu durumda hakkında. Bu yüzden Google'ın haritalar ancak kendi kullanımı araba servisleri ve benzeri özellikleri. Bu yüzden yararlanmak için gidiyoruz Bu takibini yapmak. Ve ben, çok hızlı gittin eğer Sadece bir an beni arayın. Görüntü bazı şeyler tekrarlamak için mutlu. Kendini görmelisiniz Böyle bir sayfada. Yani Google'ın güzel ve Onlar arasında en iyi konum sadece API'leri sağlayan, ancak serbest API'ler bu size ile oynamak ya da ticari olarak kullanabilirsiniz. Onlar sizin kullanım eğer şarj başlar yüksek, ama önceden öne geçti ve ücretsiz bir hesap için bize kaydoldum umarım, 10 bilgisayar, o aniden bizi diskalifiye olmayacaktır. Yani umarım bu gösteri çalışacaktır. Ve onlar için API'leri olduğunu fark Android, iOS, web ve web hizmetleri, ne olursa olsun, yani. en web odaklanalım. Yani pembe kutu, web tıklayın ve bu Bir sayfaya, umarım, sizi götürecek İşte. Ve onlar API'ler bir sürü var. Ve biraz olabilir ilk başta ezici, ama istediğimiz bize yönlendirmek gerekir. Sol üst taraftaki Google Maps olduğunu JavaScript API, JavaScript API. Şimdi git ve o birini tıklatın. Ve şimdi götürecek sayfa, demolar ve örnek kod aşağıdaki. Beni burada uzaklaştırmak edelim. Ve bize aşağı kaydırmak aşağıdaki amaçlara beni dönelim o hızlı başlangıç ​​adımları diyor nerede. Ekran benim gibi görünmelidir. Ve iki adım var, olsun anahtar ve geliştirmeye başlayacağız. Ben zaten birinci adımı yaptım Bize, bir sözde anahtar alınıyor. Ve bu ortak bir fikir. Bir API anahtarı sadece genellikle Büyük bir rasgele sayı veya dize Eğer gerekiyordu olduğunu senin koduna yapıştırmak için, Google bilir böylece zaman kim Eğer, onların API onların hizmetini kullanarak ediyoruz. Biz anlamına gelmez bir şey şarj ediliyor. Ve şimdi, tıklayın, yerine bir, gelişmekte başlamak tıklayın. Sadece beni dalga olsaydı üzerinde nerede olduğumuzu olmadığından emin. Yani biz sadece kaşıyım Yüzey, burada ama ne Ben zorlayıcı olacağını düşündüm aslında hepimizin sahip olmaktır, Bir pencerede Cloud9 kullanarak başka bir pencerede Bu eğitimde, aslında kendi almak sağlar Uygulama yukarı ve çalışan Bu özel bir Google gömer Kendi web sayfanıza Haritayı ve daha sonra bir ya da iki özellikler ekler. Ama biz sadece kaşıyım yapabileceklerimizin yüzeyi. Yani sadece hızlı aklı kontrol. Herkes, bu sayfada mı Google Haritalar JavaScript API? başlarken diyebilirim. Biz geçmesi için gitmiyoruz herhangi bir yolla her şey. Tamam, başka bir sekmede, sen yapmazsan Cloud9 içine gidin, onu açık var ve kendinizi sadece almak Yeni bir sekme, sonuçta. Yani yine, dünden c9.io, c9.io ve sadece yeni bir dosya oluşturun. Ve önde ve çağrı gitmek o ne olursa olsun istiyoruz. Ben benim map.html aradım. .html ile biten şey diyoruz. Ve kabaca olmalıdır Ben bu süreçte nerede Boş sadece yanıp sönen istemi ile Sekme map.html gibi bir şey denir. Veya dosya, yeni bir dosya bu kez. Ve şimdi, aşkın Google Maps JavaScript API, Biz okuma atlamak Bu metnin tüm aracılığıyla. Ama bu merhaba dünya fark Gerçekten her yerde, şimdi görüyorum. Merhaba dünya renkli bu büyük vardır HTML sürü örneği. Devam edin ve kopyalama ve sadece yapıştırma HTML, üstündeki doc türünden böylece yakın HTML etiketine tüm yol gitmek önde ve yine ki- tüm kopyalama, merhaba dünya altında sonra, örneğin ve senin Cloud9 sekmesine içine yapıştırın böylece şimdi ekran kabaca Benimki gibi görünmelidir. Ve bunu kaydetmek, ancak Sadece henüz yüklenmez. En diyelim ilk bakış Kod ve görmek eğer biz anlaması ya da öğrenemez Google ne gelen bize körü körüne Kopyalama ve yapıştırma olmuştur. Sadece yardım etmek istiyorum, kelimenin tam anlamıyla, bizi başlamak, ama bu pek bir şey yok Aslında orada karmaşıklığı. Herhangi bir sorunuz henüz? Biz sağlam adımlarla ilerlemek için güvenli mi? TAMAM. Çok hızlı bir şekilde, Sadece yapalım bazı hızlı aklı kontrol eder. Line biri ne , Seni görmek ve umarım , Yani doctype HTML ne demek bkz? Kareem, hatırlama? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Evet. İşte HTML 5 geliyor. Bu arada, iki tane hat Ekran burada, hey tarayıcı anlamına gelir Burada asıl HTML geliyor. Hat üç hey tarayıcı, Burada baş geliyor. Çizgi dört hey, elbette, tarayıcı, burada başlık geliyor. Satır beş ne ​​işe yarar? Aslında bu değil gerçekten bizim için her şeyi yaparım. Bu durumda, sadece yeniden boyutlandırılır varsayılan bir sayfa. Çizgi altı, Konuştuğumuz, ama değil karakter kodlamasını belirtir. dosyalarını kodlamak için farklı yollar var, Özellikle yabancı dil. UTF-8 sadece varsayılan olma eğilimindedir. Yani şimdi biz satır görürsünüz 16'ya kadar yedi, bazı CSS. Ve biz görmedim bile daha önce tüm bunları, biz tür çıkarabiliriz. Yani tarayıcı hey, uygulamak, sekiz araçları hat Aşağıdaki iki etiketleri tüm görünüşe göre? HTML ve gövde metni. Yani virgül orada yeni bir şey. Ve bu sadece bir yolu var Aynı anda birden fazla etiket belirterek. Sonra küme parantezi var. Yani görünüşe göre, bu tarayıcıyı söyler, sayfa 100% yüksekliğini yapmak. Yani çok az olsa bile içerik, tam sayfa yapmak, şey sayfayı doldurmak yapmak. Harita sonuçta sayfayı doldurmak emin olun. Marj, bu ne anlama geliyor? Bu keyfi gibi genellikle var kenarlarda boşluk Bazı tarayıcı tasarımcı sadece Orada olmalı karar çünkü o tür şeyler daha temiz görünmesini sağlar. Ama biz bunu istemiyoruz. Biz harita gidiyor istiyoruz kenarlarına tüm yol. Dolgu, kenarlarına ruhu içinde benzer. Kenar boşlukları dışında dolgu araçları demek içinde, ancak anlaşma aynı tür. Bir tampon biraz var: Sen ve kenarları arasında. Ve sonra hat 13 iyi Hızlı bir gözden geçirme için bir şans. Ne keskin işareti haritası yok Yani, ya da hashtag haritası demek? Bu ilke olarak, ne ifade ediyor? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Kesinlikle. Bu özellik, bu CSS özelliği sadece tek bir şey için geçerlidir, HTML etiketi Bu, unquote "harita" alıntı bir kimliği vardır. Ve şimdi gelelim hızlı ileri kaydırma Dosyanın altına, aşağı hangi çok uzakta değil, ve on line haber 19, benim yaptığım gibi tam yapıştırın eğer, Satır 19 olan sadece bir div var Sayfanın, dün bölünmesi dikdörtgen bölge çağırdı. İçinde hiçbir şey var. Bu açık bir etiket, yakın etiketi. Ama benzersiz bir kimliği var. Peki gibi görünüyor Buradaki Google'ın için web sayfamızı readying olduğunu Tam% 100 yüksekliğe sahip, ve hiçbir doldurma, hiçbir kenar boşlukları, çünkü ne içine koymak için gidiyoruz kimin benzersiz bir kimliktir bu div içinde harita, gerçek bir gömülü haritasıdır. Ve biz bunu doldurmak istiyor sayfa ve sadece Ortada bazı küçük dikdörtgen. Yani çizgi 14 Benzer şekilde, vurgular % 100'lük bir yüksekliğe sahip olmalıdır kendini mesafededir. Yani şimdi hatları 20 arasında fark ve 28 bu JavaScript kodudur. Ve bu olsa bile, bir Biraz garip sözdizimsel tüm bu kadar burada orada gitmiyor. 21 hattı, bu ilan edilir bir şey bir değişken çağırdı. Bunun yerine çağırma Daha önce yaptığımız gibi, miktarları, daha doğrusu söylüyorsun Sadece değişken anlamına var. Biz bu kullanmış olabilir Nick'in kodu ama yapmadı, bu yüzden ya bunu yaparken rahatsız etmedi. Bu adında bir değişken var harita ve ardından var bir işlevin görünüşe göre initMap aradı. Yani bu bizim kendi özel gibi Scratch bulmaca parçası. Biz bir parça oluşturduk initMap adı işlevsellik ve ne tür çıkarabiliriz Burada neler oluyor. Sol tarafta, Biz bir değişken var, bu yüzden aşağıdaki koymak için gidiyoruz bu değişken içinde bir şey, sağdan sola. Sağ taraftaki hey, diyor tarayıcı, bana yeni bir Google haritasını verir. Ve google.maps.map sadece bir korkak bir yoldur Bu işlevsellik olduğunu belirten Google Maps aittir. Parantez sonra gördük Bu daha önce, tarayıcı hey olsun Beni sayfa elemanları, benzersiz kimlik sayfasında etiketi o-- İZLEYİCİ: [Duyulmaz] DAVID MALAN: --map. Ve ne de oluyor Birlikte bu hat, hat 23, esasen diyor, tarayıcı hey, beni gidip sayfadaki o boş div kimin benzersiz bir kimlik harita, Ben eklemek istiyorum çünkü bu-- içine enjekte içine, içerik bir sürü will-- eğer Bu web geliyor olur, Daha sonra. Ve Google'ın bizim için tüm yapıyor. Yani yine, günün en sonunda, soyutlamaya bu örnek var. Bir harita ne hiçbir fikrim yok ya da nasıl bir harita API uygulamak. Biz gerek yok. Biz sadece harita söylemek gerekir nerede kendini koymak ve ayrılmak Bu temel uygulama Google'a ayrıntıları. Şimdi görünüşe göre orada veri iki adet Bu örnekte olduğu Google'ın API sağlar. Görünüşe göre haritanın merkezi, ve yakınlaştırma düzeyini, tabiri caizse. Ve herkes bu tanımak yok koordinatlar, enlem ve boylam? Muhtemelen değil, ama biz geri gidebilir öğretici, tam anlamıyla bakın. Ama biz sadece bir an görürsünüz. Yakınlaştırma düzeyi arasında bir değer I do not Böyle 13 tane falan biliyorum. Sadece sen ne kadar ilgisi var ya uzaklaştırdınız, ve bu kadar. Ve şimdi en sonunda sayfa, ihbar hattı 29-- çünkü biraz çirkin bu kod satırı wraps-- için indirir ne tarayıcı Google'ın gerçek API. kod Tüm bu Google'ın mühendisler uygulamak yazdım gömülebilir haritaların bütün bu özelliği. Şimdi hiçbir şey değişmez sağlar. Eğer birlikte takip ediyorsanız, devam edin ve Eğer gerçekten varsa, sadece o dosyayı kaydetmek neyim var. kendi URL'ye git. Sen Çalıştır düğmesini tıklayabilirsiniz kontör ve anlatacağım Yine web sunucusu URL'si. Ve yeni bir sekmede götürecektir. için Aç ' map.html ve oranlar sen vardır bir uyarı almak için gidiyoruz, Bir hata mesajı, evet? Hata mesajı, hata mesajı? Yani ne yazık ki, hata ileti aydınlatıcı değil aslında açmadıkça konsol, bu özel sekme biz Dün açılış tuttu ve Biraz daha erken bugün. Ama tökezledi Bu daha önce, bu yüzden zaten çözüm ne olduğunu anladım. Bugünün slaytlar, veya daha doğrusu, Cloud9 içinde, duyuru Biz yapmadım kasten bir şey. Dikkat ederseniz, bu komut tag Satır 29, bunun üzerinden okursanız, o maps.googleapis.com/~~pobj gibi bir şey, bir şey, bir şey, Daha sonra, birisi fark geliştiricilerinden biri, tüm sermaye yazdı harfler, API anahtarı. Biz orada bir şey yapıştırmak gerekir. Ve bu adım Ben, daha önce bizim için yaptığı ve yine kara olabilir Bize aniden ise, 12 ya da bizden daha fazla Aynı anahtarı kullanmaya başlamak, ama en ne olduğunu görelim. Bugün en giderseniz Yani slaytlar, bir slayt sonra, var Metnin bu çok korkak görünümlü dize. Devam edin ve sadece kopyalama ve bu API anahtarı yazan yere yapıştırın. Ben kaydoldum biri. Ve kesinlikle do not try elle dışarı yazarak, o dolu hisseder, çünkü yazım hataları ile, potansiyel. Dolayısıyla, sadece kopyalayıp yapıştırmak. Ve çizgi yapmak için gidiyor Artık, ama şimdi, sadece açık olmak biraz daha bakmak gerekir anahtar değil eşittir bu gibi size bağırmaya büyüttük. Sayfanızı kaydetmek, geri dönmek Diğer sekmesine, yeniden, ve bir haritayı görmek için umut? İZLEYİCİ: Avustralya. DAVID MALAN: Avustralya. Yani görünüşe göre olanlardır GPS Avustralya koordine eder. Ve bana sadece bir an için dolaşmak izin ve oldukça orada değil herkes yardımcı, ancak Google üzerinden bulmak, bana teklif izin GPS kendi memleketi koordinatları veya kendi ülkenize. Ve muhtemelen Google, bu açabilirsiniz yukarı veya Vikipedi söyleyebilirim. Ancak iki farklı değerler seçin enlem ve boylam, geri gidip onları yapıştırın ve Daha sonra kaydettikten sonra sayfayı yeniden yükleyin Eğer bir olabilir eğer görmek Kendi memleketi için harita. Ve işiniz bittiğinde Bu, takip challenge-- ve ben, biraz daha az yön vereceğiz kasten, size böylece kasıtlı Bir çift için mücadele etmek zorunda belgeler ile dakika değil bu olması haritayı değiştirmek karikatürize varsayılan, ama bir uydu haritası. Yani aslında uydu bakın yerine güzel renkler görüntüleri. Ve ipucu sana vereceğim Haritanın türünü değiştirmek olduğunu. getting geri dön ilham bir sayfa açtı. Eğer panoda olabileceğiniz gibi, Eğer arıyorsanız, çok daha fazla var yapabileceğiniz şeyler. Bazılarınız zaten Harita türünü değiştirdi. Ama bana izin, örneğin sanıyor- olabilir biz ders için yaptığım bir şey gitmek I maps.cs50.net teach--. Bizim undergrads biri yaptı. Biz Harvard Yard ve üzeri haritamızı ortalamak Bu yapı adlarının bütün bindirme ve biz onu bu eklemek vardı. Ben aramak istiyorsanız, Örneğin, Matthews Hall, Biz biraz açılır menü var. Ve ben o Bootstrap kullanarak düşünüyorum Kütüphane daha önce bu tartışılmıştır. Ve Matthews tıklarsanız Hall, hemen Belirli bir haritayı atlar Konumu ve gösterileri Bu küçük pop-up bir resim. Ama bu bile bu küçük pop-up, biz uygulamak vermedi. Ben bizim alma konusunda aşağı doğru ilerleyin varsa Sayfa başlamış ve bilgi pencereler için bakmak Eğer bazı göreceksiniz işlevselliği kendinizi Eklemek ile de olsa olabilir biraz daha karmaşıklık, bir bilgi penceresi denilen şeydir. Ve ben bir örnek tıklarsanız Burada, ve bu eğlenceli nedir Eğer, bu gibi şeyler yapabilirsiniz işte o zaman bir belirteç tıklayıp, bilgi açılır. Bu yüzden oldukça tanıttı değil JavaScript yeterli özellikleri Size nasıl tam bir resmini Birlikte bu şeyler her tel olabilir, ama biz tür yüzeyinde çizik var. Aslında, ben sadece zaman ne yaptı Ben, bu işaretleyici tıklanan Bir olay, bir tetikleme oldu click olayı sözde. Ve biz aslında gördüğümüz bir Olay bugün erken saatlerde, olay göndermek sözde, biz ne zaman engelleyen Kediler için arama kullanıcı. Bu yüzden tür aldı ve seçilip ettik Tüm bu farklı özellikler arasında, umarım size bir fikir vermek için, ne aslında can biraz daha yapmak programlama konfor, ve tamamen ücretsiz kaynaklar. Sorusu olan? Yok hayır? Bu senin son şansın, En bugün, bir Cuma günü, göğüs kapalı bir şey almak için böylece buradan çıkmak kendine güvenen ve rahat bir duygu. Evet. İZLEYİCİ: Neden yok Eğer bir şey daha eklemek? DAVID MALAN: Oh Tanrım. Sanırım, bu hafta sonu dinlenmek gerekir. Diğer sorular? İZLEYİCİ: [Duyulmaz] DAVID MALAN: Siz can-- Internet Explorer, huzur içinde yatsın, Eğer VB koymak edebilmek için kullanılan senaryo, sanal temel komut, ama bu gerçekten yakaladı asla. Yani kısa cevabı sadece JavaScript. Diğer sorular? Pekala, bunu yapmama izin ver. Beni dışarıda meslektaşlarımıza kapmak edelim. Bazı değerlendirme var Herkesi istiyorum formlar doldurarak birkaç dakika harcamak. Onlar formu toplamak istiyorum ve herhangi bir Eğer dışarıda olabilir feragat. Onlar da sertifikaları olacak. Ben orada tahmin ediyorum dışında hala bazı aperatifler. Beni bu dışarı geçmesine izin ve eğer Bu arada herhangi bir sorunuz varsa Ben daha bireysel dolaşmak edeceğiz ve biz başlayabilirsiniz. Evet tabi ki. İZLEYİCİ: [Duyulmaz] DAVID MALAN: budur Bugünlerde genellikle gerçek. Kesinlikle web ile yazılım, sen eğilerek diğerleri ya sen estetik şeyler kullanarak Bootstrap gibi, bu yüzden değil mi düşük düzeyde uygulamak zorunda menüler ayrıntıları ve düğmeleri ve tüm bu. Birine eğiliyor ediyoruz Google gibi pek sen misin Bir Uber inşa etmek gerekmez iş ve haritalama iş, ve benzeri herhangi bir sayıda gibi uygulamalar. Aslında, oturumların çok popülerdir. Eğer Spotify ya da kullandıysanız web sitelerinin herhangi bir sayı, Bazı giriş edeceğiz Facebook kullanan web siteleri. Peki, güzel var oturumları için API'ler vardır Günümüzde, sen yok ki Kendi kullanıcıların tablo için ve kendi veritabanı tüm mutlaka aynı ölçüde. Sen Facebook her şeyi sağlayabilirsiniz sizin için karmaşıklığı. Bu yüzden heyecan verici bir zaman, dürüst, programlama, Pek çok üçüncü parti vardır çünkü Eğer üstüne inşa edebilirsiniz hizmetleri. Ve yine, ödediğiniz fiyat mali ya da kesinti ya. Google aşağı giderse, böylece Uber yapar, belki, ama belki de bu bir makul bir trade-off. Ve yine, bu temalardan biriydi, umarım, gün geçmiş çift için, Bu ticaret-off olduğunu. Ve orada nadiren gidiyor bir doğru cevabı olmak. Gerçekten iyi İki veya daha fazla cevap. etrafında bu geçmektedir. Ve bu Cloud9 hesapları devam edecek ebediyen, teoride, çalışmak. Eğer birkaç gün bekleyin eğer bulabilirsiniz veya bir hafta ya da daha fazla, onları içine geri oturum o bir ya da benzeri sürebilir beş dakika, geri açmak için ama onlar koymak sırf bulunuyor kaynakların tasarruf uyku.