დავით Malan: ყველა უფლება, ჩვენ უკან. ასე რომ, საინტერესო დასკვნა, ჩვენი ბოლო მონაკვეთზე ვებ პროგრამირების, რომელიც მე ვფიქრობდით, ნეტავ გამოიყენოთ როგორც ზოგადი ტერმინი ხელში მცირერიცხოვანი თემები. ასე რომ, ბოლოს დღეს, ჩვენ რეალურად ცოტა პრაქტიკული ვებ პროგრამირების ერთად ენის მოუწოდა JavaScript. და მე ვფიქრობ, რომ ჩვენ შევხედოთ რაღაც დაკავშირებული სურათები და გამოვლენა რაღაც ჩუმად ჩაფლული იმიჯი, და ასევე შევხედოთ Google Maps API, განაცხადის პროგრამირების ინტერფეისი, რაღაც წარმომადგენელი ტიპის პროგრამული უზრუნველყოფა რომ ის სულ უფრო და თავისუფლად ხელმისაწვდომი დღეს. მაგრამ, რატომ არ უნდა შევხედოთ at ნივთიერება ამ სამყაროში რომ ჩვენ სახის ყოფილა აღების მიანიჭა არსებობს გარკვეული დროის განმავლობაში, მონაცემთა ბაზაში. გასული დღე და ნახევარი ჩვენ ვივარაუდოთ, რომ ჩვენ გვაქვს წვდომა ბაზაში, მაგრამ რა პრობლემა აქვს მონაცემთა ბაზის მოგვარება? რას ნიშნავს ეს ჩვენთვის? რა არის ეს? აუდიტორია: [INAUDIBLE] დავით Malan: ადგენს ყველა ინფორმაცია, OK, და რა სახის ინფორმაცია შეიძლება დააყენა ეს? აუდიტორია: [INAUDIBLE] დავით Malan: ნებისმიერი ინფორმაცია თქვენ, რომ ეს, თქვენ მიიღებთ უკან. ეს სიმართლეა. და ტიპიური ვებ დაფუძნებული და ვებ განცხადება, თუ რა სახის ინფორმაცია, კერძოდ, შესაძლოა, თქვენ დააყენა? აუდიტორია: [INAUDIBLE] დავით Malan: მომხმარებელი. ასე რომ, რა ხარ? აუდიტორია: [INAUDIBLE] დავით Malan: კარგი, რეგისტრირებული შესახებ საიტზე. და რას ნიშნავს, მაღაზია მომხმარებლების ინფორმაცია? რა შეადგენს მომხმარებელი? მომხმარებელი აქვს, თუ რა? აუდიტორია: [INAUDIBLE] დავით Malan: ჰო, პირადი მონაცემები და მინდა, რომ. მოდით უფრო ზუსტი. ასე რომ, შესახებ, როგორც წესი, აქვს სახელი, რა შეიძლება მომხმარებელს აქვს? აუდიტორია: [INAUDIBLE] DAVID Malan: addr-- OK, ასე რომ, სახელი, გვარი. კარგია. რეალურად, მოდით დაფიქსირება იმიტომ, რომ ის აპირებს გახსნა up შესაძლებლობა დისკუსია, ჯერ კიდევ, უფრო. სახელი, გვარი, სქესი. პირადობის გარკვეული. სხვა რა? გავიგე რაღაც ადრე, ძალიან. ელ-ფოსტის გაგზავნა, საფოსტო მისამართი. მოდით პაუზის არსებობს და ახლა განიხილავს არა ის, რაც ჩვენ შენახვის მონაცემთა ბაზაში, but-- და არა, რატომ, მას შემდეგ, რაც, ალბათ, აშკარაა, რომ ერთხელ თქვენ რეგისტრაცია შესახებ, თქვენ უნდა გვახსოვდეს, მათ გარკვეული დრო. თქვენ არ გვინდა, რომ ეს მხოლოდ იყოს შენახული RAM და forgotten-- ასე მოდით ფოკუსირება, თუ როგორ. გამოდის, რომ ამ მსოფლიოს მონაცემთა ბაზები, არსებობს მინიმუმ ორი სახის ამ დღეებში. რაღაც მოუწოდა SQL მონაცემთა ბაზაში, სტრუქტურირებული შეკითხვის ენა, ან, cutely დაასახელა, NoSQL, რომელიც არ არის SQL. და ეს უკანასკნელი მაგალითად, თუ რა შეიძლება ეწოდოს ობიექტზე ორიენტირებული, ან ობიექტი მაღაზია, მონაცემთა ბაზა რომელიც ინახავს ობიექტების, და არა, საბაბი ჩემთვის, როგორც ჩვენ მალე ვხედავ, რიგები. ასე რომ, ჩვენ ფოკუსირება მხოლოდ ერთი წუთით, პირველი ეს, კერძოდ, SQL მონაცემთა ბაზა, თუ მხოლოდ იმიტომ, რომ ეს ასე ნაცნობი, უკვე არავის რომელიც გამოიყენება Excel ან Google მონაცემები ან Apple ნომრები ან სტანდარტული ცხრილების პროგრამას, ან, ექვივალენტური, ან უფრო sophisticatedly, რაღაც Microsoft დაშვების ან Oracle ან MySQL და PostgreSQL, რაც არის პროდუქტი სახელები შესრულება საქართველოს შემდეგ იდეა. რელატიური მონაცემთა ბაზა უბრალოდ რაღაც რომ აქვს რიგები და სვეტები. და რიგები და სვეტები, მე ფაქტიურად ნიშნავს, რაღაც როგორც ეს, ასე რომ, სადაც ჩვენ შეიძლება ჰქონდეს ასახელებს სფეროში და მისი ტიპის აქ. და ფაქტობრივად, ნება მომეცით ახლა დაიწყება რუკა ეს. ასე რომ, რეალურად, მე არ ვიცი, ამიტომ, მე გაამახვილა ცალკე გრაფა. მოდით ეს მარტივია. ჩვენ გვაქვს უფლება აქ დასაწყისი ჩვენს მაგიდასთან, სადაც ეს არის სახელი სფეროში და ეს არის მონაცემები ტიპის, და ტიპის ვგულისხმობ შემდეგ. ეს არის ნომერი, ის არის, სიმებიანი, მოკლე სიმებიანი მოსწონს ერთი სიტყვით, ეს არის პირველი პუნქტის, არის ის, ბინარულ მონაცემებს, როგორიცაა გამოსახულება? და მოდით უბრალოდ აჯავრებენ ამ გარდა მხოლოდ ერთი წუთით. ასე რომ, პირველი სახელი, ნომერი, სიმებიანი, დიდი ბლოკი text-- აუდიტორია: [INAUDIBLE] დავით Malan: დიახ, ასე string. და მონაცემთა ბაზაში კონტექსტში, ჩვენ როგორც წესი, მოვუწოდებთ ამ char სფეროში. მე უბრალოდ, ვამბობთ char ახლა, მაგრამ ჩვენ აპირებს დახვეწა ამ მომენტში. ხასიათი სფეროში. გვარი, ალბათ, იგივე. სქესი? კაცი ან ქალი, ასე რომ შეიძლება იყოს char სფეროში. ეს შეიძლება იყოს ციტირებით unquote "კაცი" ან გაცემა, unquote "ქალი" ან შეიძლება იყოს, მ ან ვ. თუ გსურთ უფრო ინკლუზიური, თქვენ უნდა მესამე მნიშვნელობა ან რაიმე სახის სხვა სფეროში საერთოდ. ასე რომ, თქვენ შეიძლება გამოიყენოთ ნამდვილი სიცრუეა. სფეროში შეიძლება ეწოდოს კაცი, და მაშინ შეიძლება ითქვას, ჭეშმარიტი ან მცდარი. მაგრამ ეს სულაც არ ხელში ყველა ინფორმაცია დაგვჭირდება. გამოდის, რომ არსებობს სხვა ტიპის სფეროში, რომელიც შეიძლება იყოს სასარგებლო აქ ტიპიური მონაცემთა ბაზა, ე.წ. ENUM, სადაც ეს არის ხასიათი სფეროში, მაგრამ თქვენ, დიზაინერი მისაღებად ჩამოვთვალოთ შესაძლო მნიშვნელობებია, მოსწონს გაცემა, unquote "კაცი", გაცემა, unquote "ქალი" და სხვ. ასე რომ, რასაც ღირებულება თქვენს მონაცემთა ბაზაში, მართლაც ხასიათი დაფუძნებული, მაგრამ ეს უნდა იყოს ერთ-ერთი იმ ღირებულებებს. ჩვენ, ალბათ, არ სურს ENUM პირველი სახელი ან გვარი. წინააღმდეგ შემთხვევაში, ჩვენ უნდა ჩამოთვლა, როგორც სახელი გამომდინარეობს, ფაქტიურად ყოველ შესაძლებელია სახელი და გვარი. OK, ასე ID რა უნდა პირადობის იყოს? დიახ, იქნებ ნომერი. მოდით გამყარებაში რომ ახლა, ნომერი. და ნომერი, ნომერი არის ცოტა ფართო ახლა. ბოლოს მეორე დღეს, ვგრძნობ, ჩვენ უნდა იყოს უფრო ზუსტი. პუნქტების შეიძლება ნიშნავს, თითქოსდა, შეიძლება იყოს რაღაც 1,236. და ეს, ალბათ არ რას ვგულისხმობთ პირადობის მოწმობა. რა ჩვენ, ალბათ, ვგულისხმობთ ID? აუდიტორია: [INAUDIBLE] დავით Malan: Oh, OK, ასე შესაძლოა, ეს კი არ არის. იქნებ ეს რეალურად უნიკალური იდენტიფიკატორი ეს არის ის, სიმებიანი, როგორიცაა მომხმარებლის სახელი. ასე რომ, რა თქმა უნდა, შეიძლება. მე ვფიქრობ, რომ ვინმე ალბათ იმას ნიშნავდა, რიცხვითი, თუმცა. მოდით დარჩენილიყო, რომ. რა სახის ნომერი? რა არის უფრო precise-- რიცხვი. ასე რომ ნომერი, როგორიც 0, 1, 2, 3, ასე რომ, ჩვენ მოვუწოდებთ ამ რიცხვი. და მაშინაც, შემეძლო უნდა nitpicking, ეს ნამდვილად არ არის მხოლოდ ზოგადად მთელი გსურთ. თქვენ, ალბათ, არ მინდა უარყოფითი, მხოლოდ იმიტომ, რომ ის უბრალოდ გრძნობს უცნაური. თქვენ ალბათ მინდა დადებითი რიცხვებით. ასე რომ თქვენ შეგიძლიათ გამოხატოთ რომელიც მონაცემთა ბაზაში, მაგრამ ახლა, ჩვენ ვიტყვით, რიცხვი. ელ-ფოსტის გაგზავნა? ეს, ალბათ, just-- რა? აუდიტორია: [INAUDIBLE] დავით Malan: ეს ელექტრონული ფოსტის, მაგრამ ეს არის სიმბოლო, არა? უბრალოდ აქვს ხმაურიანი ხასიათი მოსწონს an "at" სიმბოლო ან რაღაც, მაგრამ ეს ჯერ კიდევ ხასიათი სფეროში. და საფოსტო მისამართი? ხასიათი სფეროში. ასე რომ, ლამაზი დასაწყისში, მაგრამ მოდით ცოტა უფრო სწორედ ახლა. გამოდის, რომ მონაცემთა ბაზა, თქვენ ხშირად გაქვთ არჩევანი მეტი დახვეწილი ვერსიის ეს ყველაფერი. ფაქტობრივად, ტიპიური SQL მონაცემთა ბაზაში, SQL, ან უფრო ზოგადად, რელატიური მონაცემთა ბაზა, მონაცემთა ბაზის რიგები და სვეტები, ხშირად მისაღებად განსაზღვრავს არა მარტო ტიპის field-- მიადევნე თვალი გარკვეული ოთახი აქ არამედ სიგრძეზე. ასე რომ, რამდენი ხანი არის სახელი? მე ვფიქრობ, D-A-V-I-D. OK, მივიღე ეს მე ალბათ უბრალოდ განაწყენებული, როგორც ნახევარი ერთი ადამიანი ოთახში, მარჯვნივ, მას შემდეგ, რაც თქვენი სახელები უმეტეს ხუთი წერილები, ასე ხუთ როგორც ჩანს, ცოტა ეგოისტური და გულუბრყვილო, რა არის უკეთესი მნიშვნელობა? 10, ყველა უფლება, და მე ვფიქრობ, ჩვენ OK ოთახში. 13-ში? 30? რატომ არ მიიღოს მიდგომა ადრე, როდესაც ჩვენ ვსაუბრობთ კოლექტორები და მეხსიერება? რატომ არ მე უბრალოდ ამბობენ 1000? არავის სახელი აპირებს უნდა იყოს არა უმეტეს 1,000. უკან მიწოლა. აუდიტორია: [INAUDIBLE] დავით Malan: ჰო, ეს არარაციონალური, უფლება, მით უმეტეს, თუ სახელებზე მხოლოდ ხუთი ან 10 ან 15 პერსონაჟი, რომ ძალიან wasteful. ასე, რომ თქვენ იცით, რა? ეს არის ერთგვარი რთული საკითხია. ახლა, ჩვენ, რა თქმა უნდა ანალიზი ინგლისური და ნებისმიერი სხვა ენის სახელები და გაერკვნენ, ასევე, რა არის average-- საშუალოდ ნამდვილად არ დაეხმაროს us-- რა არის მაქსიმალური არის ალბათ, რასაც ჩვენ ნამდვილად გსურთ. მაგრამ აღმოჩნდება, რომ ჩვენ გვაქვს გარკვეული არჩევანის მეტი ტიპის აქ. ტიპიური SQL მონაცემთა ბაზაში, არ რაღაც მოუწოდა char სფეროში და ასევე varchar, V-A-R, ცვლადი char სფეროში. და განსხვავება არის ეს. რომ char სფეროში, თქვენ დიზაინერი, უნდა მიუთითოთ წინასწარ ზუსტი სიგრძე სფეროში. ასე რომ, შესაძლოა, სახელი მოსწონს 20 გრძნობს სახის უსაფრთხო. ალბათ უნდა გავაკეთოთ ზოგიერთი დაგუგლვის to თუ, რომ, ფაქტობრივად, უსაფრთხო საკმარისი. იქ, ალბათ, სახელი 21 გმირები, მაგრამ ახლა, ვფიქრობ, 20 უსაფრთხოა. რომ char სფეროში ნიშნავს იმას, მონაცემთა ბაზა, რომელიც თქვენ იყენებთ 20 და ყოველთვის 20 სიმბოლოს. ახლა, თუ ეს მხოლოდ D-A-V-I-D, 15 იმ უბრალოდ იქნება ცარიელი სიმბოლო, მაგრამ თქვენ მაინც გამოყენებით ყველა 20 ბაიტი. Varchar სფეროში, პირიქით, იმას ნიშნავს, რომ სიმებიანი უნდა იყოს 20 გმირები მაგრამ, თუ ის მხოლოდ ხუთი, თქვენ მხოლოდ აპირებს გამოიყენოს ხუთი, ან შესაძლოა, ექვსი დიდი განსაკუთრებული მნიშვნელობა ბოლოს, მინდა, რომ 0, ჩვენ განვიხილეთ, რომ ნიშნავს, ბოლომდე ხასიათი თანმიმდევრობით მეხსიერებაში. ასე რომ, როდესაც ფიქრობთ თქვენ შეიძლება აირჩიონ char წინააღმდეგ varchar, იმის გათვალისწინებით, რომ სავაჭრო-off? Char იყენებს, რომ ბევრი პერსონაჟი, varchar იყენებს არა უმეტეს, რომ ბევრი პერსონაჟი. აუდიტორია: [INAUDIBLE] დავით Malan: კარგი, როდესაც თქვენ იცით სიგრძეზე სიმებიანი საკმაოდ მყარი უბრალოდ გამოიყენოთ char, "მიზეზი, თუ თქვენ იცით, რომ, უბრალოდ დააყენა მას. და შესაძლოა, რომ ნამდვილი ამისთვის zip კოდი, აშშ, მინიმუმ, 02138, ის ყოველთვის იქნება ხუთი გმირები სანამ დაამატოთ dash ოთხ. მაგრამ ალბათ ზოგიერთი ღირებულებების რომელიც თქვენ ყოველთვის ვიცი, სიგრძე. ან იქნებ სახელმწიფო სიმბოლიკა, როგორიცაა NY ნიუ-იორკში, და MA მასაჩუსეტსის, აშშ. იქნებ თქვენ გაქვთ გარკვეული სიტუაციებში სადაც რომ სრულიად გონივრული, მაგრამ იმ ლოგიკით, რატომ არიან ჩვენ კი overthinking ეს? რატომ არ ჩვენ უბრალოდ გამოიყენოთ varchar და მაშინ ჩვენ უბრალოდ ყოველთვის გამოიყენოთ ორი სიმბოლო მაინც, ან ყოველთვის გამოიყენოთ ხუთი გმირები მაინც? რატომ არ გადარჩენა varchar for ყველაფერი, იმ ლოგიკით? იქ უნდა იყოს დაჭერა. აუდიტორია: [INAUDIBLE] დავით Malan: ვერ წერენ რაღაც. ასე რომ, მართალია. მაგრამ მაშინაც, მათ არ შეუძლიათ გამოიყენონ მეტი მეხსიერების ვიდრე მე გამოყოფს. მე ჯერ კიდევ საბოლოო ამბობენ სიგრძე, ასე რომ მათ ვერ შემთხვევით შეცდომა, მაგრამ კარგი აზრის. ეს არის უფრო დახვეწილი, მაგრამ ძალიან ახლოს ჩვენი განხილვის, ფაქტობრივად, მასივები და დაკავშირებული სიები ადრე. გამოდის, რომ მონაცემთა ბაზაში, თუ იგი დარწმუნებულია, რომ ყველა ღირებულებები ფიქსირებული სიგრძის, მაშინაც კი, თუ ზოგიერთი იმ ღირებულებებს არის ცარიელი, ერთგვარი ესთეტიურად ცარიელი, D-A-V-I-D და შემდეგ 15 ბლანკები, გამოდის, რომ თუ ყოველ ველი იმავე სიგრძის, ჰგავს მასივი ჰქონდა ყველა მისი პერსონალის თავში დაბრუნება თავში დაბრუნება ისე, რომ შეიძლება მხოლოდ plus 1 მისაღებად შემდეგი მნიშვნელობა, იგივე იდეა მონაცემთა ბაზის ცხრილში. თუ ყველა თქვენი ხასიათი სიმები არის იგივე სიგრძის, თქვენ გაქვთ რასაც წვდომის. თუ ყველა სიმები არიან სიგრძე 20, თქვენ არა მხოლოდ ამის პლუს 1 თქვენ მხოლოდ ამის პლუს 20, + 20, + 20, + 20, და თქვენ შეგიძლიათ ძალიან სწრაფად გადახვევა მეშვეობით ან მოძებნოთ ყველა თქვენი მონაცემები. ცვლადი char სფეროში, პირიქით, ყოველთვის არ გვაქვს 20 სიმბოლო. ალბათ, 20 და მაშინ 15 და შემდეგ 19 და შემდეგ 10, და ასე რომ, თუ გსურთ მოძებნოთ მეშვეობით, თქვენ შეგიძლიათ არა მხოლოდ ბრმად რჩეულებში 20 ბაიტი, რათა მომდევნო ერთი. თქვენ ფაქტიურად უნდა მოძებნოთ მეშვეობით იმიტომ, რომ ზღვარზე მონაცემების სტრუქტურას, თუ თქვენ, არის ragged. ეს ერთგვარი მიდის და გარეთ დაფუძნებული ფაქტობრივი სიგრძეზე სიმებიანი. ასე რომ, როდესაც თქვენ იცით, ხანგრძლივობა, როგორც Kareem ამბობს, გამოიყენოთ char სფეროში, იმიტომ, რომ თქვენ მოიპოვოს, რომ ეფექტურობის მიმდინარეობს შეგიძლიათ მოძებნოთ მეშვეობით იგი სწრაფად როდესაც თქვენ ეძებს მონაცემები, სხვაგვარად გამოყენება ცვლადი. სამწუხაროდ, მე არ მაქვს კარგი პასუხი რამდენი ხანი სახელი უნდა იყოს, მაგრამ რაღაც სახელი, მე ვიტყოდი, varchar არის საერთო იმიტომ, რომ ის არ აპირებს უნდა იყოს ფიქსირებული სიგრძის ყველასთვის. 20, მე არ ვიცი, 20 გრძნობს პატარა მჭიდრო. მოდით უბრალოდ, ვამბობთ 50, 50. ეს ნამდვილად არ ღირს, რომ ბევრად უფრო ვთქვათ 50 ნაცვლად 40, მაგრამ რაღაც მომენტში, თქვენ უნდა რათა განაჩენი ზარი. ძალიან გავრცელებული, სიმართლე გითხრათ, for [? ისტორიული ?] მიზეზების გამო, მიუხედავად იმისა, რომ გადაჭარბებული, უნდა ითქვას, 255, იმიტომ, რომ რამდენიმე ხნის წინ, პოპულარული მონაცემთა ბაზის სისტემები, როგორიცაა MySQL, უფასო ღია კოდის ინსტრუმენტი რომ ბევრი კომპანიები როგორც კი Facebook გამოიყენება, ეს იყო მაქსიმალური ძირითადად ასე რომ, ადამიანი უბრალოდ წავიდა ის. ასე რომ, არ არის დაუსაბუთებელი, მაგრამ ჩვენ ცოტა მეტი ინტუიცია და აცხადებენ, რომ დარწმუნებული ვარ, 50, რომ ალბათ ცოტა გადაჭარბებული. სქესი, მე როგორიც ENUM, ასე რომ, ჩვენ, შესაბამისად ჩამოვთვალოთ კაცი ან ქალი, ან იქნებ უფრო ეფექტურად, მ ან f ან სხვა სიმბოლიკის, მაგრამ ENUM იგრძნობა კარგი არჩევანი არ არსებობს. უნდა იყოს მკაფიო, გენდერული შეიძლება იყოს მხოლოდ varchar, და ჩვენ შეგვიძლია უბრალოდ ყველა შეთანხმდნენ ლამაზი ხალხი, ყოველთვის დააყენა იგივე ღირებულებები არსებობს. კაცი ან ქალი და whatnot. მაგრამ პრობლემა მაშინ, არის, რომ ჩვენ შეგვიძლია შეცდომა, როგორც [INAUDIBLE] შემოთავაზებული ადრე სხვადასხვა კონტექსტში. თუ ჩვენ შეცდომა, ჩვენ ვერ არასწორი ღირებულებების ჩვენს მონაცემთა ბაზაში. ასე რომ, რა ლამაზი მონაცემთა ბაზები როგორც Oracle და MySQL და სხვები, ის არის, რომ თქვენ გაქვთ ეს უკანასკნელი ფენის თავდაცვის, სადაც თქვენი DBA, მონაცემთა ბაზის ადმინისტრატორი, ვინც დიზაინისა ამ მაგიდასთან, როგორც ჩვენ ზეპირი ფორმით, ვერ დააყენა ადგილი ENUM- სა, რომ იცავს, რომ სასურველი მამრობითი, მდედრობითი, და ასე რომ, არავინ სხვა არ პროგრამისტი შემთხვევით ჩადეთ ნებისმიერი სხვა მნიშვნელობა. ასე რომ, ეს იქნება კარგი რამ. ეს არის ფუნქცია. ასე რომ, ID, თუ, რა თქმა რიცხობრივი ID, რომ ალბათ უნდა იყოს დადებითი მთელი რიცხვი. და ჩვენ ხანდახან გვაქვს შესაძლებლობა განიხილოს სიგრძე. თქვენ არ, როგორც წესი, დაზუსტება ნომერი აქ, ამის ნაცვლად განსაზღვროს ეს არის int, ან დიდი int, რადგან ისინი, როგორც წესი, ეწოდება. თუმცა, როგორც წესი, მთელი რიცხვი იქნებოდა, ვთქვათ, 4 ბაიტი. და თუ ეს არის 4 ბაიტი, ეს არის ის, რამდენი ბიტი? აუდიტორია: [INAUDIBLE] დავით Malan: 32 ბიტი. ასე რომ, რამდენი მომხმარებლებს შეუძლიათ გვაქვს ჩვენს ბაზაში, თუ მათ აქვთ პირადობის და ეს ID უნდა იყოს უნიკალური? 32 ბიტი ნიშნავს, რომ ჩვენ ნიმუშების ერთი, ორი, სამი, ოთხი, ხუთ ასე რომ, თუ რამდენი სხვადასხვა ნიმუშების zeros და პირობა აქვს, თუ 32? ეს არის იგივე, რაც გეკითხებით, რა არის ორი 32? ეს არის დიდი რაოდენობით, რომ მე არ შემიძლია საკმაოდ მიიღოს უფლება, მაგრამ მე ვიცი, რომ დაახლოებით 4 მილიარდი. ეს ნიშნავს, რომ თქვენს მონაცემთა ბაზაში მაგიდა აქვს ოთხი მილიარდი წევრებს და ეს არის. ასე რომ, ეს არის საინტერესო დიზაინი გავლენა. ღირსეული რიგი კომპანიები გადავწყვიტეთ, იქნებ არა იმდენად მათი წევრებს მაგიდა, რადგან მას 4 მილიარდი მომხმარებლებს იშვიათი პრობლემა. ეს არის ერთგვარი Facebook- ის სტილის პრობლემა, არ არის ტიპიური კომპანია პრობლემა. მაგრამ შესაძლოა, თუ თქვენ გაქვთ გარიგების ჟურნალები ან რაიმე სახის მონაცემები, რომელიც მუდმივად იღებს დაწერილი თქვენს მონაცემთა ბაზაში რომ აბსოლუტურად შეეძლო მილიარდობით და მილიარდობით რიგები და თქვენ იყენებთ რიცხვი მას, რა მოხდება, როგორც კი თქვენ უნდა რიგის ნომერი 4 მილიარდი და შემდეგ თქვენ ცდილობენ ჩადეთ 4 billionth და 1, ასე ვთქვათ? მე გამარტივების ნომრები ცოტა. თქვენ შეგიძლიათ გაჭრა უკან, ვგულისხმობ უნდა გაუმკლავდეს, რომ როგორმე. და რა კომპიუტერი, როგორც წესი, ამის გაკეთება, ვიფიქროთ, რომ მაშინაც კი, ამ დილით, თუ თქვენ გაქვთ 4-ბიტიანი მნიშვნელობა 1, 1, 1, 1, რომელიც, უბრალოდ უსიამოვნოა დილით ერთად დღის მეორე ნახევარში, რა ჯერ ეს ნომერი წარმოადგენენ ორობითი? OK, ჩვენ გაუადვილებს. რას ნიშნავს ეს ნომერი წარმოადგენს ორობითი? OK, ჩვენ გაუადვილოს, რა ჯერ ეს წარმოადგენს ორობითი? აუდიტორია: სამი. დავით Malan: სამი, რადგან ჩვენ პირობა column-- [სიცილის] Whew! ჩვენ გვქონდა პირობა სვეტი და twos სვეტი. ამიტომ ვარაუდობენ, რომ, მართლაც, ჩვენი [? infield?] არ იყო, 32 ბიტი, მაგრამ ეს იყო ორი ბიტი, ჩვენ შეგვიძლია იმედი მომხმარებლის ნომერი 0, 1, 2, 3, და მაშინ ჩვენ სახის უკან შესახებ 00 ერთხელ. ასე რომ, ეს არის ის, რაც, როგორც წესი, ხდება. თუ თქვენ ოდესმე მსმენია expression-- ალბათ არა, მაგრამ თუ გაქვთ რიცხვი overflow, სადაც თქვენ შენარჩუნება flipping ყველა თქვენი bits უნდა იყოს ყველაზე დიდი შესაძლო მნიშვნელობებია, და შემდეგ თქვენ out ბიტი, რა იქნებოდა, როგორც წესი, ხდება? რატომ ამბობენ, რომ 00? ისე, ეს არის სამი. როგორ შემიძლია წარმოადგენს 4? როგორ შემიძლია წარმოადგენს რიგი 4 ორობითი? აუდიტორია: [INAUDIBLE] დავით Malan: One-- yeah, არ ვამბობ, 100 per se, იმიტომ, რომ მას არასწორი კონტექსტში, მაგრამ 1-0-0. ასე, რომ ნომერი, 1-0-0 მართლაც სწორი, მაგრამ თუ მხოლოდ ორი ბიტი, რას აკეთებდა? შენ შემოვიდა მეტი 00. და მართლაც, რომ ის, რაც მოხდებოდა. სინამდვილეში, თქვენ შეიძლება ვიფიქროთ ეს უფრო მოურიდებლად. თუ გავიხსენებთ, რა, 16 წლის წინ, მსოფლიოს უნდა დასრულდება, როდესაც Y2K პრობლემა მოხდა. რატომ იყო? ისე ყველაზე კომპიუტერები, გონივრულ გადაწყვეტილებას შენახვის ნომრები მოსწონს წელი 1975 და 1999 წელს მხოლოდ გამოყენებით ორი ციფრი კომპიუტერის მეხსიერებაში. ასე რომ, რა თქმა უნდა, თუ რა ხდება როდესაც თქვენ, რომ 2000 წელს, წასვლა ამ, უფრო სწორად, yeah. ასე, რომ თქვენ წასვლა 2000 წელს, მაგრამ თუ თქვენ მხოლოდ გამოყენებით ორი ციფრი იგი გამოიყურება როგორიცაა წლის 00 და ასე რომ თქვენ შემოვიდა მეტი. და ეს არის, რის გამოც ბევრი სისტემები საჭირო დაზუსტებას მფლობელის მხრიდან დროს. ასე, რომ განაცხადა, კომპანიები, Facebook აწარმოებს წინააღმდეგ. ასე რომ ერთადერთი გზა გაუმკლავდეს სიტუაცია, სიმართლე გითხრათ, არის ის, რომ გავუსწრო იგი. და სუფთა გზა გაუმკლავდეს ამ სიტუაციაში არის, რომ მოსალოდნელია, რომ ეს ასე რომ თქვენ არ უნდა მიიღოს ცვლილებების შემდეგ. ასე რომ, ნაცვლად 8 ბაიტი, იცით, რა? მე ვაპირებ, რომ მომავალზე ფიქრი აქ, მიუხედავად იმისა, რომ ცოტა ოპტიმისტური, რომ ჩვენ ვაპირებთ, რომ აქვს 4 მილიარდი და 1 მომხმარებელი ჩვენს ვებგვერდზე. მაგრამ მოდით უბრალოდ გამოიყენოთ 8 ბაიტი, ან 64 bits, რომელიც, ზოგადად, მოუწოდა დიდი რიცხვი, ძალიან ტექნიკური. და ეს მხოლოდ იმას ნიშნავს, თქვენ შეგიძლიათ კიდევ უფრო ციფრები თქვენი ნომერი. მაგრამ ეს არ არის მნიშვნელოვანი დიზაინის გადაწყვეტილება, იმიტომ, რომ თუ აირჩიეთ ნომერი, რომელიც აქვს ძალიან ცოტა ბიტი გამომსახველობა თქვენ შეიძლება რეალურად შექმნა ხარვეზის თქვენი პროგრამული უზრუნველყოფა. ყველა უფლება, მოდით გადაიტანოთ up ფოსტის და საფოსტო მისამართზე. ასე რომ, ელექტრონული ფოსტის, როდემდე უნდა ელექტრონული ფოსტის მისამართი უნდა იყოს? 50. მე ნამდვილად არ ვიცი, მაგრამ ეს ალბათ ასე რომ, იმიტომ, რომ წინააღმდეგ შემთხვევაში, არავინ აპირებს წერენ, თუ იგი იღებს ძალიან დიდი ხანია, ასე 50, მოდით წავიდეთ ერთად, რომ ახლა. საფოსტო მისამართი, როდემდე უნდა იყოს ეს? აუდიტორია: [INAUDIBLE] დავით Malan: ეს არ არის უბრალოდ ZIP კოდი, თუმცა. საფოსტო მისამართი, გავიგე. ასე რომ, ეს არის როგორც 1 brattle მოედანზე, მძიმე, Cambridge Mass., მძიმე, 02138. და სინამდვილეში, ნება მომეცით გაიყვანოს პატარა worksheet აქ. ეს იგრძნობა ეს გაშვებული შესაძლებლობა. თუ ჩვენ 1 brattle მოედანზე, მძიმე, კემბრიჯის MA 02138, ვგრძნობ, ჩვენ შეგვიძლია გავაკეთოთ უკეთესი მეტი, ვიდრე უბრალოდ მისამართი. რატომ არ უნდა აფეთქდეს ამ ცოტა? რა ვარ მე მიღების დროს? რა უნდა ჩვენ ნაცვლად აქვს ჩვენი რიგები აქ, ალბათ? აუდიტორია: [INAUDIBLE] დავით Malan: ჰო, მოდით ეძახით street_number, და ტირეთი მხოლოდ საერთო გზა, რომელსაც რა ჰგავს სივრცეში, მაგრამ ეს არ არის, რეალურად. Street, და შემდეგ city-- ბოდიში? აუდიტორია: [INAUDIBLE] დავით Malan: ჩვენ შეგვიძლია ამის გაკეთება. Line ერთი, ხაზი ორი. რატომ არ ჩვენ გავაგრძელებთ ეს მარტივია, ახლა, მაგრამ ეს არის აბსოლუტურად მისაღები გადაწყვეტილება. და შემდეგ სახელმწიფო და მაშინ მოდით იყოს ცოტა აშშ-centric ახლა და მხოლოდ ამის ZIP კოდი, მხოლოდ იმიტომ, ის ყველაფერს გამოიწვიოს საინტერესო შეცდომა და პრობლემა აქ. ასე რომ, ვფიქრობ, რომ ახლა ჩვენი მისამართზე. ეს ცოტა უფრო შემაშფოთებელი, რომ ჩვენ ყველა ამ მეტი სფეროებში, მაგრამ ახლა ჩვენ შეგვიძლია tag რამ ცოტა უკეთესი. ასე რომ, ახლა ქუჩაზე ალბათ არ უნდა იყოს char, უნდა ეს? რა უნდა იყოს? აუდიტორია: [INAUDIBLE] დავით Malan: შესაძლოა, რამდენიმე როგორც მთელი რიცხვი კიდევ ერთხელ? დიდი რიცხვი? თქვენ, ალბათ, არ ცხოვრობს 4 მილიარდი Main Street ან რამე გიჟური იგრძნობა. ასე რომ, მთელი ალბათ ჯარიმა, მაგრამ აქვს ვინმეს ოდესმე ცხოვრობდა საათზე მისამართი მოსწონს 1A brattle მოედანზე, ან 1 და 1/2? ეს ყველაფერი არსებობს, სამწუხაროდ, მაშინაც კი, თუ თქვენ არ ცხოვრობდა, არსებობს ამ ანომალიების სტილის ბინა 1A, 1B, 1C. ასე, რომ თქვენ იცით რა, ჩვენ, ალბათ, არ უნდა წავიდეს მთელი რიცხვი, წინააღმდეგ შემთხვევაში, ჩვენ ვაპირებთ დასაკარგი ზოგიერთი გაყიდვების. Char სფეროში, იქნებ? მე არ ვიცი, რამდენი ხანი. ეს, ალბათ, არ იქნება რომელიც დიდი ხანია, ასე 10 ან რამე. არავინ აპირებს დაწერა აღარ ნომერი, იქნებ. მაგრამ ერთხელ, ჩვენ უნდა ალბათ უფრო მეტი აზრის, რომ. იქნებ google, ზოგიერთი კვლევის, მაგრამ ჩვენ წასვლა ჩვენი guts ახლა. ქუჩები, char, 50, მე არ ვიცი. რაღაც მომენტში, არავინ აპირებს დაწერა ეს კონვერტში, ძალიან, ასე რომ, ალბათ, ზოგიერთი ზედა საზღვრები არსებობს. City, იგივე, რა თქმა უნდა, ასე რომ char 50. სახელმწიფო, შეიძლება აშშ-centric ახლა. ასე რომ, ეს შეიძლება იყოს სიაში, ასე რომ სახის განაჩენი ზარი, სახელმწიფო. ეს შეიძლება იყოს როგორც ორი სიმბოლო. ასე რომ, რეალურად, შესაძლოა, მე ამბობდა char. მე, ალბათ, იმას ნიშნავს, varchar, მხოლოდ რამდენიმე ეფექტურობის, მაგრამ ჩვენ დავბრუნდებით რომ გადაწყვეტილება ამ მომენტში. შეიძლება იყოს char სიგრძე 2 სახელმწიფო. იმ შემთხვევაში, თუ აშშ-მათ აქვთ, როგორც MA, Massachusetts, NY, New York, NJ, New Jersey, და სხვ. ასე რომ, ეს შეიძლება იყოს დაფიქსირებული, რომ. DC ვაშინგტონში. მაგრამ მე ვფიქრობ, Olivier, თქვენ შემოთავაზებული სხვა მიდგომა. აუდიტორია: [INAUDIBLE] დავით Malan: ჰო, ასე რომ, ეს არის ცოტა შემაშფოთებელი აკრიფოთ, მაგრამ ENUM შეიძლება უფრო გრძნობა, რადგან ეს გზა, მაინც, აშშ, თქვენ შეიძლება ჩამოვთვალოთ, თუ tediously, მაგრამ თქვენ ამის გაკეთება მხოლოდ ერთხელ თქვენს მონაცემთა ბაზაში და აღარასოდეს უნდა ვიფიქროთ ეს, ყველა 50 ორსიმბოლოიანი კოდები. ასე რომ, მე მიყვარს ENUM. მოდით გამყარებაში, რომ არსებობს, იმიტომ, ეს ერთგვარი აღმასრულებელთა უფრო rigor. და მერე ZIP კოდი? მე ვფიქრობ, ენდრიუ აზრის, რომ აუდიტორია: [INAUDIBLE] დავით Malan: ჰო, ხუთი ან ცხრა. მოდით უბრალოდ შეინახოს იგი მარტივი. მხოლოდ ამის ხუთ ახლა. მაგრამ იქნებ მე მხოლოდ ამის რიცხვი, არა? შემეძლო, მაგრამ იცით რა, მე ეს შეცდომა ერთხელ, რაღაც გაგებით. წლების წინ, მე გადამფრენი Microsoft Outlook, რომ Gmail, და Outlook აქვს გზა ექსპორტს ყველა თქვენი კონტაქტები, როგორც Excel ფაილი, CSV ფაილი, მძიმით გამოყოფილი მნიშვნელობები ფაილი. და მე დაუშვა შეცდომა, მე ვფიქრობ, ორმაგი დაჭერით, ერთხელ მე გადმოწერილი ექსპორტი, რათა დარწმუნდით, რომ იგი ჩანდა როგორც ველოდი. მე უნდა მოხვდა შენახვა ან ნება ავტო შენახვა დარტყმა ან რამე. იმიტომ, რომ როდესაც მე მაშინ იმპორტირებული ის Gmail, ეს ყველაფერი მუშაობდა. მაგრამ წლების განმავლობაში, ამ დღეს, და მე ამ ხუთი, 10 წლის წინ, მე მაინც მოძიებაში მეგობარი, რომელსაც აქვს მისამართები, რომ გამოიყურება. რატომ? აუდიტორია: [INAUDIBLE] დავით Malan: დასჭირდა 0, ასევე, უფრო სწორად, ეს აიღო მთელი ZIP კოდი, როგორც ნომერი, და ამიტომ, წამყვანი 0 რაც იმას ნიშნავს, მას არ აქვს მნიშვნელობა. ასე რომ, 2138 როგორც ჩანს, ჩემი ZIP კოდი. და ეს არის, სიმართლე გითხრათ, შემაშფოთებელი Excel ფუნქცია, რომლის დროსაც მე ვფიქრობ, ჩვეულებრივ, მაშინაც კი, თუ ეს ნიშნავს, რომ მხოლოდ იყოს ტექსტი, Microsoft Excel გადაწყვეტს, ნება მომეცით იყოს სასარგებლო, და რა, მე ვხედავ მხოლოდ ნომრები. მოდით მკურნალობა ამ როგორც ციფრები. და ეს truncates წამყვანი zeros. ვფიცავ ღმერთს, ყოველ რამდენიმე თვის მოვძებნო მისამართი, და გარეთ ერთგვარი OCD, მე დაბრუნდეს და დაამატოთ 0, მიუხედავად იმისა, რომ მე არასოდეს გაუგზავნე ადამიანი წერილები ან არაფერი. მაგრამ მე მაინც მოძიებაში ნარჩენებისგან ეს. ასე რომ, ეს არის იმის თქმა, არის თუ არა ეს კარგი იდეა? OK, არ არის, იმიტომ, რომ ვინმეს Massachusetts, ამ სფეროში, აპირებს აქვს o ხელმძღვანელობით. მოდით წავიდეთ ერთად, როგორიცაა char, ალბათ, ხუთი. და აქ, გააცნობიეროს, რომ ჩვენ შეიძლება გამოიყენოთ ENUM და ჩვენ შეიძლება ჩამოვთვალოთ 10,000 შესაძლებელია საფოსტო კოდები, მაგრამ, რომ იგრძნობა ეს, ალბათ, გადაკვეთის ხაზი, ისევე, როგორც სარგებელი. თუ თქვენ გაქვთ შეყვანის რომ ბევრი მონაცემები თქვენს მონაცემთა ბაზაში იმისათვის, რომ დაიცვას რაღაც. ასე რომ char მიხვდა, შეგიძლიათ აკრიფოთ H-E-L-L-O თქვენი ZIP კოდი, რომელიც არ არის, ცხადია, numeric. ასე რომ არ არსებობს გზა, ტიპიური მონაცემთა ბაზა, მიუთითოთ მხოლოდ ციფრული და მხოლოდ ხუთი სიმბოლო ასე რომ, ჩვენ ვაპირებთ, რომ უნდა გავაკეთოთ, რომ კოდი. ჩვენ ვაპირებთ, რომ გავაკეთოთ, რომ PHP ან Java და რა ენაზე ჩვენ გამოყენებით სერვერზე აღასრულოს რომ სახის შეზღუდვა. Whoo! ყველა უფლება, რაიმე შეკითხვები უბრალოდ არ არის? მოდით, კიდევ ერთი დიზაინი გადაწყვეტილება. გამოდის, რომ თქვენ ასევე უნდა აირჩიოს, როდესაც დიზაინის SQL მონაცემთა ბაზაში, ან ტიპიური რელატიური მონაცემთა ბაზა, სადაც ერთხელ, რელატიური მხოლოდ იმას ნიშნავს, რიგები და სვეტები, ეს არის ის, თუ როგორ ორგანიზება თქვენი მონაცემები და გააცნობიეროს, რომ რა ეს იმას ნიშნავს, მე უკვე შეცდომაში შეყვანის in რომ, მე drawing-- ეს რასაც სქემის მონაცემთა ბაზის მაგიდასთან. ეს არის მსგავსად სპეციფიკაციები მაგიდასთან მაგრამ როდესაც საქმე დრო რეალურად შეინახოს მონაცემები, და ჩვენ ყველაფერს გავაკეთებთ ამ მხოლოდ მაგალითად აქ. მე ვაპირებ გახსნას Excel, რადგან Excel მომცემს რიგები და სვეტები. და სწორედ ის, რაც Oracle და MySQL და სხვა იარაღები მომცემს. ასე რომ, მე მხოლოდ აპირებს გამოიყენოს ეს განხილვის გამო. ნება მომეცით წავიდეთ წინ და გახსენით წარმომადგენელი დოკუმენტის აქ, მიუახლოვდით ცოტა. ასე მაგალითად, ჩვენი headers ახლა გვარი, სახელი, სქესი, ID, ელ, ქუჩის ნომერი, ქუჩის, whoops. Street, ქალაქი, სახელმწიფო, უბრალოდ შესახებ შეესაბამება ეკრანზე. ასე რომ, ეს რას ნიშნავს, რომ როდესაც შესახებ პირველი რეგისტრაციას ჩემი ნახვა, ეს იქნება რაღაც David, Malan, m, ვთქვათ, 1, malan@harvard.edu, ქუჩაზე იქნება იყოს, როგორც 1 brattle მოედანზე, Cambridge, MA, 02138, და მაშინ სხვ. ასე რომ, როცა ამბობენ, რომ რელატიური მონაცემთა ბაზაში ან SQL მონაცემთა ბაზის რიგები და სვეტები, ვგულისხმობ ეს. რომ ფაქტობრივი მონაცემები ინახება რიგები და სვეტები. ეს არის მხოლოდ დამთხვევა, რომ ჩვენ ვსაუბრობთ, და მე უბრალოდ ხატვის out რიგები და სვეტები. ეს არის მხოლოდ schema, ძირითადი განმარტება. ასე რომ, ამ სფეროში აქ, ან ექვივალენტური, იქ, რომლებიც სფეროებში, რომ თქვენ ფიქრობთ მე სავარაუდოდ ძიება თუ მე პროფაილი და თუ მე ვარ, მონაცემთა ბაზის ადმინისტრატორი? მსგავსად, რა სფეროებში ვარ რეალურად აპირებს ძიება? აუდიტორია: [INAUDIBLE] დავით Malan: სახელი, yeah ასე მომწონს ის ფაქტი, that-- yeah, ელ შეიძლება იყოს საკმაოდ გავრცელებული. ბოდიში, თქვენ თქვით, სახელი. ასე რომ, maybe-- და ისევ, ჩვენ სახის საუბარი აბსტრაქტული. მე არ ვიცი, რატომ ნეტავ უნდა ეძებს სახელი, მაგრამ, რომ გრძნობს გონივრული, თუ თქვენ ეძებს შესახებ. იქნებ აცხადებს, დარწმუნებული ვარ, ID. და ეს მოლიპულ ფერდობზე, რადგან შემეძლო contrive სცენარი, სადაც იქნებ ჩემი ბოსი მთხოვა, რამდენი კაცი გვაქვს ჩვენს საიტზე? რამდენი ქალი არ გვაქვს ჩვენი საიტი? ასე რომ, იმ ეტაპზე, დაგვჭირდება ძებნის გენდერული სფეროში, ძალიან, და სხვა არაფერი. ასე რომ, არსებობს ვაჭრობის აქ. ისევ და ისევ, არ არსებობს სწორი პასუხი, მაგრამ არ არის ფუნქცია ყველაზე SQL მონაცემთა ბაზებთან ცნობილია, როგორც ინდექსირებას, რომლის თქვენ, დიზაინერი, მონაცემთა ბაზის ადმინისტრატორი, უნდა გადაწყვიტოს, წინასწარ რომელიც სფეროებში მონაცემთა ბაზაში უნდა ოპტიმიზაცია ძიება წლის. თქვენ შეიძლება ძალიან გულუბრყვილოდ ამბობენ, ოპტიმიზაცია ეს, ოპტიმიზაცია, რომ ოპტიმიზაცია ეს, ოპტიმიზაცია და ეს, და მონაცემთა ბაზის დაკავდით ჯადოსნური რამ ქვეშ hood, და რაღაც ისე რომ მომავალი დრო თქვენ ძიება ნებისმიერ ამ სფეროებში, ეს, ფაქტობრივად, უფრო სწრაფად. ეს არის შესაძლებელი. ეს არ გააუქმებს თავად გარეთ. მაგრამ იქ უნდა იყოს გადახდილი ფასი. თუ თქვენ გულუბრყვილოდ, ან ზედმეტად ენთუზიაზმით ვთქვათ, ინდექსი ყველა ამ სფეროში, ასე ვთქვათ, მათ ყველა ეფექტურად საძიებო, რა ფასი თქვენ ალბათ გადამხდელი? აუდიტორია: [INAUDIBLE] დავით Malan: შესრულებით. რას გულისხმობთ? ისე შესრულება, მაინც, კონტექსტში მე განხილვისას, ახლა უკეთესია. ეს არის ის, განმარტება ინდექსირებას. ეს გახდის ძიებები. ასე რომ, დრო მცირდება, ასე ვთქვათ. აუდიტორია: [INAUDIBLE] დავით Malan: ფართი. ასე რომ კიდევ ერთხელ, ეს არის საერთო სავაჭრო. შემიძლია დააჩქაროს თქვენი ძიება, მაგრამ ეს აპირებს დაგიჯდებათ მეტი bytes სივრცეში. რატომ? ისე, ძირითადად, თუ ჩვენ გვაქვს არცერთი ეს წითელი ვარსკვლავი, არც ამ მაჩვენებლებით, როგორც მე ვამბობ, როგორ ფიქრობთ, ძიება სახელის ამ მონაცემთა ბაზაში? მოდით დავხატოთ ჩვენი ყურადღება ამ მაგალითს. თუ ჩვენ გვაქვს დავით და სკალი და Kareem და Arwa და სხვები ამ რიგები, მაგალითად. მოდით გავაკეთოთ ზუსტად რომ. Scully არის აქ, და შემდეგ ჩვენ Kareem და Arwa, და ყველას, თუ არ გაქვთ ინდექსი განისაზღვრება, ასე ვთქვათ, საუკეთესო შეგიძლიათ გააკეთოთ ხაზოვანი ძებნა. თუ თქვენ მოძებნოთ Arwa, ჩვენ არ ვართ იქნება შეუძლია ხტომა უფლება მისი სწრაფად. ჩვენ ვაპირებთ, რომ დაიწყოს ზედა და წავიდეთ ყველა გზა ბოლოში, არ არის განსხვავებით ჩვენი ორიგინალური მაიკ სმიტი მაგალითად. მაგრამ, თუ მე ვიტყვი, hey, მონაცემთა ბაზა, ინდექსი სახელი სფეროში, შემდეგ ის აპირებს, რომ რამე fancier და მხარდაჭერა რაღაც ორობითი ძებნა. ეს, ალბათ, არ ორობითი ძებნა თავისთავად. მონაცემთა ბაზების ტენდენცია გამოიყენოთ სხვა მონაცემები სტრუქტურა მოუწოდა ბ ხეები, არ უნდა აგვერიოს ბინარული ხეები, რომ მხოლოდ რათა ის უფრო სწრაფად ძიება რაღაც ლოგარითმული ბუნებაში. მაგრამ ფასი იხდით დაამყარონ, რომ ფუნქცია, რომ მონაცემები სტრუქტურა მეხსიერება, უფრო bytes. ასე რომ, ეს შესაძლოა გარკვეული მბ, ზოგიერთი გიგაბაიტი, ვინ იცის? ეს დამოკიდებულია მონაცემები. ასე რომ, რაღაც მომენტში, თქვენ უნდა გადაწყვიტოს, ეს, ალბათ, არ არის საერთო საქმე. ასე რომ, რა ფაქტობრივი საერთო შემთხვევაში, თუ თქვენ ნამდვილად უნდა აირჩიოს, რა შეიძლება თქვენი საყვარელი სფეროებში იყოს? ელ. და მე მინდა ელ რადგან ფოსტის გაგზავნა, თეორიულად, უნდა იყოს უნიკალური. ასე რომ, როგორც წესი, როდესაც თქვენ იცით, წინასწარ, რომ თქვენი ერთ-ერთი სფეროებში არის ან იქნება უნიკალური, რომ tends უნდა იყოს კარგი მოედანი ძებნის, იმიტომ, რომ გზა, როდესაც თქვენ მოძებნოთ რამე, თქვენ აპირებს მიიღოს უკან ერთი ან ნულის პასუხები და შემდეგ თქვენ გაკეთდეს. თქვენ არ უნდა შეინარჩუნოს ეძებს კიდევ სხვები. ასე რომ, ამ შემთხვევაში აქ, ელექტრონული ფოსტის, ისე, სანამ თქვენ არ შეგიძლიათ რეგისტრაცია ორჯერ იგივე ელ, არის კარგი ერთი. ID განმარტება, რომ კომპიუტერულ მეცნიერებათა მსოფლიოში, თუ ვსაუბრობთ ID, რომ უკეთესი იყოს უნიკალური. ეს არის ერთგვარი კონტექსტში პირადობის მოწმობის ან იდენტიფიკატორი. და დანარჩენი ეს შეიძლება იყოს, მოდით მოვუწოდებთ მათ ლამაზი haves, მაგრამ ნამდვილად არ არის საჭირო. ასე რომ, მონაცემთა ბაზა, თქვენ დააკონკრეტა ინდექსები, მაგრამ თქვენ შეიძლება იყოს კიდევ უფრო ზუსტი. შეიძლება ითქვას, hey, მონაცემთა ბაზა, დარწმუნდით რომ ყოველ ID ამ მაგიდასთან არის უნიკალური. არ მიშვებენ პროგრამისტი შემთხვევით მა დუბლიკატი ელ ან დუბლიკატი ID ნომერი. ასე ჰგავს enums დაგვიცავს ანალოგიურად, შეიძლება ჰქონდეს იმ ქვედა დონის თავდაცვა. ასე რომ, მონაცემთა ბაზის დიზაინი, გარკვეული აზრით, არის ერთგვარი გართობა, იმიტომ, რომ თქვენ ამის გაკეთება დაცვას. თქვენ ერთგვარი ვივარაუდოთ, რომ თქვენ მუშაობა საშინელი, საშინელი პროგრამისტები და გსურთ დააყენა, როგორც ბევრი თავდაცვითი როგორც თქვენ შეგიძლიათ დაიცავს თქვენს მონაცემებს, მაგრამ ამავე დროს გსურთ დავეხმაროთ მათ შეასრულოს უკეთესი არჩევით რომელიც სფეროებში ოპტიმიზაცია. მაგრამ თქვენ ვერ აუცილებლად ამის გაკეთება ვაკუუმი, როგორც ჩვენ სახის აქ ვართ. თქვენ უნდა იცოდეს, რა არის იმ საერთო საქმეებზე. თუ დეველოპერები განხორციელების მისამართი წიგნი, თქვენ შეიძლება ძალიან კარგად გსურთ შეძლებს ძებნის თითქმის ყველა სფეროში, მხოლოდ ბუნების განაცხადი. იქნებ დახარჯავს რომ დამატებითი ფართი. უფლება, ნებისმიერი კითხვები? ჰო. აუდიტორია: [INAUDIBLE] დავით Malan: No. აუდიტორია: [INAUDIBLE] დავით Malan: OK. აუდიტორია: [INAUDIBLE] დავით Malan: Oh, ასე რომ, ჩვენ ვსაუბრობთ გზა ახლა, რომ მთლიანად ენის აგნოსტიკი. ასე რომ, ჩვენ ვსაუბრობთ ახლა შესახებ რელაციური მონაცემთა ბაზები, უფრო ზოგადად, ან SQL მონაცემთა ბაზებთან უფრო ზოგადად. აუდიტორია: [INAUDIBLE] დავით Malan: უკეთესი სიტყვა გამოიყენოს ეს არის, შეიძლება გამოყენებულ იქნას ნებისმიერ ენაზე. ასე რომ, შემიძლია წერა JavaScript კოდი, C კოდი, C ++, Java კოდი, Ruby კოდი, ყველაფერი, რაც გაიგო, რომ მონაცემთა ბაზაში და შეასრულოს შეკითხვებს. ფაქტია, რომ ეს არ არის ცუდი segue მაგალითის შეკითხვაზე. ისევ და ისევ, ჩვენ არ ვაპირებთ წასვლას Java და C ++ ან რომ აღარ, მაგრამ SQL, ენა, რომელიც მე შენარჩუნება გულისხმობდა, სტრუქტურირებული შეკითხვის ენა, ეს თავისთავად არის პროგრამირების ენა, მაგრამ ეს იმას ნიშნავდა, რომ უნდა იქნეს გამოყენებული, არ სიურპრიზი, სტრუქტურირებული შეკითხვის შეკითხვებს. რომ მე ვგულისხმობ ამ. გზა თქვენ აირჩიოთ მონაცემთა საწყისი MySQL მონაცემთა ბაზაში არის ფაქტიურად ჩაწერეთ თქვენი პროგრამა რაღაც აირჩიეთ ვარსკვლავი მომხმარებლებს. მე თუ ვთქვათ, რომ ეს მაგიდა, ამიერიდან ეწოდება მომხმარებლებს. მე ვერ ვუწოდებ არაფერი გვინდა, მაგრამ, რომ ასეთი სახის აზრი. ასე რომ, აირჩიეთ არის ძალიან საერთო verb, თუ იქნება, SQL, რომ ფაქტიურად აკეთებს, რომ. რას ფიქრობთ ვარსკვლავი ნიშნავს ამ კონტექსტში? აუდიტორია: [INAUDIBLE] დავით Malan: მე ბოდიში? აუდიტორია: [INAUDIBLE] დავით Malan: არ არის საჭირო, ეს არის უფრო ინკლუზიური ვიდრე ის, რომ რეალურად. ეს ველური ბარათი ხასიათი. ვარსკვლავი თითქმის ყოველთვის არაფერს ნიშნავს, ასე რომ, ეს იმას ნიშნავს, რომ ამ შემთხვევაში, შეარჩიეთ ყველაფერი ბაზიდან. ასე რომ, როცა ამბობენ, რომ ეს, ვგულისხმობ მომეცი უკან ყოველი სვეტი ჩემი მაგიდა სახელწოდებით მომხმარებლებს. ასე რომ მომეცი შედეგი კომპლექტი, როგორც მას უწოდებენ. სხვა სიტყვებით, მომეცი ასლი ცხრილების, არის ის, რაც მე მიღების დროს. მაგრამ თუ მე ვუთხარი აირჩიეთ ვარსკვლავი მომხმარებლები სადაც ID უდრის 1, რამდენად დიდი უნდა ჩემი შედეგი მითითებული იქნება შემდეგ? ან equivalently, რამდენი რიგები უნდა მე გადაეცემა უკან ბაზიდან? ალბათ, მხოლოდ ერთი, თუ მე მაქვს ნამდვილად მკურნალობა ID უნიკალური იდენტიფიკატორი, და თუ დავით აქვს, რომ უნიკალური ID, I უნდა დავუბრუნდეთ ერთი და მხოლოდ ერთი row შეიცავს ყველა დავითის ინფორმაცია. თუ მე ვუთხარი ამ, სადაც ID უდრის 99, მე უნდა დავუბრუნდეთ, ამ კონტექსტში, ნულოვანი რიგები, მინიმუმ მომენტში. თუმცა, მე ნამდვილად არ მაინტერესებს, ყველა ინფორმაციას, მე ვერ, უბრალოდ ამბობენ, სადაც ამჯამად დავით ცხოვრობს? აირჩიეთ zip კოდი წევრებს, სადაც ID არის 1. ეს შეარჩევს ჩემთვის მხოლოდ დავითის zip კოდი და არა მთლიანად, რომ ზედიზედ. რატომ შეიძლება გავაკეთო ამ ნაცვლად ვარსკვლავი შეკითხვაზე, ველური ბარათი? აუდიტორია: [INAUDIBLE] დავით Malan: ჰო, მე შეიძლება მხოლოდ სჭირდება. ასე რომ, შესრულება კვლავ პასუხი აქ. რატომ ითხოვენ მეტი ინფორმაცია, ვიდრე გჭირდებათ, იმიტომ, რომ მაშინაც კი, თუ ეს ყველა უფლება ერთად, თქვენ კვლავ უნდა ასლი, რომ მონაცემები, როგორც ჩანს, მონაცემთა ბაზიდან თქვენი პროგრამა რატომღაც, და ეს მხოლოდ სულელური, თუ თქვენ მხოლოდ უნდა ხუთ ციფრები, არა მთლიანად საქართველოს row. ასე რომ, მე ჩადეთ მომხმარებელი? დავუშვათ, რომ მომხმარებელს აქვს მხოლოდ რეგისტრირებული პირველად. სინტაქსი, როგორც წესი, ასე გამოიყურება. ჩადეთ წევრებს, და მაშინ ჩვენ ვიტყოდით, ღირებულებები, და მაშინ ჩვენ ვიტყოდით, ფასეულობები ისევე, როგორც, ვთქვათ, Lauren Scully, ჩვენი videographer უფლება აქ. და მომდევნო ველი სქესის. ასე რომ, ჩვენ ვიტყვით, ციტირებით unquote "ვ", მაშინ ჩვენ გვაქვს ID და მე ვაპირებ ვთქვა, მოდით ვიტყვი, რომ ის არ არის, ფაქტობრივად, აქ, ასე რომ, ჩვენ გადახვევა ამბავი. ასე რომ 2 იქნება მისი პირადობის მოწმობა. ხოლო შემდეგ მომდევნო სფეროში აქ არის მისი ელ. ასე რომ, ეს იქნება, როგორც Lauren Scully და ა.შ., და ჩვენ უბრალოდ dot dot dot ის დაშორებით აქ. ახლა კი კიდევ ცოტა tedious, მაგრამ ჩანართით შეკითხვაზე საბოლოოდ ჰგავს, რომ. თუ მინდა, რომ თავი დაეღწია Scully, uh-oh, მოდით მოეხსნა მას, იგი წაშლის და მისი ანგარიში, წაშლა წევრებს, სადაც ID უდრის 2, დავაღწიოთ Scully. და შემიძლია ვთქვა, განახლება წევრებს შეიქმნა, ვთქვათ, რა შეიძლება ჩვენ შეიცვლება? დავუშვათ, რომ იგი მოძრაობს. Set zip უდრის 021-- nope, ეს არის ის, მისი ამჟამინდელი zip. 90210. ერთადერთი ZIP კოდი მე ვიცი, მსოფლიოში. ასე, რომ შეიცვალოს მისი zip code-- ფაქტობრივად, რომ არ შეიცვლება მისი საფოსტო კოდი. რა მე მხოლოდ ამის გაკეთება? მიუხედავად იმისა, რომ სინტაქსი, ალბათ, ახალი. აუდიტორია: [INAUDIBLE] დავით Malan: ჰო, მე გადავიდა ყველას to Beverly Hills, California. ასე რომ, მე რეალურად უნდა ამბობენ, სადაც ID უტოლდება 2. და ასე შემდეგ. ასე რომ, SQL არის ყველაფერი ეს სახის მითითებებს. აირჩიეთ, ჩადეთ, წაშლა, განახლება, ამ predicates ბოლოს ეს სადაც პუნქტები, ასე ვთქვათ. და იქ გაცილებით მეტი შეგიძლიათ , მაგრამ ეს ნამდვილად boils ქვემოთ უბრალოდ, თუ arcanely, გამოხატავს რა გსურთ მონაცემთა ბაზაში უნდა გააკეთოს. და შემდეგ მონაცემთა ბაზაში გაერკვნენ, როდესაც თქვენ ჩადეთ Lauren Scully შევიდა მონაცემთა ბაზა, სადაც დააყენოს მისი მეხსიერება ასე რომ ჩვენ შეგვიძლია ძალიან სწრაფად მისი საფუძველზე მისი ელექტრონული ფოსტის მისამართი და ეფუძნება მის ID ნომერი ან მოსწონს. ჰო, დენ. აუდიტორია: [INAUDIBLE] დავით Malan: კარგი კითხვა. იქნება ეს სკრიპტები შეიცვალოს Microsoft Access to Oracle to MySQL, რომ PostgreSQL? მოკლე პასუხი არის ეს დამოკიდებულია. თეორიულად, არსებობს ძალიან მნიშვნელოვანი საერთო ქვესიმრავლე SQL რომ საერთო მთელი ამ შესრულება. თუმცა, სხვადასხვა მწარმოებლები აქვს დამატებული თვისებები მათი მონაცემთა ბაზის გავაკეთოთ გარკვეული რამ სცილდება ამ თვისებების, რომელიც შესაძლოა, ფაქტობრივად, შესვენება. ასე რომ გზა დეველოპერები ვალუტა წინააღმდეგ, ის არის, რომ, ვიდრე წერილობით ნედლეული SQL კოდი, როგორც მე წერა აქ, მათ ნაცვლად გამოიყენოთ ბიბლიოთეკა, საერთო ბიბლიოთეკა, რომ თავად არის ერთგვარი მაღალი დონის და რეზიუმეები მოშორებით, რომელიც პროდუქტის თქვენ იყენებთ. და ეს გაძლევთ ფუნქციები და პროცედურები მოვუწოდებთ ასე რომ თქვენ არასოდეს რეალურად წერენ ნედლეული SQL. თეორიულად, მაშინ, თქვენ შეგიძლიათ შეცვალოთ პროდუქციის Oracle to Microsoft ან პირიქით, ან არაფერი სხვაგან, და თქვენ ფაქტიურად არაფერი შეიცვლება თქვენი კოდი. რეალობა, თუმცა, ის არის, რომ ზოგჯერ დათმობს თვისებები შედეგად. თქვენ მიერ არჩეული პროდუქტი, რადგან ის მივიღე ამ დამატებითი ღირებულების თვისებები, და თქვენ მხოლოდ ახლა არა გამოყენებით მათ შეგნებულად. და ამბობენ, ყველაზე კომპანიები, როგორც წესი, არასოდეს გადაადგილება დაშორებით მათ მონაცემთა ბაზაში. ასე რომ, ხოლო ეს არის ლამაზი აქვს ფუნქცია, რეალობა არის, თუ თქვენ განაახლეს თქვენს მონაცემთა ბაზაში, თქვენ ალბათ მიღების მტევნების სხვა ცვლილებებს მაინც, რომ თქვენ ამის გაკეთება არ არის აუცილებელი უნდა განისაზღვროს, რომ. ასე რომ, ეს, ალბათ, მეტი საინჟინრო პრობლემა, მაგრამ ეს ნამდვილად დამოკიდებულია კონტექსტში. თუმცა თეორიულად, SQL გაუზიარეს მთელი ამ სხვადასხვა პროდუქცია. ძალიან კარგი კითხვა. ჰო. აუდიტორია: [INAUDIBLE] დავით Malan: ჰო, ასე რომ, თქვენ შეიძლება ვიფიქროთ, მონაცემთა ბაზა მხოლოდ სერვერზე, ბოლოს დღეს, და შიგნით რომ სერვერზე არის მთელი bunch of მაგიდები, რიგები და სვეტები. და როდესაც თქვენ შეკითხვის მოსწონს ეს თქვენი პროგრამა, თქვენი ნახვა, დაწერილი Java, Ruby, Python, რასაც, სერვერზე ამ ბრძანების მიღების და წერით ეს ფაქტიურად იგივე გზა ჩვენ განვიხილეთ ადრე ერთად ინტერპრეტაცია ენები, და შემდეგ ასრულებენ გარკვეული მოქმედება ნულოვანი ან მეტი რიგები ნულოვანი ან მეტი მაგიდები. აუდიტორია: [INAUDIBLE] დავით Malan: ზუსტად, ზუსტად. ასე რომ, pseudocode რაღაც მინდა, რომ შეიძლება იყოს ეს. თქვენს PHP ფაილი ან თქვენი Python ფაილი ან თქვენი Java ფაილი, თქვენ უნდა pseudocode კოდი, ან Scratch მსგავსი ბლოკები, თუ მომხმარებლის სტუმრობს acme.com/register~~V პირველად, შემდეგ ჩადეთ შევიდა წევრებს და სხვ. და ჩვენ თარგმნა ეს უფრო კონკრეტული კოდი ბოლომდე. მაგრამ, რეალურად, ჩვენ გვაქვს ყველა შენობა ბლოკები აქ, მიუხედავად იმისა, რომ ჩვენ skipping ზოგიერთი განხორციელების ნაბიჯები. ნება მომეცით, ბრალია, რაც ჩვენ შესანიშნავად გააკეთა მხოლოდ ერთი წუთით წინ. შევქმენით საკმაოდ სრული ცხრილი მომხმარებლებს. უნდა აღინიშნოს, რომ ჩვენ შეგვიძლია განვახორციელოთ მას რამდენიმე სხვადასხვა გზით, მაგრამ თქვენ არ რეალურად მიგვიყვანა ქვემოთ path-- და გეუბნებით თქვენ, მაგრამ ეს, ალბათ, ჩემი fault-- საკმაოდ არაეფექტური ბაზაში განხორციელება. ეს არ არის დარეგულირებული. და ნორმალიზება ვგულისხმობ არ იქნება, დროთა განმავლობაში, მნიშვნელოვანი redundancy, და, შესაბამისად, არაეფექტურობა, რომ არის ნარჩენები სივრცე. დაყრდნობით მხოლოდ ის, რაც თქვენ აქ, შეუძლია თქვენ გვჯერა, სადაც ეს ნარჩენები სივრცე აპირებს მოდის, დროთა განმავლობაში, უფრო და უფრო მეტი მომხმარებლის რეგისტრაცია თქვენი საიტი? რა მონაცემები შეიძლება გახდეს ზედმეტი? აუდიტორია: [INAUDIBLE] დავით Malan: რატომ ნიშნავს, რომ? აუდიტორია: [INAUDIBLE] დავით Malan: ჰო. და მოდით ვივარაუდოთ მიზნებისათვის დღეს, რომ ეს მართლაც ასეა. გამოდის, და ჩვენ ვისწავლეთ ამ რთული გზა, რომ ასე არ არის. რატომღაც სხვადასხვა ქალაქებში აქვს, რატომღაც, იგივე ZIP კოდი, რომელიც არღვევს ამ შესანიშნავი ინტუიცია. მაგრამ დავუშვათ, რომ სიმართლეა, იმიტომ, რომ ეს თითქმის ყოველთვის მართალია. ამიტომ ვარაუდობენ, რომ საფოსტო კოდი ყოველთვის დაკავშირებულია იმავე ქალაქში და სახელმწიფო, რომელიც არის ერთგვარი ვარაუდი, მაგრამ არასწორი, თურმე. მაგრამ არსებობს საფუძვლიანი ვარაუდი დღევანდელი მიზნებისათვის. მაშინ უნდა ვივარაუდოთ, რომ ვცხოვრობ Cambridge, MA, შესაბამისად, ამ მომხმარებლის მაგიდა, და ვარაუდობენ, რომ Lauren Scully ცხოვრობს Cambridge, MA, და ვარაუდობენ, რომ Kareem ცხოვრობს Cambridge, MA, და Arwa ცხოვრობს Cambridge, MA, ყველა ჩვენგანი 02138. რატომ ვართ დამახსოვრების Cambridge, MA, 02138 ოთხივე ჩვენგანი? რა უნდა საკმარისი უნდა გვახსოვდეს? აუდიტორია: [INAUDIBLE] დავით Malan: მხოლოდ zip კოდი. უბრალოდ, რომ 02138 არსებობს, რადგან თქვენ იცით, რა შეგვიძლია გავაკეთოთ? ჩვენ შეიძლება კიდევ პატარა ლამაზი აქ და აქ, განსაზღვრავს სხვა მაგიდასთან სადაც ეს იქნება სახელი, ეს იქნება ტიპის, ეს იქნება სიგრძე, და ამიერიდან, მე ვაპირებ მოვუწოდო ამ ჩემი ქალაქებში მაგიდასთან. ეს ეწოდა, რა რა თქმა უნდა, ჩემი წევრებს მაგიდასთან. ასე რომ, რა უნდა ვთქვათ მეტი აქ ჩემი ქალაქებში მაგიდა, როგორ ფიქრობთ? აუდიტორია: [INAUDIBLE] დავით Malan: ჰო. ასე რომ, zip სახელმწიფო და ქალაქში. ასე რომ, ტიპის, აქ, ჩვენ ვიტყვით, ეს იქნება char 5 ისევ, თემაზე დებატები ადრე. ეს იქნება ENUM, ალბათ ისევე, როგორც ადრე, და ქალაქში იქნება varchar 50. ასე რომ, ახლა რა მივიღო წაშლას ამ მაგიდაზე აღმოფხვრას რომ არაეფექტურობა? აუდიტორია: [INAUDIBLE] დავით Malan: Nice. სახელმწიფო და ქალაქის მიდიან, ასე რომ მე ახლა აღმოფხვრილი პოტენციალი არაეფექტურობა for redundantly დამახსოვრების, Cambridge, MA, Cambridge, MA, Cambridge, MA, Cambridge, MA, რომელიც, იმედია არასოდეს არ შეიცვლება. და მაშინაც კი, თუ ეს ასეა, ეს minorly შემაშფოთებელი, ახლა რომ მე უნდა შეიცვალოს ის მრავალჯერადი რიგები, ხოლო აქ, მე მხოლოდ შეცვალოს იგი ერთ ადგილას. ახლა რა ვაჭრობის, ალბათ? ეს იყო სუპერ მოსახერხებელი. ჰქონდა ყველა ჩემი მონაცემები ლამაზად ერთად. მაგრამ რა არის ნათლად შემთხვევაში ახლა? აუდიტორია: [INAUDIBLE] დავით Malan: ზუსტად, და მე მოხარული ვარ, თქვენ გამოყენებული სიტყვა შეუერთდება, იმიტომ, რომ, ფაქტობრივად, სიტყვით, მსოფლიოში რელაციური მონაცემთა ბაზები in SQL, ის ფაქტობრივი სიტყვა შეიძლება ტიპის ან მინიმუმ გადმოცემა. და სინამდვილეში, ის, რაც ჩვენ ახლა უნდა გავაკეთოთ აირჩიოთ დავითის სრული ინფორმაცია რაღაც აირჩიეთ ვარსკვლავი მომხმარებლებს, შეუერთდეს ქალაქებში, on-- და ახლა მე ვაპირებ უბრალოდ გადავა მეორე ხაზი ასე, რომ ეს fits-- users.zip ტოლია cities.zip, სადაც users.ID უდრის 1. რა ხდება? ეს მახინჯი ეძებს, მაგრამ შეგიძლიათ სახის წავიკითხე ეს მარცხნიდან მარჯვნივ, ზემოდან. აირჩიეთ ვარსკვლავი მომხმარებლები არის იგივე, როგორც ადრე, მაგრამ ეს არ არის მომხმარებლებს, თავისთავად. ეს წევრებს შეუერთდეს ქალაქებში. რა ვარ მე უერთდება იმ ორი მაგიდები? ისე, როგორც ჩანს, მომხმარებლის მაგიდები zip სფეროში, და ამ პერიოდში მხოლოდ სპეციალური სინტაქსი გამოთქვას, რომ იდეა, და ეს არის ქალაქებში მაგიდები zip სფეროში. მინდა იმ ორი უნდა იყოს თანასწორი, მაგრამ მე მინდა, რომ საბოლოოდ აირჩიეთ მხოლოდ იმ სტრიქონების, სადაც ID მომხმარებლების მაგიდა უდრის 1, რაც მოხდა, რომ აფეთქდა. და უბრალოდ უნდა იყოს ნათელი, პროგრამისტი, როგორც წესი, როდესაც hardcode რაღაც რაოდენობის 1, რადგან, წინააღმდეგ შემთხვევაში ვებგვერდზე მხოლოდ მხარს უჭერს დავით ან პირველი შესახებ, თქვენ იმის მაგივრად, რომ ამის რაღაც ID, სადაც ეს წარმოადგენს ცვლადი, რომ რაღაც შეიძლება შეიცვალოს დროთა განმავლობაში, მსგავსი სულისკვეთება, თუ რა ვთქვი ადრე ამ სახის placeholders. მაგრამ ახლა ჩვენ უბრალოდ hardcode, როგორც 1. ასე რომ, რას ნიშნავს ეს? ისე, კარგი გზა ვიზუალურად ეს არის იმ შემთხვევაში, თუ ამ მხრივ არის მომხმარებლის მაგიდა, და ამ მხრივ არის zips მაგიდა, ჩვენ ერთგვარი finding-- და რჩევები ჩემი თითების zip აქ და რჩევები ჩემი თითების აქ არის zip, თქვენ სახის გადაჯაჭვული ეს ისე, რომ თქვენ უკან, რის შედეგადაც ორიგინალური მაგიდა, რომელსაც ნამდვილად ში ორ მაგიდას საერთო სფეროში. და ეს არ უნდა იყოს zip. ეს შეიძლება იყოს ყველაზე არაფერი, მაგრამ zip არის ლამაზი, რადგან ერთი, ეს მოკლედ, ორი, ის ყოველთვის იმავე სიგრძის, ასე რომ, რეალური ეფექტურობის რა Olivier შემოთავაზებული აქ ერთად ფაქტორინგი გარეთ zip, და [INAUDIBLE] ვთავაზობ, რომ ჩვენ დავაღწიოთ ქალაქის და სახელმწიფოები. ასე რომ, ეს არის პროცესი ცნობილია, როგორც ნორმალიზაცია. ნებისმიერი კითხვები რომ? ისე ნება მომეცით აღვნიშნო, ეს არის ერთგვარი პერსონალი, მიუხედავად იმისა, რომ საკმაოდ დაბალი დონის, ამ დისკუსიის, რომ თქვენ ვფიქრობ თქვენ ერთგვარი მიღების დაკარგული Weeds, ეს არის გამოვლინება საკმაო შესაძლებლობა დეველოპერები იყოს ცუდი. და სინამდვილეში, მაშინაც კი, როდესაც ჩვენ, კურსების მე ასწავლიდა, როდესაც ჩვენ გვქონდა, მაგალითად, გამოუცდელი ბაკალავრიატის პროგრამისტები აშენება საიტებზე, ერთი შეხედვით, ვებ-შეიძლება გამოიყურებოდეს შესანიშნავი. და მათ ყველა ფუნქციონალური მოვითხოვეთ, დეველოპერები გააკეთა კარგ საქმეს. მაგრამ ისინი არ არის აუცილებელი იცოდეს საკმარისი მონაცემთა დიზაინი ან საერთოდ არ ვფიქრობ, რთული საკმარისი სახის მონაცემები და ტიპის მომხმარებლებს ნახვა მივდიოდი უნდა, და ჩვენ, მაშინ, ექვსი თვის შემდეგ, შემდეგ ისინი დაამთავრა და გადავიდა, რომ რა იგი, ჩვენი საიტი მართლაც, ნამდვილად ნელი. და მე კი არ ვსაუბრობთ, რომელსაც მილიონობით და ათასობით მომხმარებლებს. ვგულისხმობ რამდენიმე ასეული მომხმარებლები კამპუსში, ყველა, ვისაც მოსწონს, რომ, მაგალითად, მაღაზია კურსები ამავე დროს, ისინი გამოყენებით, რომ კურსი კატალოგი განაცხადის აღვნიშნე და რამ მისაღებად ნამდვილად ნელი რადგან არ იყო ინდექსები. არ იყო წითელი ვარსკვლავი, ასე საუბარი, ან ჩვენ გვქონდა არ არის აუცილებელი factored საერთო მონაცემები მივიღოთ დანაზოგების სივრცეში. ასე რომ, როდესაც დამოწმებისა დეველოპერი ან მონაცემთა ბაზის პირი ან მოსწონს, სახის კითხვებით ვფიქრობ მეშვეობით კი, როდესაც განხილვის ვიღაცის კოდი, თქმა უნდა, არ არის აუცილებელი, გამოიყურება მთელი მათი კოდი, მაგრამ ამბობენ, მოდით შევხედოთ მეშვეობით მონაცემთა ბაზის ცხრილები. რას შენახვის? და შემდეგ ამბობენ, კარგად, დაველოდოთ წუთი, რატომ გამოყენებით რიცხვი? რა მოხდება, თუ ჩვენ გვაქვს 4 მილიარდი 1 ეს სტრიქონები? და ამ სახის კითხვები არის შესაძლებლობა სახის დააყენებს უკან და მისაღებად გრძნობა, სადაც თუ თქვენ არ კომფორტულად ის, რომელსაც ვინმე ტექნიკური ეს კითხვები დასვათ, თუ არა პირი მართლაც იცის მათი პერსონალი. და ეს არის ერთგვარი პერსონალი, ძალიან, რომ ადამიანი ინტერნეტ, რომელიც არის თვითნასწავლი, შესაძლოა, ვისწავლოთ ნაკლებად ხშირად, იმიტომ, რომ თქვენ არ არის აუცილებელი, რომ გვხვდება ეს იმდენი, რადგან თქვენ შეგიძლიათ მიიღოთ მონაცემთა ბაზაში და გაშვებული, მაგრამ თუ თქვენ წაკითხული up on გაკვეთილები ან ყოფილა ამის შესახებ მონაცემთა ბაზის ნორმალიზაციის და ინდექსირებას და შესრულება, ეს არის სახის რამ, რომ ვაპირებთ დააზარალებს თქვენ. და თქვენ ალბათ ფიქრობთ, ან ცუდი ინჟინერი შეიძლება ითქვას, oh, ასევე, ჩვენ უკეთესი ანაზღაურებისა უფრო დიდი მონაცემთა ბაზა ან სწრაფად მონაცემთა ბაზაში ან უბრალოდ იმისათვის, რომ ფული ამ, ვერტიკალურად მასშტაბით, არა. თუ წასვლა შიგნით და თქვენ შეიძლება წავიდეს მას შემდეგ, რაც ის ფაქტი და დაამატოთ ინდექსები, და ეს, შესაძლოა, რამდენიმე საათში მონაცემთა ბაზის დაამყარონ, რომ ახალი მონაცემები სტრუქტურა, რომელიც მე გააკეთა მინიშნება ადრე, თქვენ მაინც გაასწორონ ამ ფაქტის შემდეგ, რომ ეს არის, სადაც თქვენ დაიწყოს გამოირჩეოდნენ კარგი დიზაინერების ცუდი დიზაინერების, არა მხოლოდ ესთეტიურად, მაგრამ შესრულება ბრძენი ისევე. ნებისმიერი კითხვები? არ არის? ასე რომ, NoSQL, რომელიც სხვა ტიპის მონაცემთა ბაზის, რომელიც მე გააკეთა მინიშნება ადრე, თქვენ არ გაქვთ რიგები და სვეტები. ამის ნაცვლად, თქვენ გაქვთ რაიმე რომ გამოიყურება ცოტა უფრო მოსწონს ეს. მე ვაპირებ გამოიყენოს საერთო სინტაქსი. Curly braces მოხდეს გამოყენებულ აქ საკმაოდ ბევრი. ალბათ რაღაც როგორც პირველი სახელი არის დავით, ალბათ ბოლო სახელი Malan, კვოტების, ალბათ ID is-- მაპატიეთ, whoops-- ID არის 1, ელ malan@harvard.edu, და მე არ გადაიტვირთოთ აკრეფით გარეთ დანარჩენი, და შემდეგ ზოგიერთი სხვა რამ. სხვა სიტყვებით, ეს არის ტექსტური წარმომადგენლობა რასაც ჩვენ მოვუწოდებთ ზოგადად ობიექტის კომპიუტერული პროგრამა. და ობიექტი არის ზოგადად მხოლოდ კოლექცია გასაღები ღირებულება წყვილი. ასე რომ, კიდევ ერთხელ, ეს განმეორებადი თემა. ჩვენ ვნახეთ გასაღები მნიშვნელობის წყვილის HTML, ჩვენ ვნახეთ გასაღები ღირებულება წყვილი ახლა კონტექსტში მონაცემთა ბაზა, და ჩვენ დაინახა გასაღები ღირებულება წყვილი კონტექსტში , მე ვფიქრობ, ენის დღეს. ინარჩუნებს ახლოვდება. და მართლაც, რომ მართლაც რა მონაცემები boils ქვემოთ, მონაცემები და მეტადატის, ან ღირებულებებს და გასაღებები, შესაბამისად. ასე რომ, არასამთავრობო რელატიური მონაცემთა ბაზა, რაღაც საფუძველზე ობიექტები, სადაც თქვენ უბრალოდ ეწებებიან ყველაფერი ერთად და მისი მეხსიერებაში, რომ, ზოგადად, სურათები, როგორც, ან ფიქრობდა, როგორც ეს. და მე დავტოვებთ, რომ ახლა, როგორც ერთგვარი ალტერნატიული მიდგომა. და ერთი არ არის აუცილებელი უკეთესია, ვიდრე სხვა. ფაქტობრივად, ძალიან vogue ამ დღეებში არის მონაცემთა ბაზის სისტემები როგორიცაა MongoDB და Redis და რამდენიმე სხვა ისეთი იარაღები, თავისუფლად არის შესაძლებელი, მაგრამ ისინი სულ უფრო და უფრო en vogue. ნაწილობრივ იმიტომ, რომ მათ ვთავაზობთ დამატებით თვისებები ამ tabular მიდგომები, არამედ იმიტომ, რომ ისინი ცოტა ადვილი გამოყენება, იმიტომ, რომ თქვენ არ უნდა ვიფიქროთ, როგორც მყარი, შესახებ ბევრი დიზაინის გადაწყვეტილებები. ასე რომ, დადებითი და cons. ასე, არსებობს ვარიანტი მიღმა, რასაც ჩვენ მხოლოდ დახარჯული დრო. ასე რომ, მოდით ეს. მოდით გადასვლას ცოტა ახლა ვებ პროგრამირების, ასე, რომ ჩვენ სახის დავასკვნათ დღეს რაღაც რომ ცოტა პრაქტიკული, შევსების ზოგიერთ ხარვეზები გუშინ. ნება მომეცით წასვლა პირველი. გავიხსენოთ, რომ გუშინ ჩვენ გვქონდა კანონიკური HTML გვერდები, რომ თავდაპირველად, მხოლოდ HTML, და შემდეგ ხელახლა ჰქონდა CSS, კასკადური სტილების. ეს არის ახალი აქვს, რომ ჩვენ არ გუშინდელ, ან დაეფუძნება, ე.წ. სცენარი აქვს. გამოდის, თქვენ შეგიძლიათ რეალურად ხმა ენის მოუწოდა JavaScript თქვენს ვებ გვერდზე და თქვენი ვებ გვერდები რამე. ასე რომ, რა ნიშნავს, რომ? ასევე, ნება მომეცით წავიდეთ წინ და მხოლოდ სესხის ეს კოდი მომენტში. მე ვაპირებ წასვლას Cloud9, არ სჭირდება რომ იქ თავი უბრალოდ არ არის, და მე ვაპირებ მოვუწოდო ამ alert.HTML. მე ვაპირებ ჩასვით ჩემი ფაილი აქ. და რომ განვმარტო, რასაც მე ვაკეთებ, ნება მე ამ მისამართზე და წასვლა პირთა, და ხედავთ Hello World. მაგრამ ეს არის ერთგვარი underwhelming. მე მინდა, რომ რამე ცოტა განსხვავებული. ამიტომ, მე ვაპირებ, რომ რეალურად ამის გაკეთება. მე ვაპირებ წავიდეთ აქ e, და მათ შორის ჩემი script tags, ამბობენ alert ( 'hello, world "); ასე რომ შეამჩნია ეს ცოტა დაუდევარი, მაგრამ მაქვს HTML, შიგნით რაც არის ენის მოუწოდა JavaScript, და ეს არის ის, რაც ე.წ. ფუნქცია ზარის ან პროცედურა ზარი. ეს არის ზმნა, ფაქტიურად, ამ შემთხვევაში, და მე მარტო აპელირებს კოდი ფუნქცია რომ ვინმეს დაწერა. ასე რომ, ფუნქცია არის alert, მოდით წავიდეთ ამ გვერდზე ახლა და დააჭირეთ განაახლეთ, და ახლა თქვენ ვხედავ ცოტა interactivity. ეს არის ერთგვარი ძველი სკოლა და მახინჯი. ამ სახის შეგახსენებთ, რომ pop-ups, ალბათ, წარსულის მაგრამ ეს არ გააკეთა რამე ცოტა მეტი პროგრამული. ასე რომ, მეტი რომ, მოდით რაღაც უფრო საინტერესო. ნება მომეცით წავიდეთ აქ და თავი დაეღწია ამ. და მე ვაპირებ წავიდეთ წინ და შევქმნათ ფორმა, როგორც ჩვენ გავაკეთეთ გუშინ. სინამდვილეში, თქვენ იცით, რა? მე ვაპირებ წასვლას google.html, რომელიც ჩვენ დაიწყო გუშინ, რომელიც ჩანდა ამ, რომლის მეშვეობითაც ჩვენ ჩხრეკა cat მაგრამ შეამჩნია არ არის ერთგვარი bug მიმდინარე ვერსია. იგი მუშაობს კატა, მაგრამ ვფიქრობ, რომ მე არ თანამშრომლობენ და მე აკრიფოთ არაფერი, და მე, უბრალოდ დაწკაპეთ წარუდგინოს. სწორედ ასეთი უცნაური ქცევა. წამიყვანეს რეალური Google, არ მაძლევს შეცდომა. მე მინდა ვუთხრა შესახებ თქვენ უნდა მოგვცეს მნიშვნელობა. ასე როგორ შეიძლება ამის გაკეთება? ისე ნება მომეცით დაბრუნდეს Cloud9 და ნება მომეცით წასვლას დაბრუნება ჩემი გვერდი და დაამატოთ script tag მოსწონს, სადაც მე ვაპირებ აკრიფოთ ზოგიერთი JavaScript კოდი. და მე ვაპირებ ამის შემდეგ. თუ (document.getelementByID-- და გავიხსენოთ რომ ჩვენ ვისაუბრეთ, რომ ადრე, რომ ფუნქცია. რა ID მინდა კიდევ? მინდა კიდევ რ და მე ვაპირებ ვთქვათ შეადგენს არაფერი, როგორც ამას მოდით ორმაგ ბრჭყალებში მხოლოდ consistency-- უდრის არაფერი, მაშინ alert ( "გთხოვთ, აკრიფოთ შეკითხვის") აქ. ასე რომ, მე რა, როგორც ჩანს რაღაც მდგომარეობაში. ჩვენ ვნახეთ ამ ზოგადი იდეა ნულიდან. ეს იგივეა, იმ თავსატეხი ცალი რომ ჩანდა მოსწონს ეს. და რა ვარ მე ამბობდა? ისე, აქ, შეამჩნია, რომ მე ვარ აპირებს ამის შემდეგ. მე ვაპირებ, რომ ამ ფორმით სფეროში არ არის მხოლოდ სახელი q, რომელიც რა იღებს გავიდა Google, მაგრამ მე ვაპირებ, რათა ეს ადგილობრივი იდენტიფიკატორი, ასევე მოუწოდა ქ. მაგრამ მე ვერ ვუწოდებ ამ არაფერი მინდა, მე ვაპირებ, რომ შევინარჩუნოთ ის მარტივი და ასევე ეძახით q, მხოლოდ სიმარტივის. და ახლა მე ვაპირებ ამის გაკეთებას რაღაც ცოტა მეტი. On ფორმა სფეროებში აქ, მე ვაპირებ რჩეულებში რასაც ღონისძიება დამმუშავებლის. წარმოადგინოს, მინდა მოვუწოდო ფუნქცია მოუწოდა შეამოწმოს. ეს ჯერ არ არსებობს, ეს სიტყვა, ან ამ ზმნის დავამტკიცოთ, იმიტომ, რომ ის, რაც მე ვაპირებ ამის გაკეთებას აქ ახლა დაამატოთ ზოგიერთი კოდი. მე ვაპირებ ვთქვა ფუნქცია შეამოწმოს. მე ვაპირებ აბზაცის ამ და დაამატოთ კიდევ ერთი Curly გაუწიოს აქ და კიდევ ერთი აქ. განვიხილოთ, თუ რას აკეთებს. მე მაქვს, ახლა ვფიქრობ, როგორც შექმნა საკუთარი თავსატეხი ცალი რომ არ ადრე არსებობს, და მე მოუწოდა ამ თავსატეხი ცალი შეამოწმოს თავსატეხი ცალი. მისი მიზანი ცხოვრებაში არის ის, რომ შეასრულოს ოთხი ხაზი კოდი შიგნით მას. თუ document.getElementByID ასე კონცეპტუალურად, რომ აპირებს წასვლას ელემენტს, HTML ელემენტი რომლის უნიკალური იდეა არის უბრალოდ Q, და შემდეგ, მიუხედავად იმისა, სინტაქსი გამოიყურება ცოტა უცნაური, რომ თანაბარი ტოლია მხოლოდ იმას ნიშნავს, შეადგენს. ასე რომ, ეს ნიშნავს, რომ, თუ ელემენტს ერთად უნიკალური იდენტიფიკატორი q, როდესაც მიღებული, არ აქვს მნიშვნელობა, ეს ტოლია ციტირებით unquote, არაფერი არსებობს, მერე რა უნდა გავაკეთოთ? მინდა დაწეროთ შესახებ. და ჩვენ არ უნდა დიდი დეტალურად აქ. მე ვაპირებ დაბრუნებას ყალბი. ეს არის შეცდომა. სხვას, მე ვაპირებ დაბრუნებას ჭეშმარიტი. ასე რომ არც ეს მუშაობდა და ეს არ გააკეთა. ყალბი ან ნამდვილი. ახლა კი, თუ მე არ მიიღოს ნებისმიერი შეცდომები, ნება მომეცით გადარჩენა და განაახლეთ ეს. და ნება მომეცით უბრალოდ ორმაგი შემოწმება, მე არ, ფაქტობრივად, არანაირი typos, ასე რომ მე არ გართულებების თავს. ვნახოთ, თუ ეს სამუშაოები. ასე რომ, ახლა მე ვაპირებ აკრიფოთ კატა. ეს ჯერ კიდევ მუშაობს, ან ნახევარი სამუშაოები, მინიმუმ. ახლა ნება მომეცით განაახლეთ იგი, და ახლა me ცდილობენ წარდგენის გარეშე აკრეფით anything-- ჯანდაბას, იგი დაიწყო. ერთი წუთით. მიადევნე თვალი გახსნა კონსოლი, [INAUDIBLE] შესვლა, განაახლეთ გვერდი. ნება მომეცით ცდილობენ ამ ერთხელ. ოჰ, რა იგი. დამავიწყდა. მე მივიღე typo. მახსოვს, რა არის. .ჩაირთო. მე მინდოდა მეთქვა, თუ ღირებულება ელემენტს, რომლის ID არის q ტოლია, მაშინ დაწეროთ შესახებ. ახლა ნება მომეცით, ჩემი სუნთქვა ერთხელ. აქ ჩვენ მივდივართ. იქ ჩვენ წავიდეთ. გთხოვთ, აკრიფოთ შეკითხვაზე. ასე რომ, ეს არ არის გაქირავების me მეშვეობით. მე შეიძლება სახის playful ერთად, და ნაცვლად შემოწმების არ ღირებულება, შემიძლია ვთქვა, რაღაც, აღარ ეძებს კატა, და ახლა ჩვენ შეგვიძლია უბრალოდ უფრო playfully მიადევნე მომხმარებლის ძიება ძაღლი, თუ იგი სურს, ან, თუ მე აქ და ძიება კატა, ახლა მე არ შემიძლია. ასე რომ, რა takeaway აქ? ასე რომ, ერთი, ჩვენ შემოტანილი ჩვენს სამყაროში HTML და CSS, პროგრამირების ფუნქცია. მე შემიძლია რეალურად ახლა მიიღოს გადაწყვეტილება კოდი. მანამდე, მე შეიძლება არ არის აღსანიშნავად ტექსტური ფაილი ან გრაფიკული ფაილი და ვუთხრა მას, რა უნდა ვეძებოთ მოსწონს და სადაც არიან. ახლა შემიძლია რეალურად ითხოვენ კითხვები ვებ გვერდზე და გადაწყვეტილებები მასზე და უბიძგონ შესახებ თუ მე უნდა დაწეროთ მას. მოდით ცდილობენ რაღაც ჩვენი საკუთარი ამ. წავიდეთ წინ, ნება მომეცით გახსნა მომდევნო slide აქ, და მხოლოდ აღვნიშნო ერთი რამ. ისევე, როგორც CSS, ჩვენ შეგვიძლია გამოვსახოთ ფაქტორი ჩვენი JavaScript კოდი ცალკე ფაილი, შეგიძლიათ გააკეთოთ იგივე, ერთად JavaScript, CSS. და თქვენ იყენებთ, რომ წყარო ატრიბუტი სცენარი აქვს. მაგრამ ჩვენ არ გაართულებს რამ ახლა. სამაგიეროდ, თუ შეიძლება წასვლა არ ამ გვერდზე, but-- ნება მომეცით გადავიდეს ამ გარშემო order-- წასვლა, თუ შეიძლება, ამ გვერდზე აქ. ამ URL აქ. ეს დღევანდელ სლაიდები. თქვენ გაქვთ განაახლეთ, რადგან მე დასძინა რამდენიმე რამ. მაგრამ იქ, სადაც რამდენიმე სტუმრებთან დაელოდება. და ეს მოგვცემს საშუალებას, ოდნავ უფრო fun კონტექსტში, უნდა ჩაერიოს რამდენიმე JavaScript. და როდესაც თქვენ იქ, მე რას ელის. მიიღეთ მწვანე. უცნობია ლურჯი. ადგენს მწვანე, ადგენს წითელი. Oops. ბოდიში. ეს არის იმდენად, რამდენადაც ჩვენი დოკუმენტაცია ამ გამოწვევას. და ეს იმუშავებს ასეთია. ასე რომ, ის, რაც თქვენ ამ გვერდი არის მთელი bunch სურათი თავსატეხები ბადი სტენფორდის უნივერსიტეტში. ასე რომ, რას ხედავს აქ თითქმის სახის ერთ-ერთი იმ ჯადოსნური თვალი თავსატეხები მაგრამ თუ უბრალოდ სახლიდან მას, არაფერი აპირებს პოპ out at თქვენ. პირიქით, რაღაც იმალება ამ იმიჯს. და ეს ჩაფლული შემდეგ გზა. სურათები, როგორც მოგეხსენებათ, შეიძლება იყოს შედგება მხოლოდ სამი ფერის. ზოგიერთი წითელი, ზოგი ლურჯი, და ზოგიერთი მწვანე. და ჩვენ შეგვიძლია ყველა ფერები rainbow შერევით იმ სამი ფერის რატომღაც. ასე რომ, ეს გამოიყურება ძირითადად მწვანე და ლურჯი, მაგრამ როგორც ნიკ ამბობს აქ, ამ რკინის თავსატეხი გამოსახულება არის თავსატეხი. იგი შეიცავს იმიჯი რაღაც ცნობილი, თუმცა, იმიჯი უკვე დამახინჯებული. ცნობილი ობიექტი არის წითელი ღირებულებებს. თუმცა, წითელი და ღირებულებებს აქვს ყველა იქნა დაყოფილი 10. ასე რომ, ისინი ძალიან მცირე ფაქტორი 10. სხვა სიტყვებით, ნიკ აიღო ორიგინალური იმიჯი, და ის desaturated ყველა წითელი მისგან, ამცირებს ოდენობით წითელი მელნის, თუ გნებავთ, მას. ლურჯი და მწვანე ღირებულებები ყველა მხოლოდ უაზრო, შემთხვევითი ღირებულებები, aka ხმაური შექმნილია გადაფაროს რეალური სურათი. ასე რომ, რა Nick გააკეთა, ის იკლო წითელი და მაშინ ის უბრალოდ ესროლა შემთხვევითი რაოდენობით ლურჯი და მწვანე იმიჯი სახის ბუნდოვანი რა არის რეალურად ჯერ კიდევ არსებობს. თქვენ უნდა გაუქმება ამ სხვაობა გამოავლინოს იმიჯი. პირველი, მითითებული ყველა ლურჯი და მწვანე ღირებულებები ნულის მიიღონ მათ შორის, და შევხედოთ შედეგი. მაშინ გამრავლების თითოეული წითელი ღირებულება 10, შეკვეცის მდე დაახლოებით მისი საბოლოო ღირებულება. რა არის ცნობილი ობიექტი? ასე რომ, ყველა თქვენ გაქვთ ეს მართკუთხედი თქვენი ბრაუზერის ახლავე. და შეამჩნია, რომ არსებობს გარკვეული შემქმნელის კოდი, ასე ვთქვათ. ეს არის JavaScript კოდი, რომელიც Nick დაწერილი თქვენთვის. და შეამჩნია, რომ არსებობს ხაზი, შუა იწყება ხაზი ხაზი, რომ რა ზოგადად მოუწოდა კომენტარი. ეს იმას ნიშნავს, რომ ეს არის ფრაზა პროგრამისტი რომ არ აქვს ფუნქციური დატვირთვა. ეს არის მხოლოდ ვიზუალური CUE ადამიანის. ასე, რომ თქვენ შეიძლება წავიდეთ წინ და წაშლა უბრალოდ, ხაზი, და სუპერ ფრთხილად, რომ არ წაშლა ან შეცვლა არაფერი. და ნება მომეცით უბრალოდ ფეხით თქვენ მეშვეობით რა ეს კოდი აკეთებს და მე რომ თქვენ უნდა გაერკვნენ საიდუმლო იმიჯი. ეს პირველი ხაზი აქ რომ მე უბრალოდ ხაზგასმით გაძლევთ შემდეგ. მარცხენა მხარეს, თქვენ გაქვთ რასაც ცვლადი, რომელიც ნიკას თვითნებურად, მაგრამ გონივრულად მოუწოდა im სურათი. მარჯვენა მხარეს რომ თანაბარი ნიშანი, ის ამბობდა მომეცი ახალი გაცემა, unquote "უბრალო გამოსახულება". უბრალო გამოსახულება, ამ კონტექსტში რასაც კლასი, ასევე, ეს ერთგვარი მოსწონს კლასის ტექნიკურად პროტოტიპი მაგრამ რეალურად, ეს მაძლევს ახალი ობიექტი, შინაარსი, რომლებიც ფაილი, რკინის puzzle.png. სხვა სიტყვებით, ნიკ შეიქმნა ეს ცნება უბრალო სურათი ასე რომ ჩვენ შეგვიძლია, პედაგოგიური მიზნით, თამაში გამოსახულება და შეცვალოს თავისი წითელი, მწვანე და ლურჯი ღირებულებებს. და როგორ ვაკეთებთ ამას? ეს გარკვეულწილად cryptic სინტაქსი აქ სახის როგორც განმეორებითი ბლოკი რომ ზოგიერთი ვნახე Scratch ადრე დღეს, სადაც შეგიძლიათ ვიმეორებ 10 ჯერ. ამ შემთხვევაში, Nick არ აქვს hardcoded ხმების მოსწონს 10. იმის ნაცვლად, ის ამბობს, ინიციალიზაცია ცვლადში x 0, შემოწმება, თუ x ნაკლებია სიგანე იმიჯი. ასე რომ, უფრო სწორი სურათი არის ცვლადი, dot ნიშნავს, წავიდეთ შიგნით ეს და მიიღეთ მისი სიგანე და შემდეგ ღია paren, დახურული paren მხოლოდ პროგრამისტი გზა ამბობდა, ეს ფუნქცია. ეს არის პროცედურა. ეს არის ფუნქციონალური სხვისი დაწერა. გამოიყენეთ იგი და მომეცი უკან პასუხი. და მაშინ x ++ არის ლამაზი გზა განაცხადა, რომ მას შემდეგ, რაც თქვენ გაკეთდეს ამ ერთხელ, ნამატი x 1. სხვა სიტყვებით, ეს არის პროგრამისტი გზა of inducing მარყუჟის, რომ აპირებს iterate მეტი ყველა სვეტები იმიჯი. სურათი არის მხოლოდ ქსელის წერტილები, რიგები და სვეტები წერტილები. ეს არის გზა iterating მთელ იმ სვეტების. და ქვეყნის შიგნით, იმავდროულად, ჩვენ iterating მეტი სიმაღლეები, აქ და აქ და აქ. ასე რომ, ეს უბრალოდ გზა traipsing, როგორც თითქმის სკოლა საბეჭდი მანქანა, უბრალოდ წასვლა მეტი მთელი იმიჯის iteratively. მიუხედავად იმისა, რომ ეს არ არის საკმაოდ მთლიანად ნათელია, უბრალოდ იღებს რწმენა, ახლა, რომ ის სამი ხაზი კოდი ერთად ვართ აპირებს საშუალებას გაძლევთ iteratively გამოიყურება ყოველ pixel, ყველა dot გამოსახულება. რა არის pixel? ასევე, უნდა იყოს ნათელი, თუ დავაკვირდებით ორიგინალური და მასშტაბის in, თუ თქვენ ნამდვილად თქვენს თვალში კომპიუტერი ეკრანზე, რომ მხოლოდ მთელი bunch of წერტილები, რამდენიმე ათასი წერტილები შეფუთული ერთად არსებობს. ასე რომ, რას უნდა გააკეთოს? ყოველ ერთ იმ წერტილების, საბოლოო განმარტება, არის შედეგი, რასაც ზოგადად მოუწოდა RGB, წითელი, მწვანე, ლურჯი, რომელიც კიდევ ერთხელ, შეიძლება კომბინირებული გაძლევთ ნებისმიერი რაოდენობის ფერები. სინამდვილეში, თუ გახსოვთ ბევრი, ბევრი წლის წინ, პროექტორი ეკრანებზე მოსწონს ეს რამ გამოყენებული აქვს არა ერთი ობიექტივი, მაგრამ სამი. ერთ-ერთი მათგანი შამფურზე წითელი შუქი, ერთი მათ შამფურზე მწვანე შუქი, ერთ-ერთი მათგანი შამფურზე ლურჯი სინათლე. და თუ იყო საშუალო სკოლა როგორიც მე ვიყავი, სადაც ისინი არასდროს სათანადოდ იდეებს, თქვენ ყოველთვის თვალს ისტორია ფილმები რომ იყო ოდნავ დამახინჯებული, იმიტომ, რომ სამი ფერის არ იყო აერთიანებს სწორად. მაგრამ აღმოჩნდება, რომ თითოეული ეს ფასეულობები წითელი, მწვანე და ლურჯი შეიძლება ჰქონდეს რაოდენობის მათთან ასოცირებული. მაგალითად, 0 წითელი ნიშნავს, რომ არ red, 0 მწვანე ნიშნავს, რომ არ მწვანე, და 0 ლურჯი იმას ნიშნავს, არ ლურჯი. ასე რომ, თუ თქვენ არ გაქვთ წითელი, არ მწვანე, და არ ლურჯი, რა ფერის გაქვთ? აუდიტორია: [INAUDIBLE] დავით Malan: თქვენ იმედი მაქვს, რომ ეს არის თეთრი. სამწუხაროდ, ეს operates-- ბოდიში? აუდიტორია: [INAUDIBLE] დავით Malan: ასე, რომ თქვენ რეალურად აქვს შავი, ამ შემთხვევაში. ასე რომ, თუ თქვენ გაქვთ არცერთი ეს ფერები აღმოჩნდა, თქვენ გაქვთ შავი. თუმცა, თუ თქვენ გაქვთ, ვთქვათ, ბევრი მათ, როგორც ბევრი წითელი, 255 ის, ბევრი მწვანე, და ბევრი ლურჯი, რომელიც არის თეთრი. ასე რომ ეს არის ორი უკიდურესი. ასე რომ, ამ ლოგიკით, თუ მაქვს ბევრი წითელი და არ მწვანე და არ ლურჯი, რა ფერის არის, რომ? აუდიტორია: [INAUDIBLE] დავით Malan: მარჯვენა, ცხადია. და მაშინ არ წითელი, ბევრი მწვანე, არა ლურჯი, და შემდეგ თუ გაქვთ კარგად, ჩვენ უბრალოდ დასრულდება უბრალოდ იმიტომ, რომ, მაგრამ ეს, რა თქმა უნდა, ახლა, არის ლურჯი. და ახლა თქვენ შეგიძლიათ დააკავშიროთ ამ ფერები. ახლა, როგორც განზე, თუ რომელიმე თქვენგანს აქვს ოდესმე გაკეთდეს გარკვეული ფაქტობრივი ვებ დიზაინი, თქვენ შეიძლება რეალურად იხილეთ სიმბოლოები მოსწონს ეს. FFF-- და რეალურად, ეს ალბათ არ არის, რომ. ეს FFFFFF. ვინმეს ოდესმე მინახავს F და E ს და A through-- გამოდის, ჩვენ ვისაუბრეთ გუშინ ათობითი, და დღეს, სახის შესახებ ათობითი. დღეს ჩვენ ვისაუბრეთ ორობითი. გამოდის, თექვსმეტობითი არის ძალიან ერთიანი ბაზა სისტემის გამოყენება კომპიუტერულ. ორობითი არის ორი, ათობითი 10, hex არის 16. და აღმოჩნდება, როგორ ითვლიან თექვსმეტობითი? ნულოვანი, ერთი, ორი, სამი, ოთხი, ხუთი, ექვსი, შვიდი, რვა, ცხრა, რა იყენებთ შემდეგ ცხრა? რა არის შემდეგი ნომერი? ჩვენ უკვე გამოიყენება ნულოვანი. მე უნდა 16 ამ. ნულოვანი, ერთი, ორი, სამი, ოთხი, ხუთი, ექვსი, შვიდი, რვა, ცხრა, თქვენ უნდა ზოგიერთი თვითნებური კონვენციას. და რა კაცობრიობის გადაწყვიტა გარკვეული დრო წინ, რომ მას შემდეგ, ცხრა მოდის წერილი და შემდეგ B და შემდეგ C. ასე რომ, გზა იმედი თექვსმეტობითი ნულოვანი, ერთი, ორი, სამი, ოთხი, ხუთი, ექვსი, შვიდი, რვა, ცხრა, A, B, C, D, E, F, და რომ დაითვლის თქვენ ყველა გზა, თურმე, 15. ასე რომ, ნულოვანი 15 ნულოვანი მეშვეობით F. ახლა რატომ არის, რომ მნიშვნელოვანი? ისე, როდესაც თქვენ გაქვთ ორი F ს, ეს არის ის, თუ როგორ გამოვხატოთ 255. ასე რომ გრძელი ამბავი მოკლედ, მსოფლიოს Photoshop, რომ გრაფიკული დიზაინი პროგრამული უზრუნველყოფა, მსოფლიოში ვებ განვითარება, სადაც თქვენ უნდა ბევრი ფერები, რა თქმა უნდა, თამაში, ხშირად პროგრამისტები გამოხატავენ იმ თექვსმეტობითი, მხოლოდ იმიტომ, რომ ეს ტენდენცია იყოს ცოტა მარტივია. მიუხედავად იმისა, რომ ერთი შეხედვით ეს ბევრად უფრო რთული. ასე რომ, ნებისმიერ შემთხვევაში, ეს არის მნიშვნელოვანი იმიტომ, რომ ნიკა სტენფორდის მოგვცა ექვსი ცალი ფუნქცია რომ თქვენ, დაწყებული პროგრამისტების, ახლა აქვს უნარი გამოიყენოს. ჩაშენებული ამ ვებ გვერდი ექვსი ფუნქციები, ექვსი პროცედურები, რომ ნიკა დაწერა. სამი მათგანი მიიღებს თქვენ ნომერი, წითელი, მწვანე, ან ლურჯი ღირებულება. სამი მათგანი იქნება, რომ მნიშვნელობა. და ეს ხაზს უსვამს უბრალოდ placeholders, ასე რომ თქვენ უნდა იცოდეს, თუ რა არის ის. ასე რომ, ამ სამი ფუნქციები, პირველი ასეთი რამ ეს იქნება x კოორდინირება, და მეორე, ეს ყველაფერი აპირებს იყოს y-კოორდინაციას. სხვა სიტყვებით, რომელიც dot, რომელიც pixel არ გსურთ მიიღოთ მწვანე, მიიღეთ ლურჯი, კიდევ წითელი. და მერე აქ, ეს იქნება x, ეს იქნება y ღირებულება, და ეს იქნება ნომერი. მოდით გავაკეთოთ პირველი ხაზი ამ ერთად და მერე მე რომ თქვენ ცდილობენ დავასკვნათ დანარჩენი. ასე რომ, თითო ინსტრუქციები ამ გვერდზე, ჩვენ გვჭირდება გაზრდის წითელი ფაქტორი 10, და ჩვენ უნდა ამოიღონ მწვანე და ამოიღონ ლურჯი. დავიწყოთ ამ უკანასკნელის სცენარი. ასე რომ, თუ მინდა, და მე ვაპირებ აბზაცის გამოყენებით ზოგიერთი ფართები, თუ მინდა, რომ მითითებული წითელი, მწვანე, ან ლურჯი ღირებულება, მე ვაპირებ ამის შემდეგ. გამოსახულება, im.setBlue და შემდეგ საფუძველზე, ჩემს მითითებებს აქ, რა სამი რამ უნდა ჩაწერეთ შიგნით ფრჩხილებში ახლა? მე უნდა x ღირებულება, y ღირებულება, და რა რაოდენობის უნდა დააყენოს აქ, თუ მინდა, რომ თავი დაეღწია ლურჯი, ეფუძნება ეს ამბავი აქ? მხოლოდ ნულოვანი. თუ მე აღარ მინდა ლურჯი, მე მხოლოდ აპირებს შეცვალოს იგი ნულის ტოლია. ახლა მოდით უბრალოდ recap, თუ რას აკეთებს. მაქვს ამ დაბრუნება მეორე და მესამე ხაზი, მე მტკიცებით ორი მარყუჟების, წყობილი მარყუჟების, თუ იქნება, რომ ვაპირებთ აქვს ეფექტი პროგრესირებს მარცხენა მარჯვნივ, ზედა ქვედა მეტი ყველა x ღირებულებები და ყველა y ღირებულებებს. იმის გამო, რომ ერთხელ, სურათი მხოლოდ ქსელის რიგები და სვეტები. ასე რომ, ეს აპირებს მოისპოს ყველა ლურჯი. ნება მომეცით, რომ მომდევნო ხაზი თქვენ. როგორ შემიძლია მოშორება ყველა მწვანე? აუდიტორია: [INAUDIBLE] დავით Malan: Nice. აუდიტორია: [INAUDIBLE] დავით Malan: Nice. და მე ვაპირებ დააშორებს, და მხოლოდ მიიღოს ზრუნვა, რომ თქვენ არ კეთდება ნებისმიერი typos. და თუ თქვენ კომფორტულად ერთად, რას ვაკეთებ, წავიდეთ წინ და დააჭირეთ ღილაკს აწარმოებს / შენახვა და ვხედავ, რაც თქვენ. ისევ და ისევ, ჩვენ გააკეთა მხოლოდ სამი ცვლილებები. ჩვენ იშლება, რომ პირველი კომენტარი და შეცვალა იგი ამ ორი ხაზი კოდი. და ეს OK, თუ თქვენ უნდა მოხვდა პერსპექტივაში / Save ღილაკს რამდენიმე ჯერ დაფიქსირება რაღაც. ნება მიბოძეთ, ასევე მიუახლოვდით ჩემი კოდი, ასე რომ თქვენ შეიძლება transcribe. კარგი. ასე ვხედავ Andrew აქვს რა როგორც ჩანს, შეცდომა. ის უბრალოდ მიიღო დიდი შავი ოთხკუთხედი მისი ეკრანზე. ამჯამად ვინმეს აქვს დიდი შავი ოთხკუთხედი? აუდიტორია: დიახ. დავით Malan: დიდი შავი ოთხკუთხედი? OK, მოდით ვიფიქროთ რას ნიშნავს ეს. ჩვენ ვთქვით, რომ ნულოვანი, ნულოვანი, ნულოვანი, ასე რომ, არ მწვანე, არა წითელი, არ ლურჯი, აპირებს თუ არა შავი. და აღმოჩნდება, რომ საუკეთესო ჩვენი ლაპტოპები უბრალოდ არ არის საკმარისი ერთგულება. თქვენ არ შეგიძლიათ საკმაოდ გითხრათ არ რეალურად რაღაც არსებობს. და თუ სახის იქნებ მჭლე თქვენს ეკრანზე წინ და უკან, იქნებ ხედავთ რაღაც არსებობს? შესაძლოა, სახის, სახის? ეს არ არის შესანიშნავად შავი. აუდიტორია: [INAUDIBLE] დავით Malan: სპოილერი! არსებობს გარკვეული წითელი არსებობს, მაგრამ მახსოვს სპეციფიკაციები პრობლემა, ნიკ ტონს მას. მან desaturated ეს გარკვეულწილად, მაგრამ არა ყველა გზა ნულოვანი. ასე რომ, თუ ჩვენ გვინდა, რომ magnify თანხა წითელი, ნება მომეცით შესთავაზოს ამ შეასრულა. ნება მომეცით zoom ჩემს ეკრანზე. და ნება მომეცით წავიდეთ წინ და აცხადებენ, თანხა უდრის im.getRed (x, y). ეს ხაზი კოდი, რაც მე რაღაც მოუწოდა ცვლადი. მაქვს თვითნებურად, მაგრამ, სავარაუდოდ, გონივრულად მოუწოდა ჩემი ცვლადი რა, როგორც ჩანს? თანხა. უბრალოდ თანხა. მე ვერ მოვისმინეთ უწოდა არაფერი მინდა, მაგრამ მე გამოყენებისას სხვა ფუნქცია რომ მე აღწერილი ადრე მიიღოთ თანხა წითელი at x მძიმით y. რატომ გავაკეთე, რომ? რა გინდა აქ? თქვენ უნდა add-- აუდიტორია: [INAUDIBLE] დავით Malan: დიახ, შესაძლოა გავამრავლოთ იგი 10. და თუ არ ვიცი, მე ვარ ვაპირებ წავიდეთ წინ და ამის გაკეთება. მე ვაპირებ წავიდეთ წინ და ვთქვათ, მე მინდა ოდენობით წითელი მე მინდა, რომ რაც არ უნდა არის წითელი, 10-ჯერ და ვარსკვლავი, ვარსკვლავი თქვენს კლავიატურის the-- არ იყენებენ x. გამოიყენეთ ვარსკვლავი. აი, როგორ უნდა გავამრავლოთ რამ ყველაზე პროგრამირების ენები. ასე რომ, შესაბამისად Kareem ინტუიცია, ინახება ამ ცვლადში თანხა, არის, თუ რამდენად წითელი მე მინდა ადგილმდებარეობა xy. როგორ, ახლა, ნუ მე რომ Pixel აქვს, რომ ნომერი? თქვენ უკვე გაკეთდა ადრე. თქვენ მითითებული მწვანე და ლურჯი არ ღირებულება, ნულის ტოლია. აუდიტორია: [INAUDIBLE] დავით Malan: დიახ, კარგად თქვენ არ გვინდა, რომ ეს 10. თქვენ უკვე გააკეთა მათემატიკის აქ. ასე რომ, ჩვენ ვიღებთ ღირებულების წითელი, რომელიც დაბალი ნომერი, სავარაუდოდ. ვამრავლებთ მიერ 10. რა გინდათ უნდა გააკეთოს ცვლადი თანხის ახლა? აუდიტორია: [INAUDIBLE] დავით Malan: Nice. ასე რომ, im.set-- რა? აუდიტორია: setRed. დავით Malan: setRed, საიდან xy. ჰო. და მხოლოდ თანხა. სხვა სიტყვებით, ცვლადი დროებითი placeholder რომ შეგიძლიათ არაფერი გსურთ. ჩვენ არ უნდა იყოს გამოსული რაოდენობის ეს, იმ მომენტში. ჩვენ მრავლდება ის 10 რათა ის უფრო დიდი. და ახლა მე შემცვლელი, რომ ცვლადი იმის გამო, რომ მესამე არგუმენტი, ან შეყვანის მითითებული წითელი. და ისე, რომ ერთხელ თქვენ დასრულდება, რომ, და მიიღოს ნოტა ნახევრად colons და ფრჩხილებში. წავიდეთ წინ და დააჭირეთ აწარმოებს / გადარჩენა ერთხელ, და თქვენ უნდა დაინახოს, magically, რა იყო რეალურად არსებობს. [? Arwa,?] რა არის იქ? ეიფელის კოშკი სრულფასოვანი წითელი, საკმაოდ მუქი. ეს უნდა იყოს უფრო აშკარა ახლა, არა? კარგი. და ანდრეა, აღარ შავი ყუთი? აუდიტორია: [INAUDIBLE] დავით Malan ყველა უფლება. ასე რომ, მე გავაგრძელებთ ამ ეკრანზე. თუ გსურთ ითამაშოს ამ მოგვიანებით, მე ხელახლა ეს თქვენთვის. მაგრამ ეს კოდი აქ ზუსტად რომ. რატომ არ უნდა გავაკეთოთ ერთი სხვა. ნება მომეცით გადახვევა ქვემოთ ოდნავ. ასე რომ, ამ შემთხვევაში, პროექტორი ნამდვილად არ სამართლიანობა. მაგრამ თქვენს ეკრანებზე, ალბათ, აქვს ძალიან წითელი და ძალიან შავი ყუთი. ეს, ძალიან, არის თავსატეხი, რომ აჩვენებს რაღაც ცნობილი. თუმცა, იმიჯი უკვე დამახინჯებული. ნამდვილი სურათი, ამ დროს, ლურჯი და მწვანე ღირებულებებს. თუმცა, ისინი ყველა იყოფა 20 ასე ღირებულებებს ძალიან მცირე. წითელი ღირებულებები მხოლოდ შემთხვევითი ნომრები, ხმაური. გაუქმება ამ სხვაობა გამოავლინოს ნამდვილი იმიჯი. ასე რომ, ნიკ შემდეგ ეუბნება, თუ რა უნდა გააკეთოს. უცნობია წითელი ფასეულობები ნულოვანი და მაშინ არ გააფუჭებს, რა არის. შემდეგ გავამრავლოთ ლურჯი და მწვანე ღირებულებებს 20. ასე რომ, ეს არის თითქმის იმავე პროგრამით, როგორც ადრე, მაგრამ თქვენ უკუქცევის პროცესი. და მე დააყენა ჩემი კოდი სანამ ეკრანზე შემთხვევაში გსურთ მიმართოს უკან კი ან ითამაშოს უფრო, რომ ერთი. მიადევნე თვალი მიუახლოვდით რომ. მაგრამ გადაჭრით სპილენძის გამოსახულება თავსატეხი, ნომერი ორი. აუდიტორია: [INAUDIBLE] დავით Malan: OK, ასე რომ ამ ერთი მე ვარ არ აპირებენ, როგორც ბევრი მინიშნებები. ასე რომ, მე would-- OH, მოდით ვხედავ, თქვენ გაქვთ typo აქ. ასე მახსოვს, ეს აქ რეალურად სჭირდება წასასვლელად. ასე რომ, რა მინდა შესთავაზოს, თუ გვინდა, რომ ფოკუსირება ამ ერთი, არ არის პასუხი. თუ გსურთ ტრანსკრიფციას, რომ, უნდა მიიღოს პირველი სამუშაო. და შემდეგ შეგიძლიათ გამოიყენოთ, რომ როგორც შთაგონების მეორე. Nice. კარგი. და ცნობისმოყვარე, ეს არის მარტივი მაგალითი მეცნიერების ან ხელოვნების მოუწოდა steganography, ხელოვნების ინფორმაციის დამალვაში images. როგორც წესი, images შეიძლება იყოს watermarked უხეშად ლოგო ქვედა კუთხეში, მაგრამ, ცხადია, თქვენ შეიძლება იყოს ბევრად უფრო დახვეწილი და რეალურად დამალვა სხვა სურათები სურათები რატომღაც ამ ტექნიკით. მიიღოს სხვა 30 წამში, და მაშინ ჩვენ მინიმუმ აცხადებს ის, რაც თქვენ უნდა დაინახოს. და მე დავტოვებთ მესამე ერთი, როგორც სახლში სწავლება, თუ გსურთ მეტი გამოწვევას ამ კვირის ბოლოს. და მე ვფიქრობ, Andrew შეიძლება მიღებული იგი. რა არის მეორე სურათი, ანდრია? აუდიტორია: თავისუფლების ქანდაკება. დავით Malan: Statue of Liberty იქნება პასუხი ამ დროს. ასე რომ, კიდევ ერთხელ, მხოლოდ რამდენიმე მარტივი მაგალითები, რომლის მიზანი არის გადმოგცეთ გრძნობა, თუ როგორ ჩვენ თარგმნილი ფერწერული Scratch ბლოკები უფრო შემაშფოთებელი და მეტი რთული კოდი, მაგრამ ყველა იმ იდეებისა დღესაც ზუსტად იგივე, თუმცა დანერგვა ახლა ცნება ცვლადი, რომ შეუძლია შეინახოს რაღაც დროებით. მოდით გავაკეთოთ კიდევ ერთი პრაქტიკული, მხოლოდ იმიტომ, რომ ახლა დაკავშირება წერტილების რაღაც ცოტა უფრო რეალურ სამყაროში. როდესაც თქვენ მზად, თუ შეიძლება გადადით ამ URL ეკრანზე. სწორედ ასევე თქვენი ასლი სლაიდები, developers.google.com/maps~~V. მოდით რეალურად რაღაც რეალური, ასე ვთქვათ, ვებ გამოყენებით Google Maps API, ან განაცხადის პროგრამირების ინტერფეისი, შემდეგ გზა. Google, როგორც ბევრი კომპანიები, უზრუნველყოფს ბევრი თავისუფალი ფუნქციონირება რომ თქვენ შეგიძლიათ გამოიყენოთ აშენება თქვენი საკუთარი საინტერესო პროგრამები. სინამდვილეში, თუ თქვენ ოდესმე გამოყენებული Uber მიიღოს კაბინა ან მანქანაში, ალბათ იცით, რომ Uber აქვს რუკა და ეს გვიჩვენებს, მანქანა მას. რომ არის, როგორც საუკეთესო, რაც შემიძლია გითხრათ, Google Maps API. ისინი რეალურად გამოყენებით Google- ის რუკები, მაგრამ Uber არ არის რუკების კომპანია, არც იქნებოდა, რომ იყოს განსაკუთრებით საინტერესო პრობლემა გადაწყვიტოს თავზე მანქანით მომსახურება პრობლემა. ასე რომ, ისინი დგანან, ერთხელ, მხრებზე სხვები, Google ამ შემთხვევაში. ასე რომ, ისინი გამოიყენოთ Google- ის რუკები, მაგრამ საკუთარი მანქანის მომსახურების და სხვა ასეთი თვისებები. ამიტომ, ჩვენ ვაპირებთ, რომ ისარგებლოს ეს უნდა გავაკეთოთ შემდეგ. და თუ მე წასული ძალიან სწრაფად, უბრალოდ მირეკავენ მეტი მომენტი. Happy რომ Recap ზოგიერთი გამოსახულება პერსონალი. თქვენ უნდა ნახოთ თავს ერთი გვერდი მოსწონს ეს. ასე რომ Google- ის ლამაზი და ისინი შორის საუკეთესო უზრუნველყოფს არა მხოლოდ APIs, მაგრამ უფასო APIs, რომ თქვენ შეგიძლიათ ითამაშოთ ერთად ან კომერციულად. ისინი დაიწყოს დატენვის თქვენ, თუ თქვენი გამოყენება მაღალია, მაგრამ მივედი ადრე წინასწარ და ხელმოწერილი ჩვენს up უფასო ანგარიში რომელიც, იმედია, 10 კომპიუტერი არ დისკვალიფიკაცია ჩვენთვის მოულოდნელად. ასე რომ იმედია ეს აქციის იმუშავებს. და შენიშნავს, რომ მათ აქვთ APIs for Android, iOS, ვებ, და ვებ მომსახურება, რასაც არ არის. მოდით ფოკუსირება ინტერნეტში. ასე დააჭირეთ ვარდისფერი ყუთი, ვებ, და ეს მიგვიყვანს თქვენ, იმედია, გვერდი აქ. და მათ მოხვდით მთელი bunch of APIs. და ეს შეიძლება იყოს პატარა აბსოლუტური თავდაპირველად, მაგრამ მე იზიარებს ჩვენს მეშვეობით, რაც ჩვენ გვინდა. ზედა მარცხენა არის Google Maps JavaScript API, JavaScript API. ასე რომ, წავიდეთ წინ და დააჭირეთ, რომ ერთი. და რომელიც მიგვიყვანს თქვენ ახლა შემდეგი გვერდი demos და ნიმუში კოდი. ნება მომეცით დააშორებს აქ. და ნება მომეცით მიიღოს us, რომელთა მიზანია გადახვევა ქვემოთ იქ, სადაც ის ამბობს, სწრაფი დაწყება ნაბიჯები. თქვენს ეკრანზე უნდა გამოიყურებოდეს აფეთქდა. და იქ ორი ნაბიჯი, მიიღოს გასაღები და დაიწყოს ვითარდება. მე უკვე გააკეთა ნაბიჯი ერთი ჩვენთვის, მიღების ე.წ. გასაღები. და ეს არის საერთო აზრი. API გასაღები ზოგადად მხოლოდ დიდი შემთხვევითი ნომერი ან სიმებიანი რომ თქვენ უნდა ჩასვით თქვენი კოდი, ისე, რომ Google იცის ვინ ხარ შენ, როდესაც თქვენ გამოყენებით მათი მომსახურების, მათი API. იმას არ ნიშნავს, რომ ჩვენ ბრალდებულნი არაფერი. და ახლა, დააწკაპუნეთ ნაცვლად, ერთი, დააჭირეთ დაიწყოს ვითარდება. თუ შეიძლება მხოლოდ ტალღის me მეტი თუ არ ვარ დარწმუნებული, სადაც ჩვენ ვართ. ასე რომ, ჩვენ მხოლოდ გადასაფხეკი ზედაპირზე, მაგრამ აქ რა მეგონა იქნებოდა მყარი რეალურად აქვს ყველა ჩვენგანი, გამოყენებით Cloud9 ერთი ფანჯრის და ამ tutorial სხვა ფანჯარაში, მოდით რეალურად მიიღეთ ჩვენი საკუთარი პროგრამა და გაშვებული რომ embeds საბაჟო Google რუკაზე ჩვენს ვებგვერდზე, და შემდეგ დასძენს ერთი ან ორი თვისებები. მაგრამ ჩვენ მხოლოდ გადასაფხეკი ზედაპირზე რა შეგვიძლია გავაკეთოთ. ასე რომ, მხოლოდ სწრაფი საღი აზრის ქვითარი. ყველას ამ გვერდზე, Google Maps JavaScript API? უნდა ითქვას, მიღება დაიწყო. ჩვენ არ ვაპირებთ, უნდა გაიაროს მთელი რამ ნებისმიერი გზით. OK, სხვა tab, თუ არ აქვს ღია, არ წასვლას Cloud9 და მისაღებად უბრალოდ ახალი tab, საბოლოოდ. ასე რომ კიდევ ერთხელ, c9.io გუშინ, c9.io და უბრალოდ შექმნათ ახალი ფაილი. და წავიდეთ წინ და მოწოდება ის რაც გსურთ. დავურეკე ჩემი map.html. მას არაფერი მთავრდება .html. და თქვენ უნდა იყოს უხეშად სადაც მე ვარ ამ პროცესში მხოლოდ მოციმციმე სწრაფი ცარიელ tab ეწოდება რაღაც map.html. ან ფაილი, ახალი ფაილი ამ დროს. და ახლა, დასრულდა Google Maps JavaScript API, ჩვენ გაფართოებული მოსმენით მთელი ეს ტექსტი. მაგრამ შეამჩნია, რომ hello მსოფლიოში არის მართლაც ყველგან, თქვენ დანახვა. გაუმარჯოს მსოფლიოში ამ დიდი ფერადი მაგალითად მთელი bunch of HTML. წავიდეთ წინ და დააკოპირეთ და ჩასვით მხოლოდ, რომ HTML, ასე რომ, doc ტიპის ზედა ყველა გზა მჭიდრო HTML tag, წასვლა წინ და დააკოპირეთ ყველა that-- ერთხელ, რომ ქვეშ hello მსოფლიოში მაგალითად და ჩასვით რომ თქვენი Cloud9 tab, ასე რომ, ახლა თქვენს ეკრანზე უნდა გამოიყურებოდეს დაახლოებით, როგორიც ჩემია. და შეგიძლიათ შეინახოთ, მაგრამ არ ჩატვირთოს ის უბრალოდ არ არის. მოდით პირველი შევხედოთ კოდი და ვნახოთ, თუ ჩვენ ვერ დასკვნის ან ვისწავლოთ ეხლა, რა არის Google ჰქონდა us ბრმა ასლი და პასტა. ისინი უბრალოდ გვინდა, რომ დავეხმაროთ, ფაქტიურად, us დაიწყო, მაგრამ იქ არ არის, რომ ბევრი სირთულის ფაქტობრივად არ არსებობს. ნებისმიერი კითხვები უბრალოდ არ არის? ჩვენ უსაფრთხო გაყალბებას წინ? კარგი. ასე სწრაფად, მოდით გავაკეთოთ რამდენიმე სწრაფი საღი აზრის ამოწმებს. Line ერთ-ერთი, რაც მე ხედავთ, და იმედია, თქვენ ვნახოთ, რას ნიშნავს, doctype HTML? Kareem, გავიხსენოთ? აუდიტორია: [INAUDIBLE] დავით Malan: დიახ. აქ ჩნდება HTML 5. იმავდროულად, გამოდიან ორი წლის ეკრანზე აქ იმას ნიშნავს, hey ბრაუზერი, აქ მოდის ფაქტობრივი HTML. Line სამი hey ბრაუზერი, აქ მოდის უფროსი. Line ოთხი, რა თქმა უნდა, hey ბრაუზერი, აქ ჩნდება ტიტული. რას ხაზი ხუთ გავაკეთოთ? სინამდვილეში, ეს არ ნამდვილად არაფერი ჩვენთვის. ამ შემთხვევაში, უბრალოდ, უცვლის გვერდზე იყოს. Line ექვსი, ჩვენ არ ისაუბრა, მაგრამ ეს განსაზღვრავს ხასიათი კოდირება. არსებობს სხვადასხვა გზა, რათა encode ფაილი, განსაკუთრებით უცხო ენებზე. UTF-8 უბრალოდ იხრება იყოს. ახლა ჩვენ ვხედავთ ხაზი შვიდი გზით 16, ზოგიერთი CSS. და მიუხედავად იმისა, რომ ჩვენ არ მინახავს ყველა ამ საკითხზე ადრე, ჩვენ შეგვიძლია სახის infer. ისე გამოდიან რვა საშუალებით, hey ბრაუზერი, ვრცელდება ყველა შემდეგ, რომელიც ორი tags, როგორც ჩანს? HTML და ტექსტი. ასე რომ, მძიმე არის ახალი რამ არსებობს. და ეს მხოლოდ გზა სასურველი მრავალჯერადი tags ერთდროულად. მაშინ ჩვენ მივიღეთ curly აფრთხილებს. ასე რომ, როგორც ჩანს, ეს ეუბნება ბრაუზერის, სიმაღლე გვერდის 100%. ასე რომ, თუ იქ ძალიან ცოტა შინაარსი, რათა მთელი გვერდი, რათა რამ შევსება გვერდზე. საქართველოს რუკა საბოლოოდ შევსება გვერდზე. ზღვარი, რას ნიშნავს ეს? ეს, როგორც წესი, როგორც თვითნებური თეთრი სივრცის გარშემო კიდეები რომ ზოგიერთი ბრაუზერის დიზაინერი მხოლოდ გადაწყვიტა უნდა იყოს იქ, იმიტომ, რომ ეს ერთგვარი რაც რამ გამოიყურება სუფთა. მაგრამ ჩვენ არ გვინდა, რომ. ჩვენ გვინდა, რომ რუკა აპირებს ყველა გზა კიდეები. Padding, მსგავსი სულისკვეთება მინდვრები. მინდვრები ნიშნავს გარეთ, padding საშუალება შიგნით, მაგრამ ეს იგივე სახის გარიგება. ეს ცოტა ბუფერული შორის თქვენ და კიდეები. და შემდეგ line 13 კარგი შანსი სწრაფი მიმოხილვა. რას მკვეთრი ნიშანი რუკა ნიშნავს, ან hashtag რუკა ნიშნავს? რას ნიშნავს ეს ეხება, პრინციპში? აუდიტორია: [INAUDIBLE] დავით Malan: ზუსტად. ეს უძრავი ქონება, ამ ცენტრის ქონება ვრცელდება მხოლოდ ერთი რამ, HTML tag რომ აქვს პირადობის ციტირებით unquote "რუკა". და ახლა მოდით სწრაფი წინ, გადახვევა ქვემოთ ბოლოში ფაილი, რომელიც არ არის ძალიან შორს, და გაფრთხილების on line 19, თუ პასტა ზუსტად ისევე, როგორც მე, ხაზი 19 აქვს მხოლოდ div, რომელიც არის სამმართველოს გვერდზე, რომელიც გუშინ მე ე.წ. მართკუთხა რეგიონში. ეს მივიღე არაფერი. ეს ღია tag, ჭდის. მაგრამ ეს არ აქვს უნიკალური ID. ასე რომ, რაც, როგორც ჩანს ხდება აქ არის Google ამზადებს ჩვენს ვებ გვერდზე აქვს სრული 100% სიმაღლე, და არ padding, არსებობს ზღვარი, რადგან ის, რაც ჩვენ ვაპირებთ, რომ ქვეყნის შიგნით ამ div, რომლის უნიკალური ID არის რუკა, არის ფაქტობრივი ჩანერგილი რუკა. და ჩვენ გვინდა, რომ შეავსოთ გვერდზე და არა მხოლოდ იყოს რაღაც პატარა მართკუთხედი შუა. ამიტომ ხაზი 14 ანალოგიურად ხაზს უსვამს, რომ რუკა თავად უნდა ჰქონდეს სიმაღლე 100%. ასე რომ, ახლა შეამჩნია, ხაზებს შორის 20 და 28, ეს არის JavaScript კოდი. და ეს არის, მიუხედავად იმისა, რომ სინტაქსურად ცოტა უცნაურია, იქ არ არის, რომ ბევრი ხდება აქ. შეესაბამება 21, ეს არის გამოცხადების რაღაც მოუწოდა ცვლადი. იმის ნაცვლად, რომ აცხადებენ, რომ ის შეადგენს, როგორც ეს ადრე იყო, ჩვენ უფრო ზუსტად ამბობდა var, რომელიც მხოლოდ იმას ნიშნავს ცვლადი. ჩვენ შეეძლო, რომ Nick კოდი, მაგრამ არ ვარ, ამიტომ არ გადაიტვირთოთ აკეთებს ან. ეს ცვლადში რუკა, და შემდეგ იქ ფუნქცია, რომელიც არის სავარაუდოდ მოუწოდა initMap. ასე რომ, ეს არის, როგორც ჩვენი საკუთარი თავსატეხი ცალი ნულიდან. ჩვენ შევქმენით ნაჭერი ფუნქცია მოუწოდა initMap, და თქვენ შეგიძლიათ სახის infer რა ხდება აქ. მარცხენა მხარეს, ჩვენ მივიღეთ ცვლადი, ასე რომ, ჩვენ ვაპირებთ, რომ შემდეგ რაც შიგნით რომ ცვლადი, მარჯვნიდან მარცხნივ. მარჯვენა მხარე აცხადებს, hey ბრაუზერი, მომეცი ახალი Google რუკა. და google.maps.map მხოლოდ ხმაურიანი გზა მიუთითებს, რომ ეს ფუნქცია ეკუთვნის Google Maps. მას შემდეგ, რაც ფრჩხილებში, ჩვენ ვნახეთ ეს ადრე, hey ბრაუზერი, მიიღოს me ელემენტების გვერდზე, ტეგი გვერდი რომლის უნიკალური ID is-- აუდიტორია: [INAUDIBLE] დავით Malan: --map. და, რა ხდება, ასევე, ამ ხაზის ერთად, line 23, არსებითად განაცხადა, hey ბრაუზერი, წავიდეთ მისაღებად me რომ ცარიელი div გვერდზე რომლის უნიკალური ID არის რუკა, იმიტომ, რომ მე მინდა ჩასასმელად შევიდა it-- მიეცეს მას, თუ will-- მთელი bunch of content რომ ხდება, მოდის ინტერნეტში, შემდგომში. და Google- ის ყველაფერს აკეთებს, რომ ჩვენთვის. ასე რომ კიდევ ერთხელ, ძალიან, დღის ბოლოს, ჩვენ ამ მაგალითს აბსტრაქცია. წარმოდგენა არ მაქვს, რა რუკა ან როგორ უნდა განახორციელოს რუკა API. ჩვენ არ უნდა. ჩვენ უბრალოდ უნდა ვუთხრა რუკა სად უნდა დააყენოს თავად და დატოვოს იმ ძირითადი განხორციელებას დეტალები Google. ახლა არ არის, როგორც ჩანს, ორი ცალი მონაცემები რომ ეს მაგალითი არის უზრუნველყოფს Google- ის API. როგორც ჩანს, ცენტრში რუკა, და მასშტაბის, ასე ვთქვათ. და ვინმეს აღიარებს ამ კოორდინატები, გრძედი და განედი? ალბათ არა, მაგრამ ჩვენ შეგვიძლია დავუბრუნდეთ სამეურვეო, ფაქტიურად ვხედავ. მაგრამ ჩვენ ვხედავთ, რომ რაღაც მომენტში. Zoom დონეზე არის ღირებულება შორის, მე არ ვიცი, ერთი 13 ან რამე მაგდაგვარს. ეს უბრალოდ უნდა გააკეთოს, თუ რამდენად შორს თქვენ მიახლოება ან გარეთ, და ეს არის ის. და ახლა ბოლომდე გვერდი, შეამჩნია ხაზი 29-- ეს არის პატარა მახინჯი, რადგან ეს wraps-- ეს ხაზი კოდი არის ის, რაც იწერს იმ ბრაუზერი Google- ის ფაქტობრივი API. ყველა კოდი, რომელიც Google- ის ინჟინრები არ წერია, რომ განახორციელოს მთელი ეს თვისება ჩაშენებული რუკები. ახლა მოდით არაფერი შეიცვლება. თუ თქვენ შემდეგ გასწვრივ, წავიდეთ წინ და უბრალოდ შენახვა, რომ ფაილი, თუ მართლაც აქვს რაც მაქვს. წასვლა მისი URL. დააწკაპუნეთ Run ღილაკს ზევით და რომ გეტყვით, თქვენ URL თქვენს სერვერზე ერთხელ. და ეს გამოიწვევს თქვენ ახალი tab. თუ თქვენ დააჭირეთ ღია map.html და შანსი თქვენ აპირებს მიიღოს მზადყოფნაში, შეცდომა, არა? შეცდომა, შეცდომა? ასე რომ, სამწუხაროდ, შეცდომა გაგზავნა არ არის, რომ საგანამანთლებლო თუ თქვენ რეალურად გახსნა კონსოლი, რომელიც სპეციალური ჩანართი ჩვენ ინახება გახსნის გუშინ ცოტა უფრო ადრე დღეს. მაგრამ მე stumbled მასშტაბით ეს ადრე, ასე რომ მე უკვე figured, თუ რა გამოსავალი არის. დღევანდელ სლაიდები, ან უფრო სწორად, Cloud9, ცნობა რომ ჩვენ არ რაღაც შეგნებულად. გაითვალისწინეთ, რომ ეს სკრიპტი ტეგი ხაზი 29, თუ წაიკითხავთ მეშვეობით, ეს იგივეა, maps.googleapis.com/ რაღაც, რაღაც, რაღაც, მაშინ შეამჩნია ვინმე, ერთ დეველოპერები, წერდა მთელი კაპიტალი წერილები, თქვენი API გასაღები. ჩვენ უნდა ჩასვით ის არსებობს. და ეს იყო ნაბიჯი გავაკეთე ჩვენს წინაშე, და კიდევ ერთხელ, შესაძლოა, მათ შავ ჩვენთვის, თუ მოულოდნელად, 12 ან მეტი us დაიწყოს გამოყენებით იგივე გასაღები, მაგრამ ვნახოთ, რა მოხდება. ასე რომ, თუ წასვლას დღევანდელი სლაიდები, ერთი slide მოგვიანებით, იქ ეს ძალიან ხმაურიანი ეძებს სიმებიანი ტექსტი. წავიდეთ წინ და უბრალოდ კოპირება და ჩასვით სადაც იგი აცხადებს, თქვენი API გასაღები. ეს ერთი მე მოაწერა ხელი. და ნამდვილად არ ცდილობენ ბეჭდვის ის ხელით, რადგან იგი გრძნობს ექნებათ ერთად typos, პოტენციურად. ასე რომ, უბრალოდ დააკოპირეთ და ჩასვით რომ. და ის აპირებს, რომ ხაზი აღარ, მაგრამ ახლა, უბრალოდ უნდა იყოს მკაფიო, იგი უნდა გამოიყურებოდეს ცოტა მეტი მსგავსი, სადაც გასაღები შეადგენს არა კაპიტალიზაცია ყვირილი at თქვენ. დაზოგეთ თქვენი გვერდი, დაბრუნდეს რომ სხვა tab, განახლება, და ვიმედოვნებთ, რომ რუკა საიდან აუდიტორია: ავსტრალიაში. დავით Malan: ავსტრალიაში. ასე რომ, როგორც ჩანს, ეს არის ის, GPS კოორდინატები ავსტრალიაში. და ნება მომეცით მოიარე მხოლოდ ერთი წუთით და დაეხმაროს ყველას, ვინც არ არის საკმაოდ არსებობს, მაგრამ ნება მომეცით შესთავაზოს, Google- ის მეშვეობით, იპოვოს GPS- ის კოორდინატები საკუთარ მშობლიურ ან საკუთარი ქვეყნის. და, ალბათ, Google შეიძლება იქცეს ამ up, ან ვიკიპედიაში შემიძლია გითხრათ. მაგრამ აირჩიოს ორი განსხვავებული ღირებულებები for გრძედი და განედი, დაბრუნდეს და ჩასვით მათ, და შემდეგ განაახლეთ გვერდი შემდეგ გადარჩენა და თუ შეგიძლიათ რუკაზე საკუთარი მშობლიურ. და როდესაც თქვენ გაკეთდეს , რომ შემდგომი გამოწვევა და მე მივცემ ცოტა ნაკლები მიმართულებით, განზრახ, ასე რომ თქვენ შეგნებულად აქვს ბრძოლას რამდენიმე ე წუთზე დოკუმენტაცია, შეცვლა რუკა უნდა იყოს არა ამ cartoonish იყოს, მაგრამ სატელიტური რუკა. ასე, რომ თქვენ რეალურად ვხედავ სატელიტური გამოსახულება ნაცვლად საკმაოდ ფერები. და მინიშნება მე მივცემ თქვენ შეცვალოთ რუკა ტიპს. დაბრუნდეს, რომ მიღების დაიწყო გვერდზე შთაგონების. როგორც თქვენ შესაძლოა მოპოვებული, თუ თქვენ ვეძებთ, არსებობს ამდენი მეტი რამ შეგიძლიათ გააკეთოთ. ზოგიერთ თქვენგანს უკვე შეცვალა რუკის ტიპის. მაგრამ თქვენ შეგიძლიათ გავაკეთოთ მაგალითად, ნება მომეცით წასვლა რაღაც გავაკეთეთ, რა თქმა უნდა მე teach-- maps.cs50.net. ჩვენი ერთ-ერთი სტუდენტებს გააკეთა. ჩვენ იყოს ჩვენს რუკას მეტი ჰარვარდის ეზო და თარგების ყველა ეს შენობა სახელები, და ჩვენ გვქონდა მას დაამატოთ ეს. ასე რომ, თუ გსურთ მოძებნოთ, მაგალითად, Matthews Hall, ჩვენ გვაქვს პატარა ჩამოსაშლელი მენიუ. და მე ვფიქრობ, რომ ის გამოყენებით ჩატვირთვის, რომ ბიბლიოთეკა ჩვენ განვიხილეთ ადრე ამ. და თუ თქვენ დააჭირეთ Matthews Hall, მაშინვე გადასვლა რუკაზე გარკვეული ადგილმდებარეობა, და ეს შოუები თქვენ სურათს ამ პატარა pop-up. მაგრამ მაშინაც კი, ამ პატარა pop-up, ჩვენ არ განახორციელოს. თუ მე გადახვევა ქვემოთ ჩვენს მიღების დაიწყო გვერდი და ვეძებთ ინფორმაციის ფანჯრები, დაინახავთ, რომ ზოგიერთი ფუნქციონალური თქვენ თავს შეგიძლიათ, თუმცა უფრო მეტი სირთულის, არის რაღაც მოუწოდა ინფორმაციის ფანჯარა. და თუ მე დააჭირეთ მაგალითი აქ, და ეს არის ის, რაც fun, შეგიძლიათ გააკეთოთ მსგავსი რამ, დაწკაპვით მარკერის და მაშინ voila, ინფორმაცია pops up. ასე რომ, ჩვენ არ საკმაოდ გააცნო საკმარისი თვისებები JavaScript ხატავს სურათს, თუ რამდენად თქვენ შეიძლება მავთულის ყველა ამ პერსონალის ერთად, მაგრამ ჩვენ სახის scratched ზედაპირზე. ფაქტობრივად, რაც მე გავაკეთე, როდესაც მე დაწკაპავთ რომ მარკერის, იქმნება ღონისძიება, ე.წ. დაჭერით ღონისძიება. და ჩვენ, ფაქტობრივად დაინახა ღონისძიება დღეს, ე.წ. წარუდგინოს ღონისძიება, როდესაც ჩვენ თავიდან აცილების მომხმარებელს ეძებს კატა. ასე რომ, ჩვენ სახის აიყვანეს და choosed შორის ყველა ამ სხვადასხვა თვისებები, გადმოგცეთ აზრი, იმედია, რა შეგიძლიათ რეალურად ამის ცოტა მეტი კომფორტს პროგრამირებაში, და სრულიად უფასოდ რესურსები. ნებისმიერი კითხვები? არ არის? ეს არის თქვენი საბოლოო შანსი, დღეს მაინც, პარასკევი, არაფერი off თქვენი გულმკერდის ასე რომ თქვენ ფეხით out of აქ შეგრძნება დარწმუნებული და კომფორტული. დიახ. აუდიტორია: რატომ არ თქვენ დაამატოთ კიდევ ერთი რამ? დავით Malan: Oh ჩემი სიკეთე. მე უნდა დაისვენოს ამ კვირის ბოლოს, მე ვფიქრობ. სხვა კითხვები? აუდიტორია: [INAUDIBLE] დავით Malan: თქვენ can-- in Internet Explorer, დანარჩენი სამშვიდობო, თქვენ უნდა იყოს შეუძლია დააყენოს VB script, ვირტუალური ძირითადი სკრიპტი, მაგრამ, რომ ნამდვილად არასდროს არ დაიჭირეს. ასე რომ, მოკლე პასუხი არის მხოლოდ JavaScript. სხვა კითხვები? ყველა უფლება, ასევე, ნება მომეცით ამის გაკეთება. მიადევნე თვალი დაიბრუნოს ჩვენი კოლეგების გარეთ. მათ აქვთ გარკვეული შეფასების ფორმები, რომ მათ სურთ ყველას უნდა დახარჯოს რამდენიმე წუთში შევსების. მათ უნდათ, რომ შეაგროვოს, რომ ფორმა და ნებისმიერი გაუქმებასთან, რომ თქვენ ალბათ გარეთ. ისინი ყველაფერს ასევე აქვს სერტიფიკატები. მე გამოცნობა არსებობს ჯერ კიდევ რამდენიმე საჭმლის გარეთ. მიადევნე თვალი გაივლის ამ out, და თუ გაქვთ რაიმე შეკითხვები, მანამდე, მე ფეხით გარშემო უფრო ინდივიდუალურად და ჩვენ შეგვიძლია მისაღებად თქვენ დაიწყო. დიახ, რა თქმა უნდა. აუდიტორია: [INAUDIBLE] დავით Malan: ეს არის როგორც წესი, ნამდვილი ამ დღეებში. რა თქმა უნდა, ვებ პროგრამული უზრუნველყოფა, თქვენ პრო სხვები თქვენ ან ესთეტიურად გამოყენებით რამ როგორიცაა ჩატვირთვის, ასე რომ თქვენ არ უნდა განახორციელოს დაბალი დონე დეტალები მენიუები და ღილაკების და ყველა რომ. თქვენ პრო ვინმე როგორიცაა Google, ასე რომ თქვენ არ უნდა ავაშენოთ Uber ბიზნესი და რუკების ბიზნესი, და ნებისმიერი რაოდენობის მსგავსი განაცხადების ასევე. ფაქტობრივად, შესვლა პოპულარულია, ძალიან. თუ თქვენ უკვე გამოიყენება Spotify ან ნებისმიერი რაოდენობის საიტებზე, თქვენ შეხვიდეთ, რომ ზოგიერთი საიტებზე გამოყენებით Facebook. რა არის ლამაზი, არ არის APIs for შესვლა დღეს, ასე რომ თქვენ არ აქვს აქვს საკუთარი მომხმარებლის მაგიდა და ყველა საკუთარი მონაცემთა ბაზა აუცილებლად იმავე ზომით. თქვენ შეგიძლიათ ნება Facebook გავაკეთოთ ყველა რომ სირთულის თქვენთვის. ასე რომ, ეს საინტერესო დროს, პატიოსნად, პროგრამირებაში, რადგან არსებობს ამდენი მესამე მომსახურების, რომ თქვენ შეძლოთ თავზე. ისევ და ისევ, ფასი იხდით ან ფინანსური ან downtime. თუ Google მიდის ქვემოთ, ასე აკეთებს Uber, სავარაუდოდ, მაგრამ, ალბათ, ეს არის ის, გონივრული ვაჭრობის. ისევ და ისევ, ეს იყო ერთ-ერთი თემა, იმედია, რომ ბოლო რამდენიმე დღის განმავლობაში, არის ამ ვაჭრობის ღ. და იშვიათად არის იქ უნდა იყოს სწორი პასუხი. ეს ნამდვილად არ არის უკეთესი ორი ან მეტი პასუხი. გაივლის ამ გარშემო. და ეს Cloud9 ანგარიშების გააგრძელებს მუშაობა, თეორიულად, სამუდამოდ. თქვენ შეიძლება თუ დაველოდოთ რამდენიმე დღე და ერთი კვირის ან მეტი შეხვიდეთ უკან მათ, შესაძლოა, როგორც ერთი ან ხუთ წუთში გახსნა უკან, მაგრამ ეს მხოლოდ იმიტომ, რომ ისინი ძილის გადარჩენა რესურსები.