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 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 אז להישאר מכוון של, ול יותר רמון לשבועות הבא. 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 להגדיר שש הוא ארוכים מעל 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 בעיה להגדיר שבע הולכים להיות על מה שהופך את היישום מבוסס אינטרנט משלך 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 היא הזדמנות די מזדמנת ל לך לשלוח דוא"ל די תמציתי 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 תמונה זו, כזכור, בשבוע שצולמה אפס סביב 4 לפנות בוקר ערב בשנים האחרונה. 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 ואפשר לומר את אותו מכל מספר Java languages--, Python, Ruby 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 ופייתון ופרל ו- Java 116 00:05:41,130 --> 00:05:46,750 וObjective-C-- למעשה, לא כל כך הרבה Objective-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 נזכיר כי בשלב מוקדם, שעבר IDE CS50 שבוע, אנחנו רק בשימוש, 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 מלאן: בסדר, טוב, כל כך בהתאם לקלט, 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 יש לקרוא את מקור 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 ועכשיו אני הולך קדימה ואומר, "שלום עולם הדפסה" - 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 מלאן: כן, אתה צריך שראש הסוגר עד זווית. 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 או לספר המתורגמן, היי 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 זהו סוג של מעצבן שאני צריך לרוץ hello.php חלל 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 עם אני 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 נקרא סביבה, או env. 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 אני יכול לעשות קו נטוי נקודה שלום 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-- hello.php x בתוספת. 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 זה כל-- רק משתנה ואחריו מה שאתה רוצה באמת לקרוא לזה. 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 אז C arg הוא פשוט באמת משתנה גלובלי 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 טיעון צריכה-- מה שהמילה היא. 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, שהוא סמל טיקר, 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 >> מיקרוסופט אני חושב שהוא זה אחד, 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 אני מציין את שמו של הפונקציה שלי. 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, לעשות אתם-- 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 ואתה תראה יותר בפ להגדיר שש. 361 00:16:47,280 --> 00:16:49,450 >> הנה המחשב הנייד שלי איפשהו אחר באינטרנט. 362 00:16:49,450 --> 00:16:54,550 ולכן, כאשר אני מבקר את כתובת אתר ששייך לי, כי התנועה באינטרנט הולכת 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 ואכן, אנו מהירות ימצאו להגיע לשם עם p-להגדיר שבע. 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 וכאן הוא-- בואו נקראים לזה גרסת אפס באתר האינטרנט של 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 ואז שאלתי את כתובת האתר של תכנית הלימודים בפועל כאן. 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 אז בשבוע שאפס ושבוע אחד, בוא מסתכל על זה-- אם אני רואה במקור של דף, 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 כאשר הוא קורא 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 אבל אני כל שמות נקודת 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 זה לא קשה לעשות את זה, אבל אני סוג devolved של להעתקה והדבקה. 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 מלאן: בסדר, טוב. 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 ומה הוא הדבר היחיד, באמת, זה משתנה בין השבוע one-- 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 מלאן: טוב, אז הכותרת משתנה, מעט שבמעט. 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 הוא אותו פרט ל אלה tweaks הקטן. 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 מלאן: בסדר, טוב. 535 00:25:36,660 --> 00:25:38,620 ואני חושב-- זה היה קשה לשמוע אבל אני אתם-- 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 לשים אותו בfile-- נפרד בדיוק כמו הרעיון של CSS, שבו אנחנו בחשבון את 547 00:26:13,270 --> 00:26:16,710 אסתטיקה דומה מאוד, לשים זה בקובץ נפרד PHP הנקודה, 548 00:26:16,710 --> 00:26:20,340 להשתמש בדורש mechanism-- ש כמו include-- החד C ש 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 אבל אם אתה חושב על מה הדף הוא עשות-- אם אני מבקש week0.php, 560 00:26:53,590 --> 00:26:59,880 בדיוק כמו בציור על כאן-- כאשר 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 זה לזה באופן אוטומטי הולך אתם-- ל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 אז הפתרון שלי היה, אישור, בואו פשוט לשנות את שם הדף, 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 ותחביר זה אמנם קצת פאנקי, 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 אנחנו כבר לא ראינו את זה בג כן? 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 אבל נראה כי הבא שבוע עם 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 וכמו 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 או תחתונה, למה אני לא parameterize ושקורא סימן דולר טיעון 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 אז לא היה לנו מפעיל זה בג מפעיל נקודה זו 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-- ואני מצטער כל כך, בהגדרת עמ 'שש, 733 00:34:59,974 --> 00:35:02,390 אתה הולך צריך לעשות זה-- זה כאב בצוואר 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 ואנחנו מראים לך כמה בשישה להגדיר p-. 747 00:35:27,760 --> 00:35:29,080 >> זה כאב בצוואר. 748 00:35:29,080 --> 00:35:34,190 וזה באמת מה שאני אומר על זה לעומת זה-- כמו 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 או אולי את שמו של אנדי, ו אז אנחנו הצלתי 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 אם אתה רוצה להפוך את אתר ל תכנית פרוש IMs, לפיה תלמידי שנה א ' 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 מסד נתונים המאפשר שלי לשאילתא מידע. 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, או Google גיליונות אלקטרוניים, או מספרי אפל. 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 מה עושה מיקרוסופט, ככל הנראה? 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 סיביות, הם המוגבלים 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 גיליונות אלקטרוניים, מספרי אפל, מיקרוסופט 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 פייסבוק, למשל, משתמש בו כדי זה יום, בין כלים אחרים שהם משתמשים. 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 >> זהו צילום מסך, בינתיים, של כלי מבוסס אינטרנט שנקרא phpMyAdmin. 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 בגלל 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 אז כמה אנשים באינטרנט כתב תכנית מבוססת אינטרנט 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 >> ומה שאתה הולך להשתמש בזה ל סופו של דבר בשבוע הבא, לא בשש להגדיר p-, 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 זה כמו 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 ועל צד ימין, אני כבר נתתי להם חשיש. 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 כל המילים במילון, או כל שילובים האפשריים של 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 מתברר, לשמחתי ב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 כאשר מארק צוקרברג היה בנייה פייסבוק, שנכתב במקור ב, 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 וMIT רץ על השרת שלה. 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 >> [מוסיקה - נושא "סיינפלד"] 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 >> SPEAKER 1: ובכן, מה קורה? 940 00:44:42,369 --> 00:44:43,535 SPEAKER 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 >> SPEAKER 1: מדוע אינן זרועותיו נעו? 944 00:44:50,050 --> 00:44:52,450 >> SPEAKER 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 >> SPEAKER 2: כן, אני חושב שאנחנו רק להניח שהוא בטעות 948 00:45:03,096 --> 00:45:06,840 החליף הדאודורנט שלו עם דבק מגע. 949 00:45:06,840 --> 00:45:07,608