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 مالان: هذا هو CS50، و هذه هي بداية من الأسبوع الثامن. 5 00:00:13,350 --> 00:00:17,510 ونحن متحمسون جدا للترحيب مرة أخرى، مفاجأة كبيرة، رامون CS50 الخاصة 6 00:00:17,510 --> 00:00:22,160 جالفان، أحد كبار ارتفاع الذي كان أمضى الأشهر القليلة الماضية 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 ولذا فإننا متحمسون جدا لرؤية هذا لاول مرة على شبكة USA كانون الثاني الجاري. 10 00:00:36,610 --> 00:00:40,370 حتى لا تنزعج لذلك، ولل أكثر رامون خلال الأسابيع القادمة. 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، وعالم برمجة الويب. 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 في حد ذاته، وإنما هو خادم الويب الفعلي. 24 00:01:17,620 --> 00:01:21,590 سوف تكتب بقية خادم الويب مكتوب في 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 حيث الويب الخاص بك الخادم هو الذهاب الى تفسير ذلك 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 تعيين ستة هو أكثر من 1000 طوابير طويلة، وهو الكثير منها هو تعليق، لتكون 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 مجموعة مشكلة سبع سيكون حول مما يجعل تطبيق على شبكة الإنترنت الخاصة بك 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 وحددت المشكلة ستركز على بعد ثمانية لغة أخرى تعرف باسم جافا سكريبت. 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 هي فرصة جميلة لعارضة لك بإرسال رسالة بريد إلكتروني مقتضبة جدا 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 ما يسمى hackathon CS50 هنا في كامبريدج لجامعة هارفارد وييل الطلاب 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 هنا، في كامبريدج، وكذلك آخر في نيو هافن. 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 هذه الصورة، نذكر من الأسبوع الصفر أخذت حول 04:00 ليلة واحدة في السنوات الماضية. 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-- جافا، بيثون، روبي 88 00:04:25,480 --> 00:04:31,270 أو عناقيد من بالآخرين ولكن في حين أنه في 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 وأنا الآن مجرد ازعاج [؟ ساندرز، و؟] ربما، 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 وبايثون وبيرل وجافا 116 00:05:41,130 --> 00:05:46,750 والهدف-C-- في الواقع، وليس ذلك بكثير الهدف-C-- لكن سويفت، وهذه أحدث 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 كتبنا البرنامج قليلا دينكي التي قال فقط، "مرحبا العالم". 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 مالان: جيد، هناك بعض من وظيفة 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 مالان: أكثر ديناميكية؟ 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 مالان: OK، جيدة، لذلك اعتمادا على المدخلات، 158 00:07:22,390 --> 00:07:23,470 لم يكن لديك لتجميع في كل مرة. 159 00:07:23,470 --> 00:07:24,990 وهذا هو حقا كما بهذه البساطة هكذا- يضرب ما 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 لفهم، لأن إنتل وحدة المعالجة المركزية، أو أيا كان، 176 00:08:00,070 --> 00:08:03,070 يفهم فقط ما يحدث على مع تلك الأنماط من البتات. 177 00:08:03,070 --> 00:08:05,370 في حين مترجم هو برنامج حقا 178 00:08:05,370 --> 00:08:07,980 أن قراءة مصدر أسكي التعليمات البرمجية التي قمت بكتابتها، 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 لذلك فمن قليلا من المفاضلة. 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 والآن انا ذاهب الى المضي قدما ويقول: "الطباعة مرحبا العالم" - 186 00:08:31,450 --> 00:08:35,130 وأذكر أنني يمكن استخدام الطباعة، وأنا لا لديك لاستخدام الطباعة-F. والآن إلى هنا، 187 00:08:35,130 --> 00:08:42,039 إذا كنت تفعل PHP من hello.php، huh-- I لا يبدو أن تفسيره. 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 مالان: نعم، تحتاج أن أعلى زاوية قوس يصل. 191 00:08:47,015 --> 00:08:49,390 حتى انها نوع من مزعج، ولكن أن تعتاد على ذلك بسرعة. 192 00:08:49,390 --> 00:08:53,500 إذا كان لدي لكتابة رمز PHP، I عموما بحاجة لنقول للبرنامج، 193 00:08:53,500 --> 00:08:56,950 أو نقول للمترجم، مهلا 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 لأنه في الأول الماضي يمكن فقط إرسال مائل نقطة 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 مع I 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 وهذا الآن هو المسار إلى برنامج على نظام لينكس النموذجية التي 207 00:09:38,490 --> 00:09:41,500 ويسمى البيئة، أو الحياة الفطرية. 208 00:09:41,500 --> 00:09:43,920 وهذا line-- قصة طويلة سطر واحد فقط short-- 209 00:09:43,920 --> 00:09:48,710 يقول: مهلا الكمبيوتر، والعثور على 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 يمكنني القيام به نقطة مائل مرحبا دوت بي، 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-- زائد س 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-- نقطة خفض 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 ولكن هذا هو مثل لC نسخة حادة تشمل، 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 مالان: عندما لم يكن لديك لقيادة خط الحجج. 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؟] [؟ AM؟] [؟ الاقتباس؟] PHP الاقتباس نقطة PHP، 297 00:13:46,950 --> 00:13:50,290 وانا ذاهب للبحث عن شيء مثل GOOG، وهو رمز السهم لها، 298 00:13:50,290 --> 00:13:55,510 وسهم واحد من اسمها الجديد، الأبجدية المؤتمر الوطني العراقي، يكلف 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 >> مايكروسوفت أعتقد أنه هذا واحد، MSFT-- 53 $. 302 00:14:06,770 --> 00:14:09,720 أعتقد ياهو هو ربما ذلك. 303 00:14:09,720 --> 00:14:12,130 والفيسبوك هو ذلك. 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 I تحديد اسم وظيفتي. 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 مالان: سؤال جيد. 332 00:15:23,350 --> 00:15:26,070 في سياق شبكة الإنترنت، والتي نحن حول حرفيا للانتقال إلى، 333 00:15:26,070 --> 00:15:28,028 كنت لا تستخدم ما يسمى كوخ في القمة، 334 00:15:28,028 --> 00:15:31,980 لأن server-- على شبكة الإنترنت في كثير من الأحيان برنامج يسمى أباتشي أو مايكروسوفت 335 00:15:31,980 --> 00:15:37,470 IIS، ملقم معلومات إنترنت، أو أي عدد من غيرها من البرامج خادم الويب، 336 00:15:37,470 --> 00:15:40,636 يعرف أنه عندما يرى ملف نقطة 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 لكنه طريقتنا في سد أمثلة C لدينا الآن لدينا 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 حتى إذا كان لدينا خادم الويب، أو بالأحرى اذا كان لدينا جهاز الكمبيوتر المحمول أكثر من هنا، 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 هو خادم مع بعض الاضواء ربما. 351 00:16:23,120 --> 00:16:27,530 ما يجري في الواقع على بين هذه اتصالين؟ 352 00:16:27,530 --> 00:16:29,240 >> حتى في هذا المبنى هو خادم الويب. 353 00:16:29,240 --> 00:16:31,420 هذا مجرد جهاز كمبيوتر وهذا ما تعمل بعض التشغيل 354 00:16:31,420 --> 00:16:34,561 system-- ربما البرمجيات الحرة ودعا أباتشي، الذي يشغل 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 لدينا خادم الويب الخاص بك تشغيل، ولكم جميعا 359 00:16:43,130 --> 00:16:45,730 لدينا عناوين المواقع الفريدة الخاصة بك، كما بدأنا لمناقشة، 360 00:16:45,730 --> 00:16:47,280 وسترى أكثر في وضع P. ستة. 361 00:16:47,280 --> 00:16:49,450 >> وهنا جهاز الكمبيوتر المحمول في مكان ما آخر على الإنترنت. 362 00:16:49,450 --> 00:16:54,550 وذلك عندما أقوم بزيارة URL الذي ينتمي بالنسبة لي، أن حركة المرور على الإنترنت سوف 363 00:16:54,550 --> 00:16:58,360 أكثر من الخادم، الخادم تلقي 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 يتم تقديم من قبل خادم الويب. 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 طريقة للقول كيف يجب أن تحدد موقع على شبكة الانترنت على أساس 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 وبالفعل، وسوف نقوم بسرعة نصل الى هناك مع ف مجموعة السبع. 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 A الرأي جماليات من موقع الويب الخاص بك. 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 مالان: 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 إذا كنت فتح عرض المصدر هنا، نعم، هذا هو بالضبط ما يحدث هنا. 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 خادم الويب، الملقب، 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 عندما يقرأ هذا الملف-- الأعلى إلى الأسفل، من اليسار إلى 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 ولكن أنا تسمية كل شيء نقطة 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 قرص بعض عناوين المواقع، ويكون في طريقي. 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 مالان: OK، وحسن. 495 00:23:42,160 --> 00:23:46,115 لذلك هناك نمط، بالتأكيد، حيث في كل مرة وأنا اخترت محاضرة I، 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 OK، حرفيا إذا كنت تعرف لا يوجد برنامج على الإطلاق، 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 مالان: جيد، وبالتالي فإن عنوان يتغير، أي وقت مضى حتى قليلا. 510 00:24:22,360 --> 00:24:24,010 صفر يجري، بطبيعة الحال، إلى واحد. 511 00:24:24,010 --> 00:24:25,570 نفس الشيء يحدث في العلامة H1. 512 00:24:25,570 --> 00:24:28,790 ونحن لا نرى ذلك تماما كما بسهولة، لأن عناوين طويلة قليلا. 513 00:24:28,790 --> 00:24:30,670 ولكن تلك عناوين تتغير قليلا. 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 فكيف يمكننا أن نذهب عن العوملة بعض من ذلك؟ 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 مالان: نعم. 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 مالان: أنا بحاجة لكم ل أتكلم فقط قليلا بصوت أعلى. 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 مالان: OK، وحسن. 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 دعونا حرفيا تسليط الضوء فقط وخفض هذا المحتوى من، 546 00:26:09,280 --> 00:26:13,270 وضعها في الملف-- منفصلة تماما مثل فكرة CSS، حيث أننا يؤخذ بها 547 00:26:13,270 --> 00:26:16,710 جماليات متشابهة جدا، وطرح في ملف نقطة PHP منفصل، 548 00:26:16,710 --> 00:26:20,340 استخدام تتطلب mechanism-- التي هو مثل C 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 يمكنني تغييره الآن في مكان واحد فقط، أو اثنين من الأماكن-رأس وتذييل، 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 رأس دوت PHP، وهكذا ما المترجم PHP 568 00:27:17,872 --> 00:27:20,580 does-- المضمن في شبكة الإنترنت الخادم، لأننا تكوينها 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 مالان: نعم، النوع الأول من قطع الزاوية غير بديهي. 585 00:28:00,570 --> 00:28:04,489 أشرتم إلى أن ما تم تغيير كان العنوان والرقم في العنوان، 586 00:28:04,489 --> 00:28:05,530 وعدد في H1. 587 00:28:05,530 --> 00:28:08,170 لذلك كان الحل بلدي، OK، دعونا فقط إعادة تسمية الصفحة، 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 يبدو لي أن تتطلب واحد فقط الملف-- دعا، بطبيعة الحال، 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 حسنا ها هي paren قريب، ها هي paren مفتوحة. 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 وبناء الجملة هذا باعتراف الجميع هو القليل من غير تقليدي، 620 00:29:35,700 --> 00:29:38,860 ولكن هذا هو مجرد عابرة في زوج قيمة مفتاح واحد. 621 00:29:38,860 --> 00:29:43,530 والمفتاح هو، بين قوسي الإقتباس العنوان، والقيمة هي CS50. 622 00:29:43,530 --> 00:29:46,220 >> إذا كان علينا القيام به هذا في C، فإنه قد بدلا من ذلك 623 00:29:46,220 --> 00:29:49,400 تبدو أشبه هذا، مجرد الإقتباس 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 فوق C، من الناحية النظرية. 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 وهذا هو آخر قطعة، أعتقد، من جملة غير تقليدي. 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 ونفس الشيء بالنسبة للH1. 655 00:31:21,766 --> 00:31:24,310 >> الآن تقول ما يبدو شيء غير تقليدي جدا. 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 ولكننا سوف نرى أن القادم الأسبوع مع جافا سكريبت. 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 وكما بلدي H1. 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 مالان: نعم، أنا فقط غيرت يتطلب خط. 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 وكلمة واحدة القليل الذي يشير آلان من غير التذييل هنا، مقابل رأس هنا. 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 مالان: رأس أو تذييل الصفحة. 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 ومن ثم بناء الجملة هذا غير تقليدي يسمح لي لإنشاء مسار في متغير هنا. 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 مالان: بالضبط. 726 00:34:34,940 --> 00:34:37,600 إذا القالب، الإقتباس، رأس، أو إذا كان القالب، 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-- إذا كنت دراية جافا سكريبت أو جافا، 731 00:34:54,520 --> 00:34:56,949 يمكنك استخدام زائد التوقيع على قيام سلسلة. 732 00:34:56,949 --> 00:34:59,974 >> في C، بل هو ألم في neck-- وأنا آسف لذلك، في مجموعة P ستة، 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 مالان: عليك أن 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 ثم سلسلة معا باستخدام يحرك القط أو يدويا مع لحلقة، 745 00:35:24,994 --> 00:35:26,160 أو أي عدد من التقنيات. 746 00:35:26,160 --> 00:35:27,760 ونعرض لكم زوجين في ست سنوات المنصوص ص. 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 وعندما كان لدينا عرض بسيط جدا لحظة مرة أخرى، حيث كنا ملف IO في C، 766 00:36:31,030 --> 00:36:34,520 وأعتقد أنني كتبته في اسمي، و اسم هانا، واسم ماريا، 767 00:36:34,520 --> 00:36:37,610 أو ربما اسم اندي، و ثم أنقذنا من الملف-- 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 وضع أسماء هؤلاء المستخدمين و النوم أسماء وكل ذلك 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 A قاعدة البيانات التي تسمح لي الاستعلام عن معلومات. 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-- استعلام منظم اللغة، وهي لغة أخرى. 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، أو جوجل جداول البيانات، أو أرقام أبل. 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 >> ولكن ما هو جميل، وخاصة إذا نحن لسنا على دراية فائقة إكسل، 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 في الواقع، إكسل بشكل خاص سيئا على مجموعات كبيرة من البيانات. 797 00:37:59,950 --> 00:38:02,460 في واقع الأمر، وتصل إلى عدد قليل منذ سنوات، اتضح 798 00:38:02,460 --> 00:38:08,890 سوف تتفوق تسمح لك لتخزين ما يصل إلى 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 لبحثي وI يريد تحليلها بسرعة 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 ما كان يقوم به مايكروسوفت، ويفترض؟ 806 00:38:29,670 --> 00:38:32,430 إذا كنت جيدة مع الصلاحيات الخاصة بك من اثنين؟ 807 00:38:32,430 --> 00:38:37,160 نعم، كانوا يستخدمون 16 بت قيمة لتمثيل رقم الصف. 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 بت، فإنها تقتصر لي إلى 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 لذلك إذا كنت قد استخدمت من أي وقت مضى جوجل جداول البيانات، أرقام أبل، مايكروسوفت 820 00:39:17,010 --> 00:39:19,310 إكسل، كنت قد أعدم، على الأرجح، عن 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 هو برنامج يسمى الخلية. 826 00:39:34,300 --> 00:39:37,050 انها ومفتوحة المصدر المجانية قاعدة بيانات سوبر شعبية. 827 00:39:37,050 --> 00:39:40,590 الفيسبوك، على سبيل المثال، يستخدم لهذا اليوم، من بين غيرها من الأدوات التي يستخدمونها. 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 >> هذا هو لقطة، وفي الوقت نفسه، من أداة على شبكة الإنترنت يسمى بريس. 833 00:39:55,330 --> 00:39:58,260 بل هو من قبيل المصادفة أن هذه الأداة على شبكة الإنترنت أيضا 834 00:39:58,260 --> 00:40:01,720 مكتوب بلغة، PHP، ولكن ما من المفترض أن تفعل 835 00:40:01,720 --> 00:40:04,620 ويعطينا على شبكة الإنترنت واجهة لقاعدة بيانات. 836 00:40:04,620 --> 00:40:07,180 لأن الخلية هو عادة شيء، من الناحية التاريخية، ل 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 وحتى بعض الناس على شبكة الإنترنت كتب برنامج على شبكة الإنترنت 841 00:40:16,820 --> 00:40:18,900 أن مجرد السماح لنا إدارة البيانات في قاعدة البيانات الخاصة بنا. 842 00:40:18,900 --> 00:40:23,040 انها مثل النقر المزدوج على Excel و تشغيل النسخة الموجودة على الانترنت منها. 843 00:40:23,040 --> 00:40:26,370 >> وماذا كنت تنوي استخدام هذه ل في نهاية المطاف الأسبوع المقبل، وليس في ست سنوات المنصوص ع، 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 >> على سبيل المثال، وهذا هو لقطة سريعة ما قاعدة بيانات قد تبدو. 857 00:41:02,470 --> 00:41:05,190 كان هذا من أحد solutions-- العام الماضي 858 00:41:05,190 --> 00:41:07,760 هذا هو مثل مصغرة إكسل ملف، وتخزينها في قاعدة البيانات الخاصة بنا، 859 00:41:07,760 --> 00:41:09,950 تخزينها في هذا البرنامج يسمى الخلية. 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 وعلى الجانب الأيمن، لقد أعطاهم تجزئة. 864 00:41:21,430 --> 00:41:26,760 >> الآن هذا هو في الواقع كلمة السر، ولكنها ليست كلمة مرور نص عادي. 865 00:41:26,760 --> 00:41:30,160 انها كلمة المرور المشفرة، إذا صح التعبير، أو كلمة مرور التجزئة. 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 كل واحد منكم الآن ان الرقم من خلال القرصنة أو تكسير 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 حرفيا يعرف بك اسم المستخدم وكلمة المرور. 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 ولكن كل واحد منكم قد فعلت [؟ القراصنة 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 مالان: بالضبط، وعدو تستطيع فقط كتابة التعليمات البرمجية، مثل بعض منكم 898 00:42:57,640 --> 00:43:00,526 فعلت ل[؟ القراصنة؟] (2)، حيث يمكنك تكرار عبر 899 00:43:00,526 --> 00:43:03,400 جميع الكلمات في القاموس، أو كل مزيج ممكن من A 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 في واقع الأمر، هو أن نقطة [؟ القراصنة 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 اتضح، والحمد لله في الخلية، هناك سوف تكون أنواع البيانات. 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 يجب أن تمثل رقم الهاتف كما عدد صحيح، مثل عدد كبير، أو لفترة طويلة؟ 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 عندما كان مارك زوكربيرج بناء الفيسبوك، كانت مكتوبة اصلا في، 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 بحيث كان هارفارد التي تعمل على الخادم الخاص بها، 920 00:43:55,346 --> 00:43:56,995 ومعهد ماساتشوستس للتكنولوجيا والتي تعمل على الخادم الخاص بها. 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 >> وربما كنت لم يكن لديك أصدقاء في MIT أو هارفارد قبل 10 سنة أو نحو ذلك، 924 00:44:05,050 --> 00:44:07,467 ولكن لا يمكن أن تمتد شبكات لهذا السبب جزئيا. 925 00:44:07,467 --> 00:44:10,550 واحدة من أكبر التحديات التي تواجه مارك وبالنسبة للشركات مثل الفيسبوك 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 >> [MUSIC - "ساينفيلد" THEME] 936 00:44:33,902 --> 00:44:35,943 DAVID مالان: يمكنك ل ذلك، وطرح منه. 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 مالان: ويمكننا استخدام استدعاء الدالة 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 استبدال مزيل العرق له مع superglue. 949 00:45:06,840 --> 00:45:07,608