1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Παίζει μουσική] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID Malan: Αυτό είναι CS50, και αυτή είναι η αρχή της εβδομάδας οκτώ. 5 00:00:13,350 --> 00:00:17,510 Και είμαστε τόσο ενθουσιασμένοι να καλωσορίσω πίσω, μεγάλη έκπληξη, τη δική του Ραμόν CS50 6 00:00:17,510 --> 00:00:22,160 Galvan, μια ανερχόμενη ανώτερος ο οποίος έχει δαπάνες τους τελευταίους αρκετούς μήνες 7 00:00:22,160 --> 00:00:26,190 από τον Ιούλιο στο Λος Άντζελες, στο Χόλιγουντ, κυριολεκτικά εργάζεται πάνω σε ένα ολοκαίνουργιο τηλεόραση 8 00:00:26,190 --> 00:00:31,930 εκπομπή με τίτλο Αποικία, ο δημιουργός των οποίων είναι στην πραγματικότητα ο ίδιος στυπτηρία Χάρβαρντ. 9 00:00:31,930 --> 00:00:36,610 Και έτσι είμαστε πολύ ενθουσιασμένοι για να δείτε αυτό το Το ντεμπούτο του δικτύου ΗΠΑ εφέτος τον Ιανουάριο. 10 00:00:36,610 --> 00:00:40,370 Έτσι, μείνετε συντονισμένοι για αυτό, καθώς και για Ramon περισσότερα για τις επόμενες εβδομάδες. 11 00:00:40,370 --> 00:00:42,550 >> Γνωρίζουμε τώρα ότι το τέλος είναι κοντά. 12 00:00:42,550 --> 00:00:47,400 Και αυτό σημαίνει ότι δεν υπάρχει όλα αυτά πολύ αριστερά CS50, λυπημένος να πω. 13 00:00:47,400 --> 00:00:49,400 Έχουμε μόλις τρεις πρόβλημα σύνολα left-- υπάρχει 14 00:00:49,400 --> 00:00:52,510 πρόβλημα που six-- που είναι σε τα χέρια σας τώρα ή θα είναι σύντομα, 15 00:00:52,510 --> 00:00:56,080 αναμένεται αργότερα αυτό το week-- έχει ως στόχο να γεφυρώσει μας κόσμους της γραμμής εντολών, όπου 16 00:00:56,080 --> 00:00:59,450 έχουμε περάσει το μεγαλύτερο μέρος του χρόνου μας χρησιμοποιώντας C, και ο κόσμος του web προγραμματισμό. 17 00:00:59,450 --> 00:01:02,350 Λοιπόν, θα δείτε πολλές ιδέες δανείστηκε από το έργο γραμμή εντολών, 18 00:01:02,350 --> 00:01:04,560 αλλά και πολλά νέα και ενδιαφέρουσες ιδέες 19 00:01:04,560 --> 00:01:07,929 που επίσης πρόκειται να είναι σχετικός για κινητές εφαρμογές και για την τεχνολογία, 20 00:01:07,929 --> 00:01:10,470 γενικότερα, με την οποία οι τύποι είναι όλοι εξοικειωμένοι σήμερα 21 00:01:10,470 --> 00:01:12,090 για φορητούς υπολογιστές και τα τηλέφωνα και τα παρόμοια. 22 00:01:12,090 --> 00:01:15,220 >> Έτσι θα εφαρμόσει όχι μια ιστοσελίδα, ή μια ιστοσελίδα 23 00:01:15,220 --> 00:01:17,620 per se, αλλά ένα πραγματικό web server. 24 00:01:17,620 --> 00:01:21,590 Θα γράψει το υπόλοιπο του web server γραμμένο σε C, των οποίων ο σκοπός της ζωής 25 00:01:21,590 --> 00:01:25,410 είναι να λαμβάνει αιτήσεις HTTP, τα εν λόγω εικονική φακέλους κρατάμε μιλάμε 26 00:01:25,410 --> 00:01:29,780 περίπου, και στην πραγματικότητα να αντιδράσουν, είτε με ορισμένες στατικές content-- σαν μια κουκίδα HTML 27 00:01:29,780 --> 00:01:32,310 αρχείου ή μια τελεία ή JPEG οποιοσδήποτε άλλος αριθμός των αρχείων, 28 00:01:32,310 --> 00:01:37,070 ή ακόμα και ένα αρχείο PHP το οποίο σας web διακομιστής πρόκειται να ερμηνεύσει την PHP 29 00:01:37,070 --> 00:01:38,332 κώδικα και φτύσει τα αποτελέσματα. 30 00:01:38,332 --> 00:01:40,540 Τώρα, έχουμε να σας παρέχεται με αρκετά ένα κομμάτι του πλαισίου 31 00:01:40,540 --> 00:01:43,100 για it-- πράγματι η Κώδικα Διαχείρισης του Δικτύου για το πρόβλημα 32 00:01:43,100 --> 00:01:47,496 που έξι είναι πάνω από 1.000 γραμμές, ένα πολλά από τα οποία είναι τα σχόλια, να fair-- 33 00:01:47,496 --> 00:01:49,370 αλλά αυτό είναι πραγματικά σημαίνει να είναι μια ευκαιρία 34 00:01:49,370 --> 00:01:52,570 να λερώσετε τα χέρια σας καταδύσεις σε ένα αρκετά μεγάλο έργο 35 00:01:52,570 --> 00:01:55,570 ότι έχουμε πολύ συγκεκριμένα σκαλισμένα κομμάτια για σας, 36 00:01:55,570 --> 00:01:59,046 έτσι ώστε πραγματικά όταν βγείτε και CS50 εισάγετε τον πραγματικό κόσμο του προγραμματισμού 37 00:01:59,046 --> 00:02:00,920 και θέλουν να ανακατεύομαι σε οποιοσδήποτε αριθμός των έργων, 38 00:02:00,920 --> 00:02:03,253 θα έχετε πολύ μεγαλύτερη άνεση κατεβάζοντας κάποια πηγή 39 00:02:03,253 --> 00:02:05,020 κώδικας, μερικές ανοικτού κώδικα προβάλει στο διαδίκτυο, 40 00:02:05,020 --> 00:02:08,174 και καταδύσεις και κάνοντας αλλαγές που βλέπετε την τακτοποίηση. 41 00:02:08,174 --> 00:02:11,340 Πρόβλημα που επτά θα είναι περίπου κάνοντας τη δική web-based εφαρμογή σας 42 00:02:11,340 --> 00:02:14,140 ότι χρειάζεται δυναμική είσοδο και παράγει δυναμικό παραγωγής υπό μορφή 43 00:02:14,140 --> 00:02:16,920 μιας ιστοσελίδας etrade.com-όπως. 44 00:02:16,920 --> 00:02:20,800 Και το πρόβλημα που οκτώ θα επικεντρωθεί ακόμα άλλη γλώσσα γνωστή ως JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Εν τω μεταξύ, η τελική έργο είναι στον ορίζοντα. 46 00:02:24,170 --> 00:02:26,800 Το λεγόμενο προ-πρόταση οφείλεται σε μια εβδομάδα από σήμερα. 47 00:02:26,800 --> 00:02:29,930 Προ-proposal-- σύμφωνα με τις προδιαγραφές, που βρίσκεται στο website-- CS50 της 48 00:02:29,930 --> 00:02:33,260 είναι ένα όμορφο περιστασιακή ευκαιρία για μπορείτε να στείλετε ένα e-mail αρκετά περιεκτική 49 00:02:33,260 --> 00:02:35,170 στη διδασκαλία τους συναδέλφους σας απλά για να τον ειδοποιήσουν 50 00:02:35,170 --> 00:02:38,250 ή της για το τι σκέφτεστε, να τον ή την χρησιμοποιούν ως αντηχείο. 51 00:02:38,250 --> 00:02:40,980 Και έχουν μια λογική check-- αν σκέφτεστε 52 00:02:40,980 --> 00:02:43,210 για το δάγκωμα μακριά πάρα πολύ πολύ ή ίσως πολύ λίγο, 53 00:02:43,210 --> 00:02:46,480 ή ίσως δεν έχετε ιδέα απολύτως και θέλουν να συμμετάσχουν σε μια συνομιλία. 54 00:02:46,480 --> 00:02:48,480 >> Στη συνέχεια είναι μια πρόταση και αναφορά της κατάστασης, 55 00:02:48,480 --> 00:02:51,860 η λεγόμενη CS50 hackathon εδώ Cambridge για το Χάρβαρντ και το Γέιλ φοιτητών 56 00:02:51,860 --> 00:02:52,362 όσο. 57 00:02:52,362 --> 00:02:54,320 Το τελικό σχέδιο της εφαρμογή είναι κατόπιν. 58 00:02:54,320 --> 00:02:59,290 Και τότε ένα CS50 δίκαιη εδώ, στο Cambridge, καθώς και άλλη μία στο New Haven. 59 00:02:59,290 --> 00:03:02,500 Έτσι την πρόταση, ρίξτε μια ματιά στο η ιστοσελίδα για τα στοιχεία αυτά. 60 00:03:02,500 --> 00:03:06,530 >> Αλλά το πιο συναρπαστικό, πάρα πολύ, είναι ένα ευκαιρία να λερώσετε τα χέρια σας, 61 00:03:06,530 --> 00:03:09,350 και το μυαλό σας ανοικτό σε μια ολόκληρη σωρό θέματα και εργαλεία 62 00:03:09,350 --> 00:03:12,920 και τεχνικές που είναι βοηθητικές με πυρήνα διδακτέα ύλη του μαθήματος, 63 00:03:12,920 --> 00:03:14,810 αλλά παρ 'όλα αυτά σχετίζονται. 64 00:03:14,810 --> 00:03:18,400 Και, επίσης, πέτρες υπέροχο να περπατήσει κάνει πραγματικά δροσερό τελικό έργα που 65 00:03:18,400 --> 00:03:22,020 υπερβαίνουν κατά πολύ το υλικό που έχουμε καλύπτονται επίσημα στο πρόβλημα θέτει ή σε διάλεξη. 66 00:03:22,020 --> 00:03:24,446 Έτσι, πηγαίνετε στην ιστοσελίδα CS50 για το σύνολο ρόστερ των σεμιναρίων. 67 00:03:24,446 --> 00:03:26,070 Εάν δεν έχετε δηλώσει ακόμα, ότι το πρόστιμο. 68 00:03:26,070 --> 00:03:29,860 Προχωρήστε και να εγγραφείτε ακόμα και εμείς θα συνέχεια με μια ζωντανή σύνδεση συνεχούς ροής, 69 00:03:29,860 --> 00:03:31,844 η ημέρα και η ώρα είναι στην ιστοσελίδα. 70 00:03:31,844 --> 00:03:33,760 Και όλα θα είναι καταγράφονται και να θέσει σε απευθείας σύνδεση 71 00:03:33,760 --> 00:03:35,800 αν δεν μπορείτε να κάνετε το συγκεκριμένες ημέρες και ώρες. 72 00:03:35,800 --> 00:03:39,380 >> Όσο για το τι βρίσκεται μπροστά thereafter-- καλά, Φυσικά, υπάρχει η hackathon CS50. 73 00:03:39,380 --> 00:03:43,560 Αυτή η φωτογραφία, ανάκληση, από την εβδομάδα μηδέν λαμβάνεται περίπου τέσσερις ένα βράδυ στην διάρκεια των προηγούμενων ετών. 74 00:03:43,560 --> 00:03:46,900 Η εύλογη CS50, η οποία και πάλι θα πραγματοποιηθεί και στις δύο πόλεις. 75 00:03:46,900 --> 00:03:49,760 Και τότε, μόνο να φυτέψει η σπόροι, έστω κι αν ακόμα 76 00:03:49,760 --> 00:03:54,080 έχουν ένα μήνα συν στα αριστερά του εξαμήνου, εάν θα θέλατε να επανενωθούν με τη διδασκαλία του CS50 77 00:03:54,080 --> 00:03:56,770 προσωπικό, και θέλετε να ξεκινήσετε σκέφτεστε να γίνετε CA, 78 00:03:56,770 --> 00:03:59,550 ή τη διδασκαλία τους συναδέλφους, γνωρίζουμε ότι θα αρχίσουμε να μιλάμε περισσότερο γι 'αυτό 79 00:03:59,550 --> 00:04:00,630 αργότερα αυτό το εξάμηνο. 80 00:04:00,630 --> 00:04:03,470 Αλλά απεικονίζεται εδώ το μεγαλύτερο μέρος της ομάδας του τρέχοντος έτους. 81 00:04:03,470 --> 00:04:06,950 >> Και έτσι, PHP-- και ήμουν τόσο λυπημένος την περασμένη εβδομάδα ότι [? Allyse?] Ευγενικά 82 00:04:06,950 --> 00:04:09,370 πήγε στην προσπάθεια του να πάρει μας αυτά τα υπέροχα σκηνικά 83 00:04:09,370 --> 00:04:11,720 ότι δεν καταλήγουν να χρησιμοποιούν, έτσι ώστε να πραγματικά μόνο φαινόταν χαζό 84 00:04:11,720 --> 00:04:15,160 ότι είχαμε ένα φτυάρι για να κάθεται εδώ όλα τελευταία ημέρα Τετάρτη, και ένα μικρό κουτάλι. 85 00:04:15,160 --> 00:04:17,709 Αλλά αυτό ήταν μεταφορική μου τρόπο προσπαθεί να ζωγραφίσει 86 00:04:17,709 --> 00:04:21,600 η εικόνα του γιατί είμαστε μετάβαση από C σε μια γλώσσα όπως η PHP. 87 00:04:21,600 --> 00:04:25,480 Και το ίδιο θα μπορούσε να ειπωθεί και για οποιαδήποτε αριθμός των languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 ή τσαμπιά από others-- αλλά ότι σε C, για παράδειγμα, γράφοντας ένα πρόγραμμα σε C 89 00:04:31,270 --> 00:04:34,050 μπορεί να είναι τυπικά, όπως λαμβάνοντας ένα κουτάλι σαν αυτό 90 00:04:34,050 --> 00:04:36,770 και σκάψιμο μια τρύπα στο έδαφος, στην άμμο ή χώμα. 91 00:04:36,770 --> 00:04:39,770 PHP σας επιτρέπει να λάβει πολύ μεγαλύτερο δαγκώματα έξω από το πρόβλημα, 92 00:04:39,770 --> 00:04:42,842 γράφοντας πολύ λιγότερο κώδικα χρησιμοποιώντας ένα πολύ μικρότερο εργαλείο, 93 00:04:42,842 --> 00:04:45,050 επειδή υπάρχει τόσο πολύ περισσότερο λειτουργικότητα συναρμολογήθηκαν σε. 94 00:04:45,050 --> 00:04:47,633 >> Τώρα, αν ήμασταν πραγματικά δραματική, θα είχαμε κάτι να φτυάρι 95 00:04:47,633 --> 00:04:48,760 εδώ, αλλά έτσι είναι. 96 00:04:48,760 --> 00:04:51,370 Εν τω μεταξύ, ο άλλος αλληγορία καταλήξαμε 97 00:04:51,370 --> 00:04:53,770 Είναι, βέβαια, θα μπορούσατε χρησιμοποιήστε κάτι σαν κλειδί 98 00:04:53,770 --> 00:04:56,610 να καταλήξουν σε κάτι σαν ένα καρφί. 99 00:04:56,610 --> 00:04:58,980 Αλλά φυσικά, το δικαίωμα εργαλείο για τη χρήση θα 100 00:04:58,980 --> 00:05:01,360 να είναι όχι τόσο το γλώσσα που ονομάζεται C-- 101 00:05:01,360 --> 00:05:03,590 και τώρα απλά ενοχλημένος [? Sanders,?] Κατά πάσα πιθανότητα, 102 00:05:03,590 --> 00:05:07,890 θα το διορθώσουμε later-- έτσι το κατάλληλο εργαλείο για να χρησιμοποιήσει συχνά 103 00:05:07,890 --> 00:05:09,640 Δεν πρόκειται να είναι Αυτό το εργαλείο χαμηλότερο επίπεδο. 104 00:05:09,640 --> 00:05:13,720 Και πράγματι, C δεν είναι μια γλώσσα που οι περισσότεροι από εσάς πρόκειται ποτέ να χρησιμοποιήσει, 105 00:05:13,720 --> 00:05:15,590 ή θα πρέπει αναγκαστικά να το χρησιμοποιήσετε ξανά. 106 00:05:15,590 --> 00:05:18,350 >> Και στην πραγματικότητα, ένα μικρό secret-- η μοναδική φορά 107 00:05:18,350 --> 00:05:23,160 Μπορώ να χρησιμοποιήσω τον εαυτό μου C είναι λίγο πολύ μεταξύ Σεπτέμβριο και Δεκέμβριο κάθε φθινόπωρο 108 00:05:23,160 --> 00:05:23,870 εξάμηνο. 109 00:05:23,870 --> 00:05:25,790 Και αυτό γιατί εμείς να το χρησιμοποιήσετε ως μια ευκαιρία 110 00:05:25,790 --> 00:05:27,852 για να διδάξει τις βασικές αρχές του προγραμματισμού, 111 00:05:27,852 --> 00:05:29,810 και μαζί με αυτό τον υπολογιστή βασικές αρχές της επιστήμης, των δεδομένων 112 00:05:29,810 --> 00:05:32,435 δομές, οι αλγόριθμοι και η like-- αλλά πολύ γρήγορα θα σας 113 00:05:32,435 --> 00:05:35,010 δείτε τώρα ότι η σύνταξη και οι ιδέες στις οποίες βασίζεται C 114 00:05:35,010 --> 00:05:37,530 είναι τόσο υπέροχα να μεταφερθούν σε πιο σύγχρονη 115 00:05:37,530 --> 00:05:41,130 υψηλότερου επιπέδου γλώσσες, όπως PHP και Python και Perl και Java 116 00:05:41,130 --> 00:05:46,750 και Objective-C-- στην πραγματικότητα, δεν είναι τόσο πολύ Στόχος-C-- αλλά Swift, οι νεότερες 117 00:05:46,750 --> 00:05:50,010 Γλώσσες που πολλοί από εσάς θα τότε ανακατεύομαι με εσάς τελικό σχέδιο. 118 00:05:50,010 --> 00:05:55,070 >> Έτσι, χωρίς άλλη καθυστέρηση, ας πραγματικότητα χρησιμοποιήσετε το PHP για την επίλυση ορισμένων προβλημάτων. 119 00:05:55,070 --> 00:06:00,230 Υπενθυμίζεται ότι νωρίς, τελευταία εβδομάδα, εμείς απλά χρησιμοποιείται CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 γράψαμε ένα μικρό πρόγραμμα dinky ότι μόλις είπε, "Hello world". 121 00:06:02,990 --> 00:06:05,680 Και τότε εγώ θα αποθηκευτεί σε ένα αρχείο που ονομάζεται hello.php. 122 00:06:05,680 --> 00:06:07,280 Και τότε έτρεξα αυτή την εντολή. 123 00:06:07,280 --> 00:06:08,080 >> Και γιατι? 124 00:06:08,080 --> 00:06:09,900 Στα αγγλικά, τι συμβαίνει εδώ; 125 00:06:09,900 --> 00:06:12,760 Τι έκανα όταν Έτρεξα αυτή την εντολή; 126 00:06:12,760 --> 00:06:13,405 >> Ναι; 127 00:06:13,405 --> 00:06:16,572 >> Κοινό: Υπάρχει κάποια λειτουργία PHP ότι διαβάζει τι in-- αντιλαμβάνεται ότι. 128 00:06:16,572 --> 00:06:19,696 DAVID Malan: Καλή, υπάρχει κάποια λειτουργία PHP-- και επιτρέψτε μου να γίνω πιο συγκεκριμένος, 129 00:06:19,696 --> 00:06:21,810 υπάρχει ένα πρόγραμμα που ονομάζεται PHP, γνωστός και ως 130 00:06:21,810 --> 00:06:25,872 Ένας διερμηνέας, που καταλαβαίνει τα περιεχόμενα του hello.php, 131 00:06:25,872 --> 00:06:27,830 και ερμηνεύει πάνω προς τα κάτω, αριστερά προς τα δεξιά, 132 00:06:27,830 --> 00:06:29,590 και κάνει ό, τι λένε αυτές οι εντολές. 133 00:06:29,590 --> 00:06:33,320 Οι εντολές σε hello.php, φυσικά, Είναι ακριβώς προμηθεύονται code-- λειτουργίες 134 00:06:33,320 --> 00:06:35,750 και μεταβλητών και βρόχους και τα παρόμοια, ότι εμείς οι ίδιοι 135 00:06:35,750 --> 00:06:37,460 έχουν αρχίσει να γράφει στην PHP. 136 00:06:37,460 --> 00:06:40,240 >> Αλλά σε αντίθεση με C, η οποία είναι ένα μεταγλωττισμένο γλώσσα, 137 00:06:40,240 --> 00:06:42,810 PHP μπορείτε απλά να το γράψω, και να το εκτελέσετε. 138 00:06:42,810 --> 00:06:46,420 Μπορείτε να παραλείψετε αυτό το βήμα μεσάζων της μετατρέποντας το σε μηδενικά και μονάδες, 139 00:06:46,420 --> 00:06:47,790 και στη συνέχεια εκτελείται. 140 00:06:47,790 --> 00:06:50,510 Και έτσι αυτό είναι ένα θετικό στοιχείο της αυτό; 141 00:06:50,510 --> 00:06:52,690 Γιατί παρακάμπτοντας το βήμα; 142 00:06:52,690 --> 00:06:55,238 Γιατί πιο σύγχρονες γλώσσες τείνουν να παραλείψετε αυτό το βήμα; 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Ποιο ήταν το όφελος; 145 00:07:01,220 --> 00:07:02,080 >> Ή απλά διαισθητικά; 146 00:07:02,080 --> 00:07:04,200 Ακόμα κι αν δεν έχετε γράψει πολλά PHP πριν, 147 00:07:04,200 --> 00:07:07,210 τι είναι ωφέλιμο για να μην την κατάρτιση τον κωδικό σας νομίζετε; 148 00:07:07,210 --> 00:07:08,520 Κανένα? 149 00:07:08,520 --> 00:07:09,610 Δεν διάπραξη; 150 00:07:09,610 --> 00:07:11,350 Ξύσιμο το κεφάλι σας; 151 00:07:11,350 --> 00:07:12,614 Ναι. 152 00:07:12,614 --> 00:07:13,600 >> Κοινό: Πιο δυναμικό. 153 00:07:13,600 --> 00:07:14,683 >> DAVID Malan: Πιο δυναμική; 154 00:07:14,683 --> 00:07:16,032 Τι εννοεις? 155 00:07:16,032 --> 00:07:17,000 >> Κοινό: [δεν ακούγεται] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID Malan: Εντάξει, καλά, έτσι ανάλογα με την είσοδο, 158 00:07:22,390 --> 00:07:23,470 δεν χρειάζεται να το υπολογίσουν κάθε φορά. 159 00:07:23,470 --> 00:07:24,990 Και είναι πραγματικά, όπως απλό όσο αυτό that-- 160 00:07:24,990 --> 00:07:26,990 είναι το σημείο της συνεχιζόμενης να καταρτίζουν τον κωδικό σας; 161 00:07:26,990 --> 00:07:29,480 Αυτό είναι μόνο ένα βήμα που είναι making-- αυτό απαιτείται, 162 00:07:29,480 --> 00:07:31,900 για το παρελθόν πολλές εβδομάδες, δύο φορές πιο πολλά βήματα 163 00:07:31,900 --> 00:07:33,820 όπως ακριβώς τρέχει το πρόγραμμά σας. 164 00:07:33,820 --> 00:07:36,940 Ήταν χρήσιμο να δει ότι εσείς δείτε κάποια μηνύματα λάθους και ούτω καθεξής, 165 00:07:36,940 --> 00:07:38,720 αλλά είναι ακόμα ακριβώς ένα ενοχλητικό βήμα. 166 00:07:38,720 --> 00:07:41,810 >> Και έτσι οι προγραμματιστές συνειδητοποίησε την πάροδο του χρόνου, γιατί να μην το κάνουμε εμείς 167 00:07:41,810 --> 00:07:45,327 αρχίσετε να γράφετε γλώσσες που δεν κάνουν Χρειάζομαι ότι αρκετά μηχανικό βήμα, 168 00:07:45,327 --> 00:07:47,160 έτσι ώστε να μπορεί να γράψει μόνο κωδικό σας και να τρέξει. 169 00:07:47,160 --> 00:07:48,920 Αλλά ποια ήταν η τιμή ότι είδαμε πληρώσαμε 170 00:07:48,920 --> 00:07:50,910 την περασμένη εβδομάδα, με ένα συγκεκριμένο παράδειγμα; 171 00:07:50,910 --> 00:07:51,650 Ναι; 172 00:07:51,650 --> 00:07:52,370 >> Ταχύτητα. 173 00:07:52,370 --> 00:07:54,690 Έτσι [? τι είναι;] διερμηνείς λίγο πιο αργά, 174 00:07:54,690 --> 00:07:57,330 από το ότι τα μηδενικά και αυτοί ωραίο και γρήγορο για έναν υπολογιστή 175 00:07:57,330 --> 00:08:00,070 να καταλάβει, γιατί η Επεξεργαστή Intel, ή ό, τι είναι, 176 00:08:00,070 --> 00:08:03,070 μόνο καταλαβαίνει τι συμβαίνει σχετικά με αυτά τα πρότυπα των bits. 177 00:08:03,070 --> 00:08:05,370 Εκτιμώντας διερμηνέα είναι ένα πρόγραμμα που πραγματικά 178 00:08:05,370 --> 00:08:07,980 πρέπει να διαβάσει την πηγή Ascii κώδικας που έχετε γράψει, 179 00:08:07,980 --> 00:08:12,700 και να το μετατρέψει, να το πω έτσι, ή καταλάβω πώς το μετατρέπει τελικά 180 00:08:12,700 --> 00:08:13,525 σε μηδενικά και μονάδες. 181 00:08:13,525 --> 00:08:15,650 Γι 'αυτό παίρνει λίγο κομμάτι από ένα χτύπημα απόδοσης. 182 00:08:15,650 --> 00:08:16,858 Γι 'αυτό είναι ένα κομμάτι από ένα trade-off. 183 00:08:16,858 --> 00:08:21,570 Τώρα, αν το κάνουμε αυτό εδώ, επιτρέψτε μου να να προχωρήσει και να κάνει ένα παράδειγμα ως εξής. 184 00:08:21,570 --> 00:08:26,610 Αν πάω εδώ, νέο αρχείο, θα πάω για να σώσει αυτό πάλι είναι hello.php. 185 00:08:26,610 --> 00:08:31,450 Και τώρα είμαι πρόκειται να πάει μπροστά και να πει, "εκτύπωση hello world" - 186 00:08:31,450 --> 00:08:35,130 και υπενθυμίζουν ότι μπορώ να χρησιμοποιήσω εκτύπωσης, δεν το κάνω πρέπει να χρησιμοποιούν το έντυπο-F. Και τώρα εδώ κάτω, 187 00:08:35,130 --> 00:08:42,039 αν το κάνω PHP των hello.php, huh-- μου δεν φαίνεται να έχουν ερμηνεύσει. 188 00:08:42,039 --> 00:08:43,412 Τι έκανα λάθος; 189 00:08:43,412 --> 00:08:44,710 >> Κοινό: Οι γωνιώδεις βραχιόλια. 190 00:08:44,710 --> 00:08:47,015 >> DAVID Malan: Ναι, θα πρέπει να έχετε η γωνία βραχίονα επάνω στην κορυφή. 191 00:08:47,015 --> 00:08:49,390 Έτσι είναι το είδος των ενοχλητικό, αλλά μπορείτε να το συνηθίσεις γρήγορα. 192 00:08:49,390 --> 00:08:53,500 Αν έχω να γράψω κώδικα PHP, Ι γενικά πρέπει να πει το πρόγραμμα, 193 00:08:53,500 --> 00:08:56,950 ή να πείτε στον διερμηνέα, hey PHP, εδώ έρχεται κάποια κώδικα PHP. 194 00:08:56,950 --> 00:09:00,440 Και στη συνέχεια για το καλό μέτρο, θα ήθελα Κλείστε αυτό δεν με αυτό, αλλά μάλλον 195 00:09:00,440 --> 00:09:03,740 με γωνία μόνο ερωτηματικό βραχίονα, έτσι ώστε τώρα εδώ κάτω, 196 00:09:03,740 --> 00:09:06,840 αν τρέχω αυτό και πάλι, τώρα Έχω πάρει το επιθυμητό αποτέλεσμα. 197 00:09:06,840 --> 00:09:09,820 >> Τώρα ας κάνουμε μια μικρή βελτιστοποίησης, ακριβώς έτσι ώστε να έχετε δει πριν. 198 00:09:09,820 --> 00:09:14,040 Αυτό είναι το είδος των ενοχλητικό ότι Πρέπει να τρέξει PHP χώρο hello.php, 199 00:09:14,040 --> 00:09:16,060 επειδή στο παρελθόν I θα μπορούσε απλά γράψτε dot κάθετος 200 00:09:16,060 --> 00:09:17,560 όνομα του προγράμματος, το οποίο είναι το είδος της Νίκαιας. 201 00:09:17,560 --> 00:09:19,420 Είναι το είδος του μια καλύτερη εμπειρία του χρήστη. 202 00:09:19,420 --> 00:09:24,160 >> Έτσι αποδεικνύεται μπορείτε να το κάνετε αυτό στην PHP με την following-- μου 203 00:09:24,160 --> 00:09:28,780 μπορεί να χρησιμοποιήσει αυτό το αρκετά κρυπτική ξόρκι στην κορυφή εδώ, 204 00:09:28,780 --> 00:09:31,740 η οποία είναι γενικά ονομάζεται δουλεία, όπου αυτό είναι μια απότομη σύμβολο, 205 00:09:31,740 --> 00:09:34,270 να το πω έτσι, αυτό είναι ένα κτύπημα ή ένα θαυμαστικό. 206 00:09:34,270 --> 00:09:38,490 Και αυτό τώρα είναι η διαδρομή προς ένα πρόγραμμα σε ένα τυπικό σύστημα Linux και 207 00:09:38,490 --> 00:09:41,500 καλείται το περιβάλλον, ή env. 208 00:09:41,500 --> 00:09:43,920 Και αυτό line-- μακρά ιστορία short-- μία γραμμή μόνο 209 00:09:43,920 --> 00:09:48,710 λέει, hey υπολογιστή, βρείτε την PHP διερμηνέα για μένα στο περιβάλλον, 210 00:09:48,710 --> 00:09:50,610 βρείτε στη μνήμη σας, να το πω έτσι. 211 00:09:50,610 --> 00:09:54,130 >> Και τι είναι ωραίο τώρα, είναι ότι αν πάω εδώ κάτω, 212 00:09:54,130 --> 00:09:57,750 Μπορώ να κάνω dot κάθετος γεια dot php, or-- χμμ. 213 00:09:57,750 --> 00:09:59,000 Δεν έχετε δικαίωμα πρόσβασης. 214 00:09:59,000 --> 00:10:02,350 Λοιπόν, θα δείτε ακόμα περισσότερα από αυτό με το πρόβλημα που επτά, αν 215 00:10:02,350 --> 00:10:04,060 δεν έχουν ήδη, με δικαιώματα. 216 00:10:04,060 --> 00:10:06,510 Αποδεικνύεται ότι χρειάζομαι να εκτελέσει την εντολή αυτή 217 00:10:06,510 --> 00:10:10,779 που ονομάζεται [? chamod;] για την αλλαγή mode-- ένα συν x hello.php. 218 00:10:10,779 --> 00:10:13,820 Χρειάζομαι [δεν ακούγεται] αυτό ένα πρόσθετο βήμα, το οποίο λέει ο υπολογιστής μου, 219 00:10:13,820 --> 00:10:16,400 κάνουν hello.php εκτελέσιμο. 220 00:10:16,400 --> 00:10:21,310 Και τώρα δείτε τι happens-- dot κάθετο hello.php, τρέχει μόνο. 221 00:10:21,310 --> 00:10:23,310 Δεν χρειάζεται να καθορίσετε ο διερμηνέας πια. 222 00:10:23,310 --> 00:10:26,680 Και εγώ μπορεί να το κάνει ακόμα πιο όμορφη, ακόμα, αν μπορώ να μετονομάσω αυτό το πράγμα. 223 00:10:26,680 --> 00:10:30,570 Αν μου hello.php προχωρήσουμε σε απλά Hello-- τόσο την ανακοίνωση στην επάνω αριστερή γωνία, 224 00:10:30,570 --> 00:10:32,860 το όνομα του προγράμματος είναι Πράγματι, τώρα μόλις Γεια σας. 225 00:10:32,860 --> 00:10:37,300 Τώρα μπορώ να κάνω να φαίνεται σαν ένα πρόγραμμα C, ακόμη κι αν είναι γραμμένο σε PHP-- 226 00:10:37,300 --> 00:10:39,210 ή οποιοσδήποτε αριθμός ειλικρινά των άλλων γλωσσών. 227 00:10:39,210 --> 00:10:41,480 >> Έτσι οριακή βελτίωση, καμία λειτουργική διαφορά. 228 00:10:41,480 --> 00:10:44,460 Αλλά είναι λίγο περιέργεια τώρα, έτσι ώστε να μπορείτε να γράψετε προγράμματα 229 00:10:44,460 --> 00:10:48,989 σε οποιαδήποτε γλώσσα, και ο χρήστης δεν πρέπει να γνωρίζουν ή με νοιάζει τι είναι αυτά. 230 00:10:48,989 --> 00:10:51,030 Λοιπόν, ας ρίξουμε μια ματιά σε ένα πιο αναγκάζοντας παράδειγμα τώρα 231 00:10:51,030 --> 00:10:52,850 ότι εγώ χτυπημένη εκ των προτέρων. 232 00:10:52,850 --> 00:10:54,955 Και αυτό ονομάζεται quote.php. 233 00:10:54,955 --> 00:10:56,740 Και είναι διαθέσιμα στο διαδίκτυο. 234 00:10:56,740 --> 00:11:00,299 Και παρατηρήσετε ότι είναι αρκετά short-- αλλά είναι ένα πρόγραμμα γραμμής εντολών που είναι 235 00:11:00,299 --> 00:11:02,840 πρόκειται να κοιτάζω προς τα πάνω τις τιμές των μετοχών για μένα, το οποίο είναι πραγματικά συμβαίνει 236 00:11:02,840 --> 00:11:04,230 να είναι συναφές με το πρόβλημα που επτά. 237 00:11:04,230 --> 00:11:05,396 >> Ας δούμε λοιπόν τι κάνω. 238 00:11:05,396 --> 00:11:08,640 Στην κορυφή Έχω την ανοικτό στήριγμα ερωτηματικό PHP. 239 00:11:08,640 --> 00:11:13,372 Στη συνέχεια, έχω αυτή τη γραμμή, οπότε είμαι απαιτεί ένα αρχείο που ονομάζεται functions.php-- 240 00:11:13,372 --> 00:11:15,080 θα πάμε να δούμε περισσότερα για αυτό σε λίγο, 241 00:11:15,080 --> 00:11:17,340 αλλά αυτό είναι σαν Γ έκδοση απότομη περιλαμβάνουν, 242 00:11:17,340 --> 00:11:19,090 Που θες να πας περιλαμβάνουν ένα άλλο αρχείο. 243 00:11:19,090 --> 00:11:23,720 PHP καλεί το απαιτούν, αν και έχει επίσης μια λειτουργία περιλαμβάνουν. 244 00:11:23,720 --> 00:11:26,861 Και αποδεικνύεται ότι είναι function.php απλά κάτι που έγραψα πριν το μάθημα. 245 00:11:26,861 --> 00:11:29,860 Έβαλα στον ίδιο κατάλογο, επειδή Ήθελα να συνυπολογίσει κάποιο κώδικα 246 00:11:29,860 --> 00:11:31,800 ότι θα μπορούσαμε να θέλουμε να χρησιμοποιήσει αλλού. 247 00:11:31,800 --> 00:11:34,560 >> Εν τω μεταξύ, μπορείτε πιθανώς συμπεράνουμε τι συμβαίνει εδώ. 248 00:11:34,560 --> 00:11:39,200 Αυτό είναι λίγο διαφορετικό από C-- αλλά τι εννοώ με εξασφάλιση της σωστής χρήσης; 249 00:11:39,200 --> 00:11:41,180 Μετάφραση αυτό πιο τεχνικά. 250 00:11:41,180 --> 00:11:45,950 Κάτω από ποιες συνθήκες είμαι την παραίτηση από το πρόγραμμα, ή την έξοδο; 251 00:11:45,950 --> 00:11:47,074 Ναι; 252 00:11:47,074 --> 00:11:47,990 >> Κοινό: Όταν δεν έχετε δύο επιχειρήματα της γραμμής εντολών. 253 00:11:47,990 --> 00:11:49,480 >> DAVID Malan: Όταν δεν έχω με εντολή επιχειρήματα της γραμμής. 254 00:11:49,480 --> 00:11:52,396 Και να θυμάστε ότι ένας από αυτούς επιχειρήματα είναι το ίδιο το όνομα του προγράμματος. 255 00:11:52,396 --> 00:11:55,340 Και το δεύτερο θα είναι μια άλλη λέξη που πληκτρολογείτε μετά την προτροπή. 256 00:11:55,340 --> 00:11:57,460 Έτσι ακριβώς όπως η C, αυτό είναι ο τρόπος μου τον έλεγχο, 257 00:11:57,460 --> 00:12:00,022 έκανε ο χρήστης να συνεργάζονται και να εκτελέστε το πρόγραμμα, όπως είχα την πρόθεση; 258 00:12:00,022 --> 00:12:01,730 Τώρα, υπάρχει κάτι λίγο διαφορετικό 259 00:12:01,730 --> 00:12:04,020 με C-- πρώτα απ 'όλα έχουν αυτό το σύμβολο του δολαρίου, 260 00:12:04,020 --> 00:12:07,710 και τι κάνει ένα δολάριο υπογράφουν δηλώνουν στην PHP; 261 00:12:07,710 --> 00:12:08,440 Απλά μια μεταβλητή. 262 00:12:08,440 --> 00:12:11,731 Αυτό είναι all-- απλά μια μεταβλητή που ακολουθείται από Ό, τι θέλετε να το ονομάσετε πραγματικά. 263 00:12:11,731 --> 00:12:14,000 Παρατηρήστε ότι υπάρχει κάτι λείπει από το πρόγραμμα PHP μου, 264 00:12:14,000 --> 00:12:18,210 όπως ακριβώς έλειπε τελευταία εβδομάδα, έναντι C, το οποίο είναι αυτό; 265 00:12:18,210 --> 00:12:21,620 >> Μια τύπους, αλλά και κάτι άλλο. 266 00:12:21,620 --> 00:12:26,409 Δεν υπάρχει κάτι function-- κύρια λειτουργία. 267 00:12:26,409 --> 00:12:27,450 Δεν υπάρχει καμία κύρια λειτουργία. 268 00:12:27,450 --> 00:12:29,680 Μπορείτε απλά να αρχίσετε να γράφετε κωδικό σας, χωρίς να χρειάζεται 269 00:12:29,680 --> 00:12:32,790 να ανησυχείτε για ένα αρκετά αυθαίρετο συμβατικότητα της ονομασίας κάποια προεπιλογή 270 00:12:32,790 --> 00:12:33,880 Η κύρια λειτουργία. 271 00:12:33,880 --> 00:12:36,720 Έτσι arg C είναι ακριβώς πραγματικά μια καθολική μεταβλητή 272 00:12:36,720 --> 00:12:39,049 ότι ο διερμηνέας θέτει στη διάθεση μου. 273 00:12:39,049 --> 00:12:40,090 Τώρα, αυτό είναι ενδιαφέρον. 274 00:12:40,090 --> 00:12:41,140 Έτσι κοιτάζω προς τα πάνω τα πράγματα. 275 00:12:41,140 --> 00:12:43,370 Σύμβολο του δολαρίου των αποθεμάτων είναι σχετικά με την αριστερά, αυτό είναι μεταβλητό μου. 276 00:12:43,370 --> 00:12:45,120 Στη δεξιά πλευρά, υπάρχει προφανώς 277 00:12:45,120 --> 00:12:50,270 μια συνάρτηση σε PHP καλείται αναζήτησης που Περνώ τελευταία γραμμή εντολών μου 278 00:12:50,270 --> 00:12:51,902 επιχείρημα to-- ό, τι η λέξη είναι. 279 00:12:51,902 --> 00:12:53,610 Και θα δούμε πώς αυτό λειτουργεί σε μια στιγμή. 280 00:12:53,610 --> 00:12:55,380 >> Και στη συνέχεια, τέλος, είμαι αναφέρουν την τιμή. 281 00:12:55,380 --> 00:12:58,650 Είμαι εκτύπωση ενός μερίδιο της τάδε. 282 00:12:58,650 --> 00:13:02,082 Και να θυμάστε, αυτό είναι το τρόπο σε PHP-- έναν τρόπο PHP-- 283 00:13:02,082 --> 00:13:04,290 όπου δεν έχετε να κάνετε το σύμβολο του δολαρίου S πια. 284 00:13:04,290 --> 00:13:06,782 Μπορείτε να χρησιμοποιήσετε μόνο άγκιστρα και συνδέστε σε κάποια μεταβλητή. 285 00:13:06,782 --> 00:13:09,240 Δεν χρειάζεται να ανησυχείτε για χρησιμοποιώντας printf με τον ίδιο τρόπο. 286 00:13:09,240 --> 00:13:13,530 >> Και, παρεμπιπτόντως, όταν βάζετε μια μεταβλητή εσωτερικό του διπλά εισαγωγικά σαν αυτό, 287 00:13:13,530 --> 00:13:17,370 χρησιμοποιείτε ένα φανταχτερό τεχνική μεταβλητή που ονομάζεται παρεμβολή. 288 00:13:17,370 --> 00:13:20,380 Σημαίνει απλώς συνδέστε τη μεταβλητή εδώ. 289 00:13:20,380 --> 00:13:23,760 Και, παρεμπιπτόντως, κάποιοι από εσάς που έρχονται από άλλα περιβάλλοντα προγραμματισμού, 290 00:13:23,760 --> 00:13:26,960 δεν μπορείτε να χρησιμοποιείτε μονά εισαγωγικά γύρω από χορδές για να το κάνουμε αυτό. 291 00:13:26,960 --> 00:13:30,290 Θα πρέπει να χρησιμοποιήσετε διπλά εισαγωγικά για μεταβλητή παρεμβολή στην εργασία. 292 00:13:30,290 --> 00:13:32,740 Αλλιώς θα κυριολεκτικά δείτε τα άγκιστρα. 293 00:13:32,740 --> 00:13:34,500 >> Έτσι, τέλος, ας πάμε μπροστά και να τρέξει αυτό. 294 00:13:34,500 --> 00:13:36,690 Επιτρέψτε μου να κάνουν τις τελικές μου λίγο μεγαλύτερο. 295 00:13:36,690 --> 00:13:41,940 Επιτρέψτε μου να πάμε μπροστά και να τρέξει εσωτερικό του καταλόγου προσφορά μου. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? Είμαι;] [? προσφορά;] απόσπασμα PHP PHP τελεία, 297 00:13:46,950 --> 00:13:50,290 και Πάω να ψάξετε για κάτι όπως GOOG, η οποία είναι το σύμβολο ticker της, 298 00:13:50,290 --> 00:13:55,510 και ένα μερίδιο από τη νέα επωνυμία της, Αλφάβητο Inc, κοστίζει $ 717, από σήμερα. 299 00:13:55,510 --> 00:13:58,680 Εντάξει, αν θέλουμε να εκτελέστε ξανά, ο καθένας 300 00:13:58,680 --> 00:14:02,600 έχουν άλλη ταινία μετοχών θέλουν να κοιτάζω προς τα πάνω; 301 00:14:02,600 --> 00:14:06,770 >> Η Microsoft Νομίζω ότι είναι αυτό, MSFT-- $ 53. 302 00:14:06,770 --> 00:14:09,720 Νομίζω ότι το Yahoo είναι ίσως ότι. 303 00:14:09,720 --> 00:14:12,130 Και το Facebook είναι ότι. 304 00:14:12,130 --> 00:14:13,740 >> Λοιπόν, τι είναι αυτό το πρόγραμμα κάνει; 305 00:14:13,740 --> 00:14:16,306 Η μαγεία μοιάζει να είναι ενσωματωμένο στην εν λόγω λειτουργία αναζήτησης. 306 00:14:16,306 --> 00:14:17,430 Ας ρίξουμε μια γρήγορη ματιά. 307 00:14:17,430 --> 00:14:21,815 >> Αποδεικνύεται ότι δεν έρχεται με την PHP, είναι σε functions.php. 308 00:14:21,815 --> 00:14:23,690 Και εμείς δεν θα περάσει αυτό με μεγάλη λεπτομέρεια, 309 00:14:23,690 --> 00:14:28,040 αλλά παρατηρήσετε τη λέξη κλειδί εδώ είναι ότι στη γραμμή των έξι functions.php-- 310 00:14:28,040 --> 00:14:29,440 Έχω κυριολεκτικά να πω λειτουργία. 311 00:14:29,440 --> 00:14:31,050 Έχω να καθορίσετε το όνομα της λειτουργίας μου. 312 00:14:31,050 --> 00:14:34,330 Στη συνέχεια προσδιορίζει οποιοδήποτε επιχειρήματα, ή παραμέτρους, 313 00:14:34,330 --> 00:14:36,480 Θέλω η λειτουργία να take-- καμία τύπων. 314 00:14:36,480 --> 00:14:37,580 Και τότε θα την εφαρμόσουν. 315 00:14:37,580 --> 00:14:39,240 >> Και εγώ θα κύμα το χέρι μου στην εφαρμογή, 316 00:14:39,240 --> 00:14:42,115 δεδομένου ότι είναι σε αρκετά προχωρημένο στάδιο δικαιώματος τώρα, αλλά θα το δούμε και πάλι στην πραγματικότητα 317 00:14:42,115 --> 00:14:44,700 σε μια εβδομάδα στο πρόβλημα που επτά. 318 00:14:44,700 --> 00:14:47,490 Αλλά μπορώ να καθαρίσει αυτό επάνω, πάρα πολύ. 319 00:14:47,490 --> 00:14:49,590 Ι περιλαμβάνονται επίσης σε σημερινό κώδικα μια έκδοση 320 00:14:49,590 --> 00:14:52,340 της προσφορά, η οποία δεν έχει κανένα αρχείο PHP τελεία. 321 00:14:52,340 --> 00:14:57,270 Διότι αυτό είναι κατά πάσα πιθανότητα, η κορυφή του προγράμματος που ονομάζεται απλά παραθέτω; 322 00:14:57,270 --> 00:15:00,140 Ότι η λεγόμενη shebang-- η αρκετά κρυπτική ξόρκι 323 00:15:00,140 --> 00:15:04,590 που λέει βρείτε PHP και, στη συνέχεια, εκτελέσετε στον κώδικα μου εδώ. 324 00:15:04,590 --> 00:15:07,360 >> Εντάξει, έτσι ώστε να φέρνει μας όπου είχαμε μείνει 325 00:15:07,360 --> 00:15:09,560 τελευταία time-- έστω και με μερικά πιο προχωρημένα παραδείγματα. 326 00:15:09,560 --> 00:15:13,980 Οποιεσδήποτε ερωτήσεις μέχρι στιγμής περίπου PHP ή ό, τι κάνουμε; 327 00:15:13,980 --> 00:15:15,570 No-- εντάξει. 328 00:15:15,570 --> 00:15:16,180 Ναι; 329 00:15:16,180 --> 00:15:19,610 >> Κοινό: Μέσα από το Αρχεία HTML, κάντε you-- 330 00:15:19,610 --> 00:15:22,226 [? εσυ ?] [? απλά καλέστε;] α [δεν ακούγεται] PHP αρχείο; 331 00:15:22,226 --> 00:15:23,350 DAVID Malan: Καλή ερώτηση. 332 00:15:23,350 --> 00:15:26,070 Σε ένα πλαίσιο ιστού, το οποίο είμαστε κυριολεκτικά για τη μετάβαση σε, 333 00:15:26,070 --> 00:15:28,028 που δεν χρησιμοποιούν τη λεγόμενη shebang στην κορυφή, 334 00:15:28,028 --> 00:15:31,980 επειδή ο ιστός server-- συχνά πρόγραμμα που ονομάζεται Apache ή Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, ή οποιοσδήποτε αριθμός άλλο λογισμικό web server, 336 00:15:37,470 --> 00:15:40,636 ξέρει ότι όταν βλέπει ένα αρχείο dot PHP, ότι 337 00:15:40,636 --> 00:15:42,010 θα πρέπει να τρέξετε το διερμηνευτή σε αυτό. 338 00:15:42,010 --> 00:15:43,468 Δεν φαίνεται εκείνη τη πρώτη γραμμή. 339 00:15:43,468 --> 00:15:45,580 Έτσι, αυτή την πρώτη γραμμή τέχνασμα Είναι ακριβώς όταν είστε 340 00:15:45,580 --> 00:15:48,330 γράφοντας γραμμή εντολών programs-- πράγμα που δεν θα το κάνουμε σούπερ συχνά, 341 00:15:48,330 --> 00:15:52,510 αλλά ο δικός μας τρόπος γεφύρωσης Γ παραδείγματα μας σήμερα PHP μας. 342 00:15:52,510 --> 00:16:00,680 >> Ας πράγματι γεφυρώσει τον κόσμο από τον κόσμο γραμμής εντολών στο διαδίκτυο 343 00:16:00,680 --> 00:16:02,230 σύμφωνα με τα παρακάτω. 344 00:16:02,230 --> 00:16:05,090 Επιτρέψτε μου να προχωρήσει και να συντάξει εδώ για μια στιγμή. 345 00:16:05,090 --> 00:16:09,940 Έτσι, αν έχουμε έναν web server, ή μάλλον αν έχουμε το laptop μου εδώ, 346 00:16:09,940 --> 00:16:11,280 η οποία θα συντάξει σαν αυτό. 347 00:16:11,280 --> 00:16:14,250 Και εδώ έχουμε το διαδίκτυο σε κάποια μορφή. 348 00:16:14,250 --> 00:16:18,210 Και στη συνέχεια, εδώ, έχουμε ένας διακομιστής σε ένα building-- 349 00:16:18,210 --> 00:16:20,760 αυτό είναι το πώς το Διαδίκτυο works-- και εδώ 350 00:16:20,760 --> 00:16:23,120 είναι ένας server με κάποια φώτα ίσως. 351 00:16:23,120 --> 00:16:27,530 Τι πραγματικά συμβαίνει μεταξύ αυτών των δύο συνδέσεων; 352 00:16:27,530 --> 00:16:29,240 >> Έτσι, σε αυτό το κτίριο είναι ένα web server. 353 00:16:29,240 --> 00:16:31,420 Αυτό είναι απλά ένας υπολογιστής ότι τρέχει κάποια λειτουργίας 354 00:16:31,420 --> 00:16:34,561 system-- ίσως το ελεύθερο λογισμικό που ονομάζεται Apache, το οποίο CS50 IDE είναι σε λειτουργία. 355 00:16:34,561 --> 00:16:36,310 Έτσι μπορείτε πραγματικά να σκεφτείτε αυτό το κτήριο 356 00:16:36,310 --> 00:16:38,579 ως το κτίριο στο το οποίο είναι αποθηκευμένο CSt0 IDE. 357 00:16:38,579 --> 00:16:40,870 Αυτός είναι όπου όλοι σας έχετε λογαριασμούς, όπου όλοι σας 358 00:16:40,870 --> 00:16:43,130 έχετε το δικό σας web server τρέχουν, όλοι σας 359 00:16:43,130 --> 00:16:45,730 έχετε το δικό σας μοναδικό διευθύνσεις URL, καθώς αρχίσαμε να συζητήσουμε, 360 00:16:45,730 --> 00:16:47,280 και θα δείτε περισσότερα στο Π έθεσε έξι. 361 00:16:47,280 --> 00:16:49,450 >> Εδώ είναι το laptop μου κάπου αλλού στο διαδίκτυο. 362 00:16:49,450 --> 00:16:54,550 Και έτσι όταν επισκέπτεστε μια διεύθυνση URL που ανήκει για μένα, ότι η κυκλοφορία στο διαδίκτυο θα 363 00:16:54,550 --> 00:16:58,360 πάνω στον server, το διακομιστή παραλαμβάνει HTTP request-- 364 00:16:58,360 --> 00:17:02,900 σαν να πάρει index.html και είναι απαντώντας στην εν λόγω ιστοσελίδα. 365 00:17:02,900 --> 00:17:04,280 Έτσι, αυτό είναι το γενικό πρότυπο. 366 00:17:04,280 --> 00:17:07,089 Εκτιμώντας τα πάντα μέχρι τώρα και σήμερα, τα πάντα 367 00:17:07,089 --> 00:17:09,660 συνέβαινε μόνο στην όρια αυτού του κτιρίου. 368 00:17:09,660 --> 00:17:12,910 Ήμουν που χρησιμοποιούν φορητό υπολογιστή μου, αλλά Ήμουν συνδέεται με CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 έτσι ώστε όλα αυτά τα προγράμματα που έτρεχα ήταν μέσα από αυτόν τον διακομιστή, το ίδιο. 370 00:17:17,369 --> 00:17:22,660 >> Αλλά τώρα, ας αρχίσουμε την επαναχρησιμοποίηση PHP για να γράψει μερικά πραγματικά προγράμματα που 371 00:17:22,660 --> 00:17:24,230 εξυπηρετούνται από έναν web server. 372 00:17:24,230 --> 00:17:30,320 Και για να το κάνουμε αυτό, είμαι πρόκειται να πάει σε ένα σωρό παραδείγματα 373 00:17:30,320 --> 00:17:33,710 ότι εισαγάγει αυτή την ιδέα εδώ. 374 00:17:33,710 --> 00:17:38,500 Έτσι, αυτό είναι το είδος του ένα φανταχτερό τρόπο περιγράφει ένα παράδειγμα προγραμματισμού. 375 00:17:38,500 --> 00:17:41,540 >> Και στην πραγματικότητα, όπως μπορείτε να βγείτε CS50 ή να εργάζονται για την τελική έργων, 376 00:17:41,540 --> 00:17:43,520 ή να λάβει κάποια συνέχεια σε τάξη, θα αρχίσετε 377 00:17:43,520 --> 00:17:45,740 για να δείτε ότι το world-- ιδιαίτερα έχοντας μεγαλώσει 378 00:17:45,740 --> 00:17:48,300 με γλώσσες όπως η C που είναι εξαιρετικά χαμηλή level-- 379 00:17:48,300 --> 00:17:51,290 συνειδητοποιούν ότι υπάρχει καλύτερη τρόπους γραφής λογισμικού. 380 00:17:51,290 --> 00:17:53,290 Υπάρχουν ορισμένες σχέδια που μπορείτε να ακολουθήσετε, 381 00:17:53,290 --> 00:17:57,640 ορισμένους τρόπους οργάνωσης των αρχείων σας και τους τρόπους της ονοματοδοσίας λειτουργίες σας, 382 00:17:57,640 --> 00:18:00,300 έτσι ώστε τα πολυλογώ, ο κόσμος έχει καταλήξει 383 00:18:00,300 --> 00:18:04,340 με ένα σωρό ακρωνύμια και τα ονόματα για τους τρόπους του προγραμματισμού. 384 00:18:04,340 --> 00:18:06,260 Αυτά είναι μόνο τεχνικές που μπορείτε να χρησιμοποιήσετε. 385 00:18:06,260 --> 00:18:09,660 >> Και ένας από αυτούς ονομάζεται MVC, για Μοντέλο Προβολή ελεγκτή. 386 00:18:09,660 --> 00:18:12,270 Και αυτό είναι μόνο για τώρα, μια υπερβολικά περίπλοκη 387 00:18:12,270 --> 00:18:18,960 τρόπος για να πούμε πώς θα πρέπει να lay out μια ιστοσελίδα που βασίζεται σε PHP, στην περίπτωσή μας. 388 00:18:18,960 --> 00:18:22,140 Πώς μπορείτε να οργανώσετε τα αρχεία σας, Πώς να οργανώσετε τη λογική σας, 389 00:18:22,140 --> 00:18:26,220 με τρόπο που καθιστά ευκολότερο να γράφετε πιο περίπλοκη ιστοσελίδες; 390 00:18:26,220 --> 00:18:28,550 Και πράγματι, θα γρήγορα φτάσετε εκεί με ρ-set επτά. 391 00:18:28,550 --> 00:18:32,020 >> Έτσι, στον κόσμο του MVC, θα πάμε για να δείτε ότι ο κώδικας μπορεί γενικά 392 00:18:32,020 --> 00:18:38,290 να χαρακτηριστεί είτε ως κωδικός μοντέλου, ή τον κωδικό του ελεγκτή, ή η προβολή κώδικα. 393 00:18:38,290 --> 00:18:40,200 Και Πάω να υπεραπλουστεύσουμε ως follows-- 394 00:18:40,200 --> 00:18:42,074 ο ελεγκτής είναι η εγκεφάλους του προγράμματός σας, 395 00:18:42,074 --> 00:18:44,100 αυτό είναι όπου όλα τα ενδιαφέρουσα λογική συμβαίνει. 396 00:18:44,100 --> 00:18:46,110 Έτσι, ό, τι έχουμε ήδη γραπτώς μέχρι στιγμής στην τάξη, 397 00:18:46,110 --> 00:18:48,210 Είναι κάτι σαν ελεγκτή code-- αυτό είναι που ελέγχει 398 00:18:48,210 --> 00:18:50,585 το πρόγραμμά σας, θηλιές σας, σας συνθήκες, οι λειτουργίες σας 399 00:18:50,585 --> 00:18:52,100 και μεταβλητές και όλα αυτά. 400 00:18:52,100 --> 00:18:56,160 >> Απόψεις, τώρα, πρόκειται να είναι μια μικρή πιο εμφανής στον κόσμο του διαδικτύου. 401 00:18:56,160 --> 00:18:59,360 Μια άποψη είναι η αισθητική της ιστοσελίδας σας. 402 00:18:59,360 --> 00:19:04,080 Είναι αυτό που ο χρήστης sees-- τις εικόνες, οι πίνακες HTML, οι ετικέτες HTML, και όλα τα 403 00:19:04,080 --> 00:19:08,220 του ότι, το σύνολο των αφράτο αισθητικής πράγματα που δεν είναι και τόσο δύσκολο να γράψω, 404 00:19:08,220 --> 00:19:11,380 αλλά είναι ακριβώς αυτό που παράγουν, είναι η λεγόμενη όψη, η αισθητική. 405 00:19:11,380 --> 00:19:13,880 Και το μοντέλο, σε τελική ανάλυση, πρόκειται να stuff-- βάση δεδομένων η οποία 406 00:19:13,880 --> 00:19:16,510 θα ξεκινήσει την κατάδυση σε όλα το πιο αυτή την Τετάρτη. 407 00:19:16,510 --> 00:19:19,740 Έτσι ελεγκτής είναι η λογική, θέα είναι η αισθητική πράγματα, 408 00:19:19,740 --> 00:19:23,500 και το μοντέλο πρόκειται να είναι, όπου αποθηκεύουμε τα πραγματικά στοιχεία μας. 409 00:19:23,500 --> 00:19:26,410 >> Ας ρίξουμε μια ματιά σε αυτό πιο συγκεκριμένα με το ακόλουθο παράδειγμα. 410 00:19:26,410 --> 00:19:34,700 Πάω να μπω σε κατάλογο μου εδώ της σημερινής πηγή code-- τα οποία 411 00:19:34,700 --> 00:19:35,770 είναι διαθέσιμα στο διαδίκτυο. 412 00:19:35,770 --> 00:19:37,800 Και Πάω να μπω σε έκδοση μηδέν. 413 00:19:37,800 --> 00:19:41,500 Και εδώ is-- ας την κλήση έκδοση μηδέν της ιστοσελίδας του CS50. 414 00:19:41,500 --> 00:19:43,010 Δεν υπάρχει πολύς καθόλου εδώ. 415 00:19:43,010 --> 00:19:46,810 Είναι μια πολύ απλή ιστοσελίδα που είναι πιθανώς χρησιμοποιώντας ό, τι HTML tags-- μόνο 416 00:19:46,810 --> 00:19:48,970 Υποθέτω ότι από το παρελθόν παραδείγματα; 417 00:19:48,970 --> 00:19:49,890 >> Τι είναι αυτό? 418 00:19:49,890 --> 00:19:53,920 H1-- πιθανότατα για το μεγάλο τολμηρή τον τίτλο, ότι το λογότυπο επάνω στην κορυφή, CS50. 419 00:19:53,920 --> 00:19:55,080 Και τι άλλο είναι στο παιχνίδι; 420 00:19:55,080 --> 00:19:55,799 Ναι; 421 00:19:55,799 --> 00:19:56,840 Κοινό: Μη αριθμημένη λίστα. 422 00:19:56,840 --> 00:19:59,990 DAVID Malan: Μη αριθμημένη list-- έτσι ώστε η Ετικέτα UL και ίσως μια-δυο LI ετικέτες. 423 00:19:59,990 --> 00:20:01,840 Και αν δεν θυμάστε αυτές, ειλικρινά δεν πειράζει. 424 00:20:01,840 --> 00:20:04,170 Αυτά είναι αφράτα είδος λεπτομέρειες εφαρμογής της HTML 425 00:20:04,170 --> 00:20:06,378 ότι μπορείτε γρήγορα να αναζητήσετε και είστε πίσω στο δρόμο σας. 426 00:20:06,378 --> 00:20:10,040 Θα επικεντρωθεί περισσότερο σχετικά με τον προγραμματισμό ιδέες που είναι οι πιο ζουμερό κομμάτια. 427 00:20:10,040 --> 00:20:12,890 >> Έτσι, ας ρίξουμε μια γρήγορη εξετάσουμε την HTML-- και μάλιστα 428 00:20:12,890 --> 00:20:16,880 αν έχω ανοίξει την πηγή άποψη εδώ, yup, Αυτό είναι ακριβώς ό, τι συμβαίνει εδώ. 429 00:20:16,880 --> 00:20:18,440 Υπάρχει μια ετικέτα UL. 430 00:20:18,440 --> 00:20:20,630 Χτισμένο στο εσωτερικό του που είναι να LI ετικέτες. 431 00:20:20,630 --> 00:20:24,470 Και τότε θα δανειστεί το URL της πραγματικής αναλυτικό πρόγραμμα εδώ. 432 00:20:24,470 --> 00:20:27,570 >> Και στη συνέχεια, στο lectures.php είναι προφανώς 433 00:20:27,570 --> 00:20:31,640 ένα άλλο που δημιουργούνται δυναμικά σελίδα ότι πρόκειται να έχει, ας see-- αχ, 434 00:20:31,640 --> 00:20:33,170 οι δύο πρώτες εβδομάδες της διάλεξης. 435 00:20:33,170 --> 00:20:36,600 Έτσι εβδομάδα μηδέν και μία εβδομάδα, ας δείτε this-- αν δείτε τη σελίδα πηγή, 436 00:20:36,600 --> 00:20:38,120 Επίσης, εξαιρετικά απλή. 437 00:20:38,120 --> 00:20:42,430 Αυτά οδηγούν σε δύο σελίδες που ονομάζεται week0.php, και week1.php. 438 00:20:42,430 --> 00:20:44,040 Έτσι, θεωρούν τώρα τι συμβαίνει. 439 00:20:44,040 --> 00:20:50,630 >> Όταν κάνω κλικ στο week0.php, φορητό υπολογιστή μου κάνει αίτηση για week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Ο web server, γνωστός και ως, CS50 IDE, λαμβάνει τον εικονικό φάκελο. 442 00:20:58,110 --> 00:21:01,040 Είναι για να δει ένα μήνυμα όπως, να πάρει week0.php. 443 00:21:01,040 --> 00:21:05,060 Στη συνέχεια την ερμηνεία του αρχείου, κορυφή προς τα κάτω, από αριστερά προς right-- το αρχείο 444 00:21:05,060 --> 00:21:07,720 που ονομάζεται και week0.php-- φτύσιμο τα αποτελέσματα. 445 00:21:07,720 --> 00:21:10,510 Έτσι, στο εσωτερικό αυτού του αρχείου, week0.php, πρέπει να είναι 446 00:21:10,510 --> 00:21:15,410 η λογική ελεγκτή που παράγει Αυτό το HTML, και θα δούμε σύντομα αυτό. 447 00:21:15,410 --> 00:21:19,340 >> Αλλά για τώρα, επιτρέψτε μου κάντε κλικ στην εβδομάδα μηδέν, και τώρα έχουμε Τετάρτη και Παρασκευή, 448 00:21:19,340 --> 00:21:25,260 και τώρα έχουμε τις διαφάνειες αργά από εβδομάδα μηδέν. 449 00:21:25,260 --> 00:21:27,400 Και μπορείτε να ανακαλέσετε αυτό από τον τρόπο πίσω όταν. 450 00:21:27,400 --> 00:21:29,340 Έτσι, αυτό είναι όλο αυτό το δικτυακό τόπο κάνει. 451 00:21:29,340 --> 00:21:31,120 >> Ας εξετάσουμε πώς έχει κάνει αυτό. 452 00:21:31,120 --> 00:21:34,290 Πάω να πάει πίσω στο πηγαίο κώδικα εδώ, σε CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 και θα πάω να ανοίξει index.php. 454 00:21:36,660 --> 00:21:38,910 Στην κορυφή αυτού του αρχείου είναι ένα μάτσο σχόλια. 455 00:21:38,910 --> 00:21:43,000 Και στη συνέχεια στη μέση αυτού του αρχείου αυτό, Αποδεικνύεται, δεν είναι απολύτως κώδικα PHP. 456 00:21:43,000 --> 00:21:47,380 Διότι, αν δεν έχετε κάποιο από τα ελεύθερο βραχίονα ετικέτες ερωτηματικό PHP, 457 00:21:47,380 --> 00:21:49,180 είστε ελεύθεροι να τεθεί μόνο HTML. 458 00:21:49,180 --> 00:21:51,480 >> Διότι ποια είναι η PHP διερμηνέας πρέπει να κάνουν, 459 00:21:51,480 --> 00:21:53,938 είναι όταν διαβάζει αυτό το file-- πάνω προς τα κάτω, από αριστερά προς right-- 460 00:21:53,938 --> 00:21:59,100 ερμηνεύει μόνο τον κωδικό που βλέπει μεταξύ αυτές οι αγκύλες ερωτηματικό. 461 00:21:59,100 --> 00:22:02,380 Και κάτι άλλο που δεν αναγνωρίζουν ως PHP, το φτύνει ακριβώς έξω. 462 00:22:02,380 --> 00:22:05,080 Και HTML είναι μεταξύ τα πράγματα θα φτύσει ακριβώς έξω. 463 00:22:05,080 --> 00:22:09,090 >> Έτσι, αυτό το αρχείο θα μπορούσε να έχει κληθεί index.html, 464 00:22:09,090 --> 00:22:11,690 αλλά είμαι πάντα ονοματοδοσία dot PHP ως ένα σκαλοπάτι. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- παρόμοια απογοητευτικό, είναι μερικά μόνο HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, ομοίως μερικά μόνο HTML. 467 00:22:19,840 --> 00:22:22,300 >> Αλλά τώρα ας βάλουμε σχετικά με την παροιμιώδη μηχανική καπέλο, 468 00:22:22,300 --> 00:22:24,400 και να εξετάσει πώς μπορούμε να βελτιώσουμε αυτό. 469 00:22:24,400 --> 00:22:28,541 Δεν είναι δύσκολο να το κάνετε αυτό, αλλά εγώ το είδος της ανατεθεί σε αντιγραφή και επικόλληση. 470 00:22:28,541 --> 00:22:31,540 Και στην πραγματικότητα, αν κάνω δύο εβδομάδες, θα ξέρω τι είμαι κατά πάσα πιθανότητα πρόκειται να κάνει; 471 00:22:31,540 --> 00:22:34,940 Πάω να πάει στο week1.php, είμαι Θα επισημάνω τα πάντα. 472 00:22:34,940 --> 00:22:39,110 Πάω να το αντιγράψετε, να το επικολλήσετε σε ένα νέο αρχείο που ονομάζεται week2.php, 473 00:22:39,110 --> 00:22:42,440 τσίμπημα ορισμένες διευθύνσεις URL, και είναι στο δρόμο μου. 474 00:22:42,440 --> 00:22:45,240 >> Έτσι, με βάση αυτό που έχουμε δει σε C ήδη, 475 00:22:45,240 --> 00:22:46,860 Αυτό δεν αισθάνεται δεξιά, ελπίζω. 476 00:22:46,860 --> 00:22:49,610 Αντιγραφή, επικόλληση σπάνια η σωστή λύση. 477 00:22:49,610 --> 00:22:51,429 Τι μπορούμε λοιπόν να ξεκινήσετε να κάνουμε για να βελτιώσουμε αυτό; 478 00:22:51,429 --> 00:22:53,345 Πού είναι οι ευκαιρίες για καλύτερο σχεδιασμό; 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Μέχρι τη στιγμή που έχω να εβδομάδα οκτώ, πρόκειται 481 00:22:58,760 --> 00:23:00,910 να είναι πραγματικά ενοχλητικό αν θέλετε να αλλάξετε 482 00:23:00,910 --> 00:23:03,930 η γραμματοσειρά του κάθε ένα από τα σελίδες μου, ή αν θέλω 483 00:23:03,930 --> 00:23:06,522 να αλλάξει η δομή της διάταξης. 484 00:23:06,522 --> 00:23:08,396 Πού είναι λοιπόν η ευκαιρία για καλύτερο σχεδιασμό; 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Λοιπόν, ας εξετάσουμε τι είναι κοινές σε όλα από αυτά τα αρχεία. 487 00:23:15,160 --> 00:23:21,696 >> Εδώ είναι μία εβδομάδα, είναι εδώ εβδομάδα μηδέν, εδώ είναι lectures.php, 488 00:23:21,696 --> 00:23:25,790 εδώ είναι index.php-- ποιος είναι ο ίδιος και τι είναι διαφορετικό, σε γενικές γραμμές, 489 00:23:25,790 --> 00:23:26,760 σε κάθε ένα από αυτά τα αρχεία; 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Ναι; 492 00:23:32,060 --> 00:23:34,560 >> Κοινό: [δεν ακούγεται] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID Malan: Εντάξει, καλά. 495 00:23:42,160 --> 00:23:46,115 Έτσι, υπάρχει ένα σχέδιο, σίγουρα, σύμφωνα με την οποία κάθε φορά που μπορώ να επιλέξω εγώ διάλεξη, 496 00:23:46,115 --> 00:23:48,250 Θα πρέπει να παράγει μια πολύ παρόμοια αναζητούν τη σελίδα. 497 00:23:48,250 --> 00:23:50,375 Και έτσι ίσως μπορώ να αξιοποιήσουν το γεγονός ότι πραγματικά, 498 00:23:50,375 --> 00:23:53,060 σκόπιμα αριθμητικά ευρετήριο lectures-- μας 499 00:23:53,060 --> 00:23:55,290 αν μπορώ να βάλω ακόμα περισσότερο λέξεις στην απάντησή σας. 500 00:23:55,290 --> 00:23:59,984 Και αυτό είναι το μόνο πράγμα που, πραγματικά, ότι αλλάζει μεταξύ εβδομάδα ένα-- 501 00:23:59,984 --> 00:24:02,400 και επιτρέψτε μου να μετακινηθείτε προς τα κάτω έτσι είναι περίπου στο ίδιο place-- 502 00:24:02,400 --> 00:24:05,480 τόσο εδώ είναι η εβδομάδα μηδέν, χονδρικά στην κορυφή. 503 00:24:05,480 --> 00:24:12,370 Εδώ είναι μια εβδομάδα, την εβδομάδα μηδέν, μία εβδομάδα, την εβδομάδα μηδέν. 504 00:24:12,370 --> 00:24:14,370 Εντάξει, κυριολεκτικά, αν γνωρίζετε κανένα απολύτως πρόγραμμα, 505 00:24:14,370 --> 00:24:16,286 αυτό είναι τώρα ακριβώς όπως ένα μοτίβο που ταιριάζουν παιχνίδι. 506 00:24:16,286 --> 00:24:17,200 Έτσι τι είναι διαφορετικό; 507 00:24:17,200 --> 00:24:18,765 Ναι; 508 00:24:18,765 --> 00:24:19,777 >> Κοινό: [δεν ακούγεται] 509 00:24:19,777 --> 00:24:22,360 DAVID Malan: Καλό, έτσι ώστε ο τίτλος αλλάζει, πάντα τόσο λίγο. 510 00:24:22,360 --> 00:24:24,010 Zero πρόκειται, φυσικά, σε μία. 511 00:24:24,010 --> 00:24:25,570 Το ίδιο πράγμα συμβαίνει στην ετικέτα H1. 512 00:24:25,570 --> 00:24:28,790 Και εμείς δεν το βλέπουμε τόσο εύκολα, επειδή οι διευθύνσεις URL είναι λίγο μακριά. 513 00:24:28,790 --> 00:24:30,670 Αλλά αυτές οι διευθύνσεις URL αλλάζουν ελαφρώς. 514 00:24:30,670 --> 00:24:34,490 >> Αλλά αυτό δεν αλλάζει είναι, τολμώ λένε, τα περισσότερα από τα περιεχόμενα του page-- 515 00:24:34,490 --> 00:24:38,530 η ετικέτα HTML είναι το ίδιο, το κεφάλι είναι το ίδιο, ο τίτλος είναι σχεδόν η ίδια, 516 00:24:38,530 --> 00:24:40,659 το σώμα είναι η ίδια, και σχεδόν όλα τα άλλα 517 00:24:40,659 --> 00:24:42,450 είναι η ίδια, εκτός από αυτά τα μικρά τσιμπήματα. 518 00:24:42,450 --> 00:24:45,310 Πώς, λοιπόν, μπορούμε να πάμε για factoring μερικά από αυτό έξω; 519 00:24:45,310 --> 00:24:48,740 >> Και επιτρέψτε μου να προτείνω ακριβώς ότι στην επόμενη έκδοση. 520 00:24:48,740 --> 00:24:53,890 Έτσι, εδώ στην έκδοση ενός, έχω την ακριβή ίδια αρχεία, καθώς και ένα ζευγάρι των άλλων. 521 00:24:53,890 --> 00:24:59,730 Εδώ είναι index.php-- και ακόμη και αν δεν έχετε δει ποτέ πριν PHP, 522 00:24:59,730 --> 00:25:05,511 τι είμαι εγώ μάλλον κάνει για να λύσει αυτό problem-- με βάση αυτά που βλέπετε εδώ; 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Ναι, είναι ότι μια μικρή δέσμευση; 525 00:25:12,760 --> 00:25:13,450 Κανένα? 526 00:25:13,450 --> 00:25:16,020 Ναι, να συνεχιστεί. 527 00:25:16,020 --> 00:25:17,380 >> Κοινό: [δεν ακούγεται] 528 00:25:17,380 --> 00:25:18,380 >> DAVID Malan: Ναι. 529 00:25:18,380 --> 00:25:20,380 >> Κοινό: [δεν ακούγεται] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID Malan: Θα πρέπει να κάνετε μιλούν λίγο πιο δυνατά. 532 00:25:28,669 --> 00:25:31,084 >> Κοινό: [δεν ακούγεται] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID Malan: Εντάξει, καλά. 535 00:25:36,660 --> 00:25:38,620 Και εγώ think-- ήταν είναι δύσκολο να ακούσω you-- αλλά εγώ 536 00:25:38,620 --> 00:25:42,690 σκεφτείτε τι παίρνετε σε είναι ότι οι ετικέτες που ήταν κοινά επάνω στην κορυφή, 537 00:25:42,690 --> 00:25:47,710 και οι ετικέτες που ήταν κοινές για την κάτω, τώρα έχουν υπολογιστεί έξω, 538 00:25:47,710 --> 00:25:51,140 ή υποβιβαστεί σε ποια αρχεία; 539 00:25:51,140 --> 00:25:53,476 Header.php και footer.php-- και θα πάμε 540 00:25:53,476 --> 00:25:55,600 να προβεί σε ορισμένες τσιμπήματα αντιμετωπίζουν το πρόβλημα που μόλις 541 00:25:55,600 --> 00:25:59,370 εκφράστηκαν σχετικά με την αλλαγή των αριθμών, για παράδειγμα, αν άκουσα καλά. 542 00:25:59,370 --> 00:26:02,060 >> Αλλά αυτό φαίνεται να είναι η ουσία του. 543 00:26:02,060 --> 00:26:04,820 Αν υπήρχε ένα τεράστιο ποσό απολύσεων στην κορυφή της σελίδας, 544 00:26:04,820 --> 00:26:06,736 και ένα τεράστιο ποσό πλεονασμού στο κάτω μέρος, 545 00:26:06,736 --> 00:26:09,280 ας κυριολεκτικά highlight και κόψτε έξω αυτό το περιεχόμενο, 546 00:26:09,280 --> 00:26:13,270 το βάζουμε σε ένα ξεχωριστό file-- ακριβώς όπως η ιδέα της CSS, όπου θα συνυπολογίζονται έξω 547 00:26:13,270 --> 00:26:16,710 πολύ παρόμοια αισθητική, βάλτε σε ένα ξεχωριστό αρχείο τελεία PHP, 548 00:26:16,710 --> 00:26:20,340 χρησιμοποιήστε το απαιτούν mechanism-- οποία Είναι σαν ντο δίεση include-- οποία 549 00:26:20,340 --> 00:26:23,570 είναι ουσιαστικά σαν να λέμε να πάτε πιάσε τα περιεχόμενα του header.php, 550 00:26:23,570 --> 00:26:25,370 και να αντιγράψετε και να επικολλήσετε τους εδώ. 551 00:26:25,370 --> 00:26:29,490 >> Αλλά τι σημαίνει αυτό είναι ότι τώρα στο index.php, έχω αυτές τις δύο γραμμές. 552 00:26:29,490 --> 00:26:32,130 Σε lectures.php, θα ήθελα επίσης Οι δύο αυτές γραμμές. 553 00:26:32,130 --> 00:26:35,230 Σε week0.php, θα ήθελα επίσης Οι δύο αυτές γραμμές. 554 00:26:35,230 --> 00:26:38,380 >> Έτσι τώρα, αν θέλετε να αλλάξετε ο τίτλος του όλες τις σελίδες μου, 555 00:26:38,380 --> 00:26:40,530 ή θέλω να αλλάξει η θεμελιώδη δομή, 556 00:26:40,530 --> 00:26:44,380 Μπορώ να το αλλάξω τώρα σε ένα μόνο σημείο, ή δύο places-- κεφαλίδα και υποσέλιδο, 557 00:26:44,380 --> 00:26:45,429 αντίστοιχα. 558 00:26:45,429 --> 00:26:47,970 Τώρα εκκίνησης του κώδικα, προκειμένου να εξετάσουν λίγο πιο αινιγματικά, σωστά; 559 00:26:47,970 --> 00:26:53,590 Αλλά αν σκεφτείτε τι η σελίδα είναι doing-- αν είμαι ζητώντας week0.php, 560 00:26:53,590 --> 00:26:59,880 όπως ακριβώς και για την κατάρτιση πάνω here-- όταν ζητείται week0.php, 561 00:26:59,880 --> 00:27:00,960 τι σημαίνει αυτό? 562 00:27:00,960 --> 00:27:04,410 >> Κυριολεκτικά, το αρχείο αυτό είναι ζήτησε από το πρόγραμμα περιήγησης. 563 00:27:04,410 --> 00:27:06,240 Α.κ.α. στο ίντερνετ server-- 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- αρπάζει αυτό αρχείο, week0.php, και διαβάζει 565 00:27:09,250 --> 00:27:10,780 αυτό πάνω προς τα κάτω, αριστερά προς τα δεξιά. 566 00:27:10,780 --> 00:27:15,400 Σε μία γραμμή, συναντά αμέσως ανοικτό στήριγμα ερωτηματικό PHP, απαιτείται 567 00:27:15,400 --> 00:27:17,872 κεφαλίδα dot PHP, και έτσι ποια είναι η PHP διερμηνέα 568 00:27:17,872 --> 00:27:20,580 does-- ότι είναι ενσωματωμένη στο διαδίκτυο server, γιατί προπαραμετροποιηθεί 569 00:27:20,580 --> 00:27:24,580 αυτό για you-- πηγαίνει αυτόματα σε header.php, αντιγράφει τα περιεχόμενα, 570 00:27:24,580 --> 00:27:25,640 επικολλά εδώ. 571 00:27:25,640 --> 00:27:28,790 >> Στη συνέχεια, όμως οι συναντήσεις διερμηνέα ερωτηματικό κοντά βραχίονα, 572 00:27:28,790 --> 00:27:30,320 έτσι όλα γίνονται σκέψης. 573 00:27:30,320 --> 00:27:33,400 Τώρα φτύνει απλά τυφλά από δύο γραμμές μέσω επτά, 574 00:27:33,400 --> 00:27:35,240 επειδή είναι απλώς πρώτων HTML. 575 00:27:35,240 --> 00:27:38,470 Παίρνει να παρατάξει οκτώ, και το κάνει αυτό ίδια μαγεία again-- το άνοιγμα του αρχείου, 576 00:27:38,470 --> 00:27:41,460 αρπάζοντας το περιεχόμενο, και απαιτώντας από αυτούς ή επικόλληση τους 577 00:27:41,460 --> 00:27:42,480 το δικαίωμα στη συνέχεια και εκεί. 578 00:27:42,480 --> 00:27:44,210 >> Αλλά εγώ αναφέρθηκα σε ένα σφάλμα. 579 00:27:44,210 --> 00:27:48,610 Αυτό είναι μια μερική βήμα προς τα πίσω, γιατί αν κοιτάξουμε στο header.php, 580 00:27:48,610 --> 00:27:50,850 Έχω το είδος του κόψει μια γωνιά. 581 00:27:50,850 --> 00:27:56,250 Τι χαρακτηριστικό εγώ παραιτηθεί για να αποκτήσουν αυτό συζητήσιμο καλύτερο σχεδιασμό; 582 00:27:56,250 --> 00:27:57,305 Ναι; 583 00:27:57,305 --> 00:27:58,180 Κοινό: [δεν ακούγεται] 584 00:27:58,180 --> 00:28:00,570 DAVID Malan: Ναι, έχω το είδος του κόψει μια μη τετριμμένη γωνία. 585 00:28:00,570 --> 00:28:04,489 Μπορείτε επεσήμανε ότι αυτό που αλλάζει ήταν ο τίτλος, ο αριθμός στον τίτλο, 586 00:28:04,489 --> 00:28:05,530 και ο αριθμός στο Η1. 587 00:28:05,530 --> 00:28:08,170 Έτσι, η λύση μου ήταν, εντάξει, ας μετονομάσετε τη σελίδα, 588 00:28:08,170 --> 00:28:10,080 και να μην ασχοληθεί με αυτό απολύτως πρόβλημα. 589 00:28:10,080 --> 00:28:12,130 Έτσι, αυτό είναι μια μερική οπισθοδρόμηση για σίγουρος. 590 00:28:12,130 --> 00:28:14,300 >> Αλλά αυτό που είναι αξιοσημείωτο εδώ είναι ότι αυτό που έχω κάνει 591 00:28:14,300 --> 00:28:17,200 άλλως συνυπολογίζονται όλα με την κοινή πράγματα. 592 00:28:17,200 --> 00:28:21,520 Και σε footer.php, πρόσεξα ότι συνυπολογίζονται από όλα αυτά, αν και μικρότερο, 593 00:28:21,520 --> 00:28:22,790 κοινά πράγματα. 594 00:28:22,790 --> 00:28:26,070 Γι 'αυτό πρέπει με κάποιο τρόπο να είναι πλέον σε θέση να κάνουμε ένα ακόμη βήμα προς τα εμπρός, και να διορθώσετε 595 00:28:26,070 --> 00:28:27,160 ότι τα θέματα του τίτλου. 596 00:28:27,160 --> 00:28:28,180 Ας το κάνουμε αυτό. 597 00:28:28,180 --> 00:28:35,060 >> Επιτρέψτε μου να μπω σε δεύτερη εκδοχή μου εδώ, το οποίο, και πάλι, έχει τα ίδια αρχεία 598 00:28:35,060 --> 00:28:36,825 εκτός για μία νέα προσθήκη. 599 00:28:36,825 --> 00:28:38,950 Και αυτό είναι λίγο πιο φλύαρη, αλλά ας δούμε αν μπορούμε 600 00:28:38,950 --> 00:28:40,550 μπορεί να πειράζω εκτός τι συμβαίνει εδώ. 601 00:28:40,550 --> 00:28:45,370 Έτσι, αντί να απαιτούν header.php, και footer.php, 602 00:28:45,370 --> 00:28:50,180 Μου φαίνεται να απαιτεί μόνο μία file-- ονομάζεται, φυσικά, helpers.php. 603 00:28:50,180 --> 00:28:52,560 Και επιτρέψτε μου να προβλέπουν τώρα, τι είναι μέσα από helpers.php 604 00:28:52,560 --> 00:28:55,330 είναι απλώς ένα μάτσο λειτουργίες ότι έγραψα, ακριβώς όπως και πριν. 605 00:28:55,330 --> 00:28:57,550 Αλλά εγώ αυτό που ονομάζεται helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Τώρα προφανώς, σε γραμμή τρία και 10, είμαι 607 00:29:00,370 --> 00:29:02,840 καλώντας δύο functions-- καθιστούν κεφαλίδα, υποσέλιδο καθιστούν. 608 00:29:02,840 --> 00:29:05,040 Εκείνοι που δεν έρχονται με PHP, έγραψα αυτές που ο ίδιος. 609 00:29:05,040 --> 00:29:07,880 Και τα έβαλα σε helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Τώρα, έχουμε δει μόνο την ακόλουθη σύνταξη μία φορά, και ήταν εξαιρετικά σύντομη. 611 00:29:11,210 --> 00:29:15,330 Αλλά αυτό είναι προφανώς ένα επιχείρημα να καταστήσει κεφαλίδα, τη λειτουργία. 612 00:29:15,330 --> 00:29:16,450 Γιατί ξέρω ότι; 613 00:29:16,450 --> 00:29:18,522 Καλά εδώ είναι μια στενή παρένθεσης, εδώ είναι μια ανοιχτή παρένθεσης. 614 00:29:18,522 --> 00:29:21,230 Και φυσικά, όπως και στη C, κάτι μεταξύ αυτών παρένθεση 615 00:29:21,230 --> 00:29:23,350 είναι ένα input-- ή επιχείρημα για την λειτουργία του. 616 00:29:23,350 --> 00:29:26,710 >> Ποιος είναι ο τύπος δεδομένων του επιχειρήματος αυτού, με βάση αυτά που έχετε επισημάνει; 617 00:29:26,710 --> 00:29:30,820 Τι κάνουν αυτές οι αγκύλες δείχνουν, με βάση την προηγούμενη εβδομάδα; 618 00:29:30,820 --> 00:29:33,390 Ναι, είναι ένα array-- Συγκεκριμένα μια συνειρμική σειρά. 619 00:29:33,390 --> 00:29:35,700 Και αυτή η σύνταξη ομολογουμένως είναι λίγο funky, 620 00:29:35,700 --> 00:29:38,860 Αλλά αυτό είναι μόνο περνώντας σε ένα βασικό ζευγάρι αξίας. 621 00:29:38,860 --> 00:29:43,530 Το κλειδί είναι, απόσπασμα unquote τον τίτλο, και η τιμή είναι CS50. 622 00:29:43,530 --> 00:29:46,220 >> Αν το είχαμε κάνει αυτό σε C, θα μπορούσε, αντί 623 00:29:46,220 --> 00:29:49,400 μοιάζουν περισσότερο με αυτό, μόνο απόσπασμα unquote CS50-- 624 00:29:49,400 --> 00:29:52,460 ή στην πραγματικότητα θα ήταν σγουρά τιράντες, ή κάτι τέτοιο σε C, 625 00:29:52,460 --> 00:29:55,580 όπου το κλειδί είναι μηδέν, και η τιμή είναι CS50. 626 00:29:55,580 --> 00:29:59,840 Αλλά και πάλι, σε PHP, ακόμη και αν η σύνταξη είναι, και πάλι, λίγο παράξενο, 627 00:29:59,840 --> 00:30:02,860 σας επιτρέπει να περάσει σε λέξεις αντί για αριθμούς 628 00:30:02,860 --> 00:30:05,120 να συνδέσει τα πλήκτρα με αξίες. 629 00:30:05,120 --> 00:30:06,390 >> Έτσι τι σημαίνουν όλα αυτά; 630 00:30:06,390 --> 00:30:09,750 Αν πάω σε helpers.php, ας ρίξουμε μια ματιά σε αυτή τη λειτουργία. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, μάλλον renderHeader είναι η λειτουργία μου, 632 00:30:13,620 --> 00:30:16,220 και ξέρω ότι επειδή βλέπω η λέξη-κλειδί λειτουργία εδώ. 633 00:30:16,220 --> 00:30:19,450 Αυτό είναι το νέο C-- από αυτό προφανώς παίρνει ένα επιχείρημα που ονομάζεται data-- 634 00:30:19,450 --> 00:30:22,400 αλλά θα μπορούσα να έχω αυτό που ονομάζεται τίποτα, αλλά μου ζήτησε τα δεδομένα, 635 00:30:22,400 --> 00:30:25,090 ακριβώς για να είναι ένα μικρό και clean-- απλά ρίξτε μια εικασία, ιδίως 636 00:30:25,090 --> 00:30:28,173 εάν έχετε προγραμματιστεί σε κάποιο άλλο γλώσσα υψηλού επιπέδου πριν, κάτι 637 00:30:28,173 --> 00:30:29,820 Γ παραπάνω, εννοιολογικά. 638 00:30:29,820 --> 00:30:33,820 >> Τι σημαίνει ίση ανοιχτό βραχίονα αγκύλη πιθανώς σημαίνει; 639 00:30:33,820 --> 00:30:35,540 Ή τι μπορεί να σημαίνει αυτό; 640 00:30:35,540 --> 00:30:39,660 Δεν έχω δει αυτό σε C. Ναι; 641 00:30:39,660 --> 00:30:40,480 >> Ένα άδειο πίνακα. 642 00:30:40,480 --> 00:30:45,440 Συγκεκριμένα, αυτό σημαίνει ότι αν ο χρήστης δεν καλούν renderHeader 643 00:30:45,440 --> 00:30:49,340 με ένα επιχείρημα, είμαι ακόμη σε εξέλιξη να έχουν ένα επιχείρημα που ονομάζεται δεδομένων, 644 00:30:49,340 --> 00:30:52,327 αλλά προκαθορισμένη τιμή του είναι πρόκειται να είναι μια κενή σειρά. 645 00:30:52,327 --> 00:30:53,660 Έτσι είναι απλά ένα ωραίο ευκολία. 646 00:30:53,660 --> 00:30:56,493 Δεν έχω να φωνάζει στον χρήστη, ή λέτε ότι χρησιμοποιείται η λειτουργία μου λάθος. 647 00:30:56,493 --> 00:30:59,849 Μπορώ να δώσω στον χρήστη μια προεπιλεγμένη αξία, αν δεν με νοιάζει ιδιαίτερα. 648 00:30:59,849 --> 00:31:01,890 Τώρα αυτή η λειτουργία, είμαι πρόκειται να κυματίσει τα χέρια μου. 649 00:31:01,890 --> 00:31:07,620 Αλλά αυτή η λειτουργία επιτρέπει απόσπασμα μας για να περάσουν αυτές τις μεταβλητές στα δεδομένα 650 00:31:07,620 --> 00:31:10,360 σε header.php με τον ακόλουθο τρόπο. 651 00:31:10,360 --> 00:31:13,100 Και αυτό είναι το τελευταίο κομμάτι, Νομίζω ότι, από funky σύνταξη. 652 00:31:13,100 --> 00:31:15,860 Εδώ είναι η δική μου εκδοχή νέα από το header.php-- 653 00:31:15,860 --> 00:31:20,140 συνήθιζε να λέει, κυριολεκτικά, ανοιχτό βραχίονα τίτλο CS50, και ότι ήταν. 654 00:31:20,140 --> 00:31:21,766 Και ίδιο πράγμα για το Η1. 655 00:31:21,766 --> 00:31:24,310 >> Τώρα λέει προφανώς κάτι αρκετά funky. 656 00:31:24,310 --> 00:31:28,030 Και επιτρέψτε μου να απλουστευθεί αυτή για μια στιγμή ως ακολούθως. 657 00:31:28,030 --> 00:31:31,020 Αυτό είναι ό, τι έχω άλλαξε τον τίτλο μου να είναι. 658 00:31:31,020 --> 00:31:35,140 Ωστόσο, είναι να πάρει λίγο άσχημο με συνεχώς ανοιχτή παρένθεση με την PHP, 659 00:31:35,140 --> 00:31:36,610 και στη συνέχεια χρησιμοποιήστε τη λειτουργία εκτύπωσης. 660 00:31:36,610 --> 00:31:40,810 Αποδεικνύεται ότι η PHP έχει ένα στενογραφία σημειογραφία για αυτό, το οποίο είναι ακριβώς 661 00:31:40,810 --> 00:31:45,050 ένα σύμβολο της ισότητας, η οποία είναι τεχνικά ένα λειτουργία που ονομάζεται ηχώ αντί της εκτύπωσης, 662 00:31:45,050 --> 00:31:46,800 αλλά είναι το ίδιο πράγμα, αποτελεσματικά. 663 00:31:46,800 --> 00:31:48,440 >> Αυτό μοιάζει λίγο καλύτερα. 664 00:31:48,440 --> 00:31:50,510 Είναι απλά μια συντακτική ζάχαρη, αν θέλετε, 665 00:31:50,510 --> 00:31:52,260 ότι κάνει κωδικό μου φαίνονται λίγο καλύτερα. 666 00:31:52,260 --> 00:31:54,010 Αλλά αποδεικνύεται, και θα δούμε πάλι αυτό 667 00:31:54,010 --> 00:31:57,420 πριν από καιρό, θα πρέπει να καλέσετε αυτό ενοχλητικά μακρά λειτουργία που ονομάζεται 668 00:31:57,420 --> 00:32:00,582 HTML ειδικούς χαρακτήρες σε PHP, διότι αποδεικνύεται 669 00:32:00,582 --> 00:32:02,790 υπάρχουν ορισμένες εισροές ώστε ο χρήστης να μπορεί να μας δώσει, 670 00:32:02,790 --> 00:32:05,160 ή ότι οι χρήστες μπορεί να μας δώσει, που πρόκειται να σπάσει την ιστοσελίδα μας. 671 00:32:05,160 --> 00:32:07,035 Αλλά θα δούμε ότι την επόμενη εβδομάδα με JavaScript. 672 00:32:07,035 --> 00:32:10,740 Αλλά για τώρα, απλά να ξέρετε ότι Αυτό το αρχείο, headers.php, απλά 673 00:32:10,740 --> 00:32:13,040 παίρνει τον τίτλο που Πέρασα, το κάνει 674 00:32:13,040 --> 00:32:17,380 βεβαιωθείτε ότι είναι ασφαλές να εγχυθεί σε μια ιστοσελίδα σελίδα, και το φτύνει έξω ως τίτλο μου 675 00:32:17,380 --> 00:32:18,640 και ως Η1 μου. 676 00:32:18,640 --> 00:32:24,440 Έτσι, αν πάω σε αυτή την έκδοση τώρα, παρατηρήσετε ότι οι διαλέξεις έχει τον τίτλο του πίσω, 677 00:32:24,440 --> 00:32:28,630 εβδομάδα μηδέν έχει τον τίτλο του πίσω, και Πράγματι, η HTML είμαι δημιουργίας 678 00:32:28,630 --> 00:32:32,110 είναι ταυτόσημο με αυτό που η πρώτη μου έκδοση was-- εκτός από τα κενά μου, 679 00:32:32,110 --> 00:32:35,150 γιατί έχω αρχίσει μορφοποίηση κωδικό μου λίγο διαφορετικά. 680 00:32:35,150 --> 00:32:38,082 Αλλά έχω δημιουργούνται όλα ο κώδικας νοιάζομαι. 681 00:32:38,082 --> 00:32:39,790 Επιτρέψτε μου λοιπόν να σταματήσουμε για μόνο μια στιγμή και να δούμε 682 00:32:39,790 --> 00:32:42,200 Αν υπάρχει κάποια ερωτήματα ή σύγχυση που έχω δημιουργήσει. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Εντάξει, ας στρίψει λίγο πιο δύσκολο εδώ 685 00:32:48,150 --> 00:32:51,500 για να δούμε αν υπάρχει μια ευκαιρία για βελτίωση. 686 00:32:51,500 --> 00:32:56,130 Helpers.php είχε επίσης αυτό λειτουργία, που ονομάζεται renderFooter. 687 00:32:56,130 --> 00:32:59,652 Και τι είναι αξιοσημείωτο για την renderHeader, και renderFooter; 688 00:32:59,652 --> 00:33:02,610 Και πάλι, για τους σκοπούς του σήμερα, γνωρίζουμε ότι η λειτουργία είναι μόνο απόσπασμα 689 00:33:02,610 --> 00:33:08,280 ο τρόπος μου πέρασμα επιχειρήματα σε header.php και footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Συγνώμη; 692 00:33:11,780 --> 00:33:13,056 >> Κοινό: [δεν ακούγεται] 693 00:33:13,056 --> 00:33:15,180 DAVID Malan: Ναι, έχω μόνο άλλαξε το απαιτούν γραμμή. 694 00:33:15,180 --> 00:33:19,410 Έτσι κυριολεκτικά, έχω διαπράξει την αμαρτία των αντιγραφή και επικόλληση, για άλλη μια φορά. 695 00:33:19,410 --> 00:33:21,920 Δεν είναι ένας τεράστιος αριθμός των γραμμών, αλλά έρχονται on-- 696 00:33:21,920 --> 00:33:25,220 αν είμαι αντιγραφή και επικόλληση τα πάντα απλά για να αλλάξει μια μικρή λέξη, 697 00:33:25,220 --> 00:33:28,610 και η μια μικρή λέξη που δείχνει ο Alan είναι έξω υποσημειώσεις εδώ, έναντι header εδώ. 698 00:33:28,610 --> 00:33:30,670 Διαφορετικά, τα πάντα είναι πανομοιότυπες, με εξαίρεση, 699 00:33:30,670 --> 00:33:32,180 Φυσικά, τα ονόματα της συνάρτησης. 700 00:33:32,180 --> 00:33:33,690 Λοιπόν, τι θα μπορούσαμε να κάνουμε καλύτερα; 701 00:33:33,690 --> 00:33:39,810 >> Και επιτρέψτε μου να ανοίξει αυτή την έκδοση Εδώ, σύμφωνα με την οποία σε helpers.php, 702 00:33:39,810 --> 00:33:42,300 Γιατί δεν μπορώ απλά να πάρετε μια λίγο πιο έξυπνος γι 'αυτό; 703 00:33:42,300 --> 00:33:46,410 Γράψτε ελαφρώς πιο περίπλοκη κώδικα, αλλά καλέστε την καθιστούν; 704 00:33:46,410 --> 00:33:48,470 Έτσι, ό, τι έχω αλλάξει ριζικά; 705 00:33:48,470 --> 00:33:51,770 >> Παίρνει ένα επιχείρημα now-- δύο επιχειρήματα, τα δεδομένα ακόμα. 706 00:33:51,770 --> 00:33:54,444 Και τότε ποιο είναι το πρώτο Το όνομά πιθανώς χρησιμοποιείται για την, 707 00:33:54,444 --> 00:33:55,860 με βάση αυτά που διαβάζετε εδώ; 708 00:33:55,860 --> 00:33:58,452 Ακόμη και αν ορισμένοι από τη σύνταξη εξακολουθεί να είναι νέος. 709 00:33:58,452 --> 00:33:59,660 Τι είναι το σύμβολο του δολαρίου πρότυπο; 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Συγνώμη; 712 00:34:03,016 --> 00:34:03,710 >> Κοινό: κεφαλίδα ή υποσέλιδο. 713 00:34:03,710 --> 00:34:04,510 >> DAVID Malan: κεφαλίδα ή υποσέλιδο. 714 00:34:04,510 --> 00:34:07,134 Έτσι προφανώς, αποφάσισα ότι αν το μόνο πράγμα που αλλάζει 715 00:34:07,134 --> 00:34:10,159 είναι το πρότυπο που θέλω να print-- και από το πρότυπο 716 00:34:10,159 --> 00:34:13,100 Εννοώ αυτό είναι πρότυπο για κώδικα που θέλω να εξόδου, 717 00:34:13,100 --> 00:34:16,350 αλλά θέλω να συνδέσετε κάποια values-- οπότε αν αυτό είναι μόνο η κεφαλιά 718 00:34:16,350 --> 00:34:20,440 ή το υποσέλιδο, γιατί δεν μπορώ να παραμετροποιήσετε ότι και να καλέσει το σύμβολο του δολαρίου επιχείρημα 719 00:34:20,440 --> 00:34:21,409 πρότυπο? 720 00:34:21,409 --> 00:34:26,250 Και τότε αυτό το funky σύνταξη μου επιτρέπει για να δημιουργήσουν μια διαδρομή σε μια μεταβλητή εδώ. 721 00:34:26,250 --> 00:34:28,030 >> Έτσι, το σύμβολο του δολαρίου διαδρομή είναι μια μεταβλητή. 722 00:34:28,030 --> 00:34:31,120 Τι σημαίνει αυτό σύνταξη κάνετε, αν είστε εξοικειωμένοι; 723 00:34:31,120 --> 00:34:32,512 Ναι; 724 00:34:32,512 --> 00:34:34,065 >> Κοινό: [δεν ακούγεται] 725 00:34:34,065 --> 00:34:34,940 DAVID Malan: Ακριβώς. 726 00:34:34,940 --> 00:34:37,600 Εάν το πρότυπο είναι, απόσπασμα unquote, κεφαλίδα, ή εάν το πρότυπο είναι, 727 00:34:37,600 --> 00:34:41,170 απόσπασμα εισαγωγικά, υποσέλιδο, ότι υπάρχει γραμμή ότι έχω τόνισε, γραμμή οκτώ, 728 00:34:41,170 --> 00:34:46,330 είναι απλά να πάρει αυτό το όνομα, όπως η επικεφαλίδα, και τη συνένωση με τελεία PHP. 729 00:34:46,330 --> 00:34:49,750 Έτσι δεν είχαμε αυτόν τον τελεστή σε C. Αυτός ο τελεστής τελεία είναι 730 00:34:49,750 --> 00:34:54,520 ένα καταπληκτικό πράγμα PHP-- αν είστε εξοικειωμένοι με JavaScript ή Java, 731 00:34:54,520 --> 00:34:56,949 μπορείτε να χρησιμοποιήσετε το συν εγγραφείτε για να κάνετε αλληλουχία. 732 00:34:56,949 --> 00:34:59,974 >> Στην C, είναι ένας πόνος στην neck-- και λυπάμαι τόσο, σε π-set έξι, 733 00:34:59,974 --> 00:35:02,390 εσείς πρόκειται να πρέπει να κάνετε this-- είναι ένας πόνος στο λαιμό 734 00:35:02,390 --> 00:35:03,930 να ενώσετε χορδές. 735 00:35:03,930 --> 00:35:04,670 Γιατί; 736 00:35:04,670 --> 00:35:06,580 Λοιπόν, γιατί αν έχεις μια σειρά που είναι αυτό το διάστημα, 737 00:35:06,580 --> 00:35:09,538 και μια άλλη συμβολοσειρά που είναι αυτό το διάστημα, δεν μπορείτε απλά να τους συνδέσετε μαζί. 738 00:35:09,538 --> 00:35:11,070 Τι αντί έχετε να κάνετε σε C; 739 00:35:11,070 --> 00:35:11,680 Ναι; 740 00:35:11,680 --> 00:35:12,380 >> Κοινό: [δεν ακούγεται] 741 00:35:12,380 --> 00:35:15,090 >> DAVID Malan: Θα πρέπει να malloc μνήμη, ή να χρησιμοποιήσετε μια σειρά στη στοίβα. 742 00:35:15,090 --> 00:35:17,214 Και θα πρέπει πραγματικά να κάνουν ότι αρκετά μεγάλη σειρά 743 00:35:17,214 --> 00:35:20,940 για να χωρέσει αυτό συν αυτό, καθώς και η ανάστροφη κάθετο μηδέν. 744 00:35:20,940 --> 00:35:24,994 Στη συνέχεια, τα ενώσετε μαζί χρησιμοποιώντας ανακατεύετε γάτα ή χειροκίνητα με ένα βρόχο for, 745 00:35:24,994 --> 00:35:26,160 ή οποιοδήποτε αριθμό από τεχνικές. 746 00:35:26,160 --> 00:35:27,760 Και θα σας δείξουμε ένα ζευγάρι στην π-set έξι. 747 00:35:27,760 --> 00:35:29,080 >> Είναι ένας πόνος στο λαιμό. 748 00:35:29,080 --> 00:35:34,190 Και αυτό είναι πραγματικά αυτό που θέλω να πω για Αυτή έναντι this-- όπως η C σε σχέση με την PHP. 749 00:35:34,190 --> 00:35:36,870 Μπορείτε απλά να πάρετε πολύ περισσότερα λειτουργικότητα για δωρεάν, 750 00:35:36,870 --> 00:35:39,030 έτσι ώστε να μπορείτε να εστιάσετε, ιδανικά, στη διασκέδαση 751 00:35:39,030 --> 00:35:41,190 μέρος της κωδικοποίησης, το έργο που θέλετε να λύσει, 752 00:35:41,190 --> 00:35:43,190 παρά τις μικρολεπτομέρειες χαμηλό επίπεδο. 753 00:35:43,190 --> 00:35:49,840 >> Έτσι, αυτό δημιουργεί μόνο header.php ή footer.php βάσει των οποίων ένα καλώ. 754 00:35:49,840 --> 00:35:52,280 Και πράγματι, αν πάω στο index.php, προειδοποίηση 755 00:35:52,280 --> 00:35:56,230 το μόνο που changed-- Αντί καλώντας καθιστούν κεφαλίδα ή το υποσέλιδο καθιστούν, 756 00:35:56,230 --> 00:36:00,230 Είμαι καλώντας καθιστούν, που ακολουθείται από το όνομα του προτύπου που θέλω να κάνω. 757 00:36:00,230 --> 00:36:02,370 Και θα το δείτε, επίσης, στο πρόβλημα που επτά, 758 00:36:02,370 --> 00:36:05,530 σύμφωνα με την οποία θα σας επιτρέψει να χρησιμοποιήσετε το ίδια λειτουργία για να κάνουν τσαμπιά 759 00:36:05,530 --> 00:36:07,550 και τσαμπιά από διάφορες ιστοσελίδες. 760 00:36:07,550 --> 00:36:10,570 >> Έτσι, αντί να σταθούμε πάρα πολύ περισσότερο σε αυτές τις details-- 761 00:36:10,570 --> 00:36:13,210 το οποίο θα δείτε και πάλι σε σετ πρόβλημα seven-- ας ρίξουμε μια ματιά 762 00:36:13,210 --> 00:36:16,850 στο τώρα στην αρχή μιας λύσης σε ένα πιο ενδιαφέρον πρόβλημα. 763 00:36:16,850 --> 00:36:19,310 Μέχρι στιγμής, τίποτα δεν έχουμε έχει γίνει αποθηκευμένα δεδομένα. 764 00:36:19,310 --> 00:36:22,920 Στην πραγματικότητα, η μόνη φορά που έχουμε αποθηκεύσει ποτέ κάτι που έχουμε κάνει σε αυτή την κατηγορία 765 00:36:22,920 --> 00:36:31,030 είναι όταν είχαμε ένα πολύ απλό demo λίγο πίσω, οπότε χρησιμοποιήσαμε το αρχείο IO σε C, 766 00:36:31,030 --> 00:36:34,520 και νομίζω ότι θα πληκτρολογήσει το όνομά μου, και Το όνομά της Hannah, και το όνομα της Μαρίας, 767 00:36:34,520 --> 00:36:37,610 ή ίσως το όνομα του Andy, και τότε θα σωθεί μια file-- CSV 768 00:36:37,610 --> 00:36:39,430 αρχείο διαχωρισμένο με κόμματα. 769 00:36:39,430 --> 00:36:43,530 >> Και χρησιμοποιήσαμε fopen-- νομίζω χρησιμοποιήσαμε fprintf από όσο θυμάμαι, 770 00:36:43,530 --> 00:36:44,910 και σώσαμε ένα αρχείο. 771 00:36:44,910 --> 00:36:46,920 Τώρα, αυτό είναι το απλούστερο μορφή μιας βάσης δεδομένων. 772 00:36:46,920 --> 00:36:50,230 Αν θέλετε να κάνετε μια ιστοσελίδα για την Πρόγραμμα Frosh ΔΥ, όπου οι πρωτοετείς 773 00:36:50,230 --> 00:36:53,390 μπορούν να εγγραφούν για ένα άθλημα, που στην ιδανική περίπτωση θέλουν να κάνουν κάτι με αυτά τα δεδομένα. 774 00:36:53,390 --> 00:36:55,370 Την περασμένη εβδομάδα, δεν κάναμε τίποτα με την data-- που μόλις είπα, 775 00:36:55,370 --> 00:36:56,661 είστε εγγεγραμμένος, δεν είναι πραγματικά. 776 00:36:56,661 --> 00:36:58,950 Ή ίσως θα αποσταλεί το κοσμήτορας, και αυτό ήταν. 777 00:36:58,950 --> 00:37:02,110 >> Αλλά θα ήταν ωραίο αν μπορούσα που δίνουν επιτηρητής ένα αρχείο CSV, 778 00:37:02,110 --> 00:37:03,340 σαν ένα αρχείο Excel. 779 00:37:03,340 --> 00:37:05,090 Ή ακόμα καλύτερα, θα ήταν ήταν ωραίο αν θα μπορούσα 780 00:37:05,090 --> 00:37:08,830 βάλουν τα ονόματά των καταναλωτών αυτών και dorm ονόματα και όλα αυτά 781 00:37:08,830 --> 00:37:11,740 σε μια βάση δεδομένων που απλά ζει για πάντα, 782 00:37:11,740 --> 00:37:13,530 μέχρι να επιλέξετε να διαγράψετε τα δεδομένα. 783 00:37:13,530 --> 00:37:15,645 Μια βάση δεδομένων που επιτρέπει την μου για την αναζήτηση πληροφοριών. 784 00:37:15,645 --> 00:37:18,070 Και πράγματι, αυτό είναι ό, τι είναι μια βάση δεδομένων. 785 00:37:18,070 --> 00:37:20,470 >> Έχουμε εισαγάγει σήμερα, και την επόμενη εβδομάδα, πάρα πολύ, μια τεχνολογία 786 00:37:20,470 --> 00:37:25,020 ονομάζεται SQL-- ένα Structured Query Γλώσσα, η οποία είναι μια άλλη γλώσσα. 787 00:37:25,020 --> 00:37:28,750 Είναι ουσιαστικά ένας προγραμματισμός γλώσσα, αλλά για τις βάσεις δεδομένων. 788 00:37:28,750 --> 00:37:31,760 Και μια βάση δεδομένων για τώρα, απλά θεωρούμε ως ένα σούπερ φανταχτερό έκδοση 789 00:37:31,760 --> 00:37:35,710 του Microsoft Excel, ή το Google Λογιστικά φύλλα, ή Αριθμοί της Apple. 790 00:37:35,710 --> 00:37:39,950 Είναι γενικά ένα πρόγραμμα που επιτρέπει μπορείτε να αποθηκεύσετε ένα σωρό δεδομένων 791 00:37:39,950 --> 00:37:43,960 σε σειρές και στήλες, αρκετά όπως ίσως στο Excel. 792 00:37:43,960 --> 00:37:47,100 >> Αλλά τι είναι ωραίο, ειδικά αν δεν είμαστε σούπερ εξοικειωμένοι με το Excel, 793 00:37:47,100 --> 00:37:52,040 τι SQL σας επιτρέπει να κάνετε είναι το ερώτημα αυτό πληροφορίες με το γράψιμο γραμμές κώδικα 794 00:37:52,040 --> 00:37:55,220 όπου μπορείτε, ακόμα κι αν σας βάση δεδομένων έχει ένα εκατομμύριο σειρές σε αυτό, 795 00:37:55,220 --> 00:37:57,190 μπορείτε να βρείτε τα πράγματα σούπερ γρήγορο. 796 00:37:57,190 --> 00:37:59,950 Στην πραγματικότητα, το Excel είναι ιδιαίτερα κακό σε μεγάλα σύνολα δεδομένων. 797 00:37:59,950 --> 00:38:02,460 Και στην πραγματικότητα, μέχρι μερικά χρόνια πριν, αποδείχθηκε 798 00:38:02,460 --> 00:38:08,890 Excel θα σας επιτρέψει να αποθηκεύσετε έως 65.535 σειρές των οποίων data-- 799 00:38:08,890 --> 00:38:12,020 Ακούγεται σαν μια παρτίδα, αλλά η Τότε ήμουν ένας απόφοιτος σπουδαστής, 800 00:38:12,020 --> 00:38:14,920 και θυμάμαι να γλιστρήσουν πάνω αυτό γιατί μου έκανε την παραγωγή 801 00:38:14,920 --> 00:38:17,900 Αρχεία CSV για την έρευνα μου και εγώ ήθελε να τους αναλύσει γρήγορα 802 00:38:17,900 --> 00:38:19,530 με ακριβώς το άνοιγμα στο Excel. 803 00:38:19,530 --> 00:38:23,730 Φυσικά, μόλις ο υπολογιστής μου συνετρίβη, γιατί είχα πάνω από 65.000 σειρές. 804 00:38:23,730 --> 00:38:27,210 >> Αλλά από πού προήλθε η 65.535 προέρχονται από; 805 00:38:27,210 --> 00:38:29,670 Τι κάνει η Microsoft, προφανώς; 806 00:38:29,670 --> 00:38:32,430 Αν είσαι καλός με τις δυνάμεις σας από δύο; 807 00:38:32,430 --> 00:38:37,160 Ναι, ήταν χρησιμοποιώντας ένα 16-bit τιμή να αντιπροσωπεύουν τον αριθμό σειράς. 808 00:38:37,160 --> 00:38:41,310 Και τα δύο να είναι 16 65,536-- μείον ένα, γιατί αν 809 00:38:41,310 --> 00:38:45,414 μηδέν δείκτης σημαίνει ότι ήταν το πιο αριθμός των σειρών θα μπορούσα να έχω. 810 00:38:45,414 --> 00:38:46,830 Και ήταν απλά μια σχεδιαστική απόφαση. 811 00:38:46,830 --> 00:38:52,760 Με την αποθήκευση 16 bit, μου περιορίζεται 16.000 σειρές, αντί των 4 δισεκατομμυρίων, 812 00:38:52,760 --> 00:38:54,322 η οποία θα μπορούσε να έχει ιδανικά. 813 00:38:54,322 --> 00:38:57,030 Αλλά για τώρα, θα πάμε να εισαγάγει αυτό περισσότερο σε ένα πλαίσιο ιστού. 814 00:38:57,030 --> 00:39:00,390 Και τι είναι καλό για τον SQL είναι ότι ακόμη και αν και είναι αρκετά ισχυρό και αρκετά 815 00:39:00,390 --> 00:39:04,050 σοφιστικέ, πραγματικά βράζει σε τέσσερις βασικές λειτουργίες, τέσσερις 816 00:39:04,050 --> 00:39:08,060 βασικές λειτουργίες, αν will-- επιλέξετε, για την ανάκτηση των δεδομένων, αναζήτηση 817 00:39:08,060 --> 00:39:12,510 για τα δεδομένα? διαγραφή ή διαγραφή δεδομένων? εισάγετε για την προσθήκη γραμμών στη βάση δεδομένων? 818 00:39:12,510 --> 00:39:13,410 και την ενημέρωση. 819 00:39:13,410 --> 00:39:17,010 Έτσι, αν έχετε χρησιμοποιήσει ποτέ το Google Υπολογιστικά φύλλα, η Apple αριθμοί, Microsoft 820 00:39:17,010 --> 00:39:19,310 Excel, έχουν εκτελεστεί, πιθανότατα, όλα 821 00:39:19,310 --> 00:39:22,530 των πράξεων αυτών ως άνθρωπο με χρησιμοποιώντας μόνο το πληκτρολόγιο και mouse-- σας 822 00:39:22,530 --> 00:39:26,050 εισαγωγή δεδομένων, χρησιμοποιώντας τα μάτια σας για να επιλέξετε ή να αναζητήσετε δεδομένα, 823 00:39:26,050 --> 00:39:28,360 ή δεδομένα ενημέρωσης, ή να διαγράψετε τα δεδομένα. 824 00:39:28,360 --> 00:39:29,870 >> Λοιπόν, τι σημαίνει αυτό; 825 00:39:29,870 --> 00:39:34,300 Λοιπόν, προ-εγκατεστημένο σε CS50 IDE είναι ένα πρόγραμμα που ονομάζεται MySQL. 826 00:39:34,300 --> 00:39:37,050 Είναι ένα ελεύθερο, ανοικτού κώδικα βάση δεδομένων που είναι εξαιρετικά δημοφιλής. 827 00:39:37,050 --> 00:39:40,590 Facebook, για παράδειγμα, χρησιμοποιεί σε αυτό ημέρα, μεταξύ άλλων εργαλείων που χρησιμοποιούν. 828 00:39:40,590 --> 00:39:44,300 Και πολύ πολύ δημοφιλείς ιστοσελίδες χρησιμοποιούν αυτό σε μεγάλο βαθμό επειδή είναι γρήγορο, 829 00:39:44,300 --> 00:39:45,230 και επειδή είναι δωρεάν. 830 00:39:45,230 --> 00:39:46,820 Αν και σίγουρα υπάρχουν εναλλακτικές λύσεις. 831 00:39:46,820 --> 00:39:49,580 Και κάποιοι από εσάς μπορεί να ανακατεύομαι με εναλλακτικές λύσεις για την τελική έργων. 832 00:39:49,580 --> 00:39:55,330 >> Αυτό είναι ένα στιγμιότυπο, εν τω μεταξύ, του ένα εργαλείο web-based ονομάζεται phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Είναι τυχαίο το γεγονός ότι Αυτό το web-based εργαλείο είναι επίσης 834 00:39:58,260 --> 00:40:01,720 γραμμένο σε μια γλώσσα, PHP, αλλά αυτό που είναι γραφτό να κάνουμε 835 00:40:01,720 --> 00:40:04,620 είναι να μας δώσει μια web-based διεπαφή με μια βάση δεδομένων. 836 00:40:04,620 --> 00:40:07,180 Επειδή η MySQL είναι συνήθως κάτι, ιστορικά, μπορείτε 837 00:40:07,180 --> 00:40:08,770 θα αλληλεπιδρούν με μόνο με μια γραμμή εντολών. 838 00:40:08,770 --> 00:40:10,811 Και θα ήταν σούπερ ενοχλητικό και απόκρυφες να έχουν 839 00:40:10,811 --> 00:40:14,487 για να πληκτρολογήσετε εντολές κειμένου για να επιλέξετε δεδομένων, εισαγωγή δεδομένων και διαγραφή δεδομένων. 840 00:40:14,487 --> 00:40:16,820 Έτσι μερικοί άνθρωποι στο διαδίκτυο έγραψε ένα web-based πρόγραμμα 841 00:40:16,820 --> 00:40:18,900 ότι απλά αφήστε μας να διαχειρίζονται τα δεδομένα στη βάση δεδομένων μας. 842 00:40:18,900 --> 00:40:23,040 Είναι σαν διπλό κλικ στο Excel, και τρέχει ένα web-based έκδοση αυτών. 843 00:40:23,040 --> 00:40:26,370 >> Και τι πρόκειται να χρησιμοποιήσετε αυτό για τελικά την επόμενη εβδομάδα, όχι σε π-set έξι, 844 00:40:26,370 --> 00:40:28,680 αλλά να χτίσει κάτι που ονομάζεται CS50 Οικονομικών, η οποία 845 00:40:28,680 --> 00:40:32,630 πρόκειται να έχει μια βάση δεδομένων χρήστες, με ονόματα χρήστη και κωδικούς πρόσβασης, 846 00:40:32,630 --> 00:40:34,860 δολάριο ποσά που έχουν στους τραπεζικούς τους λογαριασμούς. 847 00:40:34,860 --> 00:40:37,280 Είναι πρόκειται να είναι κάτι που χρησιμοποιείτε για να αποθηκεύσετε 848 00:40:37,280 --> 00:40:39,910 τα σύμβολα και οι ποσότητες των αποθεμάτων που οι χρήστες 849 00:40:39,910 --> 00:40:42,567 έχουν αγοράσει χρήση εικονικών δολάρια που θα δώσει σε αυτούς. 850 00:40:42,567 --> 00:40:44,900 Και αυτό πρόκειται να επιτρέψει στους χρήστες για να εγγραφείτε για την ιστοσελίδα σας, 851 00:40:44,900 --> 00:40:47,190 έτσι ώστε ακόμη και τους φίλους σας να συντονιστείτε στον ιστοχώρο σας 852 00:40:47,190 --> 00:40:49,360 και στην πραγματικότητα εγγραφή, συνδεθείτε, και παίζουν 853 00:40:49,360 --> 00:40:52,807 και προσπαθήστε να βρείτε σφάλμα στον κώδικα σας, και να προσπαθήσουμε να βρούμε σφάλματα στην ιστοσελίδα σας. 854 00:40:52,807 --> 00:40:55,390 Και απλά θα εγγραφούν προσθέτοντας τον εαυτό τους, αποτελεσματικά, 855 00:40:55,390 --> 00:40:58,120 μέσω του κωδικού που γράφετε στη βάση δεδομένων σας. 856 00:40:58,120 --> 00:41:02,470 >> Για παράδειγμα, αυτό είναι ένας γρήγορος screenshot του τι είναι μια βάση δεδομένων που μπορεί να μοιάζει. 857 00:41:02,470 --> 00:41:05,190 Αυτό ήταν από μία από solutions-- του περασμένου έτους 858 00:41:05,190 --> 00:41:07,760 αυτό είναι σαν ένα μίνι Excel αρχείο, αποθηκεύεται στη βάση δεδομένων μας, 859 00:41:07,760 --> 00:41:09,950 αποθηκεύονται σε αυτό το λογισμικό που ονομάζεται MySQL. 860 00:41:09,950 --> 00:41:13,260 Από την αριστερή πλευρά, έχω προφανώς δίνεται σε κάθε χρήστη ένα μοναδικό αριθμό. 861 00:41:13,260 --> 00:41:16,200 Στη δεύτερη στήλη, έχω δώσει ο καθένας ένας χρήστης name-- δική μου 862 00:41:16,200 --> 00:41:16,880 ανάμεσα τους. 863 00:41:16,880 --> 00:41:21,430 Και από την δεξιά πλευρά, Τους έχω δώσει μια hash. 864 00:41:21,430 --> 00:41:26,760 >> Τώρα αυτό είναι πραγματικά ένα κωδικό πρόσβασης, αλλά δεν είναι ένα απλό κωδικό κείμενο. 865 00:41:26,760 --> 00:41:30,160 Είναι ένα κρυπτογραφημένο κωδικό πρόσβασης, εάν θα σας, ή ένα hash τον κωδικό πρόσβασης. 866 00:41:30,160 --> 00:41:32,000 Ποια θα επανέλθουμε σύντομα. 867 00:41:32,000 --> 00:41:34,340 >> Αλλά αν έχετε διαβάσει ποτέ ένα άρθρο σχετικά με το πώς 868 00:41:34,340 --> 00:41:37,950 κωδικό σας σε κάποια τράπεζα ή μερικά δικτυακός τόπος μπορεί να έχει παραβιαστεί, 869 00:41:37,950 --> 00:41:39,630 αυτό μπορεί να σημαίνει γενικά ένα από τα δύο πράγματα. 870 00:41:39,630 --> 00:41:42,780 Έτσι, αυτό είναι απλά ένα απόσπασμα από έξι χρήστες. 871 00:41:42,780 --> 00:41:45,460 Όλοι τώρα μπορείτε να υπολογίσετε έξω μέσω hacking ή σκάσιμο 872 00:41:45,460 --> 00:41:47,690 τι κωδικούς έξι άνθρωποι μας είναι. 873 00:41:47,690 --> 00:41:49,720 Αλλά αν έχετε πάρει ποτέ μια προειδοποίηση ή μια συγνώμη 874 00:41:49,720 --> 00:41:52,803 από μια εταιρεία ή ιστοσελίδα ρητό, Συγγνώμη, ένας χάκερ έσπασε στη βάση δεδομένων μας, 875 00:41:52,803 --> 00:41:56,360 μάλλον θα πρέπει να αλλάξετε σας κωδικός πρόσβασης, τι θα μπορούσε να σημαίνει; 876 00:41:56,360 --> 00:41:59,670 >> Λοιπόν, ένα, θα μπορούσε να σημαίνει η Η εταιρεία έχει περισσότερους βλακώδης, 877 00:41:59,670 --> 00:42:03,630 και έχει αποθήκευση κωδικό σας σε μια στήλη σαν αυτό, χωρίς κρυπτογράφηση. 878 00:42:03,630 --> 00:42:05,840 Πράγμα που σημαίνει τον αντίπαλο, που έκλεψε τη βάση δεδομένων, 879 00:42:05,840 --> 00:42:07,440 κυριολεκτικά ξέρει σας username και password. 880 00:42:07,440 --> 00:42:08,960 Αυτό είναι το χειρότερο δυνατό σενάριο. 881 00:42:08,960 --> 00:42:11,710 Και όπως θα δείτε στο ρ-σετ επτά τόσο εύκολο να αποφευχθεί. 882 00:42:11,710 --> 00:42:15,624 Δεν υπάρχει απολύτως καμία δικαιολογία γι 'αυτό μορφή βλακείας στη σημερινή διαδίκτυο. 883 00:42:15,624 --> 00:42:18,540 Two-- και θα βρούμε μερικά άρθρα να καταθέσει το γεγονός ότι αυτή εξακολουθεί να 884 00:42:18,540 --> 00:42:21,710 συμβαίνει, nonetheless-- δύο, ίσως ο αντίπαλος 885 00:42:21,710 --> 00:42:23,840 έκλεψε αυτήν την έκδοση της βάσης δεδομένων. 886 00:42:23,840 --> 00:42:27,110 Ποιο είναι ακόμα κάπως άσχημα, διότι τώρα ξέρουν ότι έχω έξι πελάτες, 887 00:42:27,110 --> 00:42:29,270 Ξέρω τα ονόματα χρήστη αυτών των έξι πελάτες, 888 00:42:29,270 --> 00:42:32,910 και ξέρω ότι το κρυπτογραφημένο εκδόσεις, ή οι κατακερματισμένες εκδόσεις, 889 00:42:32,910 --> 00:42:34,340 των κωδικών πρόσβασης των έξι αυτών των πελατών. 890 00:42:34,340 --> 00:42:37,010 Αλλά κάποιος από εσάς που θα μπορούσαν να έχω κάνει [? Hacker 2;] 891 00:42:37,010 --> 00:42:41,150 όπου μπορείτε ραγισμένα τους κωδικούς πρόσβασης, ή πήρε μια ματιά σε αυτό εκδοχή του προβλήματος 892 00:42:41,150 --> 00:42:46,280 σύνολο, γιατί είναι ακόμα λίγο ανησυχητικό αν ο αντίπαλος γνωρίζει κατακερματισμού σας 893 00:42:46,280 --> 00:42:47,435 κωδικούς πρόσβασης; 894 00:42:47,435 --> 00:42:49,732 >> Κοινό: επειδή θα μπορούσε να εισάγετε ολόκληρο λεξικό 895 00:42:49,732 --> 00:42:50,690 στη συνάρτηση κατακερματισμού. 896 00:42:50,690 --> 00:42:54,520 Και αν ο κωδικός σας είναι ένα λεξικό λέξη, [? μπορούν απλά match--;] 897 00:42:54,520 --> 00:42:57,640 >> DAVID Malan: Ακριβώς, ο αντίπαλος μπορεί να γράψει κώδικα ακριβώς όπως κάποιοι από εσάς 898 00:42:57,640 --> 00:43:00,526 έκανε για [? Hacker?] 2, σύμφωνα με την οποία θα επαναλάβει πάνω 899 00:43:00,526 --> 00:43:03,400 όλες τις λέξεις στο λεξικό, ή όλοι οι πιθανοί συνδυασμοί των Α 900 00:43:03,400 --> 00:43:06,610 έως Z και μία μέσω nine-- το οποίο ακούγεται σαν μια παρτίδα, και αυτό είναι. 901 00:43:06,610 --> 00:43:08,361 Αλλά για έναν υπολογιστή, είναι αρκετά καταριέται γρήγορα. 902 00:43:08,361 --> 00:43:10,610 Και στην πραγματικότητα, ότι ήταν το σημείο [; Hacker 2,?] Ήταν 903 00:43:10,610 --> 00:43:12,540 να λάβουν τα πράγματα ότι κυριολεκτικά μοιάζει με αυτό, 904 00:43:12,540 --> 00:43:14,900 και η αποσυμπίληση ό, τι πραγματικά ήταν. 905 00:43:14,900 --> 00:43:17,270 >> Έτσι, θα δούμε πώς μπορούμε να αποθηκεύσετε αυτό πιο αποτελεσματικά. 906 00:43:17,270 --> 00:43:20,210 Βγάζει, ευτυχώς σε MySQL, υπάρχουν θα είναι τα είδη δεδομένων. 907 00:43:20,210 --> 00:43:22,800 Και ένα από τα μέρη για διασκέδαση σχεδιασμός βάσεων δεδομένων, για να είμαι ειλικρινής, 908 00:43:22,800 --> 00:43:25,810 είναι στην πραγματικότητα αποφασίζουν για τον εαυτό σας πώς θα πρέπει να αντιπροσωπεύουν τα δεδομένα; 909 00:43:25,810 --> 00:43:29,630 Θα πρέπει να αντιπροσωπεύουν έναν αριθμό τηλεφώνου, όπως ένας int, σαν ένα μεγάλο αριθμό, ή ένα μακρύ; 910 00:43:29,630 --> 00:43:31,630 Ή μήπως το κάνουμε πραγματικότητα ως μια ακολουθία των χαρακτήρων; 911 00:43:31,630 --> 00:43:33,780 Και μπορεί να υπάρχουν πολύ μη-τετριμμένη επιπτώσεις αυτού. 912 00:43:33,780 --> 00:43:36,714 >> Στην πραγματικότητα, ένα από τα νωρίτερο, διασκέδαση σχετικός ιστορίες 913 00:43:36,714 --> 00:43:39,880 είναι όταν Mark Zuckerberg έχτιζε Facebook, γράφτηκε αρχικά σε, 914 00:43:39,880 --> 00:43:42,300 και εξακολουθεί να είναι σε μεγάλο βαθμό γραμμένο σε PHP. 915 00:43:42,300 --> 00:43:45,400 Και μία από τις μεγαλύτερες προκλήσεις που αντιμετώπισαν στην αρχή ήταν κλιμάκωση. 916 00:43:45,400 --> 00:43:48,820 Όταν κράτησαν την προσθήκη μετά το σχολείο σχολείο μετά το σχολείο, στη γνώση μου, 917 00:43:48,820 --> 00:43:51,639 μία από τις αρχικές λύσεις ήταν ουσιαστικά να αντιγράψετε και να επικολλήσετε 918 00:43:51,639 --> 00:43:53,430 ορισμένες από τις βάσεις δεδομένων και μερικά από τον κώδικα, 919 00:43:53,430 --> 00:43:55,346 έτσι ώστε Χάρβαρντ ήταν τρέχει σε δικό του server, 920 00:43:55,346 --> 00:43:56,995 και το MIT έτρεχε σε δικό του server. 921 00:43:56,995 --> 00:43:59,120 Και αυτή ήταν η αιτία, για μερικούς από εσάς θα θυμάστε, 922 00:43:59,120 --> 00:44:01,510 δεν θα μπορούσατε να έχετε φίλους σε άλλα δίκτυα. 923 00:44:01,510 --> 00:44:05,050 >> Πιθανώς δεν έχετε φίλους στο ΜΙΤ ή του Χάρβαρντ 10 περίπου χρόνια πριν, 924 00:44:05,050 --> 00:44:07,467 αλλά δεν θα μπορούσε να εκταθεί δίκτυα για το λόγο αυτό εν μέρει. 925 00:44:07,467 --> 00:44:10,550 Και μία από τις μεγαλύτερες προκλήσεις για την Mark και για εταιρείες όπως το Facebook 926 00:44:10,550 --> 00:44:13,460 είναι ουσιαστικά να χειρίζονται εκατοντάδες και χιλιάδες και τα εκατομμύρια 927 00:44:13,460 --> 00:44:14,460 των αιτήσεων ανά δευτερόλεπτο. 928 00:44:14,460 --> 00:44:16,501 Έτσι, τα πράγματα θα αρχίσουμε μιλάμε για αυτή την εβδομάδα 929 00:44:16,501 --> 00:44:19,860 Τα πραγματικά πρόκειται να είναι συναφές με γράψιμο καλό λογισμικό, και γενικά 930 00:44:19,860 --> 00:44:23,040 επιτυχή εργαλεία που μπορεί να χειριστεί πολλούς χρήστες. 931 00:44:23,040 --> 00:44:25,460 >> Έτσι, θα μιλήσουμε για τα πράγματα όπως η δεικτοδότηση και την αναζήτηση, 932 00:44:25,460 --> 00:44:26,910 αλλά αυτό είναι για σήμερα. 933 00:44:26,910 --> 00:44:28,780 Θα σας δούμε για περισσότερα την Τετάρτη. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [ΜΟΥΣΙΚΗ - "Seinfeld" ΘΕΜΑ] 936 00:44:33,902 --> 00:44:35,943 DAVID Malan: Μπορείτε να να αυτό, και να αφαιρέσετε από αυτήν. 937 00:44:35,943 --> 00:44:38,859 Και δεν έχετε να κολλήσετε με μερικοί προκαθορισμένο ποσό της μνήμης. 938 00:44:38,859 --> 00:44:40,580 Λοιπόν, τι είναι αυτό πρόκειται να ονομάζεται; 939 00:44:40,580 --> 00:44:42,369 >> ΟΜΙΛΗΤΗΣ 1: Λοιπόν, τι συμβαίνει; 940 00:44:42,369 --> 00:44:43,535 ΟΜΙΛΗΤΗΣ 2: Τι εννοείς; 941 00:44:43,535 --> 00:44:44,451 Έχει δώσει μια διάλεξη. 942 00:44:44,451 --> 00:44:47,650 DAVID Malan: Και μπορούμε να χρησιμοποιήσουμε ένα λειτουργία που ονομάζεται malloc να memory-- 943 00:44:47,650 --> 00:44:50,050 >> ΟΜΙΛΗΤΗΣ 1: Γιατί δεν τα χέρια του κινούνται; 944 00:44:50,050 --> 00:44:52,450 >> ΟΜΙΛΗΤΗΣ 2: Καλά that's-- Ξέρετε, αυτό είναι φυσιολογικό. 945 00:44:52,450 --> 00:44:57,162 Είναι ακριβώς σαν να έχει μόλις μεγάλα λουκάνικα κρέμονται εκεί. 946 00:44:57,162 --> 00:44:59,040 >> ΟΜΙΛΗΤΗΣ 1: Αυτό είναι φυσιολογικό; 947 00:44:59,040 --> 00:45:03,096 >> ΟΜΙΛΗΤΗΣ 2: Ναι, Νομίζω ότι εμείς μόλις αναλάβει ο ίδιος κατά λάθος 948 00:45:03,096 --> 00:45:06,840 αντικαταστάθηκε αποσμητικό του με σούπερ κόλλα. 949 00:45:06,840 --> 00:45:07,608