JASON HIRSCHHORN: მოგესალმებით, ყველას, კვირაში 10. ეს არის საინტერესო week რადგან ხვალ არის Quiz 1, რომელიც ჩვენ მიიღებს to მეორე. დღეს სექციაში, ჩვენ ვაპირებთ წასვლა მეტი რამდენიმე რესურსების ვიქტორინა, და მერე პასუხს ნებისმიერი და ყველა კითხვები თქვენ ბიჭებს აქვთ. და ჩვენ საბოლოოდ დასრულდება გარკვეული პრაქტიკის პრობლემები. ჩვენ შეგიძლიათ გაატაროთ მთელი განყოფილებაში შეკითხვებს. ჩვენ შეგიძლიათ გაატაროთ მთელი განყოფილებაში აპირებს მეტი პრაქტიკა პრობლემები. ჩვენ უბრალოდ გაფართოებას შევსება სივრცე და დრო გვაქვს. ასე რომ მე ზუსტად ამ სიაში ყოველ კვირას, მაგრამ ეს განსაკუთრებით მნიშვნელოვანია ამ კვირაში. შესასწავლად, თუ თქვენ არა გაქვთ დაიწყო, რა ბიჭი. მაგრამ იმედია თქვენ დაიწყო. და თქვენ ვაპირებთ საშუალებით მასალები და რესურსი აქ ჩამოთვლილი. მე მაღალ რეკომენდაციას რიგი ამ. კერძოდ, ლექცია შენიშვნები ძალიან მნიშვნელოვანი და სასარგებლოა. Study.cs50.net უზრუნველყოფს დიდი მაჩვენებელი, ბევრი თემებზე, ჩვენ დაფარული. მას ასევე აქვს რამდენიმე დიდი პრაქტიკაში პრობლემები. და მაშინ, Google არის დიდი, ძალიან. მე არ ვიცი, რა ნეტავ გამოიყენოს იგი. მაგრამ გამოიყენოს Google, ისევე. მივაწვდინოთ ჩემთვის თუ თქვენ გაქვთ რაიმე შეკითხვები, კომენტარები, ან შეშფოთება. შეხედეთ მეტი მიმოხილვის სხდომა სლაიდიც ღამით. ან, თუ თქვენ გაქვთ გარკვეული დროის განმავლობაში, უყუროთ ვიდეო. მათ ბევრი სასარგებლო მასალა და ინფორმაცია. და ცდილობენ და მოიცავს თუ არა ყველა, ბევრი თემებზე, ჩვენ დაფარული და რომ თქვენ შესაძლოა ნახე ვიქტორინა. ვსაუბრობ ინტელექტუალური, რომელიც იქნება ხვალ. ის 75 წუთის განმავლობაში. ბევრი იღებენ მას 1 საათზე, და ზოგიერთი ხარ აღების at 5:30. იმ დროს თქვენ მიღების და მდებარეობა თქვენ აღების მას, დარწმუნდით თქვენ შეამოწმეთ დოკუმენტი წლის CS50.net მთავარ გვერდზე. გახსოვდეთ, რომ თქვენ შეგიძლიათ მიიღოთ ერთი 8 1/2 11 ფურცელი მიიღოს თქვენთან ერთად. ხშირად ხალხი არ გამოიყენოს ეს ფურცელი ყველა დროს ვიქტორინა. მაგრამ რეალურად, ეს არის წარმოუდგენლად სასარგებლო სასწავლო ინსტრუმენტი. ასე აყენებს ერთად რომ ფურცელი რა გავატარე, ალბათ სამი ან ოთხი საათის აკეთებს როცა სწავლობს CS50 და რომ იოლად ყველაზე გამოსადეგი გზა მე ვერ შესწავლა ვიქტორინა. ისე კი, თუ თქვენ გაქვთ რაიმე სხვა ადამიანების სასწავლო გიდები შევხედოთ და გამოიყენოთ როგორც მითითება, უაღრესად რეკომენდაცია მიღების საკუთარი სასწავლო სახელმძღვანელო, აყენებს რომ პერსონალის ერთად. რომ ნამდვილად დაგეხმარებათ ვისწავლოთ ყველა მასალა. ბოლო, მაგრამ არანაკლებ ამ სექციაში, მას შემდეგ, რაც ინტელექტუალური ხვალ არსებობს ერთი უფრო ლექცია - მომავალი ორშაბათიდან. კიდევ ერთი მონაკვეთი, არ მომავალ სამშაბათი ადრე მადლიერების, მაგრამ სამშაბათი ამის შემდეგ. ჩვენ უნდა შეხვედრის ერთად საბოლოო მშვიდობით პარტიის და ასევე აკეთებს ზოგიერთი cool რამ მისაღებად თქვენ ბიჭები აღფრთოვანებული შესახებ შემდგომი კვლევების კომპიუტერულ მეცნიერებაში. კიდევ ერთი პროექტი, კიდევ ერთი სამართლიანი, კიდევ ერთი Hackathon. ჩვენ nearing ბოლომდე CS50, რომელიც არის საინტერესო - არამედ, თუ თქვენ, ისევე როგორც ჩემთვის, ცოტა სევდიანი. სანამ გადაადგილება, ვინმეს აქვს რაიმე შეკითხვა, თუ რა ჩვენ დაფარული აქამდე? OK, ისე მოდით წავიდეთ მეტი რამდენიმე შეკითხვებს რომ თქვენ გაქვთ ვიქტორინა და თემები ჩვენ შეიძლება დაფაროს. ასე რომ, ეს არის სია, რომ მე ერთად. ეს არ ნიშნავს ამომწურავი, მაგრამ იმედია jog თქვენი მეხსიერება, თუ კითხვები ნებისმიერ ამ თემა, ან თუ თქვენ გაქვთ შეკითხვები შესახებ პრაქტიკის პრობლემები ტესტები წლის წარსული. მე მქონდა რამდენიმე კითხვა, რომელიც იყო ელექტრონული ფოსტით ჩემთვის, მაგრამ მინდა, გამართავს off იმ მეორე. ვინმეს გაქვთ რაიმე შეკითხვები, პრობლემები მათ არ ესმით, პასუხი მათ არ ესმით მისაღებად us დაიწყო? Avi. აუდიტორია: შეგიძლიათ უბრალოდ მეტი DOM და აიაქსი მართლაც სწრაფი? Like, რაც ჩვენ უნდა ვიცოდეთ, ან უნდა მესმის მათ შესახებ? JASON HIRSCHHORN: მე ვაპირებ პასუხის გაცემა ზოგადად, ამ კითხვაზე, რა შემიძლია უნდა იცოდეთ ამ თემაზე x? იმის გამო, რომ ისეთი შეგრძნება მაქვს, ბევრ თქვენგანს ვაპირებთ, ვთხოვოთ მითხრა, რომ, თუ curious შესახებ. ასე რომ, იმის გათვალისწინებით, რომ თემა იყო დაფარული ლექცია, ან სექცია, ან study.cs50.net, პრობლემა შექმნას, თქვენ უნდა იცნობს მას. ასე რომ თქვენ არ უნდა იცოდეთ ყველა ტიპის საქართველოს აქვს, რომ შესაძლებელია HTML ან ყველა ტიპის ატრიბუტი ან ქონება თქვენ შეგიძლიათ მისცეს რაღაც CSS. მაგრამ თუ დაინახა ეს ლექცია მაგალითად, თუ დაინახა ეს პრობლემა კომპლექტი, თქვენ უნდა ალბათ იყოს ნაცნობი ეს, განსაკუთრებით რამ ვნახე ლექცია. ასე რომ, ჩვენ განვიხილეთ დოკუმენტი ობიექტის მოდელი ცოტა განყოფილებიანი, უფრო ისე ლექცია. თქვენ უნდა იყოს ნაცნობი რომ ბევრი მას. და თქვენ უნდა იყოს იცნობს Ajax იგივე ზომით. ჩვენ არასოდეს დაინახა წარმოუდგენლად მოწინავე ან რთული მაგალითები Ajax, ასე რომ, თქვენ არ იქნება სთხოვა გავაკეთოთ რაღაც წარმოუდგენლად რთული. მაგრამ თქვენ შეიძლება სთხოვა, როგორ შემიძლია რათა Ajax ზარის გამოყენებით jQuery? რაც ვნახე ნომერი ჯერ ადრე, როგორც განიხილავს სხდომაზე და ლექცია და ეს მხოლოდ ორი ish ხაზი კოდი. ასე რომ, არის რაღაც თქვენ უნდა იცნობს. თუმცა ისევ და ისევ, ყველა ეს თემა, თუ ვნახე ის ადრე, ეს არის სამართლიანი თამაში. და ჩვენ შეიძლება გთხოვოთ, - ცხადია, ჩვენ ვაპირებთ გთხოვოთ, რამ არ მინახავს ადრე. კოდირების რაღაც თქვენ არა გაქვთ მინახავს ადრე. რაც არ უნდა ვთქვა, თქვენ არა გაქვთ ჩანს ინსტრუმენტები გადაწყვიტოს ამ პრობლემის წინაშე. თქვენ არ ჩანს, ვინც ინსტრუმენტები. მაგალითად, Quiz 1, თუ თქვენ უნდა კოდექსში strlen. ჩვენ არ კოდირებული strlen ადრე. მაგრამ თქვენ იცით, თუ როგორ გამოიყენოთ მარყუჟის, თქვენ იცით, თუ როგორ გამოიყენოთ იმ შემთხვევაში, თუ პირობები. თქვენ იცით, როგორ დავწეროთ ცვლადები in C. ეს იქნება იგივე აქ. თქვენ არ იქნება სთხოვა გავაკეთოთ არაფერი თქვენ არ მინახავს ადრე, მაგრამ თქვენ შეიძლება სთხოვა, როგორც, დააყენა რაღაც ერთად რომანის გზა, ან მოსაგვარებლად სხვადასხვა სახის პრობლემა. სამწუხაროდ, ეს არ იყო კონკრეტული თქვენს კითხვა, მაგრამ მიჭირს პასუხის შესახებ თითოეული თემა, რაც თქვენ გააკეთოს ან არ უნდა იცოდეს. არამედ, უკაცრავად, ბოლო რამ, რომ. გავატარეთ მნიშვნელოვნად მეტი დრო on ლინკი სიები, ვიდრე გვაქვს Ajax. თქვენ არ გამოიყენოს Ajax in პრობლემა კომპლექტი. ერთი ცენტრალური თვისებები, რომ პრობლემა კომპლექტი რომ იყო ლინკი სიებში. და ჩვენ გაატარა ბევრი დრო ლექცია და განყოფილების გამოყენება. ასე რომ, შანსები ლინკი სია ამუშავება მეტი ხშირად ინტელექტუალური, ვიდრე Ajax ნება. ან კითხვებს მქონე ვუყოთ ლინკი სია იქნება ღირს უფრო მეტი რაოდენობა. ასე რომ თქვენ შეგიძლიათ რა თქმა უნდა, აქცენტი და ვიწრო in რამ, რომ უფრო სავარაუდოა, რომ ამუშავება, რადგან ჩვენ გვაქვს გატარებული მეტი დრო მათ. OK ნებისმიერი სხვა კითხვები? ჰო. აუდიტორია: შეგვიძლია წავიდეთ გამოყენება ანონიმური ფუნქციები JavaScript? მე ცოტა დაბნეული შესახებ. JASON HIRSCHHORN: ასე რომ JavaScript - ვცდილობ ვფიქრობ, როგორ მე შეეძლო დაეწერა ეს - მოდით რეალურად გაიხსნას ეს კოდი. ასე რომ, ეს არის კოდი, რომელიც ჩვენ გავაკეთეთ გასულ კვირას. და ვნახე ეს ადრე თუ აქ განყოფილებაში გასულ კვირას. ან თქვენ ჩანს რაღაც მსგავსი ადრე. მაგრამ შეგიძლიათ შევხედოთ ამ პირველი ხაზი. ეს არის, თუ როგორ დაიწყოს - ყველას უნახავს ეს ადრე. თუ გსურთ დააყენა რამდენიმე JavaScript კოდი, თქვენ ამას შიგნით ამ, ვთქვათ, თქვენ იყენებთ JQuery. ეს ამბობს, არ არაფერი სანამ დოკუმენტის დატვირთული. და შემდეგ, Curt, ხედავთ აქ ვაკეთებთ რაღაც მსგავსი - ფუნქციის ღია paren, დახურული paren. ასე რომ, ჩვენ არ ვაძლევთ ამ ფუნქციონირებს სახელი. ჩვენ არ ვაპირებთ, რომ განსაზღვროს ამ ფუნქციის უნდა აწარმოებს და შემდეგ მას bunch of ჯერ. ჩვენ უბრალოდ განაცხადა, რომ ეს დოკუმენტი უკვე იღებს ფუნქცია. რამდენიმე რამ უნდა გააკეთოს. და ჩვენ არ გსურთ გაატაროთ დრო ვაძლევთ მას სახელი ან გადარჩენა მას perpetuity. ჩვენ უბრალოდ გვინდა აწარმოებს ზოგი რამ. ასე რომ ანონიმური ფუნქცია sort საქართველოს ამ მიზანსაც ემსახურება. როდესაც თქვენ არ აპირებთ გამოიყენოთ რაღაც უსასრულოდ, ასე რომ თქვენ არ გჭირდებათ მისცეს მას სახელი - უბრალოდ მინდა გამოიყენოს იგი ერთხელ - თქვენ უბრალოდ ამბობენ ფუნქცია, მაგალითად, ამ შემთხვევაში, და თქვენ მხოლოდ განსაზღვრავს, რომ რაღაც თქვენ შეიძლება მისცეს სახელი. მსგავსად, ჩვენ შეიძლება გაიყვანოს ამ ფუნქციის out და მისცეს მას სახელი და შემდეგ მოვუწოდებთ, რომ ფუნქცია აქ. მაგრამ ჩვენ არ უნდა იმიტომ, რომ ჩვენ არ მინდა დაგვრჩა დრო ვაძლევთ მას სახელი ან გაყვანაა რაღაც ჩვენს სახელწოდება სივრცეში. და დაინახავთ, რომ ბევრი. მაგალითად, ჩვენ ვხედავთ, რომ ბევრი ამ კოდი, მაგრამ თქვენ მინახავს ეს ადრე, როდესაც თქვენ დააჭირეთ რაღაც - აწარმოებს ამ ტიპის კოდი. ჩვენ შეგვიძლია განვსაზღვროთ კოდი, რომ ჩვენ გვინდა როცა ჩვენ დააწკაპუნეთ, ამ შემთხვევაში, ამ ID, როგორც ცალკე ფუნქცია და შემდეგ აწარმოებს, რომ ფუნქცია. მაგრამ ამ შემთხვევაში, ჩვენ უბრალოდ skipping ეს ნაბიჯი და მოძრავი მას აქ და უბრალოდ განსაზღვრის ყველაფერი რომ ჩვენ გვინდა, რომ მოხდეს და არ ვაძლევთ მას სახელი. რომ ჯერ კიდევ შეიძლება არ აქვს მიუგო თქვენს კითხვაზე. აუდიტორია: არა, ეს ასეა. ვგულისხმობ, მე ვფიქრობ, მე უბრალოდ ნამდვილად არ კიდევ რატომ იქნებოდა ფუნქციონირებს, თუმცა. იმიტომ, რომ ეს ნამდვილად არ მიმდინარეობს მოუწოდა. ეს ნამდვილად არ აქვს სახელი. JASON HIRSCHHORN: ეს ფუნქცია გაგებით, რომ ეს რიგი ნაბიჯები, თქვენნაირი იქნებოდა მა ფუნქცია. და შემდეგ, ამიტომ ჩვენ მოვუწოდებთ ეს ანონიმური ფუნქცია. ჩვენ არ ვაპირებთ, რათა ეს სახელი. ჩვენ არ ვაპირებთ დაგვრჩა ცდილობს დაარქვით, მაგრამ შეგვეძლო. Anonymous ფუნქციები, თქვენ ყოველთვის შეგიძლიათ მისცეს სახელი. ასე მაგალითად, ეს კოდი აქ, ჩვენ ვერ დააყენა ეს კოდი შიგნით ფუნქცია და შემდეგ დარეკეთ ეს ფუნქცია აქ. სამაგიეროდ, ჩვენ ვთქვათ, ჩვენ არ ვაპირებთ შეწუხება რომ. ჩვენ უბრალოდ აპირებს დაწერა ეს ყველაფერი აქ. ეს იგივეა, ზოგჯერ, როდესაც თქვენ წერა ოთხი loop in C - თქვენ ბიჭები მინახავს ამ ადრე - იქნებ თქვენ iterating მეშვეობით forloop თარგმნეს i უდრის 0. I ნაკლებია strlen. ან თქვენ აპირებს მეშვეობით array, შეგიძლიათ შეინახოთ მასივი ინდექსი i ზოგიერთ ცვლადი. და თქვენ იყენებთ, რომ ცვლადი. ასე რომ თქვენ არ უნდა გადაწერა მასივი bracket i მეტი და მეტი და მეტი. და რომ ერთგვარი მოსწონს dummy ცვლადი. ეს არ ემსახურება ბევრი სხვა მიზნით, ვიდრე რათა თქვენი კოდი ცოტა სუფთა და ადვილად წასაკითხი. მსგავსი ფუნქცია აქ. მხოლოდ ხდის ცოტა ადვილი, მაგრამ ფუნქციურად არ არსებობს განსხვავება. ამჯამად რომ უპასუხოს შეკითხვას? აუდიტორია: დიახ. JASON HIRSCHHORN: OK .. Mario? აუდიტორია: გუშინ ისინი ხშირად დააყენა ფუნქცია ფრჩხილებში ღონისძიება. ნიშნავს ეს რაღაც? თუ რამ, როგორიცაა რომ ყველაფერს გააკეთებს document.ready ფუნქცია ღონისძიება. JASON HIRSCHHORN: ჩვენ ვნახეთ, და ისევ და ისევ, ეს არის პატარა რამ, ალბათ მე არ მინდა ატარებენ ძალიან ბევრი დრო. იმიტომ, რომ ზოგჯერ მე არ მინდა ხალხი მისაღებად freaked, რომ მათ არ აქვთ შეიტყო ეს ყველაფერი რომ ბევრი რამ. მაგრამ ჩვენ ვისაუბრეთ ცოტა შესახებ ღონისძიება ელფოსტის. ასე რომ რაღაც მოხდება, და შემდეგ ეს ფუნქცია ხორციელდება. და მაშინ ჩვენ ასევე გვინდა ვიცოდეთ ზოგიერთი დეტალი იმაზე, თუ რა მოხდა ამ ღონისძიებაზე. ასე რომ, ვფიქრობ, თავში პრობლემა კომპლექტი 4. ეს, ალბათ, ყველაზე იოლი გზაა გვესმის, რომ შესვენება out. გარკვეული კოდი - როგორც მოვლენა მოხდება, მაგრამ ღონისძიება შეიძლება ნიშნავს ბევრი რამ. თუ შეიძლება ნიშნავს მაუსის აირჩიეთ, რომ შეიძლება ნიშნავს, თქვენ მოხვდა arrow გასაღები, et cetera, et cetera. მაგრამ ყველა გადაარჩინა ამ generic რამ მოუწოდა მოვლენები. და მაშინ ჩვენ შეგვიძლია ვთქვათ, ის არის, ეს ღონისძიება ამ რამ? ან ეს ღონისძიება ამ რამ? ან, რა სახის მოხდა რომ ღონისძიება? ასე რომ, თუ რატომ შექმნა, რომ ცვლადი არ გადარჩენა, რომ დამატებითი ინფორმაცია შესახებ, თუ რა მოხდა, რომ თქვენ აპირებს მინდა გამოყენების ფუნქცია. თუმცა ისევ და ისევ, რომ ალბათ ერთი ნაკლებად მნიშვნელოვანი რამ უნდა იყოს სუპერ იცნობს. OK, რა შეკითხვები აქვს ხალხს ჰქონდა, ან დაბრკოლება ისინი შეექმნა ხოლო განხილვის? ჩვენ უკან რომ სიაში. რაც შეეხება დროს პრაქტიკა ტესტები, თუ ადამიანი გადაიყვანეს იმ უკვე? რა იყო პრობლემა, რომელიც იმყოფებოდა თუ არა ბიჭები up? მე ვიცი, რომ ის ფაქტი, რომ გასული წლის ვიქტორინა იყო ძალიან რთული. აუდიტორია: შეგიძლიათ, თუ რა SQL ინექცია თავდასხმა? JASON HIRSCHHORN: OK, დიდი. ასე რომ, ჩვენ ვისაუბრეთ ამ ცოტა. არსებობს ლექცია უსაფრთხოებას. და ისევ, როგორც ზემოთ აღინიშნა, ეს არის განზე. მაგრამ თქვენ უნდა იმედგაცრუებული on ვიქტორინა როცა წაიკითხავთ მცირე ორი წერტილი კითხვაზე, და თქვენ, როგორიცაა, როდესაც არც მე ოდესმე ვისწავლოთ, რომ? ყველა იმ რამ იმ ლექციებს რომ თქვენ არ ვფიქრობ, რომ თქვენ საჭირო იცით, ან შეგიძლიათ სიპრიალის, რადგან მათ არ უნდა გავაკეთოთ პრობლემა კომპლექტი, ვინც სავარაუდოდ ამუშავება ისევ ვიქტორინა. ასე რომ, cool, fun რამ, რომ თქვენ მხოლოდ ფიქრობდა დავითი ეუბნება თქვენ სარგებლობენ, მას გეუბნებოდით თქვენ სარგებლობენ და, რომ თქვენ მხოლოდ სუპერ აღელვებს სწავლის ყველაფერი არსებობს ვისწავლოთ კომპიუტერულ მეცნიერებაში. იმ რამ, ასევე მოდის up on ტესტებში. ასე რომ, თუნდაც ამ მცირე რამ, რაც არ პირდაპირ კავშირშია თქვენი პრობლემა მითითებული, რადგან თქვენ ბიჭები იცნობს დან Quiz 0, სავარაუდოდ ამუშავება. და ეს არის კარგი მაგალითი რაღაც. ასე რომ, SQL ინექცია შეტევა, როდესაც თქვენ მივიღოთ ინფორმაციის შესახებ და გსურთ ჩადეთ იგი მაგიდასთან გამოყენებით SQL ჩასმა განაცხადი, მაგრამ თქვენ არ სანიტარია შეტანილ ვადამდე. ასე რომ, ბუნებრივია ჩვენ ვნახეთ SQL განცხადებებს. მე უბრალოდ გახსნა - მოდით წავიდეთ - გავემგზავრებით მიმოხილვა - მე ვფიქრობ, რომ, რომელიც დაფარული ეს? ვფიქრობ Samala გააკეთა. ასე რომ ჩვენ შეგვიძლია კიდევ - აუდიტორია: სად მოვძებნოთ ეს? JASON HIRSCHHORN: ასე რომ, თუ მიდიხარ CS50.net, ტესტები, და შემდეგ შეგიძლიათ გადახვევა მეტი და მიიღოს სლაიდები საწყისი განხილვის სხდომაზე. მაგრამ ხედავთ, ეს არის კარგი მაგალითი საქართველოს SQL ინექცია თავდასხმა. ჩვენ გარკვეული ინფორმაციის შესახებ და მათ მოგვცეს სიმებიანი და შემდეგ ჩვენ გვინდა ჩადეთ რომ სიმებიანი შევიდა მონაცემთა ბაზაში. ზოგადად, ჩვენ ვაპირებთ, რომ sanitize input, რაც იმას ნიშნავს, რომ არსებობს გმირები, რომლებიც საშიშია. მაგალითად, SQL strings, ეს შეთავაზებები - ერთჯერადი შეთავაზებები და ორმაგი შეთავაზებები - რაღაცას ნიშნავს. ისინი ნიშნავს დასრულდება ეს კონტექსტი აქ. და ასე თუ მომხმარებელი გაძლევთ ერთი ან ორმაგი გაცემა, ისინი შეიძლება ცდილობს მოგზაურობა თქვენი SQL შეკითხვაზე და ჩადეთ ზოგიერთი ცუდი პერსონალის მივანიჭო. და თუ ისინი, ისინი შეიძლება მოიპოვოს კონტროლი თქვენს მონაცემთა ბაზაში ან დაკავდით რამ, რომ თქვენ არ გსურთ მათ უნდა გააკეთოს. ასე რომ, ამიტომ როდესაც ჩვენ ვიღებთ SQL შეკითხვებს, გავუკეთოთ სანიტარია შეტანილ ადრე აყენებს მას მონაცემთა ბაზაში, რომელიც ნიშნავს, რომ ჩვენ გაქცევა იმ სიმბოლოებს. ჩვენ ვსაუბრობთ, რომ მეორე. მაგრამ ხანგრძლივი ამბავი მოკლედ, SQL ინექცია თავდასხმა თუ თქვენ არ გავაკეთოთ, რომ - თუ არ იზრუნოს input მათ თქვენ წინაშე აყენებს თქვენი მონაცემთა ბაზის, მათ შეუძლიათ, როგორც ხედავთ ქვემოთ აქ, აწარმოებს შეკითხვაზე, რომ, ფაქტობრივად - ისინი თავიანთ კოდი ქვემოთ აქ და ამ აირჩიეთ ხაზი ქვემოთ აქ შეარჩევს ყველაფერი მაგიდაზე, მიუხედავად იმისა, რა დაგავიწყდათ ენიჭება. რადგან თქვენ გაქვთ ან 1 უდრის 1. ასე რომ, ძირითადად, გრძელი ამბავი მოკლედ, გზა აღება მონაცემთა ბაზაში. კითხვა, მაშინ, თქვენ ბიჭები, ის არის, სადაც p კომპლექტი 7 გქონდათ sanitize ყველა საშუალებებით თქვენს SQL queries? სად ეს ნაბიჯი მოხდეს? სად ასაცილებლად SQL ინექცია თავდასხმები ხდება p მითითებული 7? ჰო. აუდიტორია: Crypt? JASON HIRSCHHORN: ასე რომ, ეს არ იყო საძვალე. ჩვენ არ მიიღოს თქვენ ამ ამ კონკრეტული პრობლემის შექმნას, მაგრამ ეს მოხდება ამ შეკითხვაზე ფუნქცია. ჩვენ რეალურად წერდა იგი თქვენთვის, და ჩვენ ზრუნავდნენ sanitizing საშუალებებით თქვენთვის. მაგრამ გასულ წლებში, სტუდენტები არ ჰქონდა აკრიფოთ საშუალებებით საკუთარი. In p კომპლექტი 7, ბევრი თქვენგანი - ნება მომეცით გახსენით ერთი სხვა ფაილი. ასე რომ თქვენ შეამჩნევთ აქ ბევრი ადამიანი, პრობლემა მითითებული 7 არ გამოიძახა ამ ფუნქციის strings. ამ ფუნქციას, htmlspecialchars, კიდევ ერთხელ - ეს კონტექსტი შესაძლოა ზოგიერთი რამ რომ HTML ნიშნავს რაღაც. Like a brace, მოედანზე, ან კუთხე bracket ნიშნავს რაღაც HTML. და ასე რომ, თუ თქვენ ბეჭდვა, რომ გარეთ ეკრანზე ან თუ უბრალოდ მიიღოს, რომ და ბეჭდვა, რომ თქვენი HTML, რომ შესაძლოა, რაღაც თქვენ არ ველით. ასე htmlspecialchars მიდის ყველა იმ სიმბოლო, რომ აქვს სპეციალური შეხვედრის და გაქცევის მათ. ასე რომ, იგი იღებს იბეჭდება როგორც ტექსტი გსურთ იხილოთ, ვიდრე screwing თქვენი HTML. ჩვენ მოუწოდა, რომ ფუნქცია header. და ბევრი ადამიანი დაავიწყდა მოვუწოდებთ, რომ ფუნქცია კოდი თქვენ წერა. ასე, მაგალითად, თუ საფონდო სახელი ჰქონდა კუთხე bracket, და თქვენ დაავიწყდა მოვუწოდებთ ამ ფუნქციას, რომელიც კუთხე bracket შეიძლება არ დააგდეს off რა თქვენი HTML ჰგავდა. მაგრამ დარეკვით ეს ფუნქცია გაქცევა რომ ასე რეალურად ბეჭდავს როგორც კუთხე bracket და არ ჩააგდოს off თქვენი HTML კოდი. ამავე მიზეზით ჩვენ ვნახეთ, ზოგჯერ, დახრილ ხაზებს ადრე ორმაგი შეთავაზებები printf ხაზი იმიტომ, რომ ჩვენ არ გვინდა ორმაგი შეთავაზებები ქვემოთ string. ჩვენ გვინდა, რომ ამობეჭდოთ მათ იმისათვის, რომ ეკრანზე. ასე რომ, ეს ყველაფერი იგივე იდეა. ამჯამად რომ უპასუხოს შეკითხვას? აუდიტორია: კეთილი. JASON HIRSCHHORN: თქვენ აქვს შემდგომი? აუდიტორია: ვფიქრობ SQL ინექცია თავდასხმის უნდა გააკეთოს, რომ? მე არ მესმის, როგორ ორ დაკავშირებული. რატომ უნდა გავაკეთოთ specialchars? JASON HIRSCHHORN: OK, ასე რომ SQL ინექცია შეტევა, როდესაც გაიკეთეთ ზოგიერთი მუქარის strings თარგმნეს ვიღაცის პროგრამა, და ისინი მხოლოდ მას და აწარმოებს SQL შეკითხვაზე სიმებიანი თქვენ მისცა მათ. როგორც ხედავთ ქვემოთ აქ, რომ შეიძლება იყოს პრობლემატური. ასე რომ გზა თავიდან ასაცილებლად წინააღმდეგ, რომ თქვენ მიიღოს მათი სიმებიანი რომ აძლევენ თქვენ - ასე რომ, ეს string სწორედ აქ - და სანიტარია იგი. თქვენ გაქცევა ყველა რამ, რომ პოტენციურად პრობლემურია. ასე რომ თქვენ არ ინტერპრეტაცია მათ, როგორც რაღაც ეს ნიშნავს, რომ რაღაც. და მაგალითი, რომ HTML არის ამ ფუნქციას. ასე რომ, ეს იგივე იდეა აქ. და მე უბრალოდ გვიჩვენებს, თუ სხვა მაგალითები, როდესაც თქვენ ჩანს ეს იდეა ადრე. აფარებს მომხმარებლის შეყვანის ადრე ბეჭდვა ის ეკრანზე ან აყენებს მას შიგნით SQL განცხადებაში. აუდიტორია: ასე რომ, ამ შემთხვევაში, მომხმარებელს არის ძვირფასი პროგრამისტი. JASON HIRSCHHORN: დიახ. ყველა ამ უსაფრთხოების თავდასხმები, რომ ყოველთვის ზოგადად შესახებ, ან ვინმეს, ცდილობს სასადილო თქვენ, პროგრამისტი. და ეს არის გზა შეგიძლიათ თავიდან ასაცილებლად მათ წინააღმდეგ. აუდიტორია: ასე რომ მე მაქვს შეკითხვა შესახებ hash ფუნქციები. In Quiz 1 2011, არსებობს ორი კითხვებს ცალმხრივი ჰეშები. და მე უბრალოდ მაინტერესებს რას ნიშნავდა. JASON HIRSCHHORN: OK, რომელიც ვიქტორინა? 2011 წელს? აუდიტორია: Yeah. აუდიტორია: Quiz 1? აუდიტორია: [INAUDIBLE]. ასეთი hashing პაროლი. რომ არ აყენებს რამ - JASON HIRSCHHORN: რა გვერდი იყო ეს? აუდიტორია: ვფიქრობ, ეს იყო 9 ან 10, ან ორივე. JASON HIRSCHHORN: ყველა უფლება, წავიდეთ წინ, Curt. შეგიძლიათ პასუხის გაცემა, ხოლო ჩვენ გამოიყურება. აუდიტორია: მე ვფიქრობ, რომ ის საუბარი შესახებ hashing პაროლი. მოსწონს, როცა ვინმე შემოდის დაგავიწყდათ, თქვენ აქციოს იგი დაშიფრულ რამ. სწორედ დაგავიწყდათ hash, რომელიც განსხვავებული ქეშირების ფუნქცია, რომ აყენებს რაღაც hash მაგიდასთან. JASON HIRSCHHORN ვნახოთ. ნება მომეცით დახევის up, რაც მათ მისცეს პასუხი. და მაშინ ჩვენ გავლა იგი. ასე რომ, Curt მისცა დიდი მაგალითია საქართველოს ერთი გზა hash. როდესაც ჩვენ ვხედავთ ამ ადრე, ჩვენ მიიღოს დაგავიწყდათ და იქაური - უნდა გვახსოვდეს, რომ p კომპლექტი 7, ვინმემ აქვს პაროლი, რომელიც მხოლოდ password, მაგრამ შემდეგ იგი იღებს დაშიფრული ზოგიერთი მართლაც დიდი რამ. ერთი გზა hash იმას ნიშნავს, რომ ძალიან ადვილია გადასვლა ერთი გზა სხვა, მაგრამ ეს ძალიან რთული გადასვლა სხვა გზა უკან. და ასე რომ თქვენ იცით, როდესაც შემოწმების ხალხის პაროლები პრობლემა მითითებული 7, თქვენ მიიღოს მათი - ასე, მაგალითად, ამბობენ, რომ მათ სურდათ შეცვალოს მათი დაგავიწყდათ, თქვენ მათ ვთხოვთ მათი ძველი პაროლი. თქვენ აიღო მათი ძველი პაროლი. თქვენ დაშიფრული იგი. და მაშინ შედარებით ორი encryptions ვიდრე unencrypting ორიგინალური ერთი, იმიტომ, რომ ეს ნამდვილად იმისთვის, რომ წავიდეთ რომ გზა. ჰო. აუდიტორია: როგორ სიღრმისეული აკეთებს ჩვენი გაგება Telnet უნდა იყოს? JASON HIRSCHHORN თუ აღინიშნა მოკლედ ლექცია, მხოლოდ მოკლე გაგება. კიდევ ერთხელ, უკან პასუხი to Avi კითხვაზე - რამ ამუშავება, უფრო სავარაუდოა, ის, რომ თქვენ უნდა იყოს სუპერ იცნობს მათ. იმ შემთხვევაში, თუ ისინი მხოლოდ ამუშავება ლექცია, ეს მხოლოდ ერთ ადგილას. მაგრამ თუ ისინი ამუშავება ლექცია, განყოფილებიანი, და პრობლემა მითითებული, მაშინ ალბათ უნდა იყოს სუპერ იცნობს მათ. ასე რომ, მე მქონდა კითხვა ადრე - ეს იყო შემოდგომაზე 2010 - Quiz 1, მოდით დახევის up - ამ საკითხზე stacks და რიგები, რომელიც ჩვენ გავაკეთეთ დახარჯოს სამართლიანი ცოტა დრო ვსაუბრობთ ლექცია, მაშინაც კი, თუმცა, ჩვენ ნამდვილად არ ოდესმე მოხვდა ის განყოფილებაში. ასე რომ, ამ კითხვაზე გაძლევს სერია ბრძანებები და ეკითხება, თუ რა იღებს დაბეჭდილი ამ შემთხვევაში. ასე რომ, ეს სრულიად გონივრული შეკითხვა რომელიც შეიძლება სთხოვა თქვენ ბიჭები, და მაშინ ბიჭები უნდა შეძლებს უპასუხოს მას. რატომ არ გადავხედავთ 30 წამი, შემდეგ კი თუ ვინმეს სურს შესთავაზოს პასუხი ჩემთვის, და მაშინ ჩვენ გავლა იგი. ყველა უფლება, რომელსაც აქვს პასუხი ეჭვქვეშ 27? ჰო. აუდიტორია: ეს 1, 2, 3, 3? JASON HIRSCHHORN: ეს უფლება. 27 1, 2, 3, 3. მოდით შევხედოთ, თუ როგორ მივიღეთ, რომ. პირველი, ჩვენ ვამბობთ, თუ არის მდგომ, რა ხდება დაბეჭდილი? ასე რომ, q არის პირველი, პირველი გარეთ. ჩვენ ვნახეთ, რომ ადრე. ჩვენ ვნახეთ სურათს ადამიანი ელოდება Apple შესანახად ყიდვა ზოგიერთი პროდუქტი. პირველი ადამიანები არიან პირველი ადამიანი გარეთ. პირველი რამ მდგომ პირველი რამ out. ასე რომ, თუ ჩვენ დააყენებს რაღაც მდგომ, თქვენ დააყენებს 1, მაშინ ჩვენ pop 1. Pop მხოლოდ იმას ნიშნავს, აიღოს. ამ შემთხვევაში, უბრალოდ რაღაც გარეთ. ჩვენ აიღოს პირველი რამ, რომ 1. ასე რომ, ჩვენ დააყენა რამ ჩვენ ბეჭდვა ქვემოთ აქ. ეს აღარ არის ჩვენი რიგიდან. მაშინ ჩვენ იმოძრავეთ 2 და 3 და ჩვენ პოპ off პირველი რამ. ერთხელ, რადგან რიგიდან. ასე რომ, ჩვენ კიდევ 2, მაშინ ჩვენ სხვა 3 და მოვუწოდებთ pop ერთხელ. ჩვენი 3 პირველი. და მაშინ ჩვენ გვქონდა მთელი bunch სხვა რამ და ზარის პოპ. მაგრამ ერთხელ, რადგან ეს არის მდგომ, პირველი, პირველი გარეთ. ჩვენ აიღოს პირველი, რაც რომელიც ოდესმე დააყენა სისტემაში ეს არის ჩვენი 3. და, ამ შემთხვევაში, ჩვენ არ ინერვიულოთ ყველა იმ სხვა რამ. ასე რომ, თუ ეს არის რიგიდან. რაიმე შეკითხვები მდგომ? დასტის სხვადასხვა. რა არის აბრევიატურა ჩვენ გაგება დასტის? აუდიტორია: ბოლო წელს, პირველი გარეთ. JASON HIRSCHHORN: LIFO, ვფიქრობ. გაგრძელდება, პირველი გარეთ. ასე რომ, ჩვენ ვნახეთ მაგალითი დასტის ქაღალდის წელს სასადილოს. როგორიც არ უნდა იყოს უჯრა არის ყველაზე იღებს აიყვანეს. და მაშინ, თუ ახალი ქაღალდის მოდის in, ისინი დააყენა თავზე. და მერე, რაც არის top იღებს აიყვანეს. ასე რომ იმ ქაღალდის ქვედა ძალა იქ awhile. იმ შემთხვევაში, კიდევ ერთხელ, ჩვენ გამოგიგზავნით დავხატოთ ამ გარეთ. ჩვენ დააყენებს ერთ, ისე ერთი პირველი ხაზი. და ჩვენ პოპ რაღაც off. და არსებობს მხოლოდ ერთი რამ არსებობს, ასე რომ, ჩვენ გადაადგილება 1 down აქ. მაშინ ჩვენ დააყენა 2 და 3 და ჩვენ პოპ რაღაც off. მაგრამ ერთხელ, რადგან ეს არის მდგომ - ან ეს არის დასტის, არამედ - ჩვენ რაც არ უნდა იყო გასული. რაც გასული გამოდის პირველი. და 3 არის ბოლო. ასე რომ, ჩვენ 3 ქვემოთ იქ, მაშინ ჩვენ შესახებ კიდევ 3 და ჩვენ პოპ რაიმეს. და ბოლოს, ჩვენ ჩაიცვი 4, 5, 6, 7, და აქ ჩვენ პოპ. და რადგან ეს არის დასტის, ჩვენ ვიღებთ რაც არ უნდა დასვა, ბოლო და დაწეროთ რომ ქვემოთ აქ. ასე რომ, ჩვენ დასრულდება მდე 1, 3, 3, 7. ვინმეს გაქვთ რაიმე შეკითხვები stacks ან რიგები, ან ეს მაგალითი? OK. მოდით დავუბრუნდეთ სიას თემებზე. არ არის, რომ გზა, ამ გზით. რა სხვა სახის კითხვებით, ხალხს აქვს? აუდიტორია: მე არ ვიცი, რამდენად მნიშვნელოვანია ეს არის, მაგრამ მე დაბნეული სხვაობა სხვადასხვა სახის ენებს, როგორიცაა markup, დაკომპლექტება, ინტერპრეტირებული. JASON HIRSCHHORN: ეს კარგი კითხვაა. მე ვფიქრობ, რომ გარკვეულწილად მნიშვნელოვანია, მოდით წავიდეთ სწრაფად. დიდი languages ​​ჩვენ ვნახეთ ჯერჯერობით C, PHP და JavaScript თვალსაზრისით, პროგრამირების ენები. HTML, როგორც თქვენ აღნიშნეთ, არ არის პროგრამირების ენაზე. ის markup ენაზე. და მაშინ ჩვენ გვაქვს CSS, რომელიც ასევე არ არის პროგრამირების ენა. ჩვენ ასევე ვნახეთ, SQL, რომელიც არ არის პროგრამირების ენა ან. ასე რომ, SQL საშუალებას გაძლევთ დაწეროთ შეკითხვა მონაცემთა ბაზაში. HTML არის markup ენაზე. იგი განსაზღვრავს, თუ როგორ სტრუქტურულად. და CSS საშუალებას გაძლევთ სტილი რამ. ეს, ალბათ, იმდენად, რამდენადაც, რაც თქვენ უნდა იცოდეთ ის სამი. მაგრამ ეს უფრო საინტერესო ფიგურა out განსხვავებები C, PHP, და JavaScript. ასე რომ, ერთ ერთი ყველაზე დიდი განსხვავებები, როგორც თქვენ აღნიშნეთ, თუ რამდენად ისინი შედგენილი, ან რასაც ეკვივალენტს არის. ასე რომ C არის შედგენილი. ჩვენ ყოველთვის აწარმოებს შემდგენელი. და მაშინ, სადაც არის თქვენი შეცდომები როდესაც თქვენ აწარმოებს C შემდგენელი? სადაც იგი გაჩვენებთ შეცდომები თქვენი კოდი? იცით, არსებობს შეცდომა თქვენი კოდი C? აუდიტორია: ეს გიჩვენებთ ტერმინალში. JASON HIRSCHHORN: ეს გიჩვენებთ წელს ტერმინალი, როგორც თქვენ შედგენა. და თუ არსებობს შეცდომები, ის რეალურად არ კომპილირება. ასე რომ თქვენ იცით, რომ არსებობს შეცდომები უფლება მოშორებით, ვადამდე, სანამ კი აწარმოებს თქვენს კოდი. რა თქმა უნდა, თქვენ შეიძლება აწარმოებს თქვენი კოდი და მიიღეთ სეგმენტაცია ბრალია, მაგრამ ეს იყო ალბათ იმიტომ, რომ თქვენ გააკეთა ზოგიერთი სულელური ლოგიკა რამ. მაგრამ თქვენი კოდი და ტექნიკურად ყველა სწორია და შეიძლება აწარმოებს. ასე რომ, C კოდი იღებს შედგენილი ვადამდე. რაც შეეხება PHP კოდი? სად იყო შეცდომები თქვენი PHP კოდი? როგორ იცით თქვენ შეცდომები აღმოაჩნდა თქვენი PHP კოდი? აუდიტორია: გაუშვით დროს? JASON HIRSCHHORN: Yeah, როდესაც თქვენ რომ აწარმოებს, თქვენ აწარმოებს PHP კოდი უკან. და მაშინ არიან ეკრანზე. თქვენ შეიძლება ნახოთ ზოგიერთი რამ ზედა, მაგრამ მაშინ თქვენ დაინახავთ, ისევე, ზოგიერთი ფორთოხალი, მახინჯი მაგიდასთან. და ეს მოგცემთ ხაზის ნომერი და ვთქვათ, blah, blah, blah, ამ პერსონალის არ იმუშავებს. ასე PHP ინტერპრეტაცია ხაზს და შესრულებული სერვერზე. და მერე შედეგი გაიგზავნება თქვენ. დიდი. შესრულებული სერვერზე ხაზს და შემდეგ გაიგზავნება თქვენ. და თუ იქ შეცდომა, ეს გამოგიგზავნით თქვენ შეცდომა, მაგრამ ალბათ მიღებული რაღაცები ვადამდე. ასე რომ ზოგიერთი ეს შეიძლება არ მუშაობდა, მაგრამ მოგვიანებით, რაღაცები შეიძლება არ აქვს ვერ იმუშავა. რაც შეეხება JavaScript? სად ხედავთ JavaScript შეცდომები? In p მითითებული 8, როცა შენ შეცდომა, რა იცით? სადაც იქნებოდა ის გამოჩნდება? აუდიტორია: In კონსოლი, ბოლოში. JASON HIRSCHHORN: In კონსოლის ქვედა. იგი ასევე გაძლევთ ხაზის ნომერი, და ეს იქნებოდა გამოჩნდება ბოლოში. და JavaScript არ შესრულდა სერვერზე. JavaScript გაიგზავნა თქვენს კომპიუტერში, და მაშინ, როდესაც დროა აწარმოებს JavaScript, JavaScript იყო აწარმოებს ხაზის მიერ ხაზი კლიენტს, თქვენს მხარეს. არა სერვერზე, კლიენტის მხარეს. და ანალოგიურად, ეს იყო აწარმოებს ხაზს. და მაშინ, როდესაც თქვენ გაქვთ შეცდომა, ეს იქნებოდა გამოჩნდება ბოლოში. ანალოგიურად, PHP, ზოგიერთი შესაძლოა შეასრულოს, და მაშინ შესაძლოა შეცდომა მოგვიანებით. ასევე, პატარა განსხვავებით, PHP, თუ თქვენ გაქვთ JavaScript შეცდომა - ამბობენ, რომ თქვენ არ უფლება კოდი alert box - შეგიძლიათ შენარჩუნება გაშვებული თქვენი პროგრამა. Alert box არ მუშაობს, მაგრამ თქვენი პროგრამა იქნება ჯარიმა. უბრალოდ, შესაძლოა, რომ ფუნქცია ვერ. ასე რომ ზოგიერთი ყველაზე დიდი განსხვავება თვალსაზრისით როგორ შეიძლება ამ ენებზე, თუ როგორ პროგრამირების კოდი წერთ რეალურად შეაფასა. ასევე არსებობს სხვა განსხვავებები თვალსაზრისით - დიდი განსხვავება ჩვენ ვნახეთ თვალსაზრისით ცვლადები სხვადასხვა ენებზე. ასე რომ შეიძლება ვინმეს მომეცი განსხვავება შორის ცვლადები სამი ენებზე? დიახ. აუდიტორია: In C, ისინი მკაცრად აკრეფილი. დანარჩენი ორი, ისინი თავისუფლად აკრეფილი. JASON HIRSCHHORN: და რას ნიშნავს ეს? აუდიტორია: ეს C, თქვენ უნდა განაცხადოს ტიპის ცვლადი, როდესაც თქვენ განაცხადოს ცვლადი, ისევე როგორც interbool ან char. JASON HIRSCHHORN: Excellent. In C, ჩვენ ყოველთვის უნდა დააყენოს ტიპის ცვლადი. და ჩვენ შეგვიძლია ნამდვილად არ ავურიოთ ტიპის. თქვენ ვერ გავაკეთებთ, მთელი პლუს string. მაგრამ როგორც ჩვენ ვნახეთ ამ სხვა ენებზე, თქვენ ნამდვილად შეგიძლიათ ავურიოთ ტიპის, და თქვენ არასდროს ნამდვილად უნდა მისცეს რაღაც ტიპის, როგორც არასდროს. ასე რომ, ვიცით, რამ ცვლადები PHP და JavaScript? აუდიტორია: In PHP, ისინი დაიწყოს დოლარის ნიშანი. ამ JavaScript, როდესაც თქვენ გამოაცხადოს მათ, თქვენ უნდა აქვს ბარი. JASON HIRSCHHORN: Right. ასე რომ, PHP, ისინი დაიწყოს დოლარის ნიშანი. ამ JavaScript, ისინი უნდა აქვს ბარი, მიუხედავად იმისა, რომ ზოგჯერ ისინი რეალურად არ აქვს ბარი. მაგრამ ეს სწორი. ასე რომ დიდი სხვაობა შორის ცვლადები. მე ვფიქრობ, ეს, ალბათ, off ზევით ჩემი უფროსი, ორი დიდი განსხვავებები ამ სამ ენაზე. მაგრამ, yeah. აუდიტორია: და ფარგლებს C ცვლადები შეზღუდულია curly აფრთხილებს, სადაც სხვა პირობა, უბრალოდ მინდა, იგი კვდება თუ ის ფუნქცია მხოლოდ, მაგრამ სხვაგვარად, it's - JASON HIRSCHHORN: Right. ასე ფარგლებს ოდნავ განსხვავებული C. როგორც გახსოვთ, curly აფრთხილებს განსაზღვრავს ფარგლებში ცვლადები. ასე რომ, თუ იგი განსაზღვრული შიგნით თუ მდგომარეობა, რომელიც არის შიგნით ამისთვის მარყუჟის, ცვლადი მხოლოდ არსებობს იქ. ამ JavaScript, თუ ცვლადი განსაზღვრულია შიგნით თუ მდგომარეობა - შიგნით for loop - ეს კიდე არსებობს ეს ფუნქცია, მაგრამ ეს არ იქნება გარეთ რომ ფუნქცია. ასე ფარგლებში არის ცოტა უფრო მოქნილი in JavaScript და PHP. რომ კითხვაზე პასუხის გაცემა? OK, ნებისმიერი სხვა კითხვები? ჩვენ შეგვიძლია გავაკეთოთ კიდევ ოთხი წუთის კითხვები, მაშინ ჩვენ ხტომა შევიდა კოდირების. აუდიტორია: შეგვიძლია წასვლას Ajax და ვისაუბროთ რა, რომ არის? JASON HIRSCHHORN: Talk to Avi შემდეგ. მან სთხოვა, რომ საკითხი ადრე. აუდიტორია: ჩემი ცუდი. JASON HIRSCHHORN: არარის შეშფოთებულია. აუდიტორია: რა არის JSON? JASON HIRSCHHORN: რა არის JSON? რა არის თქვენი შეკითხვა? აუდიტორია: Just მართლაც სწრაფად, სხვაობა ბეჭდვითი და echo PHP. JASON HIRSCHHORN: რატომ არ google სხვაობა ბეჭდვითი და ეხო? მცირე განსხვავება. არ არის, რომ დიდი გარიგება. მაგრამ თქვენ უნდა google ის, და რომ მოგცემთ კარგი პასუხი. JSON, ალბათ უფრო დიდი გარიგება. დგას JavaScript Object ნოტაცია. და როდესაც გვაქვს ჩანს JSON გამოიყენება? როდესაც გინახავთ - რატომ კი ვიცი სიტყვა JSON? როდესაც გინახავთ ეს? აუდიტორია: როცა ჩვენ ვიღებთ საფონდო მოჰყავს ფინანსთა. JASON HIRSCHHORN: ასე რომ თქვენ ნახეთ ეს მაშინ, როდესაც იღებდნენ საფონდო მოჰყავს ფინანსთა. და რატომ ხედავთ? აუდიტორია: როცა ჩვენ ძებნისათვის ყველა ინფორმაცია, რომ მოვიდა ამ ფორმატში. JASON HIRSCHHORN: ასე რომ თქვენ მიიღოთ - yeah. წავიდეთ წინ. აუდიტორია: [INAUDIBLE] ინფორმაცია out ობიექტი? JASON HIRSCHHORN: ორივე ერთად არის პასუხი ჩვენ ვეძებთ. გსურთ ინფორმაცია ეს სხვა webpage. და იმედი მაქვს, რომ როდესაც თქვენ მიღების, რომ ინფორმაცია, რომ ეს იქნება წარმოგიდგინეთ ზოგიერთი ტიპის სტანდარტიზებული ფორმატი. ყველა ალბათ იცნობს ერთად მძიმით გამოყოფილი ღირებულებები. თქვენ შეგიძლიათ საექსპორტო Excel-ან ნებისმიერი ტიპის ცხრილების როგორც სიაში მძიმით გამოყოფილი ღირებულებები. და მძიმეები დაყოს ყველა სხვადასხვა სფეროში. JavaScript Object Notation - JSON - არის სხვა ტიპის სტანდარტიზებული განლაგება რამ. და რომ ხშირად, თუ როგორ ვიღებ ინფორმაცია ჩვენი Ajax შეკითხვებს. ასე რომ, ამ შემთხვევაში, მივიღეთ ის საწყისი Yahoo საიტზე. ისინი დაბრუნდებიან რამ ჩვენს JSON ობიექტი. და მაშინ ჩვენ ვიცით, რადგან ეს სტანდარტი, რასაც ის აპირებს გამოიყურებოდეს. ასე რომ ჩვენ შეგვიძლია iterate მეშვეობით მასივი რომ დაბრუნდა ჩვენთვის მასივი ობიექტები, რომლებიც დაბრუნდა us. ჩვენ არ ალბათ უნდა იცოდეს, გასაღებები, მაგრამ ზოგადად გადმოგცეთ დოკუმენტაციის ნახვა, როდესაც თქვენ მიღება ზოგიერთი JSON notation მათთვის. გარდა ამისა, თქვენ შეგიძლიათ JSON encode ობიექტი. ასე რომ არსებობს ფუნქცია JSON ხაზგასმით encode. და ასე რომ თქვენ შეუძლია მიიღოს ობიექტი, რომელიც თქვენ შექმნა, JSON encode, და გაიაროს ეს რაღაც სხვაგან, თუ გსურთ. და JSON decode ასევე არსებობს მსგავსი მიზნით, ან საპირისპირო მიზნით. აუდიტორია: ნუ ჩვენ უნდა ვიცოდეთ კოდირების განთავსების hash მაგიდები და ცდილობს? ან ჩვენ უბრალოდ უნდა გვესმოდეს როგორ ისინი გამოიყენება, კონცეპტუალურად? JASON HIRSCHHORN: ასე რომ, გაზარდოთ თქვენი მხრივ, თუ გააკეთა hash მაგიდა p მითითებული 4 ბმული სიაში. ან p მითითებული 5. ისე, რომ იყო დიდი უმრავლესობა. P მითითებული 5, 6, ვინ იცის. დიდი ხნის წინ. ასე რომ დიდი უმრავლესობა თქვენ გააკეთეთ hash მაგიდები ლინკი სიებში. და იმის გამო, რომ ალბათ უფრო ერთიანი მიდგომა, და რადგან გავატარეთ ბევრი დრო აკეთებს ლინკი სიები და hash მაგიდები, თქვენ უნდა ალბათ იყოს საკმაოდ იცნობს, თუ როგორ კოდექსში hash მაგიდა და ბმული სიაში. და თუ ფიქრობთ თავში, რომ პრობლემა მითითებული, ეს ნამდვილად არ იყო როგორც მყარი, როგორც თქვენ მოსალოდნელია. და იქ იყო ბევრი ნაკლებად კოდი ვიდრე მოსალოდნელი იყო. მე ვიტყოდი, რომ თქვენ უნდა იცოდეს, თუ როგორ უნდა კოდექსის hash მაგიდასთან ან ლინკი სიაში. არ არის, რომ თქვენ მინდა იყოს სთხოვა, რომ, აუცილებლად, მაგრამ თქვენ უნდა რა თქმა უნდა, ვიცი, რომ. ასევე, თუ გადავხედავთ წარსულში ტესტებში, არ ყოფილა ბევრი კითხვებს წერილობით ფუნქციები ლინკი სიები ან ორმაგად დაკავშირებული სიებში. რომ როგორც ჩანს ამუშავება ყოველ წელს. მარჯვენა ჩადეთ ბმულს სიაში, უფლება წაშლა ბმული სიაში, უფლება ჩადეთ განთავსების ორმაგად დაკავშირებული სიაში, et cetera. ასე რომ, ვფიქრობ, საკმაოდ კომფორტული ამბობდა, რომ თქვენ უნდა იცოდეს, რომ. განთავსების ლელო, მე ვიტყოდი, თქვენ უნდა რა თქმა უნდა ვიცი როგორ მუშაობს, და იქნებ ზოგიერთი pseudocode თუ როგორ კოდექსში და შექმნას it up. მაგრამ ეს არ იქნება უარესი რამ მსოფლიოში, თუ თქვენ არ იცით, თუ როგორ კოდექსის ის C. ეს ძალიან კარგი იქნება, თუ თქვენ იცოდა კოდექსით C, მაგრამ მე ვფიქრობ, ალბათ pseudocode ამისთვის შანსი იქნებოდა იყოს საუკეთესო თქვენ უნდა ვიცი ცდილობენ. აუდიტორია: Extra საკრედიტო? JASON HIRSCHHORN: და იგივე, თუ ჩვენ წასვლას ორობითი ძებნა ხეები, ალბათ უნდა - და თქვენ ვნახეთ წარსულში, ჩვენ გავაკეთეთ ბევრი - იცით, თუ როგორ ორობითი ძებნა ხე მუშაობს. თქვენ უნდა ალბათ შეძლებს მითითებული ერთი up in ფსევდო კოდი. არამედ იმიტომ, რომ დიდი უმრავლესობა ხალხი არ გავაკეთოთ, რომ პრობლემა კომპლექტი, მინდა ვთქვა, რომ ეს, ალბათ, ნაკლებად მნიშვნელოვანია, რომ თქვენ იცით, თუ როგორ კოდექსში და შეიქმნა ხე იგრძნობა. ნებისმიერი სხვა კითხვები? ასევე, ჩვენ შეგვიძლია მათ ვთხოვთ, მთელი როგორც ჩვენ გაიაროს გარკვეული პრობლემები. OK, ჩვენ ვაპირებთ გადაადგილება. გამოტოვე რომ slide ახლა. საუბარი ხეები, რომ ეს არის პირველი კითხვა მაქვს თქვენ ბიჭები. იმიტომ, რომ ეს არის პრობლემა. მე ვიტყოდი, რომ ეს ძალიან სავარაუდოა, თქვენ კიდევ პრობლემა მოსწონს ეს თქვენს ვიქტორინა გეკითხებით კოდექსის ზოგიერთი ტიპის ჩადეთ, წაშლა, ძიების, ერთი ტიპის მონაცემთა სტრუქტურა ჩვენ ვნახეთ. რომ მოდის up ყოველწლიურად გავატარეთ ბევრი დრო მეორე ნახევარში ამ სემესტრის აპირებს მეტი ამ ტიპის მონაცემები. ასე რომ, ახლა, მე განსაზღვრული კვანძის in ორობითი ძებნა ხე. და რა მინდა გავაკეთოთ ენიჭება ორობითი ძებნა ხე, რომელიც იწყება ამ კვანძის star root, დაასრულებს განხორციელების ფუნქცია ქვემოთ, რომელიც ხდება უნდა იყოს იპოვოს ფუნქცია. და ამის გარეშე recursions. ასე რომ, მინდა დაწერა ორი ფუნქცია. ერთი აკეთებს ამ უკან, ერთი ამით გარეშე უკან. და არ ვივარაუდოთ, რომ root იქნება არასამთავრობო null. ასე რომ, ჩვენ ვეძებთ მთელი i in ხე იწყება root, და ჩვენ გვჭირდება დაწერა ამ რეკურსიული და iteratively. ჰო. აუდიტორია: ასე რომ გსურთ us დაბრუნებას ჭეშმარიტი თუ ჩვენ, და ცრუ თუ ჩვენ არ საპოვნელად. JASON HIRSCHHORN: როგორ იცით? როგორ იცით რომ? აუდიტორია: I ითხოვდა, მაგრამ მე ვიყავი ვთქვათ, რადგან ის ამბობს bool at დასაწყისში ფუნქცია. JASON HIRSCHHORN: Right. იგი აცხადებს, bool, ასე რომ მე კი არ უნდა გეტყვით, თუ რა ველოდები თქვენ დაბრუნებას რადგან ის ამბობს უფლება არსებობს. მაგრამ ეს უფლება. დაბრუნება, ჭეშმარიტი ან მცდარი. ასე რომ, სანამ დაიწყება, მე რეკომენდაციას, თუ თქვენ ხართ უცხო ერთად ორობითი ძებნა ხეები, სწრაფად გრაფიკა სურათს, რომ მიიღოთ თქვენი გაგება, მარჯვნივ. ეს ასევე დაგეხმარებათ, როდესაც წერილობით თქვენი კოდი და შემოწმების. ერთხელ, თქვენ ასევე არ უნდა, რომ ბევრი დრო ვიქტორინა გავაკეთოთ ყველაფერი, რომ ჩვენ ვთხოვთ თქვენ უნდა გააკეთოს. ასე წერა ფსევდო კოდი არის ძალიან გამოსადეგი. და ჩვენ ზოგადად მისცეს შესახებ - თუ pseudocode შესანიშნავად სწორი, რომ ზოგადად 50% კითხვაზე. ასე რომ, ეს არ არის რთული და სწრაფად წესი, მაგრამ თუ თქვენ უბრალოდ დაწერეთ pseudocode და ეს სწორი, ეს ზოგადად 50%. ასე რომ, მე ყოველთვის ვურჩევ - თუ თქვენ დაპრესილი დრო, ან თუნდაც თქვენ უბრალოდ ცდილობს გაერკვნენ ის - დაწყებული pseudocode. და ბოლოს, თუ თქვენ ვერ წერენ ამ ყველა C, ეს იქნება ფანტასტიური. მოდით სამ წუთში მუშაობა ამ პროგრამით. და მაშინ ჩვენ ვაპირებთ დავწეროთ pseudocode მას მხოლოდ ერთხელ, და შემდეგ ჩვენ ვაპირებთ კოდექსით რეკურსიული და შემდეგ iteratively. იმ შემთხვევაში, თუ თქვენ გაქვთ რაიმე შეკითხვები, ვგრძნობ უფასო დააყენებს თქვენი მხრივ. Happy მოიარე და უპასუხოს მათ სანამ დავიწყებდეთ, როგორც ჯგუფი. მოდით, განაახლოს, და ჩვენ ვაპირებთ pseudocode რეკურსიული მობილური ამ, და მაშინ ჩვენ კოდექსით. ასე რომ რეკურსიული ფუნქცია სჭირდება ორი რამ. ეს შეიძლება იყოს კითხვა, თქვენ შეიძლება სთხოვა. სჭირდება ორი რამ. ვისაც შეუძლია დააყენოს მათი ხელი და მითხრა, რა ორი რამ რეკურსიული ფუნქცია სჭირდება? ზოგადად ეს ორი რამ. რა არის ეს ორი რამ? New ხელში. დიახ, Alden. აუდიტორია: ასე რომ, მე არ ვარ დარწმუნებული ზუსტად თუ ეს არის ტერმინოლოგია, მაგრამ - JASON HIRSCHHORN: მოხარული ვარ თქვენ ამაღლების თქვენი მხრივ. აუდიტორია: ეს სჭირდება ბაზის შემთხვევაში, და მას სჭირდება რეკურსიული ნაბიჯი. JASON HIRSCHHORN: Perfect. მას სჭირდება ბაზის შემთხვევაში და რეკურსიული ნაბიჯი. რა არის ჩვენი ბაზის შემთხვევაში აქ? აუდიტორია: F root უდრის უდრის null. სამწუხაროდ, მხოლოდ pseudocode, თუ ეს null. იმ შემთხვევაში, თუ root არის null. JASON HIRSCHHORN თუ root არის null. ეს არის ის კარგი. ეს არის ჩვენი ბაზის შემთხვევაში. ეს არის ის, რასაც ჩვენ ვაპირებთ რათა შეამოწმოს ყოველ ჯერზე. და ბაზის შემთხვევაში არის პირველი, რასაც თქვენ აკეთებთ. თუ თქვენ მოხვდა ბაზის შემთხვევაში, თქვენ გაკეთდეს. ახლა ჩვენ გვჭირდება ჩვენი რეკურსიული ზარი, და მინდა იყოს სურვილი, რომ დადებს ჩვენ გვჭირდება რამდენიმე რეკურსიული მოუწოდებს აქ. იმიტომ, რომ ეს ხე, და ჩვენ შეიძლება წავიდეს სხვადასხვა გზები. ასე რომ, თუ root არის null, ჩვენ კარგი. რას ვთავაზობთ? და ახლა მე ვაპირებ დაიწყება დარეკვით out თქვენ ბიჭები, რადგან ვიცი, რომ თქვენ ბიჭები ყველამ ვიცით ეს. მაგრამ Annie, რა უნდა შემდეგი ხაზი იყოს? რა მოხდება, თუ ჩვენ ვერ? რა ვქნათ? აუდიტორია: თუ ჩვენ ვერ? JASON HIRSCHHORN: ან რა უნდა იყოს, რომ - მომეცი pseudocode ამისთვის ხაზი, სადაც ჩვენ ვერ. აუდიტორია: თუ მე შეადგენს root i? JASON HIRSCHHORN: და მაშინ რა ვქნათ? აუდიტორია: დაბრუნება ჭეშმარიტი. JASON HIRSCHHORN: Great. ასე რომ, თუ მე i - oh, ისინი ორივე ეწოდება i. რომ იღებს დამაბნეველი. მაგრამ თუ მე ვბრუნდები ასეა. ეს, ალბათ, მომდევნო რაც ჩვენ უნდა გავაკეთოთ. აზრი. OK, ახლა ჩვენ არ კეთდება ჩვენი რეკურსიული დარეკეთ არ არის, თუმცა, იმის გამო, რომ რეკურსიული დარეკეთ მოვუწოდებთ ამ ფუნქციის ერთხელ. რა უნდა მომავალ ხაზი pseudocode იყოს? ანა. აუდიტორია: მარცხენა ფლანგზე. JASON HIRSCHHORN: იყავით კონკრეტული, თუმცა. ეს არის ორობითი ძებნა ხე, რა ამჯამად შემოწმების მარცხენა მხარეს იწვევს? აუდიტორია: ასე კვანძის - მე ვწუხვარ, root. და შემდეგ arrow მარცხენა. კვანძის, კვანძში, უკაცრავად. მე არ კითხულობს სწორად. ეს მოუწოდა კვანძის, არა? JASON HIRSCHHORN: ეს იქნება ე.წ. root რომ ფუნქცია, მაგრამ არც გზა. მარცხენა მხარეს - yeah? აუდიტორია: თუ ეს არ თანაბარი i, მაშინ ჩვენ ვაპირებთ მოვუწოდებთ ფუნქცია ერთხელ? JASON HIRSCHHORN: ეს უფლება. თუ ეს არ თანაბარი i, ჩვენ ვაპირებთ მოვუწოდებთ ფუნქცია ერთხელ. მაგრამ რა მხარეს ხე მივდივართ მოვუწოდებთ ფუნქცია ერთხელ? აუდიტორია: მარცხენა მხარეს. JASON HIRSCHHORN: ჩვენ არ ვართ ყოველთვის ვაპირებთ ეძახით მარცხენა, თუ იგი არ გაუტოლდება მას. აუდიტორია: ოჰ, უკაცრავად. ზარის უფლება. JASON HIRSCHHORN: ჩვენ გვინდა ვიცოდეთ კერძოდ, მიუხედავად იმისა, რომ - უნდა გვახსოვდეს, რომ ორობითი ძებნა ხე, ყველაფერი მარცხენა მხარეს არის პატარა. იმისათვის, რომ უფლება მხარეს მეტია. ასე რომ, ეს უბრალოდ არ არის - yeah, წავიდეთ წინ. აუდიტორია: თუ ეს არანაკლებ i, შემდეგ - თუ ის მარცხენა - JASON HIRSCHHORN: ასე რომ, თუ ri ნაკლებია, ვიდრე - ასე რომ, თუ ჩვენი ნაკლებია, ვიდრე i, რა მხარეს გვინდა წასვლა? აუდიტორია: ჩვენ გვინდა წასვლა მარჯვენა მხარეს. JASON HIRSCHHORN: ჩვენ გვინდა წასვლა - მოგიყვანთ სწრაფი ხე. თუ ეს არის 5, ეს იქნება 3. ასე რომ, თუ ri ხუთზე ნაკლებია, რაც მხარე გვინდა წასვლა? აუდიტორია: უკაცრავად, რა? JASON HIRSCHHORN ჩვენი ნომერი ნაკლები რაოდენობის ჩვენ ეძებს ახლა. აუდიტორია: Oh, მაშინ ჩვენ გვინდა წასვლა მარცხენა მხარეს. ჰო. უკაცრავად. JASON HIRSCHHORN: ზუსტად. არ შფოთვა. ორობითი ძებნა ხე, ყველაფერი ქვედა მარცხენა, დიდი არის უფლება. ასე რომ, თუ ჩვენი ნაკლებია, ვიდრე i ჩვენ შემოწმების - იმის გამო, რომ ხედავთ კვანძის, მას აქვს i - მაშინ მინდა მარცხენა. და ეს არის ადვილი. რა არის ეს მეორე ხაზი pseudocode ჩვენ უნდა დაწეროთ? Carlos? აუდიტორია: იგივე, უბრალოდ გადახვიდეთ მას მეტია ნიშანი და გადადით მარჯვნივ. JASON HIRSCHHORN: შეგიძლიათ ამბობენ, რომ ეს კიდევ ერთხელ? აუდიტორია: თუ ჩვენი რიცხვი მეტია, ვიდრე მე, გადადით მარჯვნივ. JASON HIRSCHHORN: Excellent სამუშაო pseudocode. მოდით გავაკეთოთ ეს რეალურ კოდი. და კვლავ, ამ pseudocode იქნება ალბათ თქვენ, რადგან ეს სწორია, 50% ამ კითხვაზე. მაგრამ ეს pseudocode ასევე ითარგმნება ერთი ერთი, არსებითად, თარგმნეს კოდი. მოდი გავაკეთოთ ეს C. ვის შეუძლია მისცეს ჩემთვის პირველი ხაზი კოდი? სინამდვილეში, პირველი, სანამ გავაკეთო რომ, ნება მომეცით დახევის გამო - აუდიტორია: მე მაქვს შეკითხვა. რატომ აბზაცის ონლაინ მივეცი თქვენ? JASON HIRSCHHORN: იმის გამო, მე ვერ წერენ. მე არ ვიცი. თქვენ უფლება. რომ ხაზი უნდა იყოს იქ. OK, აქ არის ჩვენი ფუნქცია. და ნება მომეცით დახევის გამო, ასევე, ჩვენი განმარტება კვანძში. რა მოხდება, თუ ჩვენ არ დაწერა typedef? ვინმემ იცის? აუდიტორია: ეს არ კომპილირდება. JASON HIRSCHHORN: ეს იქნებოდა კომპილირება, yeah. აუდიტორია: თუ უბრალოდ განაცხადოს ერთი მაგალითად, ნაცვლად მას ახალი ჩაწერეთ თქვენ შეიძლება განაცხადოს მრავალჯერადი შემთხვევები? JASON HIRSCHHORN: ასე რომ არ ვიცი - ეს არ უბრალოდ განაცხადოს ერთი ტიპის. თქვენ შეიძლება კვლავ მიიღოს ბევრი კვანძების. აუდიტორია: მაგრამ არ გვაქვს დაწერა struct კვანძის ყოველ ჯერზე? JASON HIRSCHHORN: ეს უფლება. თქვენ უნდა დაწერა struct კვანძის ყოველ ჯერზე, ნაცვლად მხოლოდ კვანძში. მაგრამ typedef, შეგიძლიათ უბრალოდ დაწერა კვანძის თითოეული დრო. OK, რომელსაც არ მიეცა - yeah, Avica. აუდიტორია: თუ root შეადგენს შეადგენს null, დაბრუნების ცრუ. JASON HIRSCHHORN: Great, და რომ ჩვენი ბაზის შემთხვევაში. შემდეგი ხაზი კოდი. ვინც არ მიეცა მე ხაზი კოდი არის? ჰო. აუდიტორია: Root arrow i ტოლი ტოლი i. შემდეგ დაბრუნდება ნამდვილი. JASON HIRSCHHORN: Great. შემდეგი ხაზი? ჰო. ვინმეს? და მაშინ წავიდეთ მომავალი. აუდიტორია: Else თუ root arrow i ნაკლებია, ვიდრე ვბრუნდები ფუნქცია მოუწოდა იპოვოს root - JASON HIRSCHHORN: უკაცრავად. აუდიტორია: დაბრუნება იპოვოს root მიუთითებს მარცხენა მძიმით i. JASON HIRSCHHORN: ასე რომ, თუ ri მეტია ვიდრე ის ხე, ჩვენ გვინდა გადადით მარცხნივ? აუდიტორია: არა, მე არ ჰქონდა, რომ შეცვალა. JASON HIRSCHHORN: რომელი? აუდიტორია: არა, yeah. მე მაქვს ნაკლები მოაწეროს არსებობს. JASON HIRSCHHORN: მარჯვენა, თუ ri არის ნაკლებია, ვიდრე რა არის root - ჩვენი დღევანდელი root - მაშინ ჩვენ მინდა წასვლა მარცხენა. და რა არის ბოლო ხაზი, თქვენ? აუდიტორია: ძირითადად იგივე, გარდა გადართოთ მეტია ან ტოლი ნაკლები და მარცხნიდან მარჯვნივ. JASON HIRSCHHORN: Excellent. ვინმეს გაქვთ რაიმე შეკითხვები ამის შესახებ? ასე რომ ზოგიერთი სხვა რამ, რაც იქნება უკვე სწორია, რომ შეიძლება იყოს-ltiff. ვფიქრობ, ტექნიკურად, არცერთი ნამდვილად ასევე უნდა იყოს ltiff. ასევე, ალბათ, მხოლოდ ერთ შემთხვევაში ქვემოთ აქ. ასე რომ, ალბათ, უკანასკნელი საქმე. თქვენ კი არ უნდა, რომ, ltiff. მაგრამ ალბათ კარგი დაწერა ის, რომ იყოს ნათელი. ჰო. აუდიტორია: ასე რომ თქვენ არ ვფიქრობ, ვიქტორინა - თუ ჩვენ შეცდომები, მაგალითად, in სინტაქსი - ცოტა სინტაქსი შეცდომები - როგორ ამჯამად რომ მიიღოთ მიღებული ვიქტორინა? JASON HIRSCHHORN: საერთოდ on ვიქტორინა, მცირე სინტაქსის შეცდომა ან მცირე სტილი შეცდომები არ დაკარგოს რაოდენობა. ასე რომ, თუ თქვენ დაგავიწყდათ მძიმით აქ, ეს იქნება OK. თუ დაგავიწყდათ დახურვა ფრჩხილებში, რომ იქნება OK. დიდი syntax შეცდომები, რომ შეცვალოს ფუნქციური მნიშვნელობით თქვენი კოდი მკვეთრად, შესაძლოა წაიყვანეს ქულა. ან საერთოდ, უბრალოდ შეფასების თქვენ თუ არა თქვენი კოდი ფუნქციები, თუნდაც - არა მისი დიზაინი იმდენად, და არა მისი სტილი. მოდით ახლა კოდექსის iterative მობილური იპოვოს. ასე რომ, ეს იქნება საკმაოდ მსგავსია, მაგრამ არსებობს რა თქმა უნდა, იქნება რამოდენიმე ძირითადი განსხვავებები. თუმცა, ჩვენი pseudocode ალბათ წასვლა - ჩვენ მაინც ერთი ხაზი pseudocode და გაერკვნენ, თუ რა ხაზი ამ შემთხვევაში. ასე რომ განმეორებითი მობილური, რა როგორ ფიქრობთ, იულია, უნდა იყოს პირველი ხაზი? აუდიტორია: კვლავ, განმეორებითი ლოგიკური, თქვენ უნდა შექმნას მარყუჟის, არა? JASON HIRSCHHORN: OK. აუდიტორია: ასე მოსწონს, k, განთავსების x უდრის 0, x არის ნაკლები ვიდრე i. ან არა, x ნაკლებია, ვიდრე ზომის ხე. JASON HIRSCHHORN: ხე. ასე რომ, ჩვენ ნამდვილად არ ვიცი ზომა ხე, და ჩვენ ნამდვილად არ ვიცი რამდენჯერ ჩვენ შეგვიძლია წავიდეთ, რა არის სხვადასხვა ტიპის loop, რომელიც შეიძლება იყოს უკეთესი ამ შემთხვევაში? აუდიტორია: თუ სხვა? JASON HIRSCHHORN თუ სხვაგან არ შეიძლება იყოს loop. რა ტიპის loop ჩვენ შეგვიძლია მხოლოდ წასვლა სანამ ზოგიერთ შემთხვევაში შეხვდა? რა არის მხოლოდ სხვა ტიპის loop in C გარდა for loop? აუდიტორია: მიუხედავად იმისა. JASON HIRSCHHORN: მიუხედავად იმისა, ზუსტად. ხოლო loop, არ უნდა იცოდეს, როგორ - ხოლო loop და loop შეუძლია გააკეთოს ზუსტად იგივე რამ, მაგრამ ლამაზი რამ დაახლოებით ხოლო loop ჩვენ არ გვჭირდება იცოდეთ, თუ როგორ დიდი ჩვენი ხე. ამიტომ, ჩვენ ვაპირებთ წავიდეთ სანამ რა? აუდიტორია: სანამ ის ტოლია ზომა - JASON HIRSCHHORN: ისე, ძალიან მსგავსი ჩვენი რეკურსიული შემთხვევაში. ასე რომ, - აუდიტორია: მიუხედავად იმისა, root i არ თანაბარი i. JASON HIRSCHHORN: ეს მართლაც ახლოს. მიუხედავად იმისა, რომ root i - მოდით ცდილობენ. მე არ ვფიქრობ, [INAUDIBLE] სადაც root i არ თანაბარი i. ჩვენ ალბათ უნდა შეიცვალოს ეს პატარა ცოტა, მაგრამ რომ ჟღერს ეს საკმაოდ კარგი, ახლა. ამიტომ ჩვენ ყველაფერს გავაკეთებთ, რომ. ასევე, მახსოვს, ჩვენ არ შეგვიძლია ვივარაუდოთ ერთ კითხვას. თქვენ არ ვივარაუდოთ, რომ root იქნება არასამთავრობო null. ასე რომ, რას ფიქრობთ ძალიან პირველი, რაც უნდა გავაკეთოთ არის? აუდიტორია: Just იგივეს რამ, როგორც ადრე. იმ შემთხვევაში, თუ root შეადგენს შეადგენს null, დაბრუნების ცრუ. JASON HIRSCHHORN: Great. ასე რომ, ეს შეიძლება იყოს null. ასე რომ ჩვენ გვინდა, თავი დაეღწია იგი დაუყოვნებლივ. და მაშინ ჩვენ ვაპირებთ შევამოწმოთ, თუ root i არ თანაბარი i. ასე რომ, ვთქვათ, ჩვენ ძებნას ამ ხე 3, root i არ თანაბარი i, ახლა ჩვენ ჩვენი ხოლო loop. რა გვინდა გავაკეთოთ? ისევ და ისევ, ეს იქნება საკმაოდ მსგავსი ჩვენი რეკურსიული ვერსია. ჰო. აუდიტორია: ასე ნეტავ მინდა iterate, ან შენარჩუნებას აპირებს ქვემოთ ხე, რადგან ფესვი არ არის ტოლი null. JASON HIRSCHHORN: ვინაიდან root არ არის ტოლი null? აუდიტორია: root dash i არ არის ტოლი null. უბრალოდ root, yeah. როგორც ხანგრძლივი, როგორც root არის არ არის ტოლი null. JASON HIRSCHHORN: ასე რომ გსურთ შეცვალოს ამ შევიდა root არ თანაბარი null? აუდიტორია: Yeah. აუდიტორია: ჩვენ შეიძლება დააკავშიროთ ეს, არა? ჩვენ არ გვჭირდება, თუ თავდაპირველად. JASON HIRSCHHORN: OK, ასე რომ, თუ ჩვენ don't - თუ ჩვენ დააკავშიროთ მათ, ამიტომ ჩვენ ვაპირებთ ხოლო root არ თანაბარი null, და თუ root ხდება იყოს null at დასაწყისში, რას ვაკეთებთ ქვემოთ აქ? აუდიტორია: დაბრუნება ყალბი. JASON HIRSCHHORN: Great. ასე რომ, ორივე გზით, ალბათ, არ მუშაობდა. ეს არის სხვადასხვა გზა, და ეს აერთიანებს იგი. თუმცა ისევ და ისევ, თუ თქვენ არ ნებისმიერ შემთხვევაში, ჩვენ არ აპირებს off დიზაინი მიუთითებს ვიქტორინა. მაგრამ ეს გამოიყურება კარგი. ასე რომ, ხოლო root არ თანაბარი null, რა არის პირველი რაც ჩვენ გვინდა შევამოწმოთ? სხვისი? Null, რა არის პირველი რამ? აუდიტორია: თუ ri ნაკლებია, ვიდრე - oh, ვფიქრობ, თუ ჩვენ უკვე ი ის root. ასე რომ, თუ root arrow i ტოლია i - JASON HIRSCHHORN: უკაცრავად? აუდიტორია: თუ root arrow i ტოლია ტოლია i - JASON HIRSCHHORN: რა ვქნათ? აუდიტორია: დაბრუნება ჭეშმარიტი. JASON HIRSCHHORN: Great. და რა არის შემდეგი? Jeff, რა მომავალი ხაზი კოდი? აუდიტორია: თუ i ნაკლებია, ვიდრე root arrow i, მაშინ root შეადგენს root arrow მარცხენა. JASON HIRSCHHORN: Root შეადგენს root arrow მარცხენა. ასე რომ, ალბათ, ყველაზე დიდი განსხვავება აქ ამ iterative ვერსია, როგორც ეწინააღმდეგებოდა რეკურსიული ვერსია. რეკურსიული მობილური, ჩვენ მოვუწოდებთ ფუნქცია ერთხელ. ჩვენ უნდა განახლებაზე root როდესაც ჩვენ მოვუწოდებთ ახალი ფუნქცია. აქ ჩვენ არ მოუწოდებდა ახალი ფუნქცია. ჩვენ უბრალოდ უბრალოდ განახლება root ამ ფუნქციას. ეს არის ის კარგი. და რა არის ბოლო ხაზი კოდი? ჰო, Mario? აუდიტორია: Else root შეადგენს root arrow უფლება. JASON HIRSCHHORN: უკაცრავად? აუდიტორია: Root შეადგენს root arrow უფლება. JASON HIRSCHHORN: იქნებ ასევე წერენ რაღაც მსგავსი? აუდიტორია: მე არ ვიცი. JASON HIRSCHHORN თქვენ არ შეგიძლიათ. თქვენ არ შეგიძლიათ პლუს შეადგენს. OK, ასე რომ, ეს გამოიყურება კარგი. რატომ არ გვაქვს უბრალოდ, რომ გაწმენდა it up. ეს გამოიყურება დიდი, და ეს იმუშავებს. და ჩვენ შესვენება out. იმ შემთხვევაში, თუ root მარცხენა null ან root უფლება იყო null, ჩვენ ამუშავება აქ. Root იქნება ტოლი null. ჩვენ მინდა დაარღვიოს ჩვენი loop, და ჩვენ გვინდა დაბრუნების ცრუ. ასე რომ, როდესაც ჩვენ შესვენება გარეთ loop, ვბრუნდებით ყალბი. ისევ და ისევ, ხოლო loop იყო სრულყოფილი აქ, რადგან ჩვენ არ ვიცით, როგორ დიდი ჩვენი ხე. ჩვენ შევეცადეთ დაწერა for loop, მაგრამ ჩვენ მიხვდა, თქვენ მოხვდით გაერკვნენ, თუ როგორ დიდი ეს არის ვადამდე. ჰო. აუდიტორია: თუ ეს არ იყო ორობითი ძებნა ხე, ეს იქნება რეალური math-y დაწერა iteratively, არა? მსგავსად, თუ ეს იყო ხე, მაგრამ არ არის აუცილებელი - ასე რომ, ეს არ იყო ყველა პატარა მარცხენა, და ყველა დიდი უფლება. ეს იქნება მართლაც რთული to iterate მას, არა? ჩვენ გვინდა, რომ გადავარჩინოთ, რა იყო ადრე on ხე და დაბრუნდეს, და პერსონალის იგრძნობა. JASON HIRSCHHORN: თუ ეს არ იყო ორობითი ძებნა ხე, თუ ეს იყო უბრალოდ ხე და რამ არ იყო დალაგებულია მსგავსი - და ჩვენ მიხვდა, ადრე, როდესაც ანა გვეხმარებოდა, რომ რაც მას დახარისხებული გვეხმარება ბევრი - ჩვენ უნდა, დიახ, ყოველთვის შეინახე სად ვიყავით ადრე. მაგრამ იქ შეიძლება ბევრი სად ვიყავით previouslys. იქ შეიძლება ბევრი მშობელი კვანძების. ალბათ საუკეთესო გზა ამის, რომ უნდა შევინარჩუნოთ უბიძგებს რამ გადატანა რამდენიმე ტიპის დასტის ან რიგიდან. თქვენ არასოდეს არ უნდა კოდექსს იმიტომ, რომ ეს რთული პრობლემაა. მაგრამ თქვენ დააყენებს ზოგიერთი რამ გადატანა დასტის ან მდგომ და შემდეგ პოპ მათ off და მაშინ შეაფასებს მათ. და შემდეგ ზოგიერთი სხვა რამ, სადაც თქვენ რეალურად აყენებს კვანძების და შემდეგ შექმნა, და შემდეგ ძებნის მეშვეობით რომ. ეს შეიძლება იყოს საუკეთესო გზა ამის გაკეთება. OK, რაიმე შეკითხვები ამ პრობლემას? აუდიტორია: ეს არის დაკავშირებული შენიშვნა. ჩვენ უნდა შეადაროთ ტირაჟი ჯერ განთავსების hash მაგიდები, ორობითი ძებნის ხეები, et cetera? JASON HIRSCHHORN ალბათ. მოდით გავაკეთოთ, რომ მართლაც სწრაფად. აწარმოებს დრო hash table - რა არიან სხვები? ორობითი ხე? აუდიტორია: Link სიებში. JASON HIRSCHHORN: OK, მოდით ჩანართით. რა არის დიდი O of ჩასმა on hash მაგიდასთან? რა ვარაუდები თქვენ მიღების? აუდიტორია: თქვენ ჩასმის დროს დასაწყისში ლინკი სიაში. JASON HIRSCHHORN ალბათ პირველი ვარაუდი არის ის, რომ არ არსებობს შეჯახება. თუ არ არსებობს შეჯახება, მაშინ ჩასმის დროს არის ერთი. თუ არსებობს შეჯახება, და თქვენ აკეთებს ცალკე chaining და ჩასმა დასაწყისში ბმული სია, მაშინ ჩასმა ასევე მუდმივი. თუ თქვენ აკეთებთ hash მაგიდა, მაგრამ თქვენ აქვს სხვადასხვა მეთოდი საქმე ერთად შეჯახება, რა განსხვავებული მეთოდი? რა არის განსხვავებული მეთოდი საქმე შეჯახება მოხდა hash მაგიდასთან? აუდიტორია: ხაზოვანი პროგრამირების. JASON HIRSCHHORN: ხაზოვანი პროგრამირების. ამიტომ, ჩვენ ვაპირებთ, რომ შევინარჩუნოთ ეძებს მომდევნო ღია ადგილზე. ეს არ არის მუდმივი ჩასმის დროს. თქვენ შეიძლება უნდა გაიაროს მთელი მაგიდა, ისე, რომ შეიძლება დიდი O of n. ჰო. აუდიტორია: სხვა შემთხვევაში უბრალოდ chaining? JASON HIRSCHHORN: ჩვენ ცალკე chaining. ეს იყო პირველი. სწორედ ლინკი სიაში. ლამაზი სახელია ცალკე chaining. ეს შეიძლება იყოს ნებისმიერი ტიპის სიაში სტრუქტურა ჩვენ არ უნდა გავაკეთოთ ლინკი სიაში. ასე რომ კიდევ ერთხელ, ჩასმის შესახებ hash table შეიძლება იყოს მუდმივი დრო. რაც შეეხება ჩასმა წლის stacker მდგომ? აუდიტორია: არ არის, რომ მუდმივი? JASON HIRSCHHORN: ეს არის მუდმივი დრო. თქვენ უბრალოდ უბიძგებს მას. OK. Insertion, რა იყო სხვა პირობა? On ლელო? რა არის დიდი O ჩანართი on ლელო? აუდიტორია: სიგრძე არის მუდმივი. სიგრძე გრძელი - ხანგრძლივობა სიტყვა თქვენ ჩასმა. JASON HIRSCHHORN: უკაცრავად? დაველოდოთ, რა არ მესმის? თქვენ თქვით - რა ვთქვა? რა იყო თქვენი პასუხი, Marcus? აუდიტორია: ხანგრძლივობა სიტყვა თქვენ ჩასმა in გმირები, ვთქვათ, ის ხასიათი ცდილობენ. JASON HIRSCHHORN: OK, ასე რომ, ხანგრძლივობა სიტყვა. ჩვენ დავდებთ იმის ვარაუდი, რომ ეს სიმებიანი პერსონაჟების. თქვენ თქვით, რაღაც განსხვავებული, თუმცა. თქვენ თქვით, სიგრძით გრძელი სიტყვა. აუდიტორია: ეს მხოლოდ მუდმივი, არა? JASON HIRSCHHORN: რატომ ეს იქნება მუდმივად? აუდიტორია: Like, თუ თქვენ იყენებთ დიდი O ნოტაცია, მაშინ იგი არ განსხვავება რაოდენობის შესახებ, რაც უკვე ცდილობენ. JASON HIRSCHHORN: ასე რომ ჩვენ გვინდა ამბობენ, რომ ეს მუდმივი დრო. ეს არის მუდმივი ჩასაგდები და ეს იმიტომ, რომ ეს იდეა - ამბობენ, რომ ჩვენ სიტყვა, რომელიც არის 45, ან სიტყვა, რომ 60, რომელიც აქვს მუდმივი ნომერი. და ეს უბრალოდ უნდა დაემატოს მუდმივი დრო. პრაქტიკაში, თუმცა, ეს არ იქნება, რა თქმა უნდა, ხდება ერთი millisecond, მაგალითად. მაგრამ ჩვენ ვიტყოდი დიდი O არის მუდმივი ცდილობენ. და რომ მისი ყველაზე დიდი უპირატესობა. რაც შეეხება Insertion into ბმული სიაში? უბრალოდ generic, დახარისხებული ლინკი სიაში? ჰო. აუდიტორია: მე მქონდა კითხვა. ტესტი, რომ ისინი ოდესმე გვეკითხებიან ჩასმის დროს, რომ ოთხი ნაბიჯები, ან რამე? ან უბრალოდ - როცა ამბობენ, რომ ჩასმის დროს არის ერთი, რომ მხოლოდ იმას ნიშნავს მუდმივ დრო? JASON HIRSCHHORN: Yeah, ისინი ყოველთვის ვთხოვ, არის დიდი O of n? დიდი O of log n? N კვადრატში მუდმივი. ეს არის მართლაც ერთადერთი ვინც თქვენ უნდა იცოდეთ. რაც შეეხება ჩასაგდები გადატანა დალაგებულია ლინკი სიაში? აუდიტორია: მე მქონდა კითხვა - კითხვა - JASON HIRSCHHORN: რა არის პასუხი ამ კითხვაზე, თუმცა? აუდიტორია: დაველოდოთ, რა ვთხოვო? JASON HIRSCHHORN: რა არის დიდი O of ჩასმის შევიდა დახარისხებული ლინკი სიაში? აუდიტორია: One? არ დაველოდოთ, არ დაველოდოთ, n. JASON HIRSCHHORN: N. გარდა ბმული სიაში. და რა იყო თქვენი შეკითხვა? აუდიტორია: ასე რომ წერთ o of k ან o of 1 - JASON HIRSCHHORN: Oh. მინდა დაწერა o 1, ალბათ. იქ იყო ერთი სხვა მონაცემები სტრუქტურა ეს იქნებოდა კარგი. ხე, ორობითი ძებნა ხე. რა ჩასმის შესახებ ორობითი ძებნა ხე? აუდიტორია: შესვლა. JASON HIRSCHHORN: მაშ, რა არის ყველაზე ცუდი საქმე ორობითი ძებნა ხე? ასე რომ, თუ ჩვენ არ დაიწყოს 5 და ყველა ნომერი მეტია 5, მაშინ გვაქვს 5, 7, 9, 11, et cetera. ამ შემთხვევაში, ეს, ძირითადად, მხოლოდ ლინკი სიაში, და ჩვენ უნდა ჩაწეროთ ყველა გზა დასასრულს. ასე რომ, ეს დიდი O of n. ეს შეიძლება იყოს ჩვენი უარეს შემთხვევაში on ორობითი ძებნა ხე. ცხადია, თქვენ ვერასოდეს ააშენებს ორობითი ძებნა ხე 5 შუა, იცის, 5 იქნებოდა იყოს ყველაზე დაბალი ნომერი. მაგრამ ეს შეიძლება იყოს, თუ თქვენ დაწყებული ნულიდან. ნებისმიერი შეკითხვა ამ სანამ გადაადგილება სხვა კითხვა? ეს იყო კარგი კითხვაა. მინდა იცოდეს, დიდი O of - აუდიტორია: რა ძებნას იმ ოთხი? JASON HIRSCHHORN: აუცილებლად ჩვენ არ ეძებს და დახარისხება. ჩვენ გავაკეთეთ ყველა იმ ალგორითმები, მარჯვნივ. დაველოდოთ, იყო, რომ Quiz 1? იყო, რომ დაფარული - არც თქვენ უკვე გაქვთ, რომ კითხვა Quiz 1? დიდი O runtime ორობითი ძებნა, Insertion დალაგების, bubble sort? აუდიტორია: Yeah. JASON HIRSCHHORN თუ ჰქონდა, რომ კითხვა Quiz 0, შანსი თქვენ არ იგივე ზუსტი კითხვას Quiz 1. შეიძლება მაინც კარგი იცოდეს იმ. თქვენ უნდა იმედია იცით gh უკვე. მაგრამ სხვა ლოგარითმული runtimes ალბათ კარგი ვიცი. რამ, რაც არ იყო დაფარული Quiz 0. როგორც ყველა ამ ოპერატორების ეს აბსტრაქტული მონაცემთა ტიპები. OK, მოდით გადაადგილება. ეს ერთი უნდა იყოს საკმაოდ სწრაფი. და ეს არის ახალი ენა არ გვაქვს რეალურად კოდირებული ადრე. ეს არის საკითხი, ეკითხება კოდექსში PHP. ასე მიიჩნევენ PHP მასივი ქვემოთ. დაწერეთ PHP ან / და HTML კოდები ასეთი, რომ შედეგები ორი სვეტი მაგიდასთან TFs სახელები და სახლები. თქვენ არასოდეს კეთდება ეს ადრე, ეს კონკრეტული პრობლემა. მაგრამ ეს უნდა იყოს ძალიან ნაცნობი რა გააკეთეთ თქვენ პრობლემა მითითებული 7. ასე რომ, მე მოხარული იქნება დადებს თქვენ იქნება სთხოვა კოდექსის რაღაც PHP რომ ძალიან ჰგავს ის, რაც თქვენ გააკეთა პრობლემა მითითებული 7. პირველ რიგში, array არ არის, რომ კონკრეტული. რა ტიპის array არის ეს? აუდიტორია: ასოციაციური. JASON HIRSCHHORN: ეს ასოციაციურ მასივში. და რა სხვაობაა ასოციაციურ მასივში და ობიექტი? აუდიტორია: ობიექტი მასივი აქვს ინდექსი რიცხვებით და ასოციაციურ მასივში არის მაჩვენებელი სიმებიანი, ან რამე მაგდაგვარს. JASON HIRSCHHORN: So მასივი ობიექტების ექნება მაჩვენებლები რიცხვებით, მაგრამ ობიექტს გააჩნია სფეროებში. მას აქვს იმ სფეროებში სახელები, როგორიცაა სახელი, სახლი, სტუდენტი. გაქვთ იდეა? აუდიტორია: Well, ასოციაციურ array არის PHP, არა? და ობიექტი არის JavaScript? JASON HIRSCHHORN: პატიოსნად, არ არსებობს რეალური განსხვავება შორის. ორივე სტრიქონები, როგორც გასაღებები, და შეგიძლიათ ძირითადად არაფერი, როგორც ღირებულება. სხვადასხვა ენებზე მოვუწოდებთ ერთი რამ ასოციაციურ მასივში, ერთი რამ ობიექტი. ასე რომ, პატიოსნად, არსებობს რეალური განსხვავება, მაგრამ არსებობს რა თქმა უნდა ზოგიერთი სინტაქსური განსხვავებები ორ. ჰო. აუდიტორია: ასე რომ ობიექტი ასევე კოდირებული ქვეშ hood როგორც hash table, მაშინ? JASON HIRSCHHORN: რას ნიშნავს, კოდირებული ქვეშ hood? აუდიტორია: გვითხრეს, რომ ასოციაციური array იყო ტექნიკურად hash მაგიდასთან. ამიტომ არის ობიექტი, ასევე ტექნიკურად hash მაგიდასთან? JASON HIRSCHHORN: მე არ ვაპირებ ამ კითხვაზე პასუხის გაცემა. მე დაუბრუნდეთ თქვენ რომ. მაგრამ მე არ ვფიქრობ, რომ არც იმ იგრძნობა. მაგრამ, ნებისმიერ შემთხვევაში, ასოციაციურ მასივში და ობიექტი, ზოგადად, ადამიანი გამოიყენებს იმ თვალსაზრისით interchangeably. ამ შემთხვევაში, cool ნაწილი თქვენ შეგიძლიათ გამოიყენოთ გასაღებები. Strings როგორც გასაღებები, ვიდრე უბრალოდ მარტივი ნომრები. ასე რომ, მე უკვე საუბარი ამ awhile. იმედია, ზოგიერთ ადამიანს აქვს მიღებული დაიწყო ეს. ჩვენ ვაპირებთ დავწეროთ ზოგიერთი PHP და HTML კოდი, ისეთი, რომ ჩვენ კიდევ ორი ​​სვეტი მაგიდა TFs სახელები და სახლები. OK, მე ასევე მინდა header ზედიზედ ამ მაგიდასთან. ასე რომ, მე ვაპირებ, რომ მიიღოთ სწორი ამ. ჩვენ ვაპირებთ შეიტანოს, ახალი, და ჩვენ ვაპირებთ - OK. როგორ დავიწყო მაგიდასთან? რა არის tag, მიხეილი, დაიწყოს მაგიდასთან? აუდიტორია: მაგიდა. JASON HIRSCHHORN: მაგიდა. და თუ მე გახსნა tag, რა სხვა მჭირდება? აუდიტორია: A ხელმძღვანელი? ან, ვფიქრობ, კლასი. JASON HIRSCHHORN: ასე რომ, ბოდიში. ვივარაუდოთ, რომ ჩვენ უკვე დაწერილი doctab, HTML, ყველა რომ პერსონალი. მაგრამ თუ მე გახსნა ამ მაგიდაზე აქვს, რა სხვაგან მე უნდა დაწეროთ? განთავსების შეამოწმოს HTML? აუდიტორია: დახუროს იგი. JASON HIRSCHHORN: დახურვა აქვს. როგორ შემიძლია დაწერა ახლო მაგიდა tag? აუდიტორია: Dot slash მაგიდასთან. JASON HIRSCHHORN: Slash მაგიდა, დიდი. ალბათ აზრი დაწერა ორივე იმ ერთად, რადგან თქვენ მოხვდით გავაკეთოთ. OK, თუ მინდა header ზედიზედ, როგორ ვწერ header ზედიზედ სათაურები? აუდიტორია: ეს ნაკლებად ვიდრე 10 hr ახლო - TR, yeah. JASON HIRSCHHORN: TR? აუდიტორია: მაშინ იგივე, slash, yeah. JASON HIRSCHHORN: OK, და მომეცი ორი სვეტით. აუდიტორია: T D? JASON HIRSCHHORN: OK. მინდა ორი სვეტით. ნიშნავს თუ არა ეს მომეცი ორი სვეტით? რამდენი სვეტების არის ეს? ერთი. მოდით დააკოპირეთ და ჩასვით ეს. ასე რომ, რეალურად, on ვიქტორინა, ყველა ეს კოდი რომ ჩვენ წერილობითი აქამდე იყო რეალურად მოცემული თქვენ. მაგრამ თქვენ უნდა ალბათ მაინც ვიცი, როგორ დაწერა. ჰო. აუდიტორია: თქვენი სახლი არის შორის. JASON HIRSCHHORN: Boom. ის უნდა წავიდეს იქ, არა? კარგი ზარი. ასე რომ კიდევ ერთხელ, ყველა ეს კოდი არის რეალურად მოცემული თქვენ ფაქტობრივი ვიქტორინა. მაგრამ ეს fun დაწერა, და თქვენ უნდა იცოდეს, თუ როგორ დაწერა. ასე რომ ეს არის, სადაც თქვენ უნდა რათა დაიწყოს თქვენი კოდი. რას უნდა დაწეროთ აქ? უკაცრავად, მე უნდა შეიცვალოს სახელი ამ ფაილის. ასე რომ, ჩვენ გადაარჩინა იგი. HTML ფაილი, არ. PHP ფაილი. ეს ყველაფერი იმას ნიშნავს, არაფერი წელს. PHP ფაილი. ასე რომ, ჩვენ წელს. HTML ფაილი. რა არის პირველი რამ, მე უნდა დავწერო? მინდა რამდენიმე PHP კოდის HTML. აუდიტორია: PHP, ისევე როგორც სხვა სტაფილოს და კითხვის ნიშნის PHP, არა? JASON HIRSCHHORN: Great. და როგორ შემიძლია დასრულდება, რომ? აუდიტორია: With კითხვის ნიშნის. JASON HIRSCHHORN: ეს არის დიდი. ეს არის ის, პირველ რიგში, მე უნდა, თუ მინდა დააყენოს გარკვეული PHP კოდი აქ. აუდიტორია: მეგონა. PHP ფაილის შეეძლო HTML. JASON HIRSCHHORN: ჰო. A. PHP ფაილი შეიძლება გარკვეული HTML და იქნება ნაჩვენები. ეს იყო ჩემი ცუდი. მე უბრალოდ ცდილობს mimic ის, რაც იყო ვიქტორინა. OK, უკაცრავად აღრეული თქვენ. დიახ, practice.HTML. ახლა ჩვენ ვაპირებთ დააყენა ზოგიერთი PHP კოდი შემოსული რა არის პირველი ხაზი PHP კოდი მე უნდა დავწერო? მე ვაპირებ გავლა ამ მასივი და იგი მაგიდასთან. ჰო. აუდიტორია: თქვენ შეგიძლიათ გამოიყენოთ განთავსების H მარყუჟი ან ამისთვის loop. JASON HIRSCHHORN: OK, რა გინდათ გამოიყენოთ? აუდიტორია: მე გამოიყენოს for loop. , და მაშინ ამის გაკეთება დოლარის ნიშანი i უდრის 0 მძიმით დოლარი მოაწეროს i ნაკლები 2. და შემდეგ მძიმით i dollar მოაწეროს i plus plus. JASON HIRSCHHORN: როგორ თქვენ იცით, რომ იყენებთ 2? აუდიტორია: იმიტომ, რომ იქ იყო ორი ასოციაციური მასივით ფარგლებში დიდი ასოციაციურ მასივში. JASON HIRSCHHORN: ასე დიდი რამ არ არის ასოცირებული მასივი. დიდი რამ უბრალოდ ჩვეულებრივი მასივი. მაგრამ შენ მართალი ხარ, არსებობს ორი ასოციაციური მასივით შიგნით ჩვენი დიდი მასივი. ამიტომ, თქვენ იყენებთ ორი. ვგრძნობ არასასიამოვნო ვთქვათ, რომ ისინი 2 ისე რა გზა დაწერა გარეშე ვთქვათ, რომ ისინი 2? აუდიტორია: [INAUDIBLE]? JASON HIRSCHHORN: OK, თუ როგორ წერთ, რომ? აუდიტორია: Foreach დოლარის ნიშანი TFS ან მოსწონს დოლარის ნიშანი tf. JASON HIRSCHHORN: OK, ასე რომ, თითოეული TFS როგორც TFS, მინდა, ახლა ერთხელ, ჩემი მაგიდა. ასე რომ, ვისაც შეუძლია მომეცი შემდეგი ხაზი კოდი? აუდიტორია: Print, ხოლო შემდეგ ციტატები, bracket tr ბოლოს bracket, ბოლომდე გაცემა. ბოლოს ფრჩხილებში, მძიმით. JASON HIRSCHHORN: OK, და რა, რომ აპირებს? აუდიტორია: იგი აპირებს ამბობენ, ახალი row. ის აპირებს დააყენოს tag ახალი row. JASON HIRSCHHORN: მარჯვენა, ამ PHP, როგორიცაა ჩვენ ვისაუბრეთ ადრე - ამ PHP აპირებს შეფასდება, და შემდეგ ის აპირებს ამობეჭდოთ ამ ფაილს მაგიდა tow, და შემდეგ რომ HTML შეფასდება. ჩვენ უბრალოდ გადაწერა ამ HTML გვქონდა აქ. ჰო. აუდიტორია: [INAUDIBLE]? JASON HIRSCHHORN: უკაცრავად? ეს უფლება აქ. Fall 2012. არ შევხედოთ პასუხი, მოდით გადაწყვიტოს ერთად. ასე რომ, ჩვენ ბეჭდვა გრაფაში. ასე რომ თქვენ ალბათ სვინგის რამ. რა არის შემდეგი ხაზი კოდი ჩვენ უნდა დაწეროთ? Assam, მომეცი შემდეგი ხაზი კოდი. აუდიტორია: თქვენ უნდა tf სახელი. Tf ღია ფრჩხილებში ბრჭყალებით ასახელებს დახურული ფრჩხილებში. JASON HIRSCHHORN: მომეცი მათი სახელი. აუდიტორია: თქვენ უნდა ბეჭდვა, რომ. [INTERPOSING VOICES] JASON HIRSCHHORN: OK, როგორ შემიძლია ბეჭდვა ეს? [INTERPOSING VOICES] JASON HIRSCHHORN: მე დაკარგული რაღაც არის. რა მე ვერ გავიგე? აუდიტორია: თქვენ უნდა დოლარის ნიშანი. JASON HIRSCHHORN: რა სხვაგან მე ვერ გავიგე? ყველა ჩვენ ბეჭდვითი ჯერჯერობით tr. აუდიტორია: დახურვა tr შემდეგ. JASON HIRSCHHORN: ასე რომ, ჩვენ გვჭირდება დახურვა tr შემდეგ. ვინც ხედავს, რასაც ჩვენ გვყოფნის on line 16? ჰო, ანა. აუდიტორია: თქვენ უნდა გახსნა td და curly აფრთხილებს. JASON HIRSCHHORN: სად ჩვენ დააყენა curly აფრთხილებს? აუდიტორია: Around the tf სახელი. JASON HIRSCHHORN: Like ეს? აუდიტორია: Yeah. და შემდეგ დახურეთ td. JASON HIRSCHHORN: Like რომ? აუდიტორია: თქვენ უნდა ორმაგი ბრჭყალი ნიშნების შემდეგ curly აფრთხილებს? JASON HIRSCHHORN: Right აქ? არა, თქვენ არ. ასე რომ, სწორედ. ჰო. აუდიტორია: ასე რომ სხვაობაა, რომ და encatenating ერთად წერტილების, თუ თქვენ იყენებთ dots, ნეტავ უნდა ჰქონდეს ორმაგი ბრჭყალი ნიშნები, მაშინ dot, მაშინ dot - JASON HIRSCHHORN სწორი. ასე რომ, რას ამბობდა იქ საბოლოო გზა წერა ამ იგრძნობა. რა გაერთიანების ოპერატორი in JavaScript? აუდიტორია: A პლუს ნიშანი. თქვენ დაავიწყდა დააყენა curly გაუწიოს უკან. JASON HIRSCHHORN: Great. და არსებობს კიდევ ერთი ხაზი კოდი დაკარგული. ვის შეუძლია მომეცი ბოლო ხაზი კოდი ჩვენ აკლია? აუდიტორია: Just ზუსტად იგივე რამ, მხოლოდ სახლის ნაცვლად სახელწოდება. დიდი JASON HIRSCHHORN: Great. და თქვენი სინტაქსი არის ზუსტად სწორი მიღების რამ ასოცირებული მასივი. ასე რომ, ფაქტობრივი ვიქტორინა, თქვენ ფაქტობრივად, სანამ აქ. ასე რომ, ეს კოდი გადაეცა თქვენ. ყველა თქვენ უნდა დაწეროთ იყო ეს ოთხი ხაზები და მახსოვს დახურვა მაგიდაზე აქვს. თქვენ ბიჭები რეალურად გააკეთა ყველა რომ და სხვა. ჰო. აუდიტორია: ასე რომ, ეს იქნება ფუნქციურად იგივე თუ უბრალოდ ჰქონდა, რომ ყველა ერთი დიდი ბეჭდვითი ზარი, არა? და შემდეგ უბრალოდ concatenated ის, et cetera? JASON HIRSCHHORN: Like რომ? აუდიტორია: Yeah. ეს უბრალოდ არ გამოიყურება კარგი თუ იყო ეძებს მას, როდესაც თქვენ ინსპექტირების ელემენტის თქვენს საიტზე, არა? JASON HIRSCHHORN: ვეთანხმები. იმ შემთხვევაში, თუ მე დატვირთული ამ ვებგვერდზე, რომ ვიყო ნახოს ეს PHP კოდი, ოდესმე? აუდიტორია: არა JASON HIRSCHHORN: არა და რეალურად, მე არ. აუდიტორია: ეს არ არის HTML, არა? ასე, რომ თქვენ შესაძლოა - JASON HIRSCHHORN: ასე რომ, ეს PHP აკეთებთ შეფასდება სერვერის მხარეს. PHP ყოველთვის ფასდება სერვერის მხარეს, ასე რომ, თქვენ არასდროს ნახოს PHP კოდი. აუდიტორია: მაგრამ ნეტავ შეძლებს ვნახოთ შედეგი ანაბეჭდები. JASON HIRSCHHORN: Right. და ეს გულწრფელად შეიძლება არ ამას ყველა ხაზი. ეს შეიძლება დააფორმატე ლამაზად თქვენ, ან შეიძლება დააყენა ის ერთ ხაზი. გაურკვეველია. მაგრამ დიახ, კარგი წერტილი. აუდიტორია: როგორ მოვიდა იქ ტექსტი შეფერადება for ნებისმიერ PHP ბრძანებები? რადგან მახსოვს ხედავს, რომ. JASON HIRSCHHORN: იმის გამო, რომ ის . HTML ფაილი აქ ზედა. აქ თქვენ წასვლა. აუდიტორია: თუ გავაკეთეთ საწყის მეთოდი ერთად მარყუჟების, უფლება, თუ ჩვენ სასურველი წვდომის TFS, რომ ჩვენ გავაკეთოთ TFS bracket 0 bracket, მაშინ [INAUDIBLE]? JASON HIRSCHHORN თქვენ აკეთებთ - ასე რომ თქვენ განაცხადა, რომ მარყუჟის, თქვენ ყველაფერს გააკეთებს დოლარის ნიშანი TFS bracket 1 ან მე, მარჯვნივ. ან დოლარის ნიშანი i დახურვა bracket და მაშინ კვადრატული ფრჩხილი ორმაგი შეთავაზებები, yeah. OK, კარგი. ჩვენ კიდევ ერთი სწრაფი ერთი. შვიდი წუთი, ასე რომ მინდა წასვლა ეს ერთი. ეს არის კიდევ ერთი მაგალითი. ჩვენ ახლა სრულიად სხვა ენაზე. ჩვენ გვაქვს გარკვეული HTML კოდი. ეს ერთგვარი პატარა ეკრანზე, მაგრამ მინდა გაეცნონ ეს ნამდვილად სწრაფად, და შეიძლება ვინმე მითხრათ, თუ მე ვტვირთავ ამ გვერდზე, რა მინდა ვხედავ? აღწერეთ ყველაფერი ამ ვებგვერდზე. ნოეს? რას ვხედავ? აუდიტორია: Code ფრონტის ბოლოს Google ერთად შეგრძნებას ტექსტი და submit ღილაკს. JASON HIRSCHHORN: რა რომ ღილაკს ვთქვა? აუდიტორია: შეტანა. Oh, ძებნა. მე ბოდიში. JASON HIRSCHHORN: ეს ვიტყოდი ძებნა. გახსოვდეთ, სახელი. რას ვიყენებთ სახელი? ამ სახელის ატრიბუტი, რაც რომ გამოიყენება? [INTERPOSING VOICES] აუდიტორია: ეს მისი სახელი როდესაც ის აირჩიეთ? JASON HIRSCHHORN: ეს შეიძლება იყოს. მაგრამ რა ჩვენ ზოგადად ვხედავ - რატომ ჩვენ ვაძლევთ ამ სახელის მდგომ? რატომ ვხედავ, რომ? ჰო. აუდიტორია: აბსოლიტურად რომ გახდეს ინდექსი სუპერ გლობალური ცვლადი? JASON HIRSCHHORN: ჰო, ზოგადად, როდესაც ამ ფორმით წარმოადგინოს და შემდეგ, სადაც იქნებოდა ეს წარუდგინოს? რა გვერდი? ნოეს, რა გვერდი რომ ამ წარუდგინოს? აუდიტორია: მე არ ვარ დარწმუნებული. JASON HIRSCHHORN: სად შეიძლება ჩვენ შეგვიძლია ვიპოვოთ იგი? სად პოულობენ რა გვერდი მას წარუდგენს? რა ხაზი კოდი? აუდიტორია: ფორმა action. JASON HIRSCHHORN: ზუსტად. მოქმედება. ასე რომ, ეს წარუდგენს ძებნის გვერდი. Backslash ძებნა. ასე რომ, სწორედ. რა მეთოდით? აუდიტორია: ოჯახის. JASON HIRSCHHORN: ოჯახის. ზუსტად. ასე რომ, ჩვენ წაიკითხოს ეს. ეს იქნება ფორმით. თქვენ ზუსტად უფლება. ორი რამ სახით, ტიტული გვერდზე და ზევით იქნება Google. ასე რომ, აქ არის ორი საკითხი უნდა გასცე პასუხი ამ გვერდზე. თუ ეს HTML ცხოვრობს ამ ნახვა და მომხმარებლის საშუალებებით bug ამ ტექსტი სფეროში სწორედ აქ, რა URL იქნება მომხმარებლის მოძიების თავად საფუძველზე წარდგენის ფორმა? ასე რომ, ჩვენ ამ უფლების აქ. მე ვაპირებ დაბრუნდეს ამ გვერდზე, თუმცა. დავწერ ამ პირველი ნაწილი. შეგიძლიათ ყველამ ნახოთ აქ? OK, Mario, ფიქრობთ თუ არა? რა გვერდი? აუდიტორია: backslash ძებნა. JASON HIRSCHHORN: მე ვაპირებ ქვევით აქ. OK, backslash ძებნის კითხვა მარკა q ტოლია bug. ვინმეს აქვს განსხვავებული მოსაზრება? ჰო. ასე როგორ უნდა მიიღონ ეს? ისე, ჩვენ ვნახეთ ადრე. და თქვენ გამოვიდა ამ ადრე. თუ მართალი, ნოეს, რომ აქცია გვეუბნებოდა, რა გვერდი ჩვენ ვაპირებთ. ჩვენ ასევე ვიცით, რა მეთოდით. ვაკეთებთ მისაღებად. და განსხვავება GET და POST არის ის, რომ კიდევ მონიტორები URL და პოსტ არ. ასე რომ, თუ მე დავწერე პოსტი უფლება იქ მეთოდი, რა იქნება განსხვავებული? აუდიტორია: ეს იქნებოდა უბრალოდ იყოს slash ძებნა. JASON HIRSCHHORN: ეს იქნებოდა უბრალოდ უნდა slash ძებნა. არაფერი აქ მოხდებოდა. არამედ იმიტომ, რომ ეს არის კიდევ, URL გამოისახება შემდეგნაირად. პირველი, ჩვენ ვხედავთ, კითხვის ნიშნის და ჩვენ ვხედავთ, სახელი და მნიშვნელობა. ამბობენ, რომ იქ იყო ერთი სხვა ველში და მე მას სახელი r და მე შეყვანის ღირებულება, მუხლუხა. რა ეს ახლა გამოიყურებოდეს? მე კიდევ ერთი ტექსტური ველი, მე ვაძლევ დასახელება r და ღირებულება მუხლუხა. აუდიტორია: მას შემდეგ, ბარი ნეტავ ampersand მუხლუხა. JASON HIRSCHHORN: ეს არ ampersand. აუდიტორია: ან უბრალოდ რასაც და სიმბოლო. JASON HIRSCHHORN: Yeah, no. თუ მართალი ვიყავი, არასწორია. ასეთი გ. აუდიტორია: Caterpillar. რ შეადგენს მუხლუხა, უკაცრავად. JASON HIRSCHHORN: არის არ r იქ? აუდიტორია: არა, არ არის. JASON HIRSCHHORN: ჩვენ ვსაუბრობთ შესახებ, რომ მას შემდეგ კლასი. ეს არის ზუსტად ის უფლება. ასე რომ, და სწორია. და მაშინ შეიძლება ბევრი ამ, და ისინი ყველა უნდა concatenated ერთად რომ და. ასე რომ, სწორედ. არსებობს კიდევ ერთი შეკითხვა. ესკიზის ამ HTML-ის DOM, დაწყებული დოკუმენტთან. ჩვენ შეგვიძლია გავაკეთოთ, რომ ორი წუთის განმავლობაში. ჩვენ გავაკეთებთ აქ. მე დავუბრუნდეთ ამ ვებგვერდზე. OK, ჩვენ დავიწყებთ დოკუმენტი. რა არის შემდეგი? ასე რომ, როდესაც თქვენ კითხულობთ მეშვეობით - აუდიტორია: HTML. JASON HIRSCHHORN: HTML შემდეგ. ჩვენ ვაპირებთ წავიდეთ tag მიერ tag. რა შემდეგ HTML? აუდიტორია: Head. JASON HIRSCHHORN: Head. რა არის მას შემდეგ, რაც ხელმძღვანელი? აუდიტორია: სათაური. JASON HIRSCHHORN: სათაური. და სათაური აქვს ღირებულება Google, მაგრამ მე არ ვაპირებ წერენ, რომ ახლა. OK, სადაც ამჯამად ორგანო წავიდეთ? აუდიტორია: ასევე მოდის გამორთვა HTML. JASON HIRSCHHORN: ზუსტად. Body მოდის off აქ. ამჯამად ყველას ვხედავ, რატომ ეს საქმე? თქვენ უნდა ალბათ შეძლებს გაერკვნენ ამ გარეთ, ძალიან, მაშინაც კი, თუ მე არ მაქვს ამ ლამაზი წანაცვლება. წანაცვლება სახის იძლევა ის დაშორებით, მაგრამ ხედავთ, რომ ხელმძღვანელი tag აქვს დაიხურა, რაც იმას ნიშნავს, რომ ჩვენ, ალბათ, ვერ ქვევით აქ. ჩვენ უნდა დაბრუნდეს რაც სწორი იყო, სანამ უფროსი tag, ან რომ. ჩვენ კი ხელმძღვანელი ტეგით. და ქვეშ ორგანოს მიდის ფორმით. Under ფორმა, არსებობს ორი საშუალებებით. OK. რომ ყველა მე მივიღე. Quiz 1 არის ხვალ. მე ასე აღფრთოვანებული თქვენ ბიჭები. ეს იქნება აფეთქება. თუ თქვენ გაქვთ - აუდიტორია: [ტაში] JASON HIRSCHHORN: Oh შეჩერება, შეწყვეტა. მაგრამ არა, მე kidding. თუ თქვენ გაქვთ რაიმე შეკითხვები, მარჯვენა შემდეგ სექციაში, მე ვიქნები გარეთ. იმ შემთხვევაში, თუ თქვენ გაქვთ რაიმე შეკითხვები დღეს, მოგერიდებათ მოვუწოდებთ, ელ gchat, გადამზიდავი Pigeon ჩემთვის. წარმატებებს გისურვებთ ხვალ. აქვს შესანიშნავი მადლიერების შესვენების თუ მე ვერ ვხედავ, სანამ შემდეგ. და მე ვხედავ თქვენ შემდეგ მადლიერების სამშაბათს ჩვენი საბოლოო განყოფილების პარტიის ოდესმე. აუდიტორია: [INAUDIBLE]. JASON HIRSCHHORN: Great. OK, მე ვხედავ, რომ თქვენ ბიჭები მომავალ კვირის ან ორი კვირის განმავლობაში. და წარმატებას გისურვებთ ხვალ.