>> DAVID MALAN: Bütün sağ, biz geri.
maraqlı So nəticə, son bölmə
web proqramlaşdırma, mən biz ümumi bir termin kimi istifadə edin fikir
bir neçə qalan mövzu ələ.
sonunda So gün, biz, həqiqətən, bunu edəcəyik
praktiki web proqramlaşdırma bir az JavaScript adlı bir dil ilə.
Mən bir nəzər lazımdır düşünürəm images ilə bağlı bir şey
və bir şey aşkar gizli bir resim gizli,
və Google nəzər Maps API, ərizə proqramlaşdırma
interface, bir şey kimi proqram növü nümayəndəsi
ki getdikcə və Bu gün sərbəst mövcuddur.
>> Amma niyə biz bir nəzər deyil bu dünyada bir tərkib hissəsi at
biz növ oldum ki, verilən alaraq mövcud
bir müddət, bir verilənlər bazası.
Ötən gün üçün və Biz güman etdik yarım
biz bir verilənlər bazası girmə imkanı vardır, lakin Bir verilənlər bazası nə problem həll edir?
bu, bizim üçün nə edir?
Bu nədir?
>> Auditoriya: [işitilemez]
DAVID MALAN: bütün məlumat alır, informasiya OK, və nə cür
Siz onu qoymaq bilər?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: hər hansı bir məlumat Siz onu qoymaq, siz geri almaq lazımdır.
Bu doğrudur.
Və tipik web-based site və ya web proqram informasiya nə cür,
Xüsusilə, siz qoymaq bilər?
Auditoriya: [işitilemez]
DAVID MALAN: indi.
Belə bir istifadəçi var?
>> Auditoriya: [işitilemez]
DAVID MALAN: OK, qeydə saytın istifadəçi.
Və nə deməkdir mağaza istifadəçilərin məlumat?
Nə istifadəçi bəstələyir?
Bir istifadəçi nə var?
Auditoriya: [işitilemez]
DAVID MALAN: Bəli, şəxsi data, və mən istəyirəm.
daha dəqiq olsun.
Belə bir istifadəçi adətən bir adı var, bir istifadəçi başqa nə ola bilər?
Auditoriya: [işitilemez]
DAVID MALAN: An addr-- OK, belə ki, ilk adı, soyadı.
Bu yaxşıdır.
Əslində, bu düzeltmek bildirin Ki, bu olacaq, çünki
imkanı açmaq müzakirə, hələ daha.
Ad, soyadı, gender.
bir növ bir ID.
Başqa?
Mən də əvvəl başqa bir şey eşitdim.
Bir e-poçt, poçt ünvanı.
>> Belə ki, orada fasilə və indi nəzərdən keçirək biz bazasında saxlanılması edirik nə,
bəlkə ildən, niyə ancaq və Aşkar bir istifadəçi qeydiyyatdan dəfə ki,
Bir müddət onları xatırlamaq istəyirəm.
Siz onu istəmirəm Yalnız RAM saxlanılır
və s forgotten-- etmək necə diqqət edək.
>> Bu ki, çıxır verilənlər bazası dünya,
bu gün ən azı iki növləri var.
Something bir SQL verilənlər bazası deyilən Yapılandırılmış Query Language,
və ya, cutely adlı SQL deyil NoSQL.
Və sonuncu bir nümunəsi nə bilər
bir obyekt-yönümlü adlandırmaq, və ya bir obyekt mağaza, bir verilənlər bazası
obyektlərin mağazalar, deyil, bəhanə Mənə, biz tezliklə satır görəcəksiniz.
>> Beləliklə, biz yalnız bir an üçün diqqət lazımdır Bunlardan birincisi, yəni, bir SQL
verilənlər bazası, bu yalnız çünki əgər belə tanış artıq hər kəs üçün
Excel istifadə edən və ya Google Sheets və ya Apple
Numbers və ya hər hansı bir standart elektron tablo proqramı,
və ya, equivalently, və ya daha sophisticatedly,
Microsoft kimi bir şey Access və ya Oracle
MySQL və ya PostgreSQL və ya bütün olan tətbiq üçün məhsul adları
Aşağıdakı fikir.
>> A relational verilənlər bazası sadəcə satır və sütun var ki, bir şey.
Və satır və sütunlar ilə, Mən sözün bir şey demək
bu kimi, belə ki, burada biz ola bilər bir sahə və burada onun növü adı.
Və həqiqətən, mənə imkan indi bu xəritəyə başlayın.
Belə ki, həqiqətən, mən bilmirəm niyə ayrı-ayrı chart çəkdi.
Bu sadə saxlamaq edək.
>> Biz burada var Bizim masa əvvəlinə
bu sahənin adı bu data növü,
və növü ilə mən aşağıdakı deməkdir.
Bu bir sıra, bir simli Bir sözlə kimi qısa bir string,
bir maddə deyil, bu bir şəkil kimi ikili data?
Və yalnız bu tease bildirin ayrı yalnız bir an üçün.
Belə ki, ilk adı, nömrəsi, simli, text-- böyük bir yığın
Auditoriya: [işitilemez]
DAVID MALAN: Bəli, belə ki, simli.
Və bir verilənlər bazası kontekstində alacağıq olan bu char sahəsində çağırırıq.
Mən yalnız biz istəyirik, lakin indi char demək lazımdır bir anda bu saflaşdırmaq gedir.
Character sahəsində.
Soyadı yəqin ki, eyni deyil.
Gender?
>> Kişi və ya qadın, belə ki bir char sahəsində ola bilər.
Bu da quote ola bilər, dırnağı bağlamaq "Kişi" və ya quote, dırnağı bağlamaq "qadın"
və ya m və ya f ola bilər.
daha çox daxil olmaq istəyirsinizsə, Bir üçüncü dəyər lazımdır
və ya tamamilə başqa sahəsində bir növ.
Və belə ki, doğru yalan istifadə edə bilər.
sahəsində kişi adlanır və ola bilər sonra doğru və ya yalan deyə bilər.
Amma mütləq tutmaq deyil Istədiyiniz bilər məlumat bütün.
>> bir növü var həyata Belə ki, çıxır sahəsində burada faydalı ola bilər ki,
tipik bazasında bir adlı bir xarakter sahədir enum,
ancaq, dizayner, almaq mümkün dəyərlər sadalamaq,
, Quote, dırnağı bağlamaq "kişi" quote kimi s dırnağı bağlamaq "qadın" və s.
Belə ki, nə dəyəri Sizin bazasında
Həqiqətən, xarakter-based, lakin bu dəyərlərdən biri olmalıdır.
Biz yəqin ki, bir istəmirəm ilk adı və ya son adı enum.
Əks halda biz olardı adı kimi, sadalamaq
sözün hər, irəli gəlir mümkün ilk adı və soyadı.
>> OK, ID belə şəxsiyyət nə olmalıdır?
Bəli, belə ki, bəlkə bir sıra.
Belə ki, ilə qalmaq imkan İndi ki, sayı.
And sayı, sıra İndi bir az çox geniş.
ikinci sonuna gün, biz kimi hiss
bir az daha dəqiq olmalıdır.
Kimi demək bilər, bu 1.236 kimi bir şey ola bilər.
Və yəqin ki, deyil Biz ID nə deməkdir.
biz yəqin ki, bir ID nə deməkdir?
>> Auditoriya: [işitilemez]
DAVID MALAN: OK, Oh belə bəlkə hətta bir sıra deyil.
Bəlkə bu, həqiqətən unikal identifikator var ki, bir istifadəçi adı kimi bir simli var.
Belə ki, tamamilə ola bilər.
Mən kimsə yəqin ki, hesab edirəm ki, baxmayaraq ki, rəqəmli idi.
Belə ki, ilə qalmaq imkan verir.
sıra hansı?
Nə bir daha tam precise--.
Belə ki, bir sıra 0 kimi, 1, 2, 3, belə ki, biz bu tam zəng edəcəyik.
Və hətta sonra, mən bilər nitpicking etmək, bu
Biz, həqiqətən, yalnız bir Istədiyiniz general tam.
Siz yəqin ki, mənfi dəyərləri istəmirəm yalnız çünki, yalnız qəribə hiss edir.
Siz yəqin ki, müsbət integers istəyirəm.
Beləliklə, siz də ifadə edə bilər bir verilənlər bazası ki,
lakin indi, biz tam demək lazımdır.
>> Email?
Bu nə izlersin yəqin ki?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Bu e-poçt var, lakin sağ, simvol var?
Bu kimi bir funky xarakter daşıyır bir "at" simvolu və ya başqa bir şey,
lakin hələ də bir xarakter sahəsində var.
Və poçt ünvanı?
Character sahəsində.
Belə ki, bir gözəl başlanğıcı var, amma İndi bir az daha dəqiq olsun.
>> Belə çıxır ki, bir verilənlər bazası, tez-tez
daha zərif bir seçimi var bunlar versiyasını.
Əslində, bir tipik SQL verilənlər bazası, SQL, və ya daha çox, ümumiyyətlə, relational verilənlər bazası,
satır ilə verilənlər bazası və sütunlar, tez-tez
növü yalnız daxil olmaq field-- mənə bir otaq burada edək
həm də uzunluğu.
>> ilk ad Belə ki, necə uzun?
I D-A-V-I-D, düşünürəm. OK, Mən var yəqin ki, yalnız yarım kimi təhqir
oda insanların, sağ, Sizin adları beş artıq, çünki
məktublar, belə beş bir az eqoist görünür və sadəlövh, belə ki, daha yaxşı bir dəyər var?
10, bütün sağ, mən hesab edirəm ki, biz otaqda OK istəyirik.
13?
30?
Niyə etmirlər əvvəllər yanaşma zaman
seriallarda və yaddaş haqqında söhbət?
Niyə yalnız 1000 kimi demək deyil?
No bir adı gedir 1000 artıq olmalıdır.
Geri itələmək.
>> Auditoriya: [işitilemez]
DAVID MALAN: Bəli, bu israfçı, sağ, xüsusilə
ən adlar yalnız beş və ya 10 və ya 15 simvol, çox israfçı var.
Belə ki, nə?
Bu çətin sual növüdür.
İndi biz, şübhəsiz ki, ingilis analiz edə bilərsiniz və hər hansı digər dil adları
və, nə anlamaq average-- orta həqiqətən deyil
max nə var us-- kömək yəqin ki, biz, həqiqətən, istədiyiniz nə.
Amma biz hətta çıxır Burada növü bəzi seçimi.
>> Tipik SQL verilənlər bazası, siz bir char sahə deyilən bir şey var
və həmçinin VARCHAR, V-A-R, dəyişən char sahəsində.
Və fərq bu.
A char sahəsində, siz dizayner, əvvəlcədən müəyyən etmək lazımdır
sahəsində dəqiq uzunluğu.
Belə ki, bəlkə adı kimi 20 növ təhlükəsiz hiss edir.
bəzi Google etməyə nə etmək lazımdır bilər ki, kifayət qədər həqiqətən təhlükəsiz oldu.
21 ilə adı yəqin ki, var simvol, lakin indi, 20 Güman
təhlükəsizdir.
>> A char sahəsində demək olardı bir verilənlər bazası ki,
20 və həmişə 20 simvol istifadə edir.
İndi o, yalnız D-A-V-I-D 15 varsa yalnız boş simvol olacaq,
ancaq siz hələ də bütün 20 bytes istifadə edirik.
A VARCHAR sahə, əksinə, o deməkdir string 20 simvol olmalıdır
lakin bu, beş yalnız varsa, Yalnız istifadə etmək olacaq
bir beş, və ya bəlkə altı sonunda xüsusi dəyəri
ki, 0 kimi biz müzakirə Bir xarakter sonunda bildirir
yaddaş ardıcıllığı.
>> Belə ki, sizcə Siz char seçə bilərsiniz
varchar qarşı ki, ticarət-off verilir?
Char çox simvol, VARCHAR istifadə bir çox simvol çox istifadə edir.
Auditoriya: [işitilemez]
DAVID MALAN: OK, siz izlə simli uzunluğu olduqca məcburedici
yalnız əgər char, 'səbəb istifadə Yalnız onu qoymaq, bilirik.
Və bəlkə bir zip üçün doğru kodu, ABŞ-da, ən azı, 02138,
həmişə beş olacaq Siz qədər simvol tire dörd əlavə edin.
Amma bəzi dəyərlər ola bilər siz həmişə uzunluğu bilirik.
Və ya bəlkə dövlət rəmzləri, New York NY kimi,
və MA ABŞ-da Massaçusets üçün.
Bəlkə bəzi hallarda var harada ki, tamamilə ağlabatan deyil
lakin məntiqi ilə, niyə Biz hətta bu overthinking?
Niyə biz yalnız istifadə etməyin VARCHAR və biz yalnız lazımdır
həmişə hər halda iki simvol istifadə, və ya həmişə hər halda beş simvol istifadə?
Niyə yalnız üçün VARCHAR xilas hər şey ki, məntiq?
bir tutmaq olmalıdır.
Auditoriya: [işitilemez]
DAVID MALAN: Could səhv bir şey yazmaq.
Belə ki, doğrudur.
Lakin hətta sonra, onlar istifadə edə bilməz Mən ayrılması daha çox yaddaş.
Mən hələ final var , Uzunluğu üzərində demək
belə ki, onlar təsadüfən edə bilməz ki səhv, amma yaxşı bir fikir.
Bu daha incə, lakin bu, çox əlaqədar deyil Bizim müzakirə, həqiqətən, serialların
və əvvəllər siyahıları bağlıdır.
>> Bu, bir verilənlər bazası çıxır ki Bu dəyərlərin bütün bilir ki
sabit uzunluğu, hətta əgər həmin dəyərlərin bəzi boş
sort estetik boş, D-A-V-I-D və sonra 15 blanklara,
çıxır ki, hər halda sahəsində eyni uzunluğu,
bir sıra kimi çox onun məhsulları bütün idi geri ki, geri geri geri
Yalnız plus 1 next almaq bilər dəyəri bir verilənlər bazası masa eyni fikir.
Sizin xarakter bütün varsa strings eyni uzunluğu,
Siz təsadüfi giriş deyirlər nə var.
bütün strings var varsa uzunluğu 20, yalnız deyil
Bunu plus 1 yalnız bunu plus 20 plus 20 plus 20 plus 20,
və çox sürətlə vasitəsilə hərəkət edə bilər və ya veri bütün vasitəsilə axtarış.
>> A dəyişən char sahə, əksinə, həmişə 20 simvol yoxdur.
O 20 və ola bilər 15 və daha sonra 19 və sonra 10,
və siz axtarmaq istəyirsinizsə vasitəsilə, yalnız kor-koranə bilməz
növbəti bir almaq üçün 20 bytes əlavə edin.
Siz sözün vasitəsilə axtarış çünki data strukturu kənarında
Siz, cırıq edir.
Bu cür gedir və əsaslı simli faktiki uzunluğu.
Belə ki, uzunluğu, kimi bilirik zaman Kareem, bir char sahəsində istifadə deyir
ki, qazanmaq, çünki olan səmərəliliyi
Daha sürətli vasitəsilə axtarış edə Siz məlumat üçün aradığınız zaman,
başqa bir dəyişən istifadə edin.
>> Təəssüf ki, mən heç bir yaxşı cavab var adı necə uzun,
lakin kimi bir şey bir ad, mən deyərdim
bir VARCHAR ümumi Bu niyyətində deyil, çünki
hər kəs üçün bir sabit uzunluğu olmalıdır.
20 Mən bilmirəm, 20 bir az sıx hiss edir.
yalnız 50, 50 deyirlər.
Bu, həqiqətən ki, dəyəri yoxdur 50 əvəzinə 40 demək daha çox,
lakin bir nöqtədə, sizə lazım bir qərar zəng etmək üçün.
>> Çox ümumi, səmimi, [Üçün? tarixi?]
səbəbləri, bu artıq var, baxmayaraq ki, Çünki bir müddət əvvəl 255 demək deyil
məşhur verilənlər bazası sistemləri kimi MySQL, pulsuz açıq mənbə vasitədir
ki, bir çox şirkətlər kimi hətta Facebook, istifadə
Bu maksimum gecikmə oldu belə insanlar yalnız onunla getdi.
Belə əsassız, lakin biz will not bir az daha intuisiya istifadə
50 əmin ki, demək yəqin ki, bir az artıq.
>> Gender, mən enum kimi edin, və biz buna görə bilərsiniz
kişi və ya qadın sadalamaq, və ya bəlkə daha səmərəli,
m və ya f və ya digər symbology, lakin enum orada yaxşı bir seçim kimi hiss edir.
Aydın olmaq üçün, gender Yalnız bir VARCHAR ola bilər,
və biz yalnız bütün ola bilər Kimi insanların razıyam
həmişə eyni dəyərləri qoymaq.
Kişi və ya qadın və ya etajer.
>> Amma problem sonra, biz bilər ki, [Işitilemez] təklif kimi, bir səhv
Əvvəllər başqa kontekstində.
Biz bir səhv varsa, biz əldə edə bilər bizim məlumat bazasında yanlış dəyərlər.
Belə ki, verilənlər bazası haqqında gözəl nə var Oracle və MySQL və başqaları kimi,
Bu son var ki, müdafiə harada qat
Sizin DBA, verilənlər bazası administrator, Kim biz kimi bu masa dizayn edilir
şifahi var, qoymaq bilər bir enum yerə ki,
ifadə edərək qarşı qoruyur kişi, qadın və heç bir
başqa heç proqramçı təsadüfən bilər hər hansı digər dəyər daxil edin.
Belə ki, bu yaxşı bir şey olardı.
Bu xüsusiyyət.
>> Belə ki, ID, bir rəqəmli ID fərz, o yəqin ki, bir müsbət tam olmalıdır.
Və biz bəzən var uzunluğu müzakirə etmək imkanı.
Siz adətən olmaz Burada bir sıra daxil,
yerine daxil olacaq bu bir int və ya böyük bir int,
onlar kimi adətən çağırıb.
Lakin adətən, bir tamsayı olardı ki, demək 4 bayt bildirin.
Və 4 bayt varsa, ki, neçə bit var?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: 32 bit.
Belə ki, biz neçə istifadəçi ola bilər Bizim verilənlər bazası onlar bütün ID varsa
bu ID unikal olmalıdır?
32 bit biz nümunələri var deməkdir bir, iki, üç, dörd, five--
adet sıfır qədər neçə müxtəlif nümunələri 32 olduqda və olanları ola bilər?
Bu eyni şey xahiş 32 iki nədir?
Bu, böyük bir sıra var ki, Mən sağ ala bilməyən
ancaq təxminən 4 milyard bilirik.
Belə ki, bu verilənlər bazası masa edə bilərsiniz deməkdir dörd milyard istifadəçimiz var və bu.
>> Belə ki, bu bir maraqlı dizayn dolayısı.
şirkətlər layiqli sayı bəlkə çox deyil, qərarına gəldik
onların istifadəçilər masa olan çünki 4 milyard istifadəçilər nadir problemdir.
Bu Facebook-stil növ problem deyil, bir tipik şirkət problem.
Amma əməliyyat logs bəlkə və ya daim data bir növ
Sizin bazasında yazılı olur tamamilə milyardlarla ola bilər ki,
və satır milyardlarla və Əgər bunun üçün bir tam istifadə
nə kimi tezliklə baş verəcək Siz sayı 4 milyard sıra almaq
və sonra daxil edin 4 milyardıncı 1, belə danışmaq?
Mən nömrələri bir az sadələşdirilməsi alıram.
>> Siz geri kəsmək olar, mən sizə demək birtəhər onu idarə etmək üçün var.
Və kompüter adətən edəcəyini nə hətta bu səhər bu barədə düşünmək,
Siz 4-bit dəyər varsa , 1, 1, 1, 1 kimi ki,
Yalnız səhər bağlamaq birlikdə günortadan sonra nə
bu sayı ikili təmsil edir?
OK, biz daha asan etmək lazımdır.
bu sayı nə ikili təmsil?
OK, biz daha asan etmək lazımdır, nə Bu ikili təmsil edir?
Auditoriya: Three.
DAVID MALAN: Three, çünki biz olanları column--
[Gülüş]
Whew!
Biz isə sütun var idi və ikilər sütun.
Belə ki, həqiqətən, güman bizim [? yataqdaxili?], 32 bit deyil
lakin iki bit biz idi istifadəçi sayı 0, 1, 2, 3 saymaq,
və sonra biz növ istəyirik geri istifadəçi 00 yenidən.
Belə ki, bu adətən olur.
Əgər expression-- eşitdim varsa Siz yaxşıdır əgər yəqin ki, var, amma
tam daşqın, siz Sizin bit bütün Flipping saxlamaq
ən böyük mümkün dəyərlər olmaq, və sonra bit bitti,
adətən nə olardı?
Niyə 00 deyirsiniz?
Bəli, bu üç edir.
Mən 4 təmsil edir?
Mən təmsil necə ikili sayı 4?
Auditoriya: [işitilemez]
DAVID MALAN: Bəli one--, per se 100 demək deyil,
Bu yanlış var, çünki connotation, lakin 1-0-0.
Belə ki sayı 1-0-0 həqiqətən düzgün, lakin yalnız iki bit varsa,
Siz, həqiqətən, nə etmişəm?
Siz 00 takla atdı etdik.
And olsun ki, baş verəcək budur.
Əslində, siz hesab edə bilər bu daha familiarly haqqında.
Siz geri varsa, nə 16 il əvvəl dünya
zaman son idi Y2K problem oldu.
Nə idi?
Yaxşı ən kompüter üçün ağlabatan qərarlar,
kimi nömrələri saxlanılması edilmişdir il 1975 və ya il 1999
Yalnız iki rəqəm istifadə edərək, kompüter yaddaşında.
Əlbəttə ki, nə olur Siz 2000-ci almaq zaman,
Bəli, daha bu getmək, və ya.
Belə ki, 2000-ci ilə getmək, lakin əgər Yalnız görünür iki rəqəm istifadə etdiyiniz
il olduğu kimi 00 və belə ki, takla atdı etdik.
Bu niyə sistemlərinin bir çox lazım vaxt yenilənir.
>> Belə ki, qeyd edib şirkətləri kimi Facebook bu qarşı axır.
idarə etmək üçün yeganə yol So vəziyyət, səmimi, bu tahmin edir.
Və ya təmiz yolu Bu vəziyyəti idarə
Siz yoxdur, belə ki tahmin edir sonra dəyişikliklər etmək lazımdır.
Belə ki, əvəzinə 8 bayt, siz nə bilirik?
Mən irəli-düşüncə olmağa gedirəm Burada, bu, baxmayaraq ki
bir az optimist biz 4 milyard olacaq
və bizim saytda 1 istifadəçi.
Amma yalnız 8 bayt istifadə edək, və ya ümumiyyətlə olacaq 64 bit,
çox texniki, böyük bir tam çağırıb.
Və yalnız siz ola bilər deməkdir Sizin sayı daha rəqəm.
Amma bu əhəmiyyətli bir dizayn qərar,
Bir sıra seçerseniz, çünki ifadəlilik çox az bit var
Siz, həqiqətən, yarada bilər proqram bir səhv.
>> Bütün hüquqlar, belə ki, bükmək edək E-poçt və poçt ünvanı ilə.
Belə ki, e-poçt, nə qədər olmalıdır bir e-poçt ünvanı ola bilərmi?
50.
Mən, həqiqətən, heç bir fikrim yoxdur, lakin bu yəqin ki, kimi bir şey,
başqa heç bir olacaq, çünki çox uzun olur, əgər yazmaq, belə ki, 50,
İndi üçün onunla getmək bildirin.
Poçt ünvanı, nə qədər ki, olmalıdır?
Auditoriya: [işitilemez]
>> DAVID MALAN: Bu deyil Yalnız bir poçt indeksi, baxmayaraq ki.
Poçt ünvanı, eşitdim.
Belə ki, bu 1 Brattle Square kimi, vergül, Cambridge Mass., vergül, 02138.
Və əslində, mənə yalnız çəkmək imkan burada bir az iş up.
bu kimi bu hiss buraxılmış imkan.
biz 1 Brattle Square varsa, vergül, Cambridge MA 02138,
biz daha yaxşı edə bilərsiniz kimi hiss edirəm yalnız poçt ünvanı çoxdur.
Niyə biz bu bir az partlayışa səbəb yoxdur?
Mən də alıram?
biz əvəzinə nə olmalıdır burada satır, bəlkə?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Bəli, belə edək street_number zəng,
və çizgi yalnız bir ümumi bir məkan kimi görünür nə olan yol,
lakin bu, həqiqətən, deyil.
Street, sonra üzr city--?
>> Auditoriya: [işitilemez]
DAVID MALAN: Biz bunu edə bilər.
Line bir, line iki.
Niyə biz davam edəcək deyil İndi sadə,
lakin tamamilə var məqbul qərar.
Və sonra dövlət və sonra edək İndi bir az ABŞ-merkezli olmaq
və yalnız yalnız çünki, poçt kodu etmək maraqlı bir səhv səbəb olacaq
burada və ya problem.
Belə ki, indi bizim ünvan olduğunu güman edirlər.
Bu bir az daha annoying var Biz bütün bu daha sahələri var
Amma indi biz tag bilər hər şeyi bir az daha yaxşı.
>> Belə ki, indi küçə sayı yəqin ki, olmalıdır, bir char olmamalıdır?
Nə olmalıdır?
Auditoriya: [işitilemez]
DAVID MALAN: Bəlkə, bir sıra daha bir tam kimi?
Böyük tam?
Siz yəqin ki, yaşamaq deyil 4 milyard Main Street
və ya kimi crazy şey.
Belə ki, tam yəqin ki, gözəl, lakin hər kəs var
Heç kimi ünvanda yaşamışdır 1A Brattle Square, və ya 1 və 1/2?
Bunlar təəssüf ki, mövcud hətta əgər, orada deyil
Bu anomaliyaları var mənzil 1A, 1B, 1C kimi.
Beləliklə, siz nə bilirik, biz yəqin ki, tam ilə getmək lazım deyil,
başqa gedirik bəzi satış itirmək.
>> Char sahə, bəlkə?
Mən nə qədər bilmirəm.
Bu yəqin ki, olacaq deyil belə 10 və ya bir şey, uzun.
Heç bir yazmaq olacaq uzun sayı, bəlkə.
Ancaq yenə də, biz yəqin ki, olmalıdır ki, daha çox fikir verir.
Bəlkə, google bir araşdırma, ancaq indi üçün içalat ilə getmək lazımdır.
Streets, char, 50, mən bilmirəm.
Bir nöqtədə, heç bir olacaq zərfin üzərində yazmaq,
də belə yəqin ki, var bəzi yuxarı həddi.
City, eyni, əmin, belə ki, 50 char.
>> State, indi ABŞ-merkezli ola bilər.
Belə ki cür bir siyahı ola bilər bir qərar zəng dövləti.
Bu iki simvol kimi ola bilər.
Yəni əslində, bəlkə, mən char deyərək saxlanılır.
Mən yəqin ki, VARCHAR demək, yalnız bəzi səmərəliliyi üçün,
lakin biz geri gəlmək lazımdır bir anda qərar.
dövlət uzunluğu 2-char ola bilər.
MA kimi onlar ABŞ-da varsa, Massachusetts, NY, New York, NJ, New
Jersey, və s.
Belə ki, müəyyən edilə bilər.
Washington DC DC.
>> Amma mən hesab edirəm ki, Olivier, siz başqa yanaşma təklif edib.
Auditoriya: [işitilemez]
DAVID MALAN: Bəli, belə ki, bir var yazın az annoying,
lakin enum, daha məntiqli edə bilər Bu şəkildə, çünki ABŞ-da ən azı,
Siz sadalamaq maraqsız, lakin bilər Siz bazasında yalnız bir dəfə bunu
və bir daha düşünmək lazımdır Bu, bütün 50 iki xarakter kodları.
Mən enum istəyirəm.
, Çünki orada qalmaq edək bu cür daha ciddilik tətbiq.
Və sonra Saxlayın Kodu?
Mən Andrew ki, bir fikir idi ki
Auditoriya: [işitilemez]
DAVID MALAN: Bəli, beş və ya doqquz.
Yalnız sadə saxlamaq edək.
Just indi beş yoxdur.
Amma bəlkə mən yalnız bilər sağ, bir tam edirsiniz?
Mən ola bilər, lakin nə, Mən müəyyən mənada bir dəfə bu səhv.
İllər əvvəl, Mən keçirərkən edildi Gmail Microsoft Outlook,
və Outlook ixrac bir yolu var Excel faylı olaraq əlaqələrin bütün,
dəyərlər faylı ayrılmış vergül bir CSV faylı.
Mən, səhvə yol ikiqat tıklayarak, hesab edirəm ki,
Mən ixrac, nazil dəfə əmin olun mən gözlənildiyi kimi baxdı.
Mən Saxla və ya imkan hit olmalıdır da zərbə və ya bir şey avtomatik saxlamaq.
Mən sonra idxal Çünki Gmail daxil bütün işləmişdir.
Amma ildir, bu gün və Mən 10 il əvvəl bu beş idi
Mən hələ dost tapmaq alıram bu kimi görünür ünvanları.
Niyə?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Bu aldı 0, yaxşı, daha doğrusu, onu
kimi bütün poçt kodu etdi bir sıra və buna görə də bu
deməkdir aparıcı 0 Bu, heç bir mənası yoxdur.
Və 2138 mənim poçt indeksi görünür.
Bu, səmimi, bir annoying Excel edir Mən default hesab vasitəsi xüsusiyyət,
yalnız üçün nəzərdə olsa da ola mətn, Microsoft Excel
Mənə faydalı olsun qərar, və oh, mən yalnız nömrələri görmək.
nin ədəd bu müalicə edək.
Bu aparıcı adet sıfır truncates.
>> Allaha and olsun, hər bir neçə ay mən bir ünvan tapmaq,
və OKB bir növ həyata, Mən geri getmək və 0 əlavə hətta heç I baxmayaraq
insanlar harf və ya bir şey göndərmək.
Amma yenə də bu qalıqları tapmaq alıram.
Belə ki, bu, demək bu yaxşı bir fikirdir?
Xeyr, OK, çünki hər kəs Massachusetts, bu sahədə
onları aparıcı bir o gedir.
Belə ki, kimi ilə gedək char, yəqin ki, beş.
>> Və burada, biz həyata bir enum və biz istifadə edə bilər
10.000 sadalamaq bilər mümkün zip kodları,
Bu yəqin ki, kimi ancaq ki, hiss faydaları kimi, xətti keçid.
Siz daxil varsa ki, Sizin bazasında çox data
bir şey qarşı qorumaq üçün.
Belə ki, char siz yazın bilər həyata poçt kodu kimi H-E-L-L-O,
olmayan, açıq-aydın, rəqəmli edir.
Belə ki, heç bir şəkildə var tipik verilənlər bazası,
yalnız Elektron müəyyən etmək və uzun yalnız beş simvol,
belə ki, biz olacaq kodu bunu.
Biz PHP bunu olacaq və ya Java və ya hər hansı dil biz istəyirik
server istifadə edərək həyata sıxıntı belə.
>> Whoo!
belə hər hansı bir sualınız, yalnız hələ Bütün hüquqlar?
Başqa bir dizayn qərar qəbul edək.
Bu çıxır ki, də seçmək almaq,
Bir SQL verilənlər bazası dizayn zaman və ya tipik relational bazasında bir harada
yenə relational yalnız satır ve sütun deməkdir
ki, sizin veri təşkil necə və bu nə deməkdir ki, həyata
Mən yanlış olduğunuz Mən bu drawing-- edirəm ki,
şeması deyirlər nə bir verilənlər bazası masa üçün.
Bu kimi Masa üçün spesifikasiyalar
lakin bu vaxt gəldiyi zaman həqiqətən veri,
və biz burada yalnız məsələn bunu edəcəyik.
Çünki, Excel açmaq üçün gedirəm Excel mənə satır və sütun verəcək.
Və dəqiq nə Oracle və MySQL və digər alətlər mənə verəcək.
Mən yalnız istifadə gedirəm müzakirəsi xatirinə.
Mənə davam edək və açmaq Burada nümayəndəsi sənəd
bir az zoom.
məsələn Belə ki, mövzular indi ilk adı, soyadı, gender, ID,
e-poçt, küçə nömrə, street, whoops.
Street, şəhər, dövlət, yalnız haqqında ekranda uyğun.
>> Belə ki, nə bu o deməkdir ki, bir istifadəçi ilk mənim haqqinda üçün qeydiyyatdan
Bu kimi bir şey olacaq David, Malan, m,-nin 1 deyək
malan@harvard.edu, küçə nömrə olacaq 1 Brattle Square, Cambridge, MA kimi,
02138, sonra irəli belə.
Mən deyəndə ki, bir relational verilənlər bazası və ya SQL verilənlər bazası satır və sütun var,
Mən bu demək.
Bu faktiki data saxlanılır satır və sütun.
Bu yalnız bir təsadüf deyil biz söhbət ki,
Mən yalnız onu rəsm edildi satır ve sütun həyata.
Bu, yalnız şeması edir mühüm müəyyən.
>> Burada bu sahələrdə Belə ki, və ya equivalently var,
siz hesab sahələri Mən bir istifadəçi deyiləm, axtarış ehtimal edirəm
və ya verilənlər bazası administrator deyiləm əgər?
Like nə sahələri I am həqiqətən axtarış gedir?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: adı, yeah belə Mən yeah that-- faktı kimi
email olduqca ümumi ola bilər.
Üzr istəyirik, adı bildirib.
Belə ki, maybe-- və yenə biz istəyirik cür mücərrəd söhbət.
Mən niyə istədiyiniz bilmirəm bir ad üçün axtarış etmək,
lakin əgər ağlabatan hiss Bir istifadəçi üçün axtarış edirik.
Bəlkə əmin, ID, dövlətlər.
>> Və bir sürüşkən var yamac, mən ola bilər, çünki
bir ssenari olduğu tədbir bəlkə mənim boss soruşdu ki,
necə bir çox kişi bizim saytda var?
Necə bir çox qadın bizim saytda var?
Və o nöqtədə, istədiyiniz bilər də gender sahəsində axtarış,
Başqa heç bir şey.
Belə ki, bir ticarət-off burada var.
Yenə, heç doğru cavab, lakin
ən SQL məlumat bazaları bir xüsusiyyət endeksleme, vasitəsi kimi tanınan
Siz dizayner, verilənlər bazası administrator,
əvvəlcədən qərar almaq Verilənlər bazası optimize olmalıdır sahələrdə
barədə axtarışlar üçün.
>> Siz çox naively optimize, demək olar Bu, ki, bu optimize optimize
və bu optimize və verilənlər bazası olacaq
altında bir sehrli şey başlıq və belə bir şəkildə bir şey
ki, axtarış növbəti dəfə Bu sahələrdə hər hansı bir,
Bu, əslində, daha sürətli olacaq.
Bu mümkün deyil.
Bu özü ləğv etmir.
Amma ödənilən qiymət olmalıdır.
>> Siz naively, və ya artıq-coşğuyla demək, index bu sahələrdə bütün
belə ki, danışmaq onlara bütün səmərəli axtarış,
Siz yəqin ki, nə qiymət ödəyir?
Auditoriya: [işitilemez]
DAVID MALAN: Performance.
Nəyi nəzərdə tutursan?
Yaxşı performans, ən azı Mən müzakirə edirəm kontekstində, indi yaxşıdır.
Bu endeksleme müəyyən edir.
Bu sürətli axtarış edəcək.
Belə ki, zaman belə danışmaq, azalır.
Auditoriya: [işitilemez]
DAVID MALAN: Space.
Belə ki, yenə, bu ortaq ticarət var.
Mən sizin axtarış sürətləndirmək bilər, lakin bu Əgər yer daha bayt başa gedir.
Niyə?
Yaxşı, ismarıcları, əgər biz heç biri var Bu qırmızı ulduz, bu göstəricilər heç biri
Mən deyirəm ki, necə axtara bilərəm Bu bazasında bir ad?
Belə ki, cəlb edək bizim Bu misalda diqqət.
Biz Davuda və Scully və Kareem varsa bu satır Arwa və başqaları
Məsələn.
>> Belə ki, məhz bunu edək.
Scully burada, sonra biz Kareem və arwa var
və başqa hər kəs, siz əgər Bir index belə danışmaq, müəyyən var
siz edə bilərsiniz ən yaxşı xətti axtarış edir.
Siz arwa üçün axtarış, biz deyilik hüququ jump edə olacaq onun
tez.
Biz üst başlamaq olacaq və alt bütün yol getmək,
bizim orijinal fərqli Mike Smith nümunəsidir.
>> Lakin, mən demək olarsa, hey, verilənlər bazası, index adı sahəsində,
o, bir şey olacaq meraklısı və bir şey dəstək
ikili axtarış kimi.
Bu yəqin ki, se başına ikili axtarış deyil.
Verilənlər bazası başqa istifadə edirlər b ağacları adlı data strukturu,
ikili ağacları ilə səhv etmək deyil, yalnız daha sürətli axtarış etmək
təbiət loqarifmik bir şey.
Amma qiymət ki, qurmaq ödəmək xüsusiyyət yaddaş ki data strukturu,
daha bytes edir.
Belə ki, bəzi megabayt bilər, bir qiqabayt, kim bilir?
Bu data asılıdır.
>> bir nöqtədə Belə ki, qərar qəbul etmək, Bu yəqin ki, bir ümumi hal deyil.
Belə ki, faktiki ümumi nə var hallarda, həqiqətən seçmək olsaydı,
Sevimli sahələri nə ola bilər?
Email.
Mən e-poçt, çünki e-poçt kimi nəzəri, unikal olmalıdır.
Və adətən siz izlə Əvvəlcədən sizin sahələrdən biri olduğunu
ki, və ya unikal olacaq yaxşı sahə olmağa çalışır
, Axtarış yol çünki, zaman bir şey üçün axtarış
geri almaq olacaq və ya cavab sıfır və sonra siz tamamlayın.
Siz saxlamaq yoxdur Hələ başqaları üçün axtarır.
>> Və belə ki, burada bu halda, e-poçt, iki dəfə qeydiyyatdan bilməz kimi uzun
eyni e-poçt ilə yaxşı biridir.
da müəyyən ID, informatika dünya,
Bir bəhs edirsinizsə daha unikal idi ID.
Bu connotation sort Şəxsiyyət vəsiqəsinin və ya identifikator.
Bu qalan ola bilər Nin haves onları gözəl zəng edək
lakin həqiqətən lazım deyil.
>> Və belə bir verilənlər bazası, Siz göstəriciləri müəyyən
lakin daha dəqiq ola bilər.
Siz hey, verilənlər bazası, əmin olun, demək olar Bu cədvəldə hər ID unikaldır.
hətta proqramçı imkan verməyin təsadüfən bir cüt e-poçt qoymaq
və ya TC şəxsiyyət nömrəsi dublikat.
enums kimi Belə ki, çox , Eyni siz bizi qorumaq
o aşağı səviyyəli müdafiə ola bilər.
Və belə verilənlər bazası dizayn, in bir mənada əyləncə növüdür,
Siz müdafiə bunu, çünki.
Siz sort iş güman dəhşətli, dəhşətli proqramçılar ilə
və bir çox müdafiə qoymaq istəyirəm , Sizin data qorumaq üçün bilərsiniz kimi
lakin eyni zamanda istədiyiniz daha yaxşı yerinə yetirmək kömək etmək
hansı seçerek sahələri üçün optimize.
Amma mütləq bunu edə bilməz biz kimi bir vakuum cür burada.
Siz nə bilmək var bu ümumi hallarda olan.
developers varsa ünvanı kitab həyata keçirilməsi,
Siz çox yaxşı etmək istəyirəm bilər demək olar ki, hər bir sahədə axtarış,
yalnız proqram xarakteri ilə.
Belə ki, bəlkə sizə sərf əlavə space.
>> Sağ, hər hansı bir sualınız?
Bəli.
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Xeyr
>> Auditoriya: [işitilemez]
>> DAVID MALAN: OK.
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Oh, biz belə bir şəkildə gedir
İndi tamamilə dil aqnostik var.
Belə ki, biz indi söhbət ümumiyyətlə relational verilənlər bazası,
və ya SQL ümumiyyətlə verilənlər bazaları.
>> Auditoriya: [işitilemez]
>> DAVID MALAN: daha yaxşı bir söz istifadə etmək , Hər hansı bir dil ilə istifadə edilə bilər.
Mən, C JavaScript kodu yaza bilərsiniz indeksi, C ++ kodu, Java kodu, Ruby indeksi,
olan bütün danışmaq bazası və icra sorğu.
Əslində, bir pis deyil nümunə sorğu segue.
Və yenə, biz getmək fikrində deyilik Java və ya C ++ və ya artıq hər hansı
lakin SQL, dil mən saxlamaq Query Language Yapılandırılmış, istinad,
Bu özü bir proqramlaşdırma dilidir, lakin heç bir, istifadə etmək üçün nəzərdə
surprise, sorğu sorğu strukturlaşdırılmış.
>> Ki, mən bu demək.
data seçin yol MySQL verilənlər bazası
siz sözün proqram yazın ki, istifadəçilər seçin ulduz kimi bir şey.
Bu cədvəldə fərz etsək edirəm, bundan sonra istifadəçilər adlanır.
Mən istəyirik bir şey zəng edə bilər lakin bu cür əhəmiyyət kəsb edir.
Və seçin çox deyil ümumi fel, əgər
olacaq, SQL, sözün ki, yoxdur.
Siz star nə düşünürsünüz bu çərçivədə deməkdir?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Mən təəssüf edirəm?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: lazım deyil, bu daha çox daxil, həqiqətən.
Bu vəhşi kart xarakter var.
heç bir şey deməkdir həmişə Star, belə ki, bu, bu halda, o deməkdir
verilənlər bazası hər şeyi seçin.
Mən bu deyəndə ki, mən demək hər sütun, mənə geri vermək
Mənim masa istifadəçilər çağırıb.
Bu deyilən kimi Belə ki, mənə bir nəticə set verir.
Başqa sözlə, mənə bir kopyasını vermək elektron tablo, Mən alıram budur.
>> Amma söylədi istifadəçilər seçin star ID 1 bərabərdir harada, necə böyük olmalıdır
Mənim nəticə set sonra olacaq?
Və ya equivalently neçə satır olmalıdır Mən bazası geri qaytarılacaq?
Yəqin ki, yalnız bir, Mən, həqiqətən, varsa unikal identifikator kimi ID müalicə,
və David unikal ID var, mən bir və yalnız bir sıra geri almaq lazımdır
Davudun məlumat bütün olan.
Dediyim bu harada ID 99 bərabərdir, mən geri almaq lazımdır
bu çərçivədə, sıfır satır, Ən azı bu an.
>> Lakin, həqiqətən, qayğı yoxdur, əgər bütün informasiya haqqında,
Mən burada David yaşayır, deyə bilər?
seçin poçt indeksi ID 1 istifadəçi.
Bu mənə yalnız Davudun poçt üçün seçin code ki, üst-üstə deyil bütövlükdə.
Niyə əvəzinə bunu bilər star sorğu, vəhşi kart?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Bəli, mən yalnız lazımdır.
Belə ki, icra yenə burada cavab.
Niyə daha çox üçün xahiş məlumat sizə lazım çox
, Doğru birlikdə bütün belə çünki Siz hələ ki, məlumat surəti var
Bu verilənlər bazası, görünür birtəhər proqram,
ki, əgər yalnız silly var yalnız rəqəm beş lazımdır,
sıra deyil bütövlükdə.
>> Belə ki, necə bir istifadəçi daxil edə bilərəm?
bir istifadəçi yalnız var Güman ilk dəfə qeydə alınıb.
sintaksis adətən bu kimi görünür.
istifadəçilər daxil edin və sonra biz dəyərlər demək olardı
kimi, demək Lauren Scully imkan
burada bizim videographer.
Və növbəti sahəsində gender edir.
Beləliklə, biz quote, dırnağı bağlamaq demək lazımdır "F", sonra biz bir ID
Mən edək demək gedirəm , O, burada həqiqətən deyil iddia
belə ki, biz hekayə geri olacaq.
Belə ki, 2 ay ID olacaq.
Və sonra növbəti sahəsində burada onun e-poçt.
Belə ki, kimi olacaq s Lauren Scully və
və biz yalnız dot dot lazımdır burada uzaq nöqtə.
İndi bir az olacaq yorucu, lakin insert sorğu
nəticədə kimi görünür.
>> Mən xilas olmaq istəyirsinizsə, Scully, uh-oh, bu Sil edək
onun o hesab silir, ID 2 bərabərdir istifadəçilər silmək,
Scully xilas olacaq.
Yoxsa mən yeniləmə users müəyyən demək olar, biz nə dəyişə bilər, deyək?
o hərəkət düşünək.
Set poçt bərabərdir 021-- Xeyr, ki, onun cari zip var.
90210.
yalnız başqa poçt indeksi Mən dünyanın bilirəm.
Belə ki, dəyişiklik olacaq onun zip, həqiqətən kod
ki, onun poçt kodu dəyişə bilməz.
>> Mən nə idi?
Baxmayaraq syntax yəqin ki, yeni.
>> Auditoriya: [işitilemez]
DAVID MALAN: Bəli, mən hər kəs köçüb Beverly Hills, California.
Mən, həqiqətən, lazım ID 2 bərabərdir demək.
Və sairə.
Belə ki, SQL bu barədə bütün təlimat növləri.
, Yeniləmə, seçin daxil silmək Sonda bu predikatların ilə
Bu harada müddəaları, belə danışmaq.
Və çox daha çox edə bilərsiniz var , lakin bu, həqiqətən, yalnız aşağı sonunda
sadəcə, əgər arcanely ifadə nə bazası etmək istəyirəm.
>> Və sonra bazası anlamaq edəcək, zaman
Siz daxil Lauren Scully daxil verilənlər bazası, burada yaddaş onun qoymaq
biz çox tez əldə edə bilərsiniz ki onun e-mail əsaslanır
və ya onun şəxsiyyət nömrəsi və ya kimi əsaslanır.
Bəli, Dan.
Auditoriya: [işitilemez]
DAVID MALAN: Həqiqətən, yaxşı sual.
Bu scripts dəyişdirmək edəcək Oracle Microsoft Access
MySQL üçün PostgreSQL üçün necə?
Qısa cavab Bu asılıdır.
Nəzəri olaraq, bir çox var SQL əhəmiyyətli ortaq alt
bütün arasında paylaşılan Bu tətbiq.
Lakin, müxtəlif istehsalçıları əlavə funksiyalar var
öz verilənlər bazası müəyyən şeyə Bu xüsusiyyətləri çərçivəsindən kənara,
ki, əslində, qıra bilər.
>> yol developers So Bu qarşı hedcinq,
ki, daha xam yazılı daha SQL kodu Mən burada yazıram kimi
Onlar əvəzinə kitabxana istifadə, ümumi kitabxana özü
sort yüksək səviyyəli və özet üz istifadə etdiyiniz hansı məhsul.
Və verir funksiyaları və prosedurlar
Belə ki, heç vaxt zəng etmək üçün həqiqətən xam SQL yazın.
>> Nəzəri olaraq, sonra dəyişə bilərsiniz Oracle Microsoft məhsulları
və ya əksinə və ya bir şey başqa, siz sözün
Sizin kodu haqqında heç bir şey dəyişir.
reallıq, baxmayaraq ki, bəzən deyil nəticəsində xüsusiyyətləri verir.
Siz bir məhsul, çünki seçilmiş ola bilər bu əlavə dəyər xüsusiyyətləri var,
və indi yalnız deyilik şüurlu onlardan istifadə.
>> Və anecdotally, çox şirkətlər edirlər onların bazası hərəkət etmək heç vaxt.
Bu gözəl isə So xüsusiyyət var, reallıq
Siz əldən əgər, var verilənlər bazası, sen
yəqin ki, digər dəyişikliklər dəstələri edilməsi Hər halda, siz mütləq deyil ki,
ki, tahmin lazımdır.
Belə ki, arguably var over-mühəndislik problemi,
lakin bu, həqiqətən kontekstində asılıdır.
Amma nəzəri, SQL paylaşılan bu müxtəlif məhsullar üzrə.
Həqiqətən, yaxşı suallar.
Bəli.
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Bəli, belə bir verilənlər bazası hesab edə bilər
yalnız bir server sonunda edir Ki, server daxilində gün
bütün dəstə edir masalar, satır ve sütun.
Və bu kimi bir sorğu göndərmək zaman Sizin proqram, Sizin veb,
Java yazılmış, Ruby, Python, nə olursa olsun, server bu əmri qəbul
və onu şərh sanki eyni şəkildə
biz əvvəllər müzakirə şərh dillər,
və sonra sıfır bəzi fəaliyyət həyata sıfır və ya daha çox masalar və ya daha çox satır.
Auditoriya: [işitilemez]
>> DAVID MALAN: Məhz, dəqiq.
bir şey üçün pseudocode So kimi bu ola bilər.
Sizin PHP fayl və ya Sizin Python fayl və ya sizin Java fayl,
Siz pseudocode kodu, və ya ki, Scratch kimi blokları kimi, istifadəçi səfərlər əgər
ilk dəfə acme.com/register~~V, sonra istifadəçilər daxil və s daxil edin.
Və biz bu tərcümə edirəm sonunda daha konkret kodu.
Lakin, həqiqətən, biz bütün var Burada tikinti blokları,
bəzi atlama olmalarına baxmayaraq həyata keçirilməsi addımlar.
>> Mənə nə ilə günah tapmaq imkan biz gözəl, yalnız bir an əvvəl idi.
Siz olduqca yaratmışdır istifadəçilər üçün tam masa.
Etiraf, biz həyata bilər bir neçə müxtəlif yollarla,
lakin həqiqətən, bizi gətirib və path-- aşağı Mən sizə demək
lakin bu kifayət qədər yəqin ki, mənim fault-- var səmərəsiz bazası həyata keçirilməsi.
Bu normallaşıb deyil.
>> Və normalized mən demək var gedir,
zamanla əhəmiyyətli redundancy, və buna görə də təsirsizlik,
ki, kosmik israfıdır.
Burada görmək yalnız nə ola bilər əsasən Əgər yer bu tullantıların nəzərdə tutur
Zamanla, gəlib gedir, daha çox istifadəçi qeydiyyatdan kimi
Sizin veb üçün?
Nə data lazımsız ola bilər?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Niyə ki, demək olar?
Auditoriya: [işitilemez]
DAVID MALAN: Bəli.
Və məqsədləri üçün fərz edək bu gün ki, doğrudur ki,.
Çıxır, və biz bu öyrəndim ağır yol ki, doğru deyil.
Elə çox şəhərlər var elə eyni poçt indeksi,
olan bu gözəl intuisiya pozur.
Lakin, ki, doğrudur güman edək demək olar ki, həmişə doğru, çünki.
Belə ki, bir zip kodu Güman həmişə eyni şəhəri ilə bağlı
növüdür və dövlət, ağlabatan fərziyyə,
lakin səhv çıxır.
Amma ağlabatan ehtimal bugünkü məqsədləri üçün.
>> Sonra Cambridge yaşamaq güman, MA, bu istifadəçi cədvələ görə,
və güman Lauren Scully, Cambridge, MA yaşayır
və güman Kareem Cambridge, MA yaşayır,
və Arwa Cambridge yaşayır MA, hamımız 02138-da.
Niyə biz, Cambridge xatırlayaraq MA, hamımız dörd 02138?
Nə yadda kifayət olmalıdır?
>> Auditoriya: [işitilemez]
DAVID MALAN: Just saxlayın kodu.
02138 mövcud Just ki, çünki Biz nə edə bilər nə bilirik?
Biz burada bir az xülya ala bilər və burada başqa bir masa müəyyən
bu olacaq harada adı, bu, növü olacaq
bu olacaq uzunluğu və bundan sonra, mən
Mənim şəhərlər masa zəng gedir.
Bu, çağırıldı Təbii ki, mənim users masa.
Və mən burada nə üzərində qoymaq lazımdır Mənim şəhərlər masa, sizcə?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Bəli.
Belə ki, dövlət və şəhər və zip.
Və belə ki, burada növü, biz demək lazımdır Bu, yenə bir char 5 olacaq
əvvəllər müzakirə mövzusu.
Bu, bəlkə də kimi, enum olacaq əvvəl və şəhər VARCHAR 50 olacaq.
Və indi mən nə əldə edirsiniz Bu masa silmək üçün
ki təsirsizlik aradan qaldırılması üçün?
>> Auditoriya: [işitilemez]
DAVID MALAN: Nice.
Dövlət və şəhər getmək, belə ki, indi var potensial təsirsizlik aradan
üçün redundantly, Cambridge xatırlayaraq MA, Cambridge, MA, Cambridge, MA,
Cambridge, MA, inşallah ki, heç dəyişdirmək üçün gedir.
Bunu hətta əgər, bu minorly annoying, indi
Mən dəyişdirmək lazımdır ki, Bir çox satır,
Burada isə, yalnız ola bilər Bir yerdə dəyişir.
>> İndi ticarət-off bəlkə nə var?
Bu super rahat idi.
qəşəng birlikdə bütün məlumatları Oldu.
Amma indi hal aydın nə var?
>> Auditoriya: [işitilemez]
DAVID MALAN: Məhz, və mən şad siz söz qoşulmaq istifadə
, Həqiqətən söz çünki relational verilənlər bazası dünyada
SQL, bu, faktiki söz siz yazın və ya ən azı çatdırmaq bilər.
Və əslində, biz indi nə etmək lazımdır Davudun tam məlumat seçin
seçin ulduz kimi bir şey istifadəçilər Us və indi şəhərlərdə qoşulmaq
Mən yalnız bir ikinci xətti hərəkət gedirəm Bu fits-- users.zip bərabərdir ki,
users.ID 1 bərabərdir cities.zip.
>> Belə ki, nə olub?
Bu axtarır çirkin, lakin siz cür bilərsiniz Bu alt sağ, üst sol oxuyun.
istifadəçilər seçin star Əvvəl eyni
lakin bu özlüyündə istifadəçilər gələn deyil.
users şəhərlərdə qoşulmaq olan bu.
Mən o iki masalar qoşulması edirəm?
Bəli, yəqin, istifadəçi masalar sahəsində, ünvan,
və bu müddət yalnız xüsusi syntax fikri ifadə etmək,
və bu şəhərlərdə masalar sahəsində Saxlayın edir.
Mən bu iki bərabər olmaq istəyirəm amma nəticədə seçin istəyirəm
yalnız satır harada users masa ID
mina oldu ki, 1 bərabərdir.
>> Və yalnız aydın olmaq, bir proqramçı, adətən zaman
sayı kimi bir şey hardcode 1, çünki əks halda veb yalnız
David və ya dəstəkləyir ilk user, siz
əvəzinə edəcəyini ID, kimi bir şey
Bu təmsil dəyişən, bir şey ki,
zamanla dəyişə bilərsiniz, oxşar Mən əvvəllər dediklərini ruhu
placeholders bu cür.
Amma indi biz yalnız 1 kimi hardcode lazımdır.
Və bu nə deməkdir?
Bəli, bu görüntüləmək üçün gözəl yoludur Bu əl users masa ki,
bu əl zips edir masa, biz finding-- sort istəyirik
və barmaqlarının ipuçlarını poçt var burada və mənim barmaqlarının tips
burada istəyirik, poçt var bu interlocking cür
Siz nəticəsində geri almaq ki, həqiqətən qatılaraq orijinal masa,
ümumi sahəsində iki masalar.
Bu zip olmaq deyil.
Bu başqa bir ən şey ola bilər, lakin bilər zip, bu qısa, çünki gözəl
iki, həmişə var eyni uzunluğu, belə ki, var
bir real effektiv nə Olivier burada təklif
zip həyata faktorinq, və [Işitilemez] biz xilas ki, təklif
şəhər və dövlətlərin.
>> Belə ki, bu proses normallaşma kimi tanınır.
ki, hər hansı suallar?
Yaxşı mənə qeyd edək bu məhsulları növüdür
bu, kifayət qədər aşağı səviyyədə olsa da, Siz hesab edirəm ki, bu müzakirə,
Siz sort alırıq alaq otları məğlub
Bu geniş bir təzahürüdür geliştiriciler üçün imkan pis olacaq.
Və əslində, hətta biz da biz yaşadığınız zaman kursları mən tədris etdik,
məsələn, təcrübəsiz lisenziya proqramçılar
ilk baxışda, web qurmaq, Veb səhifə dəhşətli ola bilər.
Onlar bütün var funksionallıq biz tələb
developers yaxşı bir iş idi.
>> Lakin onlar mütləq bilmirdim verilənlər bazası dizayn haqqında kifayət qədər
və ya onlar çətin hesab etməyib məlumatların növləri haqqında kifayət qədər
və istifadəçilər növləri veb var gedirdi
və biz sonra, tapmaq, altı ay sonra, onlar məzun və ya köçüb sonra,
ki, lənət olsun, bizim web həqiqətən, həqiqətən yavaş.
Mən hətta olmaması haqqında söhbət deyiləm milyonlarla və ya istifadəçilər minlərlə.
Mən kampus bir neçə yüz istifadəçilər demək kimə bütün kimi, məsələn,
kursları üçün mağaza Eyni zamanda, onlar
ki, kurs, kataloqdan istifadə etməklə proqram Qeyd
və bir şey həqiqətən olur heç bir göstəriciləri var idi, çünki yavaş.
Heç bir qırmızı ulduz idi belə danışmaq, ya da yox idi, mütləq
ümumi məlumatların factored kosmik bəzi qənaət almaq.
>> Və belə bir geliştirici Təftiş zaman və ya verilənlər bazası şəxs və ya kimi,
vasitəsilə düşünmək suallar növləri hətta, kiminsə kodu incelerken,
mütləq baxmaq deyil, demək Onların kodu bütün, lakin demək vasitəsilə
verilənlər bazası masalar vasitəsilə baxaq.
Nə saxlanılması olunur?
Və sonra demək, yaxşı, bir gözləyin dəqiqə, niyə tam istifadə olunur?
Biz 4 milyard varsa bu satır 1?
Və bu cür Suallar bir fürsətdir
cür geri itələmək və Burada bir mənada almaq
bunu rahat değilseniz Bu olan kimsə daha çox texniki
Bu sual, xahiş və ya şəxs həqiqətən onların məhsulları bilir.
Və bu cür stuff, çox, insanların
internet kim bəlkə, self-tədris olunur
Tez-tez az öyrənmək çünki mütləq rast gəlmək yoxdur
Siz əldə edə bilərsiniz, çünki çox verilənlər bazası və çalışan,
ancaq oxumaq etdik halda Dərsliklər və ya olmuşdur up
verilənlər bazası normallaşması barədə və endeksleme və performans,
bunlar növ ki, zərər edir.
Və hesab edirəm ki, və ya pis bir mühəndis bilər oh, yaxşı, daha yaxşı pay, demək olar ki,
böyük bazası və ya daha sürətli məlumat bazası
və ya yalnız bu pul atmaq şaquli miqyaslı, mütləq belə.
Siz in-- getmək və siz getmək edə bilərsiniz fact-- və əlavə göstəriciləri sonra,
və bunun üçün bir neçə saat bilər ki, yeni məlumatlar qurmaq bazası
Mən əvvəllər alluded strukturu, Siz hələ, fakt sonra bu düzeltmek
Bu harada ki, ayırmaq başlamaq
pis olan yaxşı dizaynerlər dizaynerlər, yalnız estetik,
lakin performans müdrik həmçinin.
Hər hansı sual?
Yox?
digər növü NoSQL üçün So verilənlər bazası olan mən əvvəllər alluded üçün
Siz satır və sütun yoxdur.
Əksinə, bir şey var ki, bu kimi bir az daha görünür.
Mən ümumi sintaksis istifadə gedirəm.
Curly aşırma başına Burada bir çox istifadə edilə bilər.
Siz bir şey ola bilər adı David kimi,
son ola bilər adı, quotes Malan deyil,
Siz ID ola bilər is-- Pardon, whoops-- ID, 1
E-poçt malan@harvard.edu və mən deyil sonra qalan yazaraq narahat, və
bəzi başqa şeylər.
>> Başqa sözlə, bu bir mətn nümayəndəliyi
biz ümumiyyətlə zəng nə bir kompüter proqramı bir obyekt.
Və bir obyekt yalnız ümumiyyətlə əsas dəyər cüt bir toplusu.
Belə ki, yenə, bu təkrarlanan theme.
Biz HTML əsas dəyər cüt gördüm biz indi əsas dəyər cüt gördüm
verilənlər bazası kontekstində və biz kontekstində əsas dəyər cüt gördüm
, mən bir dil əvvəllər bu gün düşünürəm.
gələn saxlayır.
And olsun ki, həqiqətən nə data sonunda aşağı,
məlumat və metadata, və ya dəyərlər müvafiq olaraq və düymələri.
>> Belə ki, qeyri-relational verilənlər bazası, bir şey əsaslanır
Yalnız yığın obyektlərin, on birlikdə hər şey və qoymaq
yaddaş, ümumiyyətlə olacaq kimi təsvir və ya bu kimi düşündüm.
Mən kimi indi tərk edəcəyik alternativ yanaşma sort.
Və bir mütləq deyil digər daha yaxşı.
Əslində, çox dəbdə bu gün bazası sistemi
MongoDB və Redis və bir neçə kimi sərbəst mövcud digər alətlər,
lakin onlar dəbdə en getdikcə var.
Qismən onlar əlavə təklif çünki Bu cədvəlli yanaşmalar üzərində xüsusiyyətləri,
həm də istəyirik, çünki istifadə etmək üçün bir az daha asan,
Siz kimi ağır düşünmək yoxdur, çünki Bu dizayn qərarları bir çox haqqında.
müsbət və mənfi cəhətləri So.
Belə ki, seçim var dərk kənarda, biz yalnız vaxt sərf nə.
>> Belə ki, bunu edək.
Bir az keçid edək geri indi web proqramlaşdırma,
belə ki, biz cür bağlamaq ki, bir şey bu gün
ki doldurulması, bir az hands-on var dünən bəzi boşluqları.
Mənə bu ilk gedək.
Belə ki, dünən geri bəzi canonical HTML idi
ilkin idi pages, yalnız HTML, və sonra ikinci, CSS idi
Cascading Style Sheets.
Bu etmədik yeni tag edir dünən görmək, və ya dayanmaq,
script tag sözdə.
>> Siz, həqiqətən, bir bütünləşdirmək bilər çıxır dil web JavaScript adlı
səhifə və web etmək pages bir şey yoxdur.
Belə ki, nə deməkdir?
Yaxşı, mənə irəli və yalnız gedək bir an bu kodu borc.
Mən Cloud9 getmək üçün gedirəm, heç bir ehtiyac yalnız hələ orada özünüzü getmək,
və mən bu alert.HTML zəng etmək üçün gedirəm.
Mən burada mənim fayl yapışdırıb gedirəm.
Və yalnız mən etdiyiniz nə aydınlaşdırmaq üçün imkan Məni bu ünvana getmək və xəbərdarlıq getmək
və Hello World görürük.
>> Amma bu underwhelming növüdür.
Mən bir şey etmək istəyirəm bir az fərqli.
Mən, həqiqətən, bunu gedirəm.
Mən burada e getmək üçün gedirəm və script tags arasında,
(Salam, dünya ') alert deyirlər belə bildiriş bir az sloppy var, amma HTML var,
içərisində olan bir deyil JavaScript adlı dil,
və bu deyirlər nə funksiyası zəng və ya proseduru zəng.
Bu, bu halda, sanki, bir verb edir Mən code funksionallığı invoking edirəm
başqası olduğunu yazdı.
>> Belə ki, funksionallıq bir deyil alert, belə ki, bu səhifəyə gedək
və indi indi yenidən basın və interaktiv bir az oldu.
Bu köhnə məktəb və çirkin növü var.
Bu cür sizə xatırladır pop-up, bəlkə, yesteryear
lakin bu bir şey nə idi daha proqramlı az.
>> daha Belə ki, daha, bu nə edək daha maraqlı bir şey.
mənə burada getmək və bu xilas edək.
Mən irəli getmək üçün gedirəm və Biz dünən olduğu kimi bir forma yaradır.
Əslində, siz nə bilirik?
Mən getmək üçün gedirəm google.html olan biz
kimi baxdı ki, dünən başladı Bu, hansı vasitəsilə biz pişik üçün axtarış
Amma cür bir var hiss cari versiyasını bug.
Bu pişik üçün çalışır, lakin güman Mən əməkdaşlıq yoxdur və mən heç bir şey yazın,
Mən sadəcə təqdim basın.
Bu qəribə davranış növü var.
, Real Google apardı mənə bir səhv baş beledir vermədi.
Mən istifadəçi demək istərdim Bizə bir dəyər vermək lazımdır.
>> Beləliklə, biz bu necə ola bilər?
Yaxşı mənə Cloud9 və geri gidelim mənim səhifənin üst getmək imkan
və bu kimi bir script tag əlavə, burada Mən bəzi JavaScript kodu yazın gedirəm.
Mən aşağıdakı gedirəm.
(Document.getelementByID-- və geri varsa biz ki, əvvəllər haqqında danışdı ki,
ki, fəaliyyət göstərir.
Nə ID Mən almaq istəyirəm?
Mən Q almaq istəyirəm və mən gedirəm demək bu kimi heç bir şey bərabərdir
həqiqətən mənə ikiqat quotes istifadə edək yalnız consistency-- üçün heç bir şey bərabərdir
sonra alert burada ( "bir sorğu yazın").
>> Mən görünür nə var bir şərt kimi bir şey.
Biz Not bu ümumi bir fikir gördüm.
O puzzle biri kimi bu kimi baxdı ədəd.
Və mən nə deyirəm?
Yaxşı, aşağı burada, mən hiss aşağıdakı edəcəyimiz.
Bu forma vermək gedirəm q sahəsində bir ad deyil, yalnız olan
Google keçdi olur, amma mən nə bir yerli tanıdan verəcəyəm,
də q çağırıb.
Amma bu bir şey zəng edə bilər I istəyirəm, yalnız sadə saxlamaq üçün gedirəm
və həmçinin yalnız sadəlik üçün, q zəng.
>> İndi mən gedirəm bir az daha bir şey.
burada forma sahələri üzrə, mən gedirəm bir hadisə handler deyirlər nə əlavə edin.
təqdim, mən zəng etmək istəyirəm tesdiq adlı funksiyası.
Bu, hələ bu mövcud deyil söz, və ya bu verb tesdiq,
Mən gedirəm çünki burada artıq bir kod əlavə edir.
>> Mən funksiyası Doğrula'yı demək gedirəm.
Mən bu indent və başqa əlavə etmək üçün gedirəm buruq burada brace və başqa bir.
bu artıq nə düşünün.
Mən yaratdığı kimi hesab now-- var mənim əvvəllər yox idi öz puzzle parça
mövcud və bu puzzle adlı etdik tesdiq puzzle parça parça.
həyat Onun məqsədi icra edir Bunun içərisində kodu dörd xətləri.
>> document.getElementByID varsa belə konseptual,
ki, element daxil etmək niyyətindədir Onun unikal HTML element
fikir olsa da sonra yalnız q və sintaksis, bir az qəribə görünür
ki, bərabər yalnız bərabər deməkdir bərabərdir.
Belə ki, deməkdir əgər ilə element q unikal identifikator, kazanılmış zaman,
heç bir dəyəri var, yalnız bərabərdir dırnağı bağlamaq quote, heç bir şey yoxdur,
sonra mən nə istəyirəm?
Mən istifadəçi fəğan istəyirəm.
>> Və biz burada böyük detal getmək olmaz.
Mən yalan qayıtmaq üçün gedirəm.
Bu bir səhv deyil.
Else, mən doğru qayıtmaq üçün gedirəm.
Belə ki, ya işləyib və ya olmadı.
False və ya doğru.
Mən hər hansı bir səhv etmədiyini indi əgər, oxşar saxlamaq və bu yenidən bildirin.
Və mənə yalnız ikiqat çek edək ki Mən, əslində, hər hansı bir hatası etməyib,
mən özümü xəcalətli deyil.
bu işləri əgər in nəzər salaq.
>> Belə ki, indi pişik yazın gedirəm.
Bu hələ də işləyir, və ya ən azı yarım işləri.
İndi mənə yenidən, indi edək Mənə yazaraq olmadan təqdim edin
anything-- lənət olsun, bu qırdı.
Bir dəqiqə.
Mənə konsol açaq, [Işitilemez], daxil səhifəni yenidən.
Bir daha bu cəhd edək.
Oh, lənət olsun.
Mən unutdum.
Mən typo etdi.
Mən nə xatırlayıram.
.Dəyər.
Mən dəyər əgər demək üçün nəzərdə element kimin ID q edir
, Sonra istifadəçi fəğan ki, bərabərdir.
>> Belə ki, indi mənə daha nəfəs edək.
Burada getmək.
biz var gedin.
bir sorğu daxil edin.
Belə ki, mənə vasitəsilə imkan deyil.
Mən bu cür oynaq ola bilər əvəzinə heç bir dəyəri yoxlanılması,
Mən kimi bir şey demək olar heç bir daha çox pişiklər üçün axtarış,
və indi biz daha çox playfully imkan bilər itlər üçün istifadəçi axtarış əgər o
istəyir, ya mən burada getmək əgər indi bilməz, pişiklər üçün axtarış.
>> Belə ki, paket, burada nə var?
Belə ki, bir, biz daxil olduğunuz HTML və CSS bizim dünya,
proqramlaşdırma funksionallıq.
İndi həqiqətən bilərsiniz kodu qərarlar qəbul etmək.
Əvvəllər mən nə edə bütün qeyd edir mətn content və ya qrafik content
və nə baxmaq demək kimi və harada keçirmək üçün.
İndi mən, həqiqətən, xahiş edə bilər web page suallar
və əsaslı qərarlar qəbul bu və istifadəçi təklif
Mən ona fəğan lazımdır.
>> Belə ki, bir şey edək bu ilə öz.
Durmayın, mənə növbəti slayd açmaq bildirin Burada, və yalnız bir şey qeyd.
Just CSS ilə kimi, biz amil ola bilər ayrı bir fayl bizim JavaScript kodu,
Siz eyni şey edə bilərsiniz CSS ilə JavaScript.
Və bir mənbə istifadə istifadə script tag bağlayırlar.
Amma biz indi şeyi çətinləşdirir deyil.
Əksinə, əgər bilər bu səhifə getmək,
ancaq mənə order-- bu ətrafında hərəkət edək Siz ola bilər, əgər burada, bu səhifəni gedin.
Burada Bu URL.
Bu gün slaydlar var.
Siz, çünki yeniden ola bilər Mən şey bir neçə əlavə etdik.
>> Bəzi bulmacalar gözləyir Amma orada getmək.
Bu bizə imkan verəcək, bir az daha çox əyləncə kontekstində,
bəzi JavaScript dabble.
Və orada almaq zaman, Mən gözləyir nə izah edəcəyik.
yaşıl alın.
blue seçin.
yaşıl, qırmızı edir Sets.
Oops.
Sorry.
>> Bu dərəcədə bizim Bu problem üçün sənədlər.
Bu aşağıdakı kimi iş gedir.
Belə ki, bu barədə nə səhifə bütün dəstə edir
Bir dost ilə image bulmacalar Stanford Universitetində.
Belə ki, burada gördükdə nə demək olar ki, o sehrli göz bulmacalar bir növü,
lakin yalnız ona nəzər əgər, heç bir şey həyata pop olacaq.
Əksinə, bir şey deyil Bu şəkil gizli.
Və bu şəkildə gizli.
Şəkillər, bildiyiniz kimi, ola bilər yalnız üç rəng ibarətdir.
Bəzi qırmızı, bəzi mavi və bəzi yaşıl.
Və biz bütün edə bilərsiniz göy qurşağı rəngləri
elə bu üç rəng qarışdırmaqla.
>> Belə ki, bu, əsasən yaşıl görünür və mavi, lakin Nick burada dediyi kimi,
Bu dəmir puzzle image bir puzzle edir.
Bu bir resim var məşhur bir şey, lakin,
image təhrif edilmişdir.
məşhur obyekt qırmızı dəyərlər var.
Lakin, red dəyərlər bütün 10 bölünür edilmişdir.
Belə ki, onlar 10 bir amil çox kiçik.
Belə ki, başqa sözlə, Nick orijinal image etdi,
və o, bütün desaturated bu qırmızı,
qırmızı məbləği azaltmaq mürəkkəb, Siz, bu.
>> mavi və yaşıl dəyərlər , Yalnız mənasız
təsadüfi dəyərlər, aka səs-küy nəzərdə real image gizli.
Belə ki, nə Nick etdi o sonra qırmızı və aşağı tonluk
o, yalnız təsadüfi atdı mavi və yaşıl məbləğləri
qaranlıq cür image hələ də həqiqətən nə.
Bu təhrif geri olmalıdır image aşkar etmək üçün.
Birincisi, bütün mavi və yaşıl dəyərlər müəyyən sıfır yolu onları almaq üçün,
və nəticə baxmaq. sonra 10 hər red dəyər çoxaltmaq,
geri scaling təxminən son dəyəri.
məşhur object nədir?
>> Belə ki, bütün bu düzbucaqlı var İndi brauzerinizin.
Və bəzi olduğunu qeyd starter indeksi, belə danışmaq.
Bu JavaScript kodu edir ki, Nick sizin üçün yazmışdır.
Və var ki, qeyd ortasında bir xətt ki,
ki, bir çizgi çizgi ilə başlayır nə ümumiyyətlə comment deyirlər.
Bu proqramçı bir söz deməkdir ki, heç bir funksional mənası var.
Bu insan üçün bir vizual replika var.
>> Belə ki, davam edə bilərsiniz yalnız ki, xətt silmək,
və super ehtiyatlı olun silmək və ya başqa bir şey dəyişir.
Və mənə yalnız vasitəsilə gəzmək edək Bu kodu edir və mən onu tərk edəcəyik nə
sizə gizli image anlamaq üçün.
Mən yalnız var burada Bu ilk line Qeyd aşağıdakı verir.
sol tərəfində, Siz deyirlər nə var
Nick özbaşına var ki, dəyişən, lakin əsaslı image im çağırıb.
sağ tərəfində ki, bərabər işarəsi,
o mənə yeni vermək deyən var quote, dırnağı bağlamaq "sadə image".
>> bu çərçivədə Simple image, , Yaxşı, bir sinif deyirlər nə
bir sinif kimi növ var texniki prototype lakin həqiqətən,
Bu, mənə yeni obyekt verir fayl olan məzmunu,
dəmir-puzzle.png.
Başqa sözlə, Nick yaratdı sadə image bu anlayışı
biz pedaqoji üçün edə bilərsiniz, belə ki, məqsədləri, image ilə oynamaq
və onun qırmızı dəyişir yaşıl və mavi dəyərlər.
>> Və necə ki, edirik?
Burada Bu qədər sirli sintaksis cür təkrar blok kimi
bəzi əvvəllər Not gördüm ki, 10 dəfə təkrar edə bilərsiniz, bu gün.
Bu halda, Nick yoxdur 10 kimi bir sıra hardcoded.
Bunun əvəzinə o, başlamaq deyib 0 x adlı dəyişən,
x az olub olmadığını kontrol image eni.
>> Və belə ki, daha düzgün olmaq, şəkil dəyişən, dot onun daxilində getmək deməkdir
və onun eni almaq və sonra açıq paren, qapalı
paren yalnız bir proqramçı yoldur Bu bir funksiyası var deyərək.
Bu bir prosedurdur.
Bu işlevsellik edir başqası yazdı.
istifadə edin və bir cavab mənə geri verir.
Və sonra x ++ bir xülya yoludur Bir dəfə bunu sonra söyləyərək,
1-x arttırmayı.
Başqa sözlə, bu bir proqramçı yoldur
of bir loop fahişəliyə cəlb edilməsi maddələri üzərində təkrarlamaq gedir
bir resim bütün sütunları.
>> Bir image yalnız bir grid edir nöqtələr, satır və nöqtələr sütun.
Bu iterating bir yoldur o sütun bütün.
Və daxili, Eyni zamanda, biz iterating edirik
Heights, burada və burada və burada.
Belə ki, bu dolaşmışlar yalnız bir yoldur, demək olar ki, köhnə məktəb makina kimi,
yalnız getmək iteratively bütün image.
Hətta kifayət qədər tam deyil aydın, indi üçün iman götürmək,
o üç xətləri ki, kodu birlikdə
Siz iteratively baxmaq üçün imkan gedir hər pixel at, hər image nöqtə.
>> bir pixel nədir?
biz baxmaq əgər Bəli, aydın olmaq orijinal və zoom,
Siz, həqiqətən, sizin gözləri qoymaq kompüter ekran, ki
nöqtələr yalnız bütün dəstə bir neçə min nöqtələr birlikdə qablaşdırılır.
Və belə ki, nə haqqında nə var?
o nöqtələr hər biri, son definition,
ümumiyyətlə nə nəticəsidir Qırmızı, yaşıl, mavi adlı RGB, olan
yenə birləşdirilə bilər Siz rəng hər hansı bir sayı verir.
>> Əslində, siz yadda əgər , Illər əvvəl bir çox
bunlar kimi proyektor ekranlar heç bir lens amma üç üçün istifadə olunur.
Onlardan biri biri qırmızı işıq tüpürmək onlara biri yaşıl işıq tüpürmək
mavi işıq tüpürmək.
Və bir orta məktəb olsaydı Onlar heç olduğu kimi mən
düzgün aligned idi həmişə tarixi film seyr
ki, az təhrif idi üç rəng deyil, çünki
Düzgün birləşən.
>> Amma hər çıxır ki, Qırmızı, yaşıl və mavi bu dəyərlər,
onlarla bağlı bir sıra ola bilər.
Məsələn, qırmızı 0 Xeyr qırmızı, yaşıl 0 heç bir yaşıl deməkdir ki,
və mavi 0 heç bir mavi deməkdir.
Belə ki, heç bir qırmızı, yaşıl varsa, və mavi Xeyr, siz nə rəng var?
>> Auditoriya: [işitilemez]
DAVID MALAN: Siz ki Belə ki, ağ ümid edirik.
Təəssüf ki, bu üzr operates--?
>> Auditoriya: [işitilemez]
DAVID MALAN: Belə ki, həqiqətən bu halda, qara var.
Belə ki, bu heç varsa rəng qara var çevirdi.
Lakin, varsa, bir çox deyək Onlardan, qırmızı bir çox kimi, bu 255,
yaşıl bir çox və bir çox mavi, ağ var.
Belə ki, bu iki ifrata var.
Mən çox bu məntiq Belə ki, əgər qırmızı və yaşıl və mavi,
nə rəng olar?
Auditoriya: [işitilemez]
DAVID MALAN: sağ, açıq-aydın.
Və sonra qırmızı, çox Yaşıl heç bir mavi, və sonra
Yaxşı yaxşıdır, biz yalnız bitirmək lazımdır Bu, yalnız çünki, lakin bu, əlbəttə,
indi mavi.
İndi bu rəng birləşdirə bilər.
İndi bir kənara, siz hər hansı kimi Heç bir faktiki web dizayn edildiyini
Siz, həqiqətən, güc oxşar rəmzləri görürük.
FFF-- və həqiqətən, bu yəqin ki, hətta.
Bu FFFFFF var.
>> Hər kəs heç F və E-nin görüldü və A through-- bu çıxır ki,
Biz ondalık haqqında dünən danışıb və bu gün, mehriban decimal haqqında.
Bu gün biz ikili danışıb.
Çıxır, hexadecimal çox deyil ümumi baza sistemi kompüter istifadə etmək.
Binary iki decimal 10, hex 16.
Və necə çıxır Siz hexadecimal saymaq?
Zero, bir, iki, üç, dörd, beş, altı, yeddi, səkkiz,
doqquz, doqquz sonra nə istifadə edirsiniz?
növbəti sayı nedir?
Biz artıq sıfır istifadə olunur.
Mən bu 16 lazımdır.
Zero, bir, iki, üç, dörd, beş, altı, yeddi, səkkiz, doqquz,
Bəzi ixtiyari konvensiya lazımdır.
>> Və nə insanlar bəzi vaxt qərar bundan doqquz məktub ki, gəlir sonra
A və Beləliklə B və sonra C. yol hexadecimal saymaq
sıfır, bir, iki, üç, dörd, beş, altı, yeddi, səkkiz, doqquz,
A, B, C, D, E, F, və saymaq Siz bütün yol, bu 15 çıxır.
Belə ki, 15 sıfır sıfır vasitəsilə F. İndi niyə ki vacibdir?
Bəli, iki F-nin zaman, Siz 255 ifadə necə ki, var.
>> hekayə qısa, belə uzun Photoshop dünya,
ki, qrafik dizayn proqram, web inkişaf dünyada,
Siz rəng çox olduğu, əlbəttə, ilə oynamaq,
tez-tez proqramçılar olacaq , Hexadecimal həmin ifadə
yalnız çalışır, çünki bir az sadə olmalıdır.
Hətta ilk baxışda olsa daha kompleks var.
>> hər halda ki, bu vacibdir Stanford Nick çünki
Bizə funksionallığı altı ədəd verdi Siz ki, qönçələnmə proqramçılar,
indi istifadə etmək imkanı olacaq.
bu web daxil inşa səhifə altı funksiyaları,
Nick yazdı altı prosedurları.
Onlardan üçü bir sıra olacaq, qırmızı, yaşıl və ya mavi dəyər.
Onlardan üçü ki, dəyəri müəyyən edəcək.
Bu vurğulayır yalnız placeholders var,
belə ki, o nə bilmək lazımdır.
>> Bu üç funksiyaları ilə Belə ki, bunlar ilk
bir x-koordinasiya olacaq, və bunlar ikinci
bir y-əlaqələndirmək olacaq.
dot Başqa sözlə, hansı pixel Siz yaşıl almaq istəyirəm,
Ki, mavi almaq qırmızı almaq.
Və sonra burada, bu olacaq x, bu y dəyər olacaq,
bu bir sıra olacaq.
Belə ki, ilk nə edək Bu xətt birlikdə
və sonra mən sizə onu tərk edəcəyik istirahət anlamak üçün cəhd.
talimatları So Bu səhifədə, biz lazım
bir amil qırmızı artırmaq 10, və yaşıl aradan qaldırılması lazımdır
və mavi aradan qaldırılması.
nin sonuncu ssenariləri ilə başlamaq edək.
Mən istəyirəm, mən gedirəm Belə ki bəzi boşluq istifadə edərək indent,
Mən qırmızı təyin etmək istəyirsinizsə, yaşıl və ya mavi dəyəri,
Mən aşağıdakı gedirəm.
>> Image, im.setBlue, sonra Burada göstərişi əsasında
nə üç şey I olmalıdır İndi daxili parantez növü?
Mən x dəyər lazımdır nə sayı y dəyəri və
Mən xilas olmaq istəyirsinizsə, burada qoymalıdır mavi, burada bu hekayə əsasında?
Just sıfır.
Mən heç bir mavi istəyirsinizsə, mən yalnız deyiləm sıfır dəyişdirmək üçün gedir.
>> İndi yalnız bu nə recap edək.
Mən bu üst burada var ikinci və üçüncü xətləri,
Mən iki loops iddia nested loops, əgər
Ki, təsir üçün gedir ki, sağ soldan irəliləyir,
X bütün alt üst dəyərlər və y dəyərlərin bütün.
yenə Çünki bir şəkil satır ve sütun yalnız bir grid.
Belə ki, bu almaq üçün gedir bütün mavi xilas.
Sizə növbəti xətti tərk edək.
Mən bütün yaşıl xilas olar?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Nice.
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Nice.
Mən kiçiltmək gedir və yalnız almaq alıram Əgər hər hansı bir hatası həyata etdik ki, qayğı.
Və rahat edirsinizsə Siz etdiyiniz nə ilə
irəli getmək və düyməsini basın / Run edin və siz almaq nə görmək.
Və yenə, biz etdik yalnız üç dəyişikliklər.
Biz ilk silindi şərh və əvəz
kodu bu iki xətləri ilə.
Siz hit lazımdır, əgər OK Run / Save düyməsini bir neçə dəfə
bir şey düzeltmek üçün.
>> Və mənə də zoom imkan my kod kopya edə bilərsiniz.
Yaxşı.
Mən Andrew nə var bax bir səhv görünür.
O, yalnız böyük döşlər var Onun ekranda düzbucaqlı.
hər kəsdən varmı böyük döşlər düzbucaqlı?
>> Auditoriya: Bəli.
>> DAVID MALAN: Big black düzbucaqlı?
OK, belə ki, hesab edək Bu nə deməkdir haqqında.
Biz sıfır ki, sıfır, sıfır olduğunu ifadə edərək, belə ki, heç yaşıl, qırmızı, heç bir mavi,
Siz qara vermək niyyətindədir.
Və bu çıxır ki, Bizim noutbuk ən
yalnız kifayət qədər sədaqət yoxdur.
Siz kifayət qədər deyə bilməz həqiqətən var bir şeydir.
Və cür bəlkə yağsız əgər irəli və geri ekran,
bəlkə bir görürsünüz orada az bir şey?
Bəlkə, mehriban, sort?
Bu mükəmməl qara deyil.
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Spoyler!
bəzi qırmızı, orada ancaq spesifikasiyası yadda
problemin, Nick aşağı tonluk.
O, bir qədər onu desaturated lakin sıfır bütün yol.
Beləliklə, biz məbləği böyütmək istəyirsinizsə qırmızı, mənə bu oyun təklif edək.
mənim ekranda zoom edək.
Və mənə irəli getmək və deyək məbləği im.getRed (x, y) bərabərdir.
>> Kodu Bu xətt mənə verir bir şey dəyişən çağırıb.
Mən arguably, özbaşına, lakin əsaslı mənim dəyişən nə adlanır
yəqin?
Məbləğ.
Just məbləği.
Mən bunu adlı etdik bilər bir şey istəyirəm, amma mən
Bu digər funksiyası istifadə Mən əvvəllər təsvir
x vergül y qırmızı məbləği almaq üçün.
Niyə bunu etdiniz?
Nə burada etmək istəyirsiniz?
Siz add-- lazımdır
Auditoriya: [işitilemez]
DAVID MALAN: Bəli, bəlkə 10 ilə çoxaltmaq.
Bu bilmirsinizsə, mən deyiləm irəli getmək və bunu edəcəyik.
Mən irəli getmək üçün gedirəm və demək, mən qırmızı məbləği istəyirəm
Mən hər hansı olmaq istəyirəm , Qırmızı olan, 10 dəfə
və ulduz haqqında ulduz sizin klaviatura the-- x istifadə etməyin.
ulduz istifadə edin.
Bu şeyi çoxaltmaq necə ən proqramlaşdırma dilləri.
>> Belə ki, Kareem nin intuisiya görə, məbləği adlanan bu dəyişən saxlanılır,
Mən yer XY istədiyiniz nə qədər qırmızı.
Necə, indi, mən edə bilərəm ki sayı var pixel?
Siz artıq əvvəl bu etdik.
Siz yaşıl və müəyyən sıfır, heç bir dəyəri mavi.
Auditoriya: [işitilemez]
DAVID MALAN: Bəli, bəli Siz 10 istəmirəm.
Siz artıq burada riyaziyyat etdi.
Belə ki, biz, qırmızı dəyərini alır olan ehtimalla, aşağı sayı.
10 tərəfindən vurulması edirik.
Siz etmək istəyirəm nə indi dəyişən məbləği?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Nice.
Belə ki, nə im.set--?
>> Auditoriya: setRed.
>> DAVID MALAN: yer XY da setRed.
Bəli.
Və yalnız məbləği.
Başqa sözlə, bir dəyişən müvəqqəti tutucu
ki, siz istədiyiniz bir şey qoya bilər.
Biz qoyulması üçün baş hazırda bu sayı.
Biz onu vurulur etdik 10 bu böyük etmək.
İndi ki, dəyişən əvəz alıram üçüncü dəlil, və ya giriş kimi
qırmızı təyin etmək üçün.
Və belə ki, bir dəfə ki bitirmək və qeyd etmək
yarı colons və parantez.
>> Durmayın və basın / Run yenidən saxlamaq və siz
görmək lazımdır, magically, həqiqətən nə idi var. [? Arwa?] Var nə var?
tam hüquqlu Eyfel qülləsi qırmızı, olduqca qaranlıq deyil.
bəli, indi daha aydın olmalıdır?
TAMAM.
Və Andrew, çox qara qutu?
Auditoriya: [işitilemez]
DAVID MALAN: Bütün hüququ.
Mən ekranda bu davam edəcəyik.
Bu ilə oynamaq istəyirsinizsə sonra, mən sizin üçün bu yeniden lazımdır.
Amma bu code burada məhz etdi.
Niyə biz digər bir yoxdur.
Mənə bir az aşağı diyirləyin edək.
>> bu halda, proyektor So həqiqətən ədalət etmir.
Lakin ekranlarında, yəqin ki, Bir çox qırmızı və çox qara qutusu var.
Bu da, bir puzzle edir ki, məşhur bir şey göstərir.
Lakin, image təhrif edilmişdir.
doğru image, bu dəfə edir mavi və yaşıl dəyərlər.
Lakin, onlar bütün bölünür etdik 20 belə dəyərlər çox kiçik.
qırmızı dəyərlər yalnız var təsadüfi nömrələri, səs-küy.
Bu təhrif qaytar doğru image aşkar etmək üçün.
>> Belə ki, Nick sonra nə deyir.
sıfıra qırmızı dəyərlər seçin və sonra nə korlamaq deyil.
Sonra mavi çoxaltmaq və 20 yaşıl dəyərlər.
Belə demək olar ki, var Eyni proqram əvvəl,
lakin proses geri edirik.
Mən Məcəlləsindən qoyacaq əvvəl halda ekranda
Siz onu geri müraciət etmək istəyirəm və ya ki, bir daha oynamaq.
Mənə zoom edək.
Amma mis image həll puzzle, sayı iki.
>> Auditoriya: [işitilemez]
>> DAVID MALAN: OK, belə ki, mən bu bir kimi bir çox göstərişlər vermək niyyətində deyil.
Mən oh, edək would-- Burada bir typo var, baxın.
Belə ki, burada, unutmayın həqiqətən orada getmək lazımdır.
Əgər istəyirsinizsə Mən təklif nə bu bir diqqət, cavab var.
ki, ki, kopya etmək istəyirsinizsə ilk bir iş almaq lazımdır.
Və sonra kimi istifadə edə bilərsiniz ikinci bir ilham.
Nice.
Yaxşı.
>> Və maraqlı üçün, bu sadə nümunə
elm və ya sənət steganography adlanır
images informasiya gizlətmək sənəti.
Tipik olaraq, images ola bilər çox açıq-aşkar watermarked
alt bir logo ilə künc, lakin aydın, siz
daha çox inkişaf etmiş ola bilər bu barədə və həqiqətən
Şəkillər digər images saxla elə bu texnika ilə.
>> 30 saniyə edin, və sonra biz will ən azı görmək nə elan edir.
Mən üçüncü tərk edəcəyik bir at-ev həyata kimi bir
Bir daha istəyirsinizsə bu həftə sonu çağırış.
Mən Andrew bilər edirəm ilk kazanılmış var.
ikinci image, Andrew nədir?
>> Auditoriya: Azadlıq heykəli.
>> DAVID MALAN: Azadlıq Heykəli cavab bu dəfə olacaq.
Belə ki, yenə, yalnız bir neçə sadə misal, məqsədi
siz necə hissi vermək biz şəkilli Not tərcümə etdik
daha annoying və daha çox blokları mürəkkəb indeksi, lakin fikir bütün
tam hələ eyni, tətbiqi ilə də olsa
indi dəyişən anlayışı olan müvəqqəti bir şey saxlamaq üçün qadirdir.
>> , Daha bir hands-on edək yalnız indi nöqtələr qoşulmaq üçün
bir şey bir az daha real-dünya.
Hazır olduğunuzda, əgər bilər ekranda bu URL gedin.
Bu sizin surəti də var slaydlar, developers.google.com/maps~~V.
Nin həqiqətən bir şey edək real, belə ki, internet üzrə danışmaq
Google Maps API istifadə edərək, və ya tətbiqi proqram interfeysi,
bu şəkildə.
>> Google, bir çox şirkətlər kimi, pulsuz funksionallıq bir çox təmin edir
Siz qurmaq üçün istifadə edə bilərsiniz ki, sizin öz maraqlı applications.
Əslində, siz heç istifadə etdiyiniz əgər Uber bir kabin və ya bir avtomobil almaq üçün,
Siz yəqin ki, Uber var bilirik ki, bir xəritə və bu avtomobil göstərir.
Yəni, mən kimi yaxşı kimi , Google Maps API demək.
Onlar, həqiqətən, Google xəritələri istifadə olunur lakin Uber bir mapping şirkət deyil,
nə də ki, bir olacaq xüsusilə maraqlı problem
üst həll etmək üçün avtomobil xidmət problem.
Və onlar dayanırıq, yenə çiyinlərində
digər, bu halda Google.
Belə ki, onlar Google xəritələri ancaq öz istifadə avtomobil xidmətləri və digər bu kimi xüsusiyyətləri.
>> Beləliklə, biz istifadə etmək olacaq Bu aşağıdakı etmək.
Mən, çox sürətli getdi sonra əgər yalnız bir anda mənə artıq zəng.
image məhsullarının bəzi recap xoşbəxt.
Siz özünüz görməlisiniz oxşar səhifə.
Belə ki, Google gözəl və onlar yaxşı arasında istəyirik
yalnız API təmin, lakin pulsuz API ki,
ilə oynamaq və ya kommersiya istifadə edə bilərsiniz.
Onlar istifadə əgər doldurulması başlamaq yoxdur yüksək, lakin mən əvvəlcədən önə keçdi
və bir pulsuz hesab üçün bizə imzalanmış Ümid edirəm ki, 10 kompüter, ki,
birdən-birə bizə yetkisini elinden deyil.
Belə ki, inşallah, bu nümayiş işləyəcək.
>> Onlar üçün API olduğunu fark Android, iOS, web, və web services,
nə edir.
web diqqət edək.
Belə çəhrayı qutusu, web basın ki, bir səhifə üçün ümid edirəm ki, sizə rəhbərlik edəcək
burada.
Onlar API bütün dəstə var.
Və bu bir az ola bilər ilk böyük,
amma biz istədiyiniz nə vasitəsilə bizə sükan arxasında oturmaq lazımdır.
>> sol üst Google Maps JavaScript API, JavaScript API.
Belə ki, davam və bir basın.
Və indi sizə rəhbərlik edəcək səhifə, demoları və nümunə kodu aşağıdakı.
Mənə burada kiçiltmək edək.
Və bizə aşağıya fırladın to-- me almaq imkan tez start addımlar deyir harada.
Sizin ekran mina kimi baxmaq lazımdır.
>> Və iki addımlar var almaq əsas və inkişaf başlayın.
Mən artıq addım bir etdi ABŞ, bir qondarma əsas əldə.
Bu ümumi bir fikirdir.
Bir API açarı yalnız ümumiyyətlə böyük təsadüfi sayı və ya string
Siz ehtimal ki, Sizin kodu daxil yapışdırıb,
Google bilir ki, zaman olan Siz onların API onların xidmətindən istifadə edirik.
biz olduğunuz demək deyil bir şey ittiham olunur.
İndi basın, yerinə bir inkişaf başlamaq basın.
Siz yalnız mənə dalğa bilər artıq biz harada əmin əgər.
>> Belə ki, biz yalnız danışıq olacaq yerüstü, burada ancaq
Mən məcburedici olacağını düşündüm həqiqətən hamımız var,
bir pəncərə Cloud9 istifadə və başqa pəncərə bu tutorial,
həqiqətən öz almaq imkan verir Ərizə və çalışan
ki, xüsusi Google embeds öz web xəritəsi,
və sonra bir və ya iki funksiyalar əlavə edir.
Amma biz yalnız danışıq olacaq Biz nə edə yerüstü.
>> Belə ki, yalnız bir sürətli ağlı başında olma çek.
hər kəs bu səhifədə deyil Google Maps JavaScript API?
başlamaq demək lazımdır.
Biz vasitəsilə getmək fikrində deyilik hər hansı bir vasitə ilə bütün şey.
OK, başqa nişanı, yoxsa Cloud9 getmək yoxdur, açıq var
və özünüzü yalnız almaq yeni nişanı, nəticədə.
Belə ki, yenə, dünən c9.io, c9.io və yeni bir fayl yaratmaq.
Və irəli və zəng getmək bu nə istəyirəm.
Mən mina map.html çağırıb.
Html bitən bir şey edin.
Və təxminən olmalıdır Mən bu prosesdə am harada
boş yalnız bir yanıb-sönən tez tab map.html kimi bir şey çağırıb.
Və ya fayl, yeni fayl bu dəfə.
>> İndi artıq Google Maps JavaScript API,
biz oxu keçmək lazımdır Bu mətn bütün vasitəsilə.
Amma salam dünya qeyd həqiqətən hər yerdə, indi görürəm.
Salam dünya rəngli bu böyük var HTML bütün dəstə nümunəsidir.
Durmayın və surəti və yalnız bu yapışdırıb HTML, üst doc növü belə
yaxın HTML tag bütün yol getmək irəli və yenidən that-- bütün surəti,
ki, salam dünya altında misal və sizin Cloud9 nişanı yapışdırıb
belə ki, indi ekran təxminən mina kimi baxmaq lazımdır.
>> Və saxlamaq, lakin yalnız hələ yük deyil.
at edək ilk göz kodu və görmək əgər biz
çıxarmaq və ya öyrənmək bilməz Google nə olan
Bizə kor-koranə surəti və yapışdırıb var.
Onlar yalnız kömək etmək istəyirik, sanki, bizə başlamaq,
lakin çox yoxdur həqiqətən orada mürəkkəbliyi.
Hər hansı bir sualınız yalnız hələ?
Biz irəliləmək üçün təhlükəsiz mi?
TAMAM.
>> Belə ki, tez, yalnız nə edək bəzi tez ağlı başında olma çek.
Line bir nə , Görmək, və ümid
Ki, DOCTYPE HTML nə deməkdir görmək?
Kareem, geri?
Auditoriya: [işitilemez]
DAVID MALAN: Bəli.
Burada HTML 5 gəlir.
Eyni zamanda, iki xətti ekran burada hey brauzer deməkdir
Burada faktiki HTML gəlir.
Line üç hey browser edir, Burada baş gəlir.
Line dörd hey, əlbəttə, browser, burada adı gəlir.
line beş nə edir?
Əslində, bu deyil həqiqətən bizim üçün bir şey yoxdur.
Bu halda, yalnız boyutlandırır bir default səhifə. Line altı,
biz danışdıq, lakin bu deyil character encoding göstərir.
faylları kodlar üçün müxtəlif yolları var, xüsusilə xarici dillər üçün.
UTF-8 yalnız default olmağa çalışır.
>> Belə ki, indi biz line görəcəksiniz 16 vasitəsilə yeddi bəzi CSS.
Və biz görmədim etdik, hətta əvvəl bu şeyi,
biz növ nəticə çıxarmaq olar.
Belə browser hey tətbiq səkkiz vasitə xətti aşağıdakı iki tags bütün
yəqin?
HTML və bədən mətn.
Belə ki, vergül orada yeni bir şey deyil.
Və yalnız bir yolu var Eyni anda birdən çox tags ifadə.
>> Sonra qıvrım aşırma var.
Belə ki, yəqin, bu brauzer deyir, səhifə 100% hündürlüyü edir.
Belə ki, çox az var, hətta content, bütün səhifə etmək,
şey səhifə doldurmaq etmək.
Xəritə nəticədə səhifə doldurmaq olun.
Margin ki, nə deməkdir?
Bu ixtiyari kimi adətən var kənarları ətrafında ağ kosmik
bəzi browser dizayner yalnız , Olmalıdır qərara çünki
cür şeylər təmiz baxmaq edir.
Amma biz istəmirik.
Biz xəritəsi gedir istəyirik kənarları bütün yol.
Padding, qaydalarından ruhu oxşar.
Qaydalarından xaricində, padding deməkdir daxili, lakin bu müqavilə eyni növü var.
Bu bufer bir az var Siz və kənarları arasında.
>> Və sonra line 13 yaxşı tez baxılması üçün şans.
Nə kəskin işarə xəritəsi edir demək, və ya hashtag xəritə deməkdir?
ki, prinsipcə, nə müraciət edir?
>> Auditoriya: [işitilemez]
DAVID MALAN: Məhz.
Bu əmlak bu CSS mülkiyyət Yalnız bir şey tətbiq, HTML tag
ki, dırnağı bağlamaq "xəritəsi" quote bir ID var.
İndi edək sürətli irəli, gedin fayl alt aşağı olan
çox uzaq deyil, line bildiriş 19 Mən kimi dəqiq yapışdırıb əgər,
line 19 olan yalnız bir div var səhifə, dünən mən bölgüsü
düzbucaqlı bölgə çağırıb.
Bu, heç bir şey var.
Bu açıq tag yaxın tag var.
Amma unikal ID yoxdur.
>> Belə ki, nə görünür burada baş verən Google
Bizim web page readying olunur tam 100% boyu var,
və heç bir padding, heç qaydalarından, çünki biz daxili qoymaq olacaq
Onun unikal ID edir bu div, bu xəritə, faktiki əlaqədar xəritəsi edir.
Və biz doldurmaq istəyirəm səhifə və yalnız
ortada bəzi kiçik düzbucaqlı ola bilər.
Belə ki, line 14 Eynilə, vurğulayır 100% hündürlüyü olmalıdır özünü xəritəsi.
>> Belə ki, indi xətləri 20 arasında fərq 28, bu JavaScript kodu.
Və bu belə olsa, var Bir az qəribə syntactically
bütün çox burada orada gedən deyil.
line 21, bu elan edir bir şey dəyişən çağırıb.
Bunun əvəzinə zəng biz əvvəl olduğu kimi, məbləğlər,
biz daha dəqiq deyərək edirik yalnız dəyişən deməkdir var.
Biz ki, istifadə edə bilər Nick indeksi, amma o yox idi, belə ki, mən
Ya bunu narahat etmədi.
Bu adlı bir dəyişən var xəritə, və sonra var
bir funksiyası yəqin initMap çağırıb.
>> Belə ki, bu, bizim öz xüsusi kimi Not puzzle parça.
Biz bir parça yaratdıq initMap adlı funksionallığı,
və siz cür nəticə çıxarmaq olar nə burada olacaq.
sol tərəfində, biz bir dəyişən var,
belə ki, biz aşağıdakı qoymaq olacaq ki, dəyişən daxili şey,
sağdan sola.
sağ tərəfdən hey deyir browser, mənə yeni Google map verir.
Və google.maps.map yalnız bir funky yoldur Bu işlevselliği ifadə of
Google Maps məxsusdur.
>> parantez sonra, biz gördük əvvəl, browser hey almaq
me səhifə elementləri, unikal ID səhifəyə tag is--
>> Auditoriya: [işitilemez]
>> DAVID MALAN: --map.
Və nə yaxşı, davam edir birlikdə bu xətt, line 23,
mahiyyətcə deyib, browser hey məni almaq getmək
səhifə haqqında boş div Onun unikal ID xəritə,
Mən daxil etmək istəyirəm, çünki pseudocode onu yeritmək daxil
Bu məzmun bütün dəstə will-- əgər web gələn olur,
sonra.
Və Google bizim üçün ki, bütün edir.
>> Belə ki, yenə, günün çox sonunda, biz abstraksiya bu nümunə var.
bir xəritə nə heç bir fikrim yoxdur və ya necə bir xəritə API həyata keçirilməsi.
Biz ehtiyac yoxdur.
Biz yalnız xəritəsi demək lazımdır harada özünü qoymaq və tərk
o əsas həyata keçirilməsi Google ətraflı.
İndi yəqin var məlumatların iki ədəd
Bu nümunəsi olduğunu Google API təmin edir.
Görünür xəritəsi mərkəzi, və zoom səviyyəsi, belə danışmaq.
>> Və hər kəs bu tanımaq deyil əlaqələndirir, enlem ve boylam?
Yəqin ki, ancaq geri getmək olar tutorial, sanki oldu.
Amma biz yalnız bir anda görəcəksiniz.
Zoom səviyyəsi arasında dəyəri mən deyil , Kimi 13 bir və ya bir şey bilirik.
Bu, sadəcə etdiyiniz nə qədər ilə nə var və ya həyata zoomed və bu.
İndi çox sonunda səhifə, bildiriş line 29--
çünki bir az çirkin var Bu kodu bu xətt wraps--
downloads nə browser Google faktiki API.
kodu Bütün Google mühəndislər ki həyata yazılı
embeddable xəritələr bu bütün xüsusiyyət.
>> İndi bir şey dəyişdirmək deyil bildirin.
Siz birlikdə aşağıdakı edirsinizsə, irəli getmək və Siz həqiqətən varsa, yalnız ki, fayl saxlamaq
Mən nə.
Onun URL gedin.
Siz Run düyməsinə vurun üst qədər ki, demək olacaq
Yeniden web server URL.
Və bir yeni nişanı sizə rəhbərlik edəcək.
Siz Open basın map.html və odds etdiyiniz var
bir uyarı almaq üçün gedir, bir səhv baş beledir, bəli?
Hata beledir, səhv mesaj?
>> Belə ki, təəssüf ki, səhv mesaj maarifləndirmə deyil
Siz, həqiqətən, açıq halda konsol, xüsusi nişanı biz
dünən açılması saxlanılır və bir az əvvəl bu gün.
Amma arasında stumbled Bu əvvəl, mən artıq
həll edir nə fiqurlu.
Bugünkü slaydlar, və ya Əksinə, Cloud9 da, bildiriş
biz deyil ki, qəsdən bir şey.
Qeyd edək ki, bu script tag ilə line 29, onun vasitəsilə oxumaq əgər,
Bu maps.googleapis.com/~~pobj kimi bir şey, bir şey, bir şey,
sonra, kimsə qeyd developers biri
bütün paytaxt yazdı məktublar, API açarı.
>> Biz orada bir şey yapışdırıb lazımdır.
Bu addım oldu Mən əvvəl bizim üçün etdi
və yenə qara siyahıya bilər Bizə birdən əgər 12 və ya bizə daha çox
Eyni düyməsini istifadə başlamaq, Amma nə görmək edək.
Siz bu gün getmək əgər Belə ki, slaydlar, bir slide sonra var
mətn bu funky görünüşlü string.
Durmayın və yalnız surəti və Sizin API açarı deyir harada yapışdırıb.
Mən üçün imzalanmış biri.
>> Və mütləq cəhd etməyin özünüz yazaraq,
Bu dolu hiss çünki hatası ilə, potensial.
Belə ki, yalnız surəti və yapışdırıb.
Bu xətt etmək olacaq Artıq, lakin indi, yalnız aydın olmaq
bir az daha baxmaq lazımdır əsas deyil bərabərdir bu kimi
sizə böyle kapitallaşdırılır.
Sizin səhifə edin geri digər nişanı, yenidən,
və bir xəritə görmək ümid?
>> Auditoriya: Avstraliya.
>> DAVID MALAN: Avstraliya.
Belə ki, yəqin olanlar GPS Avstraliya əlaqələndirir.
Və mənə yalnız bir an üçün ətrafında gəzmək imkan və olduqca yoxdur hər kəs kömək
lakin Google vasitəsilə tapmaq, mənə təklif edək GPS öz doğma koordinatları
və ya öz ev ölkə.
Və yəqin ki, Google bu bırakabilirsiniz up, və ya Wikipedia siz deyə bilərsiniz.
Amma iki müxtəlif dəyərlər seçin enlem ve boylam üçün
geri getmək və yapışdırın və sonra qənaət sonra səhifəni yenidən
Bir ola bilər, əgər bax Öz doğma üçün xəritəsi.
>> Və siz Bitirdiğinizde ki, təqib challenge--
və mən bir az daha az istiqamət vermək lazımdır qəsdən, siz belə qəsdən
bir neçə mübarizə var sənədləri ilə dəqiqə,
bu olmaq xəritəsini dəyişə cartoonish default, lakin peyk xəritəsi.
Beləliklə, siz həqiqətən peyk görmək əvəzinə olduqca rəng görüntü.
>> Və işarə Mən sizə verəcəyik Xəritənin növü dəyişdirmək deyil.
ki, əldə etmək üçün geri dön ilham üçün səhifə başladı.
Siz gleaned ola bilər kimi, Siz arıyorsanız,
belə daha çox var Siz nə edə bilər şeylər.
Əgər bəziləri artıq Xəritə növü dəyişdi.
Amma mənə imkan, məsələn do-- bilər biz əlbəttə üçün nə bir şey getmək
Mən maps.cs50.net teach--.
Bizim undergrads biri bu idi.
Biz Harvard Yard və üzərində xəritə mərkəzi Bu bina adları bütün overlay
və biz ona bu əlavə idi.
Mən axtarmaq istəyirsinizsə Belə ki, məsələn, Matthews Hall,
biz bir az açılan menyu var.
Mən o Bootstrap istifadə edirəm kitabxana biz bu müzakirə.
Və Matthews basın əgər Hall, dərhal
müəyyən xəritəsi jumps yeri, və bu göstərir
Bu kiçik pop-up bir şəkil.
>> Lakin hətta bu kiçik pop-up, biz həyata etməyib.
Mən bizim əldə aşağı diyirləyin varsa , Səhifə başladı və info Windows üçün baxmaq
Siz ki, bəzi görürsünüz funksionallığı Özünüz
Əlavə ilə də olsa bilər bir az daha mürəkkəbliyi,
bir info pəncərə deyilən bir şey var.
Mən nümunə basın burada və bu əyləncə var nə,
Siz bu kimi şeylər edə bilərsiniz voiture sonra marker tıklayarak və
məlumat pops.
>> Belə ki, biz kifayət qədər təqdim deyil JavaScript kifayət qədər xüsusiyyətləri
siz necə dəqiq bir şəkil çəkmək üçün birlikdə bu məhsulları bütün tel bilər,
lakin biz cür səthi cızıqlanmış etdik.
Əslində, mən yalnız zaman nə etdi Hesab edirəm ki, marker tıklayan
bir hadisə, bir tetiklemesini edildi klik hadisə qondarma.
Və biz, həqiqətən gördüm Tədbirdə əvvəl bu gün,
hadisə təqdim sözdə, biz qarşısını
pişiklər üçün axtarış user.
Beləliklə, biz növ seçilmiş və choosed sonra Bütün bu müxtəlif xüsusiyyətləri arasında,
Ümid edirəm ki, hissi vermək, nə həqiqətən, bilərsiniz
bir az daha ilə proqramlaşdırma rahatlıq,
və tamamilə pulsuz resursları.
>> Hər hansı sual?
Yox?
Bu son şansdır, ən azı bu gün, cümə günü,
sinə off bir şey almaq üçün ki, burada çıxmaq
inamlı və rahat hiss.
Bəli.
>> Auditoriya: Niyə yox Bir şey daha əlavə?
>> DAVID MALAN: yaxşılıq mənim Oh.
Mən hesab edirəm ki, bu həftə sonu istirahət etmək lazımdır.
Digər suallar?
>> Auditoriya: [işitilemez]
>> DAVID MALAN: Siz can-- Internet Explorer, sülh istirahət,
Siz VB qoymaq edə olmaq üçün istifadə script, virtual əsas script,
lakin həqiqətən tutulan heç vaxt.
Belə ki, qısa cavab yalnız JavaScript edir.
Digər suallar?
Bütün hüquqlar, yaxşı, mənə bunu bildirin.
Mənə xaricində həmkarları işğalçı edək.
Onlar bir neçə qiymətləndirilməsi var onlar hər kəs istəyirəm formaları
doldurulması bir neçə dəqiqə sərf etmək.
Onlar forma toplamaq istəyirəm və hər hansı bir Əgər kənarda ola bilər waivers.
Onlar həmçinin sertifikatlar lazımdır.
Mən var təxmin edirəm xaricində hələ də bəzi qəlyanaltılar.
Mənə bu həyata keçir edək və əgər Bu vaxt hər hansı bir sualınız
Mən daha çox fərdi ətrafında gəzmək lazımdır və biz başlaya bilərsiniz.
Əlbəttə.
Auditoriya: [işitilemez]
DAVID MALAN: var bu gün adətən doğru.
Əlbəttə web ilə Bu proqram, siz meyl
digər ya etdiyiniz estetik şeyi istifadə
Bootstrap kimi, belə ki, yoxdur aşağı səviyyədə həyata keçirilməsi üçün var
menyular məlumat və düymələri və bütün.
Siz kimsə meyl edirik Google kimi belə ki,
bir über qurmaq yoxdur biznes və Xəritəçəkmə biznes,
və bənzəri hər hansı bir sayı həmçinin applications.
>> Əslində, giriş də populyardır.
Siz Spotify və ya istifadə varsa web hər hansı bir sayı,
Bəzi daxil olacaq Facebook istifadə saytları.
Belə ki, nə gözəl var giriş üçün API var
Hal-hazırda, siz deyil ki, Öz istifadəçi masa var
və öz bazası bütün mütləq eyni dərəcədə.
Siz Facebook bütün edə bildirin bilər sizin üçün mürəkkəb.
Belə ki, bir maraqlı vaxt, vicdanla, proqramlaşdırma,
bir çox üçüncü tərəf var, çünki Siz üst inşa edə bilərsiniz xidmətləri.
>> Və yenə, payment qiymət maliyyə və ya kesintiler bilərsiniz.
Google aşağı gedərsə, belə Uber yoxdur, arguably,
lakin bəlkə də bir ağlabatan ticarət-off.
Və yenə, ki, mövzulardan biri idi, ümid edirəm ki, gün keçmiş neçə,
Bu ticarət-off edir.
Və nadir hallarda var gedir Bir düzgün cavab olacaq.
Bu, həqiqətən yaxşıdır iki və ya daha cavab.
>> ətrafında bu keçir.
>> Bu Cloud9 hesabları davam edəcək əbədi olaraq, nəzəri iş.
Bir neçə gün gözləmək əgər tapa bilərsiniz və ya bir həftə və ya daha çox, onların geri daxil
Bu bir və ya kimi bilər beş dəqiqə, geri açmaq
lakin onlar qoymaq yalnız, çünki Bu resursları saxlamaq üçün yatmaq.