1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> DAVID מלאן: בסדר, אנחנו שוב. 3 00:00:01,560 --> 00:00:03,830 אז עבור המרגש לסיכום, בחלק האחרון שלנו 4 00:00:03,830 --> 00:00:06,900 על תכנות אינטרנט, אשר אני חשבנו להשתמש כמונח כללי 5 00:00:06,900 --> 00:00:08,440 כדי ללכוד כמה נושאים נותרים. 6 00:00:08,440 --> 00:00:10,390 אז בסוף של היום, אנחנו בעצם עושים 7 00:00:10,390 --> 00:00:14,830 קצת על הידיים תכנות אינטרנט עם שפה בשם JavaScript. 8 00:00:14,830 --> 00:00:17,510 ואני חושב שאנחנו נסתכל במשהו הקשור בתמונות 9 00:00:17,510 --> 00:00:20,040 ומגלה משהו חבוי בסתר בתמונה, 10 00:00:20,040 --> 00:00:23,230 וגם להעיף מבט על Google API מפות, תכנות יישומים 11 00:00:23,230 --> 00:00:26,040 ממשק, כמשהו נציג של סוג של תוכנה 12 00:00:26,040 --> 00:00:28,800 זה יותר ויותר בחופשיות זמינה כיום. 13 00:00:28,800 --> 00:00:32,029 >> אבל למה לא אנחנו נסתכל ב מרכיב לעולם הזה 14 00:00:32,029 --> 00:00:34,070 שאנחנו סוג של כבר לוקח כמובן מאליו קיימת 15 00:00:34,070 --> 00:00:36,720 במשך זמן מה, מסד נתונים. 16 00:00:36,720 --> 00:00:39,150 במשך היום עבר וחצי שמנו להניח 17 00:00:39,150 --> 00:00:42,910 כי יש לנו גישה למסד נתונים, אבל מה הבעיה אין מסד נתונים לפתור? 18 00:00:42,910 --> 00:00:45,540 מה זה עושה לנו? 19 00:00:45,540 --> 00:00:47,030 מה זה? 20 00:00:47,030 --> 00:00:48,679 >> קהל: [לא ברור] 21 00:00:48,679 --> 00:00:51,720 DAVID מלאן: משהה את כל המידע, מניח את הדעת, ואילו סוגים של מידע 22 00:00:51,720 --> 00:00:53,186 אולי אתה מכניס את זה? 23 00:00:53,186 --> 00:00:54,590 >> קהל: [לא ברור] 24 00:00:54,590 --> 00:00:56,450 >> DAVID מלאן: כל מידע אתה מכניס את זה, תקבל בחזרה. 25 00:00:56,450 --> 00:00:57,070 זה נכון. 26 00:00:57,070 --> 00:01:01,900 ובאתר מבוסס אינטרנט טיפוסי או אינטרנט יישום, אילו סוגים של מידע, 27 00:01:01,900 --> 00:01:03,385 במיוחד, אולי אתה מכניס? 28 00:01:03,385 --> 00:01:04,260 קהל: [לא ברור] 29 00:01:04,260 --> 00:01:05,051 DAVID מלאן: משתמשים. 30 00:01:05,051 --> 00:01:07,000 אז מה משתמש? 31 00:01:07,000 --> 00:01:09,765 >> קהל: [לא ברור] 32 00:01:09,765 --> 00:01:11,640 DAVID מלאן: מניח את הדעת, רשום המשתמשים של האתר. 33 00:01:11,640 --> 00:01:15,100 ומה זה אומר משתמש מאגר מידע "? 34 00:01:15,100 --> 00:01:17,260 מה מלחינת משתמש? 35 00:01:17,260 --> 00:01:18,331 משתמש יש מה? 36 00:01:18,331 --> 00:01:19,206 קהל: [לא ברור] 37 00:01:19,206 --> 00:01:21,040 DAVID מלאן: כן, אישי נתונים, וזה מצא חן בעיני. 38 00:01:21,040 --> 00:01:21,970 בואו להיות מדויק יותר. 39 00:01:21,970 --> 00:01:25,275 אז משתמש בדרך כלל יש שם, מה עוד יכול להיות למשתמש? 40 00:01:25,275 --> 00:01:26,150 קהל: [לא ברור] 41 00:01:26,150 --> 00:01:29,130 DAVID מלאן: An אישור addr--, כך שם פרטי, שם משפחה. 42 00:01:29,130 --> 00:01:29,630 זה טוב. 43 00:01:29,630 --> 00:01:31,463 למעשה, בואו לתקן זה, כי זה קורה 44 00:01:31,463 --> 00:01:35,010 להיפתח הזדמנות דיון, עדיין, עוד. 45 00:01:35,010 --> 00:01:39,090 שם פרטי, שם משפחה, מין. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 מזהה כלשהו. 48 00:01:43,481 --> 00:01:43,980 מה עוד? 49 00:01:43,980 --> 00:01:45,438 שמעתי משהו אחר לפני, מדי. 50 00:01:45,438 --> 00:01:51,600 דוא"ל, כתובת דואר. 51 00:01:51,600 --> 00:01:58,170 >> אז בואו להשהות שם ועכשיו לשקול לא מה שאנחנו אחסון במסד הנתונים, 52 00:01:58,170 --> 00:02:01,980 but-- ולא למה, כי זה אולי ברור כי ברגע שאתה רשום משתמש, 53 00:02:01,980 --> 00:02:03,730 אתה רוצה לזכור אותם במשך זמן מה. 54 00:02:03,730 --> 00:02:05,480 אתה לא רוצה שזה רק לאחסן RAM 55 00:02:05,480 --> 00:02:08,690 ולהיות forgotten-- כך בואו להתמקד איך. 56 00:02:08,690 --> 00:02:11,700 >> מתברר כי ב העולם של מסדי נתונים, 57 00:02:11,700 --> 00:02:14,410 יש לפחות שני סוגים בימים אלה. 58 00:02:14,410 --> 00:02:20,010 משהו שנקרא מסד נתונים SQL, שפת שאילתות מובנית, 59 00:02:20,010 --> 00:02:24,770 או, בשם שובב, NoSQL, אשר אינו SQL. 60 00:02:24,770 --> 00:02:26,980 ואת האחרון הוא למשל מה עלול 61 00:02:26,980 --> 00:02:30,660 להיקרא מונחה עצמים, או מאגר אובייקטים, מסד נתונים 62 00:02:30,660 --> 00:02:36,010 מאחסן חפץ, ולא, תירוץ לי, כמו שנראה מיד, שורות. 63 00:02:36,010 --> 00:02:41,800 >> אז נתמקד לרגע על הראשון שבהם, כלומר, SQL 64 00:02:41,800 --> 00:02:46,850 מסד נתונים, ולו רק משום שזה כך כבר מכיר, לאף אחד 65 00:02:46,850 --> 00:02:51,070 מי שהשתמש Excel או פחי גוגל או אפל 66 00:02:51,070 --> 00:02:53,740 מספרים או תקן כלשהו תוכנת הגיליונות האלקטרוניים, 67 00:02:53,740 --> 00:02:56,040 או, באופן שקול, או יותר מתוחכם, 68 00:02:56,040 --> 00:02:58,610 משהו כמו מיקרוסופט גישה או אורקל 69 00:02:58,610 --> 00:03:03,890 או MySQL או PostgreSQL, שכולן הם שמות מוצרים עבור יישומים 70 00:03:03,890 --> 00:03:04,865 הרעיון הבא. 71 00:03:04,865 --> 00:03:10,350 >> מסדי נתונים יחסיים הם פשוט משהו שיש לו שורות ועמודות. 72 00:03:10,350 --> 00:03:12,850 ועל ידי שורות ועמודות, אני ממש מתכוון למשהו 73 00:03:12,850 --> 00:03:21,860 ככה, אז איפה שאולי יש לנו את שם של שדה והסוג שלה לכאן. 74 00:03:21,860 --> 00:03:25,800 ולמעשה, תן לי עכשיו להתחיל למפות אלה. 75 00:03:25,800 --> 00:03:29,420 אז בעצם, אני לא יודע למה ציירתי תרשים נפרד. 76 00:03:29,420 --> 00:03:30,780 בואו לשמור על פשטות זו. 77 00:03:30,780 --> 00:03:34,830 >> יש לנו זכות כאן ראשיתה של שולחננו, שם 78 00:03:34,830 --> 00:03:40,150 זהו השם של השדה וזה סוג הנתונים, 79 00:03:40,150 --> 00:03:41,660 ולפי סוג כוון הבא. 80 00:03:41,660 --> 00:03:45,510 האם מדובר במספר, היא מקבלת מחרוזת, מחרוזת קצרה כמו מילה, 81 00:03:45,510 --> 00:03:49,340 זה פסק, הוא זה נתונים בינאריים, כמו תמונה? 82 00:03:49,340 --> 00:03:51,980 ובואו רק להקניט זה נפרד רק רגע. 83 00:03:51,980 --> 00:03:57,575 אז שמו הפרטי, מספר, מחרוזת, נתח גדול של text-- 84 00:03:57,575 --> 00:03:58,450 קהל: [לא ברור] 85 00:03:58,450 --> 00:03:59,616 DAVID מלאן: כן, אז מחרוזת. 86 00:03:59,616 --> 00:04:04,744 ובהקשר מסד נתונים, תהיה לנו בדרך כלל קוראים שדה char זה. 87 00:04:04,744 --> 00:04:07,660 אני רק אגיד char לעת עתה אבל אנחנו הולך לחדד ברגע זה. 88 00:04:07,660 --> 00:04:09,180 תווים בשדה. 89 00:04:09,180 --> 00:04:11,365 שם משפחה כנראה אותו דבר. 90 00:04:11,365 --> 00:04:11,865 מִין? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> זכר או נקבה, אז זה יכול להיות שדה char. 93 00:04:18,310 --> 00:04:21,380 זה יכול להיות או ציטוט, סוף ציטוט "זכר" או ציטוט, סוף ציטוט "נקבה" 94 00:04:21,380 --> 00:04:23,650 או שזה יכול להיות זכר או נקבה. 95 00:04:23,650 --> 00:04:26,540 אם אתה רוצה להיות כוללני יותר, ייתכן שיהיה עליך ערך שלישי 96 00:04:26,540 --> 00:04:28,640 או איזשהו תחום אחר לגמרי. 97 00:04:28,640 --> 00:04:31,350 וכך אתה יכול להשתמש שווא אמיתי. 98 00:04:31,350 --> 00:04:35,036 השדה יכול להיקרא זכר, אז אפשר להגיד אמת או שקר. 99 00:04:35,036 --> 00:04:38,160 אבל זה לא בהכרח ללכוד כל המידע ייתכן שתרצה. 100 00:04:38,160 --> 00:04:41,118 >> אז מתברר שיש עוד סוג שדה שעשויה להיות שימושי כאן 101 00:04:41,118 --> 00:04:46,040 במסד נתונים טיפוסי, נקרא enum, איפה זה שדה דמות, 102 00:04:46,040 --> 00:04:50,480 אבל אתה, המעצב, להגיע למנות את הערכים האפשריים, 103 00:04:50,480 --> 00:04:54,630 כמו ציטוט, סוף ציטוט "זכר", ציטוט, "נקבה" סוף ציטוט וכן הלאה. 104 00:04:54,630 --> 00:04:57,620 כך שכל מה ערך הוא באתר שלך, 105 00:04:57,620 --> 00:05:00,670 הוא אכן מבוסס-תווים, אבל זה חייב להיות אחד מערכים אלה. 106 00:05:00,670 --> 00:05:03,520 אנחנו כנראה לא היו רוצים enum עבור השם הפרטי או שם המשפחה. 107 00:05:03,520 --> 00:05:05,630 אחר היינו למנות, כפי שהשם 108 00:05:05,630 --> 00:05:09,570 נובע, פשוטו כמשמעו, כל שם פרטי אפשרי פרטים אישיים. 109 00:05:09,570 --> 00:05:13,960 >> אוקיי, אז מזהה מה צריך להיות מזהה? 110 00:05:13,960 --> 00:05:15,200 כן, אז אולי מספר. 111 00:05:15,200 --> 00:05:17,870 אז בואו נישאר עם כי לעת עתה, מספר. 112 00:05:17,870 --> 00:05:22,010 ולפי מספר, מספר זה קצת יותר מדי רחב עכשיו. 113 00:05:22,010 --> 00:05:23,900 עבור בתום השנה השנייה היום, אני מרגיש כאילו אנחנו 114 00:05:23,900 --> 00:05:25,280 צריך להיות קצת יותר מדויק. 115 00:05:25,280 --> 00:05:29,280 המספר יכול להיות כמו, זה יכול להיות משהו כמו 1.236. 116 00:05:29,280 --> 00:05:31,500 וזה כנראה לא למה אנחנו מתכוונים ידי מזהה. 117 00:05:31,500 --> 00:05:34,635 מה אנחנו כנראה מתכוונים מזהים? 118 00:05:34,635 --> 00:05:36,382 >> קהל: [לא ברור] 119 00:05:36,382 --> 00:05:38,590 DAVID מלאן: אה, אוקיי, אז אולי זה אפילו לא מספר. 120 00:05:38,590 --> 00:05:42,840 אולי זה בעצם מזהה ייחודי זה מחרוזת, כמו שם משתמש. 121 00:05:42,840 --> 00:05:44,580 אז בהחלט, יכול להיות. 122 00:05:44,580 --> 00:05:46,730 אני חושב שמישהו כנראה אמורים מספרים, אם כי. 123 00:05:46,730 --> 00:05:48,460 אז בואו נשארים עם זה. 124 00:05:48,460 --> 00:05:49,320 איזה סוג של מספר? 125 00:05:49,320 --> 00:05:51,960 מה זה יותר precise-- שלם. 126 00:05:51,960 --> 00:05:56,710 אז מספר כמו 0, 1, 2, 3, כך אנחנו נתקשר זה מספר שלם. 127 00:05:56,710 --> 00:05:58,909 וגם אז, יכולתי להיות nitpicking, זה 128 00:05:58,909 --> 00:06:00,700 לא באמת רק שלם בכלל אתה רוצה. 129 00:06:00,700 --> 00:06:04,340 אתה בטח לא רוצה ערכים שליליים, רק בגלל, זה פשוט מרגיש מוזר. 130 00:06:04,340 --> 00:06:06,070 אתה בטח רוצה מספרים שלמים וחיוביים. 131 00:06:06,070 --> 00:06:07,920 אז אתה יכול גם להביע כי בבסיס נתונים, 132 00:06:07,920 --> 00:06:09,450 אך לעת עתה, אנחנו נגיד שלמים. 133 00:06:09,450 --> 00:06:10,650 >> אֶלֶקטרוֹנִי? 134 00:06:10,650 --> 00:06:13,550 זהו כנראה פשוט- מה? 135 00:06:13,550 --> 00:06:14,460 >> קהל: [לא ברור] 136 00:06:14,460 --> 00:06:16,980 >> DAVID מלאן: זה דוא"ל, אבל זה תווים, נכון? 137 00:06:16,980 --> 00:06:19,813 זה פשוט בעל אופי פאנקי כמו של "ב" סמל או משהו אחר, 138 00:06:19,813 --> 00:06:21,580 אבל זה עדיין בשדה אופי. 139 00:06:21,580 --> 00:06:23,900 וכתובת דואר? 140 00:06:23,900 --> 00:06:25,360 תווים בשדה. 141 00:06:25,360 --> 00:06:31,400 אז זה התחלה יפה, אבל בואו נהיה קצת יותר מדויק עכשיו. 142 00:06:31,400 --> 00:06:34,540 >> אז מתברר כי ב מסד נתונים, לעיתים קרובות אתה 143 00:06:34,540 --> 00:06:39,120 יש ברירה מעל יותר מעודן גרסאות של הדברים האלה. 144 00:06:39,120 --> 00:06:44,330 למעשה, במסד נתונים SQL טיפוסית, SQL, או באופן כללי יותר, מסדי נתונים יחסיים, 145 00:06:44,330 --> 00:06:46,680 מסדי נתונים עם שורות ועמודות, לעיתים קרובות אתה 146 00:06:46,680 --> 00:06:53,610 פשוט לציין לא רק את הסוג של field-- תן לי לעשות קצת מקום כאן-- 147 00:06:53,610 --> 00:06:56,600 אלא גם את האורך. 148 00:06:56,600 --> 00:06:59,900 >> אז כמה זמן הוא שם פרטי? 149 00:06:59,900 --> 00:07:07,060 אני חושב, D-A-V-I-D. אוקיי, הבנתי שאני כנראה רק נעלב כמו חצי 150 00:07:07,060 --> 00:07:11,260 של האנשים בחדר, נכון, מאז שמותיכם הם יותר מחמש 151 00:07:11,260 --> 00:07:16,608 מכתבים, כך חמישה נראה אנוכי קטנה ותמים, אז מה זה שווה יותר? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, בסדר, ואני חושב אנחנו בסדר בחדר. 154 00:07:24,330 --> 00:07:26,254 13? 155 00:07:26,254 --> 00:07:27,541 30? 156 00:07:27,541 --> 00:07:29,540 למה אני לא לוקח את הגישה של קודם לכן, כשבאנו 157 00:07:29,540 --> 00:07:31,081 דיברו על מערכים וזיכרון? 158 00:07:31,081 --> 00:07:32,450 למה אני לא רק אומר כמו 1,000? 159 00:07:32,450 --> 00:07:35,260 אין שם אחד לא הולך להיות יותר מ -1,000. 160 00:07:35,260 --> 00:07:36,706 להדוף. 161 00:07:36,706 --> 00:07:38,005 >> קהל: [לא ברור] 162 00:07:38,005 --> 00:07:40,130 DAVID מלאן: כן, זה בזבזן, נכון, במיוחד 163 00:07:40,130 --> 00:07:44,630 אם רוב השמות הם רק חמש או 10 או 15 תווים, זה בזבזני מאוד. 164 00:07:44,630 --> 00:07:45,810 אז אתה יודע מה? 165 00:07:45,810 --> 00:07:48,020 זהו סוג של שאלה קשה. 166 00:07:48,020 --> 00:07:51,721 עכשיו, אנחנו בהחלט יכולים לנתח אנגלית וכל השמות של שפה אחרת 167 00:07:51,721 --> 00:07:54,470 להבין, טוב, מה הוא ממוצע average-- לא ממש 168 00:07:54,470 --> 00:07:57,150 לעזור us-- מה המקסימום הוא כנראה מה שאנחנו באמת רוצים. 169 00:07:57,150 --> 00:07:59,920 אבל מתברר שאנחנו אפילו יש כמה בחירה על הסוג כאן. 170 00:07:59,920 --> 00:08:03,400 >> במסד נתונים SQL טיפוסית, אתה יש משהו שנקרא שדה char 171 00:08:03,400 --> 00:08:07,505 וגם varchar, V-A-R, עבור שדה char משתנה. 172 00:08:07,505 --> 00:08:08,630 וההבדל הוא זה. 173 00:08:08,630 --> 00:08:12,400 שדה char, אתה מעצב, יש לציין מראש 174 00:08:12,400 --> 00:08:14,900 את משך הזמן המדוייק של השדה. 175 00:08:14,900 --> 00:08:20,530 אז אולי את השם הפרטי כמו 20 מרגיש סוג של בטוחה. 176 00:08:20,530 --> 00:08:23,950 אולי צריך לעשות קצת googling כדי לראות אם זה באמת בטוח מספיק. 177 00:08:23,950 --> 00:08:26,910 מן הסתם יש שם עם 21 הדמויות, אך לעת עתה, נניח 20 178 00:08:26,910 --> 00:08:27,620 בטוח. 179 00:08:27,620 --> 00:08:30,070 >> שדה char ירמז במסד נתונים שאתה 180 00:08:30,070 --> 00:08:33,289 הם באמצעות 20 תווים 20 ותמיד. 181 00:08:33,289 --> 00:08:37,419 עכשיו אם זה רק D-A-V-I-D, 15 מאותם רק הולכים להיות תווים ריקים, 182 00:08:37,419 --> 00:08:40,450 אבל אתה עדיין משתמש כל 20 בתים. 183 00:08:40,450 --> 00:08:46,302 שדה varchar, לעומת זאת, פירושו מחרוזת צריכה להיות עד 20 תווים 184 00:08:46,302 --> 00:08:48,260 אבל אם זה רק חמישה, אתה רק הולך להשתמש 185 00:08:48,260 --> 00:08:51,270 חמש, או אולי שישה עבור ערך מיוחד בסוף, 186 00:08:51,270 --> 00:08:54,980 כמו 0 שדנו כי מסמל את סופו של דמות 187 00:08:54,980 --> 00:08:56,790 רצף בזיכרון. 188 00:08:56,790 --> 00:08:59,950 >> לכן, כאשר אתה חושב ייתכן שתבחר char 189 00:08:59,950 --> 00:09:05,240 לעומת varchar, בהתחשב בכך trade-off? 190 00:09:05,240 --> 00:09:09,321 תו משתמש כי דמויות רבות, varchar אין צורך יותר מזה דמוי רב. 191 00:09:09,321 --> 00:09:10,196 קהל: [לא ברור] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 DAVID מלאן: מניח את הדעת, כאשר אתה יודע את אורך החוט די משכנע 194 00:09:16,900 --> 00:09:19,316 רק כדי להשתמש char, כי אם אתה יודע את זה, פשוט להניח אותו. 195 00:09:19,316 --> 00:09:23,390 ואולי זה נכון עבור zip קוד, בארצות הברית, לפחות, 02138, 196 00:09:23,390 --> 00:09:26,660 זה תמיד הולך להיות חמש דמויות עד שתוסיפו את המקף ארבעה. 197 00:09:26,660 --> 00:09:29,750 אבל ייתכן שיהיה כמה ערכים עבור שבו אתה תמיד יודע את האורך. 198 00:09:29,750 --> 00:09:32,310 או אולי סמלי המדינה, כמו ניו יורק לניו יורק, 199 00:09:32,310 --> 00:09:33,811 ומוסמך עבור מסצ'וסטס בארה"ב. 200 00:09:33,811 --> 00:09:36,560 אולי יש לך כמה מצבים איפה זה לגמרי סביר, 201 00:09:36,560 --> 00:09:39,520 אבל לפי ההיגיון הזה, למה הם אנחנו אפילו overthinking זה? 202 00:09:39,520 --> 00:09:41,800 למה אנחנו לא פשוט להשתמש varchar ואז אנחנו פשוט 203 00:09:41,800 --> 00:09:46,730 תמיד להשתמש בשתי דמויות בכל מקרה, או תמיד להשתמש חמישה תווים בכל מקרה? 204 00:09:46,730 --> 00:09:50,300 למה לא פשוט לשמור varchar עבור הכל, על ידי זה היגיון? 205 00:09:50,300 --> 00:09:51,677 בטח יש מלכוד. 206 00:09:51,677 --> 00:09:52,552 קהל: [לא ברור] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 DAVID מלאן: היה לכתוב משהו לא בסדר. 209 00:09:56,660 --> 00:09:58,090 אז זה נכון. 210 00:09:58,090 --> 00:10:01,030 אבל גם אז, הם לא יכולים להשתמש יותר זיכרון ממה שאני להקצות. 211 00:10:01,030 --> 00:10:03,340 עדיין יש לי את האחרון אומרים על פני אורך, 212 00:10:03,340 --> 00:10:06,780 ולכן הם לא יכולים בטעות לעשות הטעות הזאת, אבל מחשבה טובה. 213 00:10:06,780 --> 00:10:10,510 זה יותר מתוחכם, אבל זה מאוד קשור לדיוננו, למעשה, של מערכים 214 00:10:10,510 --> 00:10:12,390 וצמוד רשימות קודמות. 215 00:10:12,390 --> 00:10:16,290 >> מתברר כי מסד נתונים, אם הוא יודע שכל הערכים הם 216 00:10:16,290 --> 00:10:19,250 באורך קבוע, גם אם חלק מהערכים האלה ריקים, 217 00:10:19,250 --> 00:10:22,484 מעין אסתטית ריק, D-A-V-I-D ולאחר מכן 15 כדורי סרק, 218 00:10:22,484 --> 00:10:24,650 מתברר שאם כל שדה הוא באותו האורך, 219 00:10:24,650 --> 00:10:28,670 היה הרבה כמו מערך כל הדברים שלה גב אל גב אל גב אל גב, כך 220 00:10:28,670 --> 00:10:33,480 אתה יכול פשוט בתוספת 1 להגיע הבא ערך, אותו רעיון בתוך טבלת מסד נתונים. 221 00:10:33,480 --> 00:10:37,550 אם כל הדמות שלך מחרוזות הן באותו האורך, 222 00:10:37,550 --> 00:10:39,390 יש לך מה שנקרא גישה אקראית. 223 00:10:39,390 --> 00:10:41,850 אם בכל החוטים הם של אורך 20, אתה לא רק 224 00:10:41,850 --> 00:10:45,230 לעשות פלוס 1 אתה פשוט עושה פלוס 20, בתוספת 20, בתוספת 20, בתוספת 20, 225 00:10:45,230 --> 00:10:48,775 ואתה מאוד יכול במהירות לגלול או לחפש דרך כל הנתונים שלך. 226 00:10:48,775 --> 00:10:54,420 >> שדה char משתנה, לעומת זאת, אין תמיד 20 תווים. 227 00:10:54,420 --> 00:10:58,000 זה יכול להיות 20 ולאחר מכן 15 ואז 19 ואז 10, 228 00:10:58,000 --> 00:11:00,720 ולכן אם ברצונך לחפש באמצעות זה, אתה לא יכול פשוט עיוור 229 00:11:00,720 --> 00:11:03,050 להוסיף 20 בתים כדי לקבל אל השלב הבא. 230 00:11:03,050 --> 00:11:07,280 אתה ממש צריך לחפש דרך כי בקצה של מבנה הנתונים, 231 00:11:07,280 --> 00:11:08,340 אם תרצו, משונן. 232 00:11:08,340 --> 00:11:11,480 זה סוג של הולך פנימה והחוצה מבוסס על אורך בפועל של המחרוזת. 233 00:11:11,480 --> 00:11:14,460 לכן, כאשר אתה יודע את האורך, כמו כרים אומרים, להשתמש בשדה char, 234 00:11:14,460 --> 00:11:16,460 בגלל שאתה מרוויח כי היעילות של להיות 235 00:11:16,460 --> 00:11:19,170 מסוגל לחפש את זה מהר כאשר אתם מחפשים מידע, 236 00:11:19,170 --> 00:11:20,550 אחרת להשתמש משתנה. 237 00:11:20,550 --> 00:11:24,450 >> למרבה הצער, אין לי תשובה טובה כמה זמן את השם צריך להיות, 238 00:11:24,450 --> 00:11:26,360 אבל עבור משהו כמו שם, הייתי אומר 239 00:11:26,360 --> 00:11:28,470 varchar נפוץ כי זה לא הולך 240 00:11:28,470 --> 00:11:30,430 להיות באורך קבוע לכולם. 241 00:11:30,430 --> 00:11:33,650 20, אני לא יודע, 20 מרגיש קטן וצפוף. 242 00:11:33,650 --> 00:11:36,460 בואו נגיד 50, 50. 243 00:11:36,460 --> 00:11:39,210 זה לא עולה לך הרבה יותר לומר 50 במקום 40, 244 00:11:39,210 --> 00:11:41,260 אבל בשלב מסוים, אתה צריך כדי לבצע שיחת שיפוט. 245 00:11:41,260 --> 00:11:43,090 >> נפוץ מאוד, בכנות, ל [? היסטורי?] 246 00:11:43,090 --> 00:11:47,670 סיבות, למרות שזה מוגזם, לפני כמה זמן הוא לומר 255, כי, 247 00:11:47,670 --> 00:11:51,440 ב מערכות מסדי נתונים פופולריות, כמו MySQL, כלי חופשי וקוד פתוח 248 00:11:51,440 --> 00:11:53,790 כי הרבה חברות כמו גם פייסבוק משמש, 249 00:11:53,790 --> 00:11:56,654 זה היה ברירת המחדל המרבית כך שאנשים פשוט הלכו עם זה. 250 00:11:56,654 --> 00:11:59,070 אז לא סביר, אבל אנחנו להשתמש באינטואיציה קצת יותר 251 00:11:59,070 --> 00:12:02,970 ולומר, בטוח 50, זה כנראה קצת מוגזם. 252 00:12:02,970 --> 00:12:05,720 >> מין, אני אוהב enum, וכך אנו יכולים אפוא 253 00:12:05,720 --> 00:12:08,760 למנות זכר או נקבה, או אולי ביעילות רבה יותר, 254 00:12:08,760 --> 00:12:13,420 זכר או נקבה או כמה סמלים אחרים, אבל enum מרגיש כמו בחירה טובה שם. 255 00:12:13,420 --> 00:12:16,740 כדי להיות ברור, מין רק יכול להיות varchar, 256 00:12:16,740 --> 00:12:19,090 ואנחנו יכולים פשוט כל מסכים כמו אנשים נחמדים, 257 00:12:19,090 --> 00:12:21,010 תמיד לשים אותם ערכים שיש. 258 00:12:21,010 --> 00:12:22,720 זכר או נקבה או מה שלא יהיה. 259 00:12:22,720 --> 00:12:27,800 >> אבל הבעיה היא אפוא כי יכולנו לטעות, כמו [לא ברור] מוצע 260 00:12:27,800 --> 00:12:29,140 קודם לכן בהקשר אחר. 261 00:12:29,140 --> 00:12:32,780 אם אנחנו עושים טעות, אנחנו יכולים לקבל ערכים שגויים באתר שלנו. 262 00:12:32,780 --> 00:12:36,320 אז מה שיפה מסדי נתונים כמו אורקל ו- MySQL ואחרים, 263 00:12:36,320 --> 00:12:39,280 הוא שיש לך את זה אחרון שכבת ההגנה שבו 264 00:12:39,280 --> 00:12:43,010 מנהל DBA, מסד הנתונים שלך, מי מתכנן את הטבלה כמו שאנחנו 265 00:12:43,010 --> 00:12:46,440 הם מילולית, יכול לשים למקומו enum כי 266 00:12:46,440 --> 00:12:51,250 מגן מפני כי על ידי ציון זכר, נקבה, ולכן אף אחד 267 00:12:51,250 --> 00:12:54,230 אחר לא מתכנת יכול בטעות להכניס כל ערך אחר. 268 00:12:54,230 --> 00:12:55,480 אז זה יהיה דבר טוב. 269 00:12:55,480 --> 00:12:56,660 זוהי תכונה. 270 00:12:56,660 --> 00:13:00,760 >> אז מזהה, בהנחה מזהה מספרים, זה כנראה צריך להיות מספר חיובי. 271 00:13:00,760 --> 00:13:04,380 ואנחנו עושים לפעמים יש הזדמנות לדון אורך. 272 00:13:04,380 --> 00:13:06,830 לא היית בדרך כלל לציין מספר כאן, 273 00:13:06,830 --> 00:13:11,310 היית במקום לציין מדובר int, או int גדול, 274 00:13:11,310 --> 00:13:12,980 כפי שהוא בדרך כלל נקרא. 275 00:13:12,980 --> 00:13:18,840 אבל בדרך כלל, מספר שלם יהיה, נניח, 4 בתים. 276 00:13:18,840 --> 00:13:23,694 ואם זה 4 בתים, וככה ביטים רבים? 277 00:13:23,694 --> 00:13:24,630 >> קהל: [לא ברור] 278 00:13:24,630 --> 00:13:26,610 >> DAVID מלאן: 32 סיביות. 279 00:13:26,610 --> 00:13:30,270 אז כמה משתמשים יכולים שיש לנו הנתונים שלנו אם לכולם יש מזהה 280 00:13:30,270 --> 00:13:33,320 זיהוי זה חייב להיות ייחודי? 281 00:13:33,320 --> 00:13:36,780 32 סיביות אומר שיש לנו דפוסי של אחד, שתיים, שלוש, ארבע, five-- 282 00:13:36,780 --> 00:13:41,000 אז כמה דפוסים שונים של אפסים ואת אלה אתה יכול לקבל אם יש 32? 283 00:13:41,000 --> 00:13:43,235 זה אותו הדבר כמו לשאול מה שנתיים עד 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 זהו מספר גדול אני לא ממש יכול לקבל זכות, 286 00:13:48,430 --> 00:13:50,270 אבל אני יודע שזה בערך 4 מיליארד דולר. 287 00:13:50,270 --> 00:13:53,970 אז זה אומר טבלת מסד הנתונים שלך יכולה יש ארבעה מיליארד משתמשים וזהו. 288 00:13:53,970 --> 00:13:56,410 >> אז זהו מעניין משמעות עיצוב. 289 00:13:56,410 --> 00:14:00,840 מספר מכובד של חברות החליטו, אולי לא כל כך הרבה 290 00:14:00,840 --> 00:14:04,860 עבור שולחן המשתמשים שלהם, משום שיש 4 מיליארד משתמשים היא בעיה נדירה. 291 00:14:04,860 --> 00:14:08,410 זהו סוג של סגנון-פייסבוק בעיה, לא בעית החברה טיפוסית. 292 00:14:08,410 --> 00:14:12,670 אבל אולי אם יש לך יומני עסקה או איזשהו הנתונים כל הזמן 293 00:14:12,670 --> 00:14:15,610 מקבל כתוב לתוך מסד הנתונים שלך זה בהחלט יכול להיות מיליארדים 294 00:14:15,610 --> 00:14:18,900 ומיליארדים חתירות אתה משתמש מספר שלם עבור זה, 295 00:14:18,900 --> 00:14:22,750 מה יקרה ברגע אתה צריך לחתור מספר 4 מיליארד 296 00:14:22,750 --> 00:14:26,210 ואז אתה מנסה להכניס את מיליארדית 4 ו -1, אם אפשר לומר כך? 297 00:14:26,210 --> 00:14:29,610 אני לפשט את המספרים קצת. 298 00:14:29,610 --> 00:14:33,740 >> אתה יכול לקצץ, אני אומר שאתה צריך להתמודד עם זה איכשהו. 299 00:14:33,740 --> 00:14:37,910 ואיזה מחשב בדרך כלל יעשה, תחשוב על זה אפילו מהבוקר, 300 00:14:37,910 --> 00:14:42,430 אם יש לך ערך 4-bit 1 כמו, 1, 1, 1, אשר, 301 00:14:42,430 --> 00:14:44,920 רק לקשור בבוקר יחד אחר הצהריים, מה 302 00:14:44,920 --> 00:14:48,369 אין מספר זה מייצג בצורה בינארית? 303 00:14:48,369 --> 00:14:49,410 בסדר, אנחנו נעשה את זה יותר קל. 304 00:14:49,410 --> 00:14:53,310 מה עושה את המספר הזה מייצג בצורה בינארית? 305 00:14:53,310 --> 00:14:56,794 בסדר, אנחנו נעשה את זה קל יותר, מה האם מדובר ב בינארי? 306 00:14:56,794 --> 00:14:57,460 קהל: שלוש. 307 00:14:57,460 --> 00:14:59,670 DAVID מלאן: שלוש, כי יש לנו את אלה column-- 308 00:14:59,670 --> 00:15:00,450 [צחוק] 309 00:15:00,450 --> 00:15:01,350 אוף! 310 00:15:01,350 --> 00:15:03,980 היו לנו את אלה בעמודה והטור בזוגות. 311 00:15:03,980 --> 00:15:07,250 אז תניח כי, אכן, שלנו [? המגרש?] לא היו 32 סיביות, 312 00:15:07,250 --> 00:15:13,440 אבל זה היו שני ביטים, אנחנו יכולים לספור ממשתמש מספר 0, 1, 2, 3, 313 00:15:13,440 --> 00:15:18,040 ואז אנחנו סוג של בחזרה אל משתמש 00 שוב. 314 00:15:18,040 --> 00:15:19,739 אז זה מה שקורה בדרך כלל. 315 00:15:19,739 --> 00:15:22,780 אם אי פעם שמעת את expression-- יש לא כנראה, אבל אם אתה לכם-- 316 00:15:22,780 --> 00:15:26,500 גלישה נומרית, שבו אתה לשמור מרפרף כל הביטים שלך 317 00:15:26,500 --> 00:15:29,640 להיות הערכים האפשריים הגדולים, ואז אתה יוצא של ביטים, 318 00:15:29,640 --> 00:15:30,850 מה בדרך כלל יקר? 319 00:15:30,850 --> 00:15:32,280 למה אני אומר 00? 320 00:15:32,280 --> 00:15:33,220 ובכן, זה שלוש. 321 00:15:33,220 --> 00:15:34,230 כיצד ניתן לייצג 4? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 כיצד ניתן לייצג את עבור מספר 4 ב בינארי? 324 00:15:38,915 --> 00:15:39,790 קהל: [לא ברור] 325 00:15:39,790 --> 00:15:41,780 DAVID מלאן: One-- כן, לא אומרים 100 כשלעצמה, 326 00:15:41,780 --> 00:15:44,190 כי יש לו את הטועה קונוטציה, אבל 1-0-0. 327 00:15:44,190 --> 00:15:48,920 כך מספר 1-0-0 הוא אכן נכון, אבל אם יש לך רק שני ביטים, 328 00:15:48,920 --> 00:15:50,820 מה יש לך באמת לעשות? 329 00:15:50,820 --> 00:15:53,219 אתה כבר התהפך ל 00. 330 00:15:53,219 --> 00:15:54,760 ואכן, זה מה שיקרה. 331 00:15:54,760 --> 00:15:56,884 למעשה, אתה יכול לחשוב על יותר קרבה זו. 332 00:15:56,884 --> 00:15:59,350 אם אתה זוכר, מה, לפני 16 שנה, העולם 333 00:15:59,350 --> 00:16:03,380 היה אמור להסתיים כאשר הבעיה Y2K קרה. 334 00:16:03,380 --> 00:16:04,330 מה היה הסוד שלו? 335 00:16:04,330 --> 00:16:08,170 ובכן ברוב המחשבים, עבור החלטות סבירות, 336 00:16:08,170 --> 00:16:15,320 היו אחסון מספרים כמו שנת 1975 או שנת 1999 337 00:16:15,320 --> 00:16:19,010 רק על ידי שימוש בשתי ספרות בזיכרון של המחשב. 338 00:16:19,010 --> 00:16:21,950 אז כמובן, מה קורה כשתגיע השינה 2000, 339 00:16:21,950 --> 00:16:25,790 אתה הולך זה, או ליתר דיוק, כן. 340 00:16:25,790 --> 00:16:30,120 אז אתה הולך שנת 2000, אבל אם אתה משתמש רק שתי ספרות זה נראה 341 00:16:30,120 --> 00:16:32,660 כמו בשנה 00 ו אז אתה כבר התהפך. 342 00:16:32,660 --> 00:16:36,820 ובגלל זה הרבה מערכות הצורך להתעדכן בזמן. 343 00:16:36,820 --> 00:16:42,500 >> אז עם זה אמר, חברות כמו פייסבוק נתקל זה. 344 00:16:42,500 --> 00:16:46,147 לכן הדרך היחידה להתמודד עם מצב, בכנות, הוא לצפות את זה. 345 00:16:46,147 --> 00:16:47,980 או הדרך הנקייה לטפל בבעיה זו 346 00:16:47,980 --> 00:16:50,330 היא לצפות את זה אז אתה לא יש לבצע שינויים מאוחר יותר. 347 00:16:50,330 --> 00:16:51,970 אז במקום 8 בתים, אתה יודע מה? 348 00:16:51,970 --> 00:16:54,261 אני הולך להיות חשיבה קדימה כאן, למרות שזה 349 00:16:54,261 --> 00:16:56,760 קצת אופטימי כי אנחנו הולכים יש 4 מיליארד 350 00:16:56,760 --> 00:16:58,850 ו 1 משתמש באתר האינטרנט שלנו. 351 00:16:58,850 --> 00:17:01,790 אבל בואו פשוט להשתמש 8 בתים, או 64 סיביות, אשר בדרך כלל להיות 352 00:17:01,790 --> 00:17:05,640 נקרא שלם גדול, טכני מאוד. 353 00:17:05,640 --> 00:17:10,280 וזה רק אומר שאתה יכול לקבל אפילו יותר ספרות המספר שלך. 354 00:17:10,280 --> 00:17:12,599 אבל זה חשוב החלטה עיצובית, 355 00:17:12,599 --> 00:17:16,400 כי אם תבחר מספר כי יש פיסות מעט מדי של הביטוי 356 00:17:16,400 --> 00:17:19,089 אתה באמת יכול ליצור באג בתוכנה שלך. 357 00:17:19,089 --> 00:17:21,750 >> בסדר, אז בואו לעטוף עם דוא"ל וכתובת דואר. 358 00:17:21,750 --> 00:17:26,369 אז דואר אלקטרוני, כמה זמן צריך כתובת דוא"ל להיות? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 אני באמת אין לי מושג, אבל זה כנראה משהו כזה, 361 00:17:29,220 --> 00:17:32,261 כי אחרת אף אחד לא הולך לכתוב לך אם זה נהיה יותר מדי זמן, אז בן 50, 362 00:17:32,261 --> 00:17:33,360 בואו נלך עם זה לעת עתה. 363 00:17:33,360 --> 00:17:35,770 כתובת דואר, כמה זמן צריך להיות? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 קהל: [לא ברור] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> DAVID מלאן: זה לא רק מיקוד, אף. 368 00:17:43,890 --> 00:17:45,720 כתובת דואר, שמעתי. 369 00:17:45,720 --> 00:17:50,720 אז זה כמו ריבוע 1 ברטל, פסיק, קיימברידג 'מסצ'וסטס., פסיק, 02138. 370 00:17:50,720 --> 00:17:53,860 ואכן, תן לי רק למשוך עד גיליון עבודה קטנה כאן. 371 00:17:53,860 --> 00:17:56,510 זה מרגיש כאילו זה החמצה. 372 00:17:56,510 --> 00:18:01,480 אם יש לנו ריבוע 1 ברטל, פסיק, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 אני מרגיש כמו שאנחנו יכולים לעשות טובים יותר מסתם כתובת דואר. 374 00:18:04,510 --> 00:18:07,100 למה אנחנו לא להתפוצץ זה קצת? 375 00:18:07,100 --> 00:18:08,030 מה אני חותר? 376 00:18:08,030 --> 00:18:10,970 מה עלינו במקום יש עבור שורותינו כאן, אולי? 377 00:18:10,970 --> 00:18:12,260 >> קהל: [לא ברור] 378 00:18:12,260 --> 00:18:17,579 >> DAVID מלאן: כן, אז בואו קוראים לזה street_number, 379 00:18:17,579 --> 00:18:20,620 ו בקו תחתון הוא רק משותף דרך שיש מה שנראה כמו חלל, 380 00:18:20,620 --> 00:18:22,360 אבל זה לא, באמת. 381 00:18:22,360 --> 00:18:26,240 רחוב, ולאחר מכן city-- מצטער? 382 00:18:26,240 --> 00:18:28,440 >> קהל: [לא ברור] 383 00:18:28,440 --> 00:18:29,690 DAVID מלאן: אפשר לעשות את זה. 384 00:18:29,690 --> 00:18:30,702 קו אחד, קו שני. 385 00:18:30,702 --> 00:18:32,410 למה אנחנו לא נשמור זה פשוט עבור החברה, 386 00:18:32,410 --> 00:18:34,840 אבל זה בהחלט החלטה מקובלת. 387 00:18:34,840 --> 00:18:38,180 ואז המדינה, ולאחר מכן בואו להיות בארה"ב ממוקדת מעט לעת עתה 388 00:18:38,180 --> 00:18:42,040 ופשוט לעשות מיקוד, רק בגלל זה יהיה להוביל טעות מעניינת 389 00:18:42,040 --> 00:18:43,090 או בעיה כאן. 390 00:18:43,090 --> 00:18:44,655 אז נניח כי עכשיו הכתובת שלנו. 391 00:18:44,655 --> 00:18:47,280 זה קצת יותר מעצבן כי יש לנו את כל שדות נוספים אלה, 392 00:18:47,280 --> 00:18:49,200 אבל עכשיו אנחנו יכולים לתייג דברים קצת יותר טובים. 393 00:18:49,200 --> 00:18:53,210 >> אז עכשיו מספר רחוב כנראה לא צריך להיות char, נכון שלא? 394 00:18:53,210 --> 00:18:54,835 מה זה צריך להיות? 395 00:18:54,835 --> 00:18:55,710 קהל: [לא ברור] 396 00:18:55,710 --> 00:18:57,835 DAVID מלאן: אולי, מספר כמו מספר שלם שוב? 397 00:18:57,835 --> 00:19:00,170 מספר שלם גדול? 398 00:19:00,170 --> 00:19:02,170 אתה כנראה לא חיית ב -4 מיליארד Main Street 399 00:19:02,170 --> 00:19:03,490 או משהו מטורף כזה. 400 00:19:03,490 --> 00:19:06,850 אז שלם הוא כנראה בסדר, אבל יש מישהו 401 00:19:06,850 --> 00:19:13,880 פעם חי בכתובת כמו 1A כיכר ברטל, או 1 ו 1/2? 402 00:19:13,880 --> 00:19:17,030 הדברים האלה קיימים, למרבה הצער, גם אם אתה לא גר שם, 403 00:19:17,030 --> 00:19:21,240 ישנם אלה אנומליות כמו דירה 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 אז אתה יודע מה, אנחנו כנראה לא צריך ללכת עם שלם, 405 00:19:24,260 --> 00:19:27,440 אחרת אנחנו הולכים לאבד כמה מכירות. 406 00:19:27,440 --> 00:19:29,920 >> שדה צ'אר, אולי? 407 00:19:29,920 --> 00:19:30,870 אני לא יודע כמה זמן. 408 00:19:30,870 --> 00:19:33,370 זה כנראה לא הולך להיות ארוך, כך 10 או משהו. 409 00:19:33,370 --> 00:19:34,950 אף אחד לא הולך לכתוב מספר עוד, אולי. 410 00:19:34,950 --> 00:19:37,070 אבל שוב, אנחנו צריכים כנראה קצת יותר מחשבה זה. 411 00:19:37,070 --> 00:19:39,900 אולי google, לעשות קצת מחקר, אבל נלך עם האומץ שלנו לעת עתה. 412 00:19:39,900 --> 00:19:44,565 רחובות, char, 50, אני לא יודע. 413 00:19:44,565 --> 00:19:46,940 בשלב מסוים, אף אחד לא הולך לכתוב אותו על גבי מעטפה, 414 00:19:46,940 --> 00:19:49,350 גם כך יש כנראה כמה גבולות עליונים שם. 415 00:19:49,350 --> 00:19:54,200 עיר, אותו, בטוח, כך להשחיר 50. 416 00:19:54,200 --> 00:19:59,120 >> מדינה, יכולה להיות בארה"ב הממוקדת לעת עתה. 417 00:19:59,120 --> 00:20:01,850 אז זה יכול להיות רשימה, בטובך של של חוות דעת, מדינה. 418 00:20:01,850 --> 00:20:04,000 זה יכול להיות כשתי דמויות. 419 00:20:04,000 --> 00:20:06,140 אז בעצם, אולי, כל הזמן אמרתי char. 420 00:20:06,140 --> 00:20:09,420 אני מתכוון כנראה varchar, רק ליעילות מסוימת, 421 00:20:09,420 --> 00:20:12,240 אבל נצטרך לחזור כי ההחלטה בעוד רגע. 422 00:20:12,240 --> 00:20:16,150 יכול להיות char באורך 2 עבור המדינה. 423 00:20:16,150 --> 00:20:20,670 אם בארה"ב יש להם, כמו MA, מסצ'וסטס, ניו יורק, ניו יורק, ניו ג'רזי, ניו 424 00:20:20,670 --> 00:20:22,100 ג'רזי, וכן הלאה. 425 00:20:22,100 --> 00:20:23,630 אז זה יכול להיות קבוע בבית זה. 426 00:20:23,630 --> 00:20:25,900 DC עבור וושינגטון. 427 00:20:25,900 --> 00:20:29,915 >> אבל אני חושב, אוליבייה, אתה הציע גישה אחרת. 428 00:20:29,915 --> 00:20:30,790 קהל: [לא ברור] 429 00:20:30,790 --> 00:20:33,670 DAVID מלאן: כן, אז זה קצת מעצבן להקליד, 430 00:20:33,670 --> 00:20:37,890 אלא enum אולי הגיוני יותר, כי בדרך זו, לפחות בארצות הברית, 431 00:20:37,890 --> 00:20:41,320 אתה יכול למנות, אם לעייפה, אבל אתה עושה את זה רק פעם אחת במסד הנתונים 432 00:20:41,320 --> 00:20:47,480 ולעולם שוב צריך לחשוב על זה, בכל 50 קודי שני התווים. 433 00:20:47,480 --> 00:20:48,660 אז אני אוהב enum. 434 00:20:48,660 --> 00:20:51,720 בואו נישאר עם זה שם, כי זה סוג של אוכף יותר קשיח. 435 00:20:51,720 --> 00:20:53,620 ואז מספר מיקוד? 436 00:20:53,620 --> 00:20:55,306 אני חושב אנדרו היה מחשבה על זה 437 00:20:55,306 --> 00:20:56,180 קהל: [לא ברור] 438 00:20:56,180 --> 00:20:57,240 DAVID מלאן: כן, חמש או תשע. 439 00:20:57,240 --> 00:20:58,323 בואו פשוט לשמור את זה פשוט. 440 00:20:58,323 --> 00:20:59,380 פשוט תעשו את חמש לעת עתה. 441 00:20:59,380 --> 00:21:03,070 אבל אולי אני יכול רק לעשות מספר שלם, נכון? 442 00:21:03,070 --> 00:21:08,750 יכולתי, אבל אתה יודע מה, אני עשיתי את הטעות הזאת פעם אחת, במובן מסוים. 443 00:21:08,750 --> 00:21:13,110 לפני שנים, הייתי נודד מן ב- Microsoft Outlook ל- Gmail, 444 00:21:13,110 --> 00:21:18,640 יש ו- Outlook דרך ייצוא כל אנשי הקשר שלך כקובץ אקסל, 445 00:21:18,640 --> 00:21:21,280 קובץ CSV, מופרדים בפסיקים קובץ ערכים. 446 00:21:21,280 --> 00:21:23,950 ואני עשיתי טעות, אני חושב, של לחיצה כפולה עליו, 447 00:21:23,950 --> 00:21:27,380 פעם הורדתי את הייצוא, כדי לוודא שזה נראה כמו שציפיתי. 448 00:21:27,380 --> 00:21:31,320 כנראה פגעתי שמור או לתת שמירה אוטומטית בעיטה או משהו. 449 00:21:31,320 --> 00:21:35,100 כי כשאני מכן מיובא אותו לתוך Gmail, כל זה פועל. 450 00:21:35,100 --> 00:21:39,910 אבל במשך שנים, עד עצם היום הזה, ואת עשיתי חמש זה, לפני 10 שנים, 451 00:21:39,910 --> 00:21:44,380 אני עדיין למצוא חברים שיש להם כתובות שנראות כמו זה. 452 00:21:44,380 --> 00:21:45,700 למה? 453 00:21:45,700 --> 00:21:47,900 >> קהל: [לא ברור] 454 00:21:47,900 --> 00:21:50,650 >> DAVID מלאן: לקח ה -0, טוב, די, זה 455 00:21:50,650 --> 00:21:53,810 לקח את המיקוד כולו מספר, ולכן זה 456 00:21:53,810 --> 00:21:56,590 -0 מובילים שפירושו אין לו משמעות. 457 00:21:56,590 --> 00:21:59,470 וכך 2138 נראה המיקוד שלי. 458 00:21:59,470 --> 00:22:07,100 וזה, למען האמת, קובץ Excel מעצבן תכונה לפיה אני חושב כברירת מחדל, 459 00:22:07,100 --> 00:22:10,980 גם אם זה אמור רק הטקסט להיות, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 מחליט, תן לי להיות מועיל, אה, אני רואה מספרים בלבד. 461 00:22:13,780 --> 00:22:15,290 בואו לטפל כמו המספרים האלה. 462 00:22:15,290 --> 00:22:16,790 וזה מקצץ את האפסים המובילים. 463 00:22:16,790 --> 00:22:19,165 >> אני נשבע באלוהים, כל זוג של חודשים אני מוצא כתובת, 464 00:22:19,165 --> 00:22:22,300 ומתוך מעין OCD, אני חוזר ב ומוסיפים את 0, למרות שאני אף פעם לא 465 00:22:22,300 --> 00:22:23,700 לשלוח אנשי מכתבים או משהו כזה. 466 00:22:23,700 --> 00:22:25,510 אבל אני עדיין למצוא שרידים של זה. 467 00:22:25,510 --> 00:22:28,820 אז זהו לומר, האם זה רעיון טוב? 468 00:22:28,820 --> 00:22:31,610 בסדר, לא, כי אף אחד מסצ'וסטס, בתחום זה, 469 00:22:31,610 --> 00:22:33,270 הוא הולך להיות o מוביל אותם. 470 00:22:33,270 --> 00:22:38,070 אז בואו נלך עם כמו char, כנראה, חמש. 471 00:22:38,070 --> 00:22:41,450 >> והנה, אנחנו מבינים יכול להשתמש enum ואנחנו 472 00:22:41,450 --> 00:22:44,600 יכול למנות 10,000 מספרי מיקוד אפשריים, 473 00:22:44,600 --> 00:22:48,530 אבל זה מרגיש כאילו זה כנראה חציית קו של, כמו, הטבות. 474 00:22:48,530 --> 00:22:51,350 אם אתה צריך קלט נתונים רבים לתוך מסד הנתונים שלך 475 00:22:51,350 --> 00:22:52,940 על מנת להגן מפני משהו. 476 00:22:52,940 --> 00:22:57,400 אז char הבנתי שאתה יכול להקליד ב H-E-L-L-O המיקוד שלך, 477 00:22:57,400 --> 00:22:59,180 וזה כמובן לא מספרי. 478 00:22:59,180 --> 00:23:01,680 אז אין שום דרך, ב מסד נתונים טיפוסי, 479 00:23:01,680 --> 00:23:05,561 כדי לציין מספרים בלבד חמש רק תווים, 480 00:23:05,561 --> 00:23:07,310 אז אנחנו הולכים לעשות כדי לעשות את זה בקוד. 481 00:23:07,310 --> 00:23:11,100 אנחנו הולכים לעשות את זה ב- PHP או Java או כל שפה אנחנו 482 00:23:11,100 --> 00:23:14,230 באמצעות בשרת לאכוף זה סוג של אילוץ. 483 00:23:14,230 --> 00:23:14,860 >> וואו! 484 00:23:14,860 --> 00:23:18,322 בסדר, אז כל שאלות עדיין? 485 00:23:18,322 --> 00:23:19,780 בוא נעשה עוד החלטה עיצוב. 486 00:23:19,780 --> 00:23:22,500 מתברר כי אתה גם יכול לבחור, 487 00:23:22,500 --> 00:23:26,600 בעת תכנון מסד נתונים SQL, או database-- היחסי הטיפוסי שבו 488 00:23:26,600 --> 00:23:28,790 שוב, יחסי רק פירושו שורות ועמודות, 489 00:23:28,790 --> 00:23:35,500 וככה אתה לארגן data-- שלך ולהבין מה שזה אומר הוא, 490 00:23:35,500 --> 00:23:37,740 אני כבר מטעה כי, אני drawing-- זה 491 00:23:37,740 --> 00:23:40,190 הוא מה שנקרא הסכימה עבור טבלת מסד נתונים. 492 00:23:40,190 --> 00:23:42,810 זה כמו מפרטים עבור table-- 493 00:23:42,810 --> 00:23:48,040 אבל כשזה מגיע זמן כדי לאחסן נתונים בפועל, 494 00:23:48,040 --> 00:23:52,081 ואנחנו נעשה את זה רק על ידי דוגמא כאן. 495 00:23:52,081 --> 00:23:55,080 אני הולך לפתוח Excel, כי Excel ייתן לי שורות ועמודות. 496 00:23:55,080 --> 00:23:58,050 וזה בדיוק מה אורקל MySQL וכלים אחרים ינתנו לי. 497 00:23:58,050 --> 00:24:02,270 אז אני רק הולך להשתמש זה לצורך הדיון. 498 00:24:02,270 --> 00:24:05,250 תן לי ללכת קדימה ולפתוח מסמך נציג כאן, 499 00:24:05,250 --> 00:24:06,310 להתקרב קצת. 500 00:24:06,310 --> 00:24:15,200 כך למשל, הכותרות שלנו הן עכשיו שם פרטי, שם משפחה, מין, זהות, 501 00:24:15,200 --> 00:24:20,980 דואר אלקטרוני, מספר רחוב, רחוב, אופס. 502 00:24:20,980 --> 00:24:25,710 רחוב, עיר, מדינה, רק על מתאים על המסך. 503 00:24:25,710 --> 00:24:29,080 >> אז מה שזה אומר זה שכאשר משתמש הרושם ראשון עבור אתר האינטרנט שלי, 504 00:24:29,080 --> 00:24:32,880 זה הולך להיות משהו כמו דוד, מלאן, מ ', נניח 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, מספר הרחוב יהיה להיות כמו ריבוע 1 ברטל, Cambridge, MA, 506 00:24:42,910 --> 00:24:44,780 02138, ולאחר מכן הלאה. 507 00:24:44,780 --> 00:24:48,290 לכן, כאשר אני אומר כי מסדי נתונים יחסיים או מסד נתונים SQL הוא שורות ועמודות, 508 00:24:48,290 --> 00:24:49,350 אני מתכוון לזה. 509 00:24:49,350 --> 00:24:51,900 נתונים בפועל זה מאוחסן בשורות ועמודות. 510 00:24:51,900 --> 00:24:53,950 זהו רק צירוף מקרים, שאנחנו מדברים, 511 00:24:53,950 --> 00:24:56,033 ואני רק ציור זה בשורות ועמודות. 512 00:24:56,033 --> 00:24:58,320 זוהי רק הסכימה, הגדרת העל. 513 00:24:58,320 --> 00:25:01,640 >> אז אחד מהתחומים הללו כאן, או באופן שקול, שם, 514 00:25:01,640 --> 00:25:06,270 אשר הם שדות שאתה חושב אני הולך לחפש אם אני משתמש 515 00:25:06,270 --> 00:25:09,200 או אם אני מנהל מסד הנתונים? 516 00:25:09,200 --> 00:25:12,426 כאילו, מה אני שדות באמת הולך לחפש? 517 00:25:12,426 --> 00:25:13,830 >> קהל: [לא ברור] 518 00:25:13,830 --> 00:25:17,690 >> DAVID מלאן: השם, אז כן אני אוהב את העובדה ש-- כן, 519 00:25:17,690 --> 00:25:19,750 הדוא"ל יכול להיות די נפוץ. 520 00:25:19,750 --> 00:25:21,440 מצטערים, אמרת שקוראים. 521 00:25:21,440 --> 00:25:24,030 אז maybe-- ושוב, אנחנו סוג של מדבר באופן מופשט. 522 00:25:24,030 --> 00:25:25,988 אני לא יודע למה אתה 'd מחפש שם, 523 00:25:25,988 --> 00:25:29,340 אבל זה מרגיש סביר אם אתה מחפש משתמש. 524 00:25:29,340 --> 00:25:31,170 אולי קובע, בטוח, מזהה. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> וזה חלקלק מדרון, מפני שיכולתי 527 00:25:36,160 --> 00:25:38,890 להמציא תרחיש שבו אולי הבוס שלי שאל אותי, 528 00:25:38,890 --> 00:25:40,417 כמה גברים יש לנו באתר שלנו? 529 00:25:40,417 --> 00:25:42,000 כמה נשים יש לנו באתר שלנו? 530 00:25:42,000 --> 00:25:45,210 וכך בשלב זה, ייתכן שתרצה לחפש על המגרש המגדר, מדי, 531 00:25:45,210 --> 00:25:45,940 ושום דבר אחר. 532 00:25:45,940 --> 00:25:47,350 אז יש trade-off כאן. 533 00:25:47,350 --> 00:25:49,180 שוב, אין תשובה נכונה, אבל יש 534 00:25:49,180 --> 00:25:53,760 תכונה היא במסדי נתונים SQL ביותר המכונה אינדוקס, לפיה 535 00:25:53,760 --> 00:25:56,100 אתה, המעצב, מנהל מסד נתונים, 536 00:25:56,100 --> 00:26:01,730 יכול להחליט מראש איזה שדות מסד הנתונים צריכים לייעל 537 00:26:01,730 --> 00:26:02,980 בחיפושים על. 538 00:26:02,980 --> 00:26:07,620 >> אתה יכול מאוד בתמימות לומר, לייעל זה, לייעל את זה, לייעל זו, 539 00:26:07,620 --> 00:26:10,300 לייעל את זה ואת זה, ובסיס הנתונים יהיו 540 00:26:10,300 --> 00:26:14,882 לעשות משהו קסום מתחת מכסה מנוע, ולעשות משהו בצורה כזאת 541 00:26:14,882 --> 00:26:17,090 כי בפעם הבאה שתחפש על כל אחד מהתחומים הללו, 542 00:26:17,090 --> 00:26:18,400 זה יהיה, למעשה, להיות מהיר יותר. 543 00:26:18,400 --> 00:26:19,110 זה אפשרי. 544 00:26:19,110 --> 00:26:20,530 זה לא מבטל את עצמו. 545 00:26:20,530 --> 00:26:22,500 אבל חייב להיות מחיר ששולם. 546 00:26:22,500 --> 00:26:27,220 >> אם בתמימות, או יתר בהתלהבות למשל, מדד כל אחד מהתחומים הללו, 547 00:26:27,220 --> 00:26:29,810 כביכול, לעשות את כולם ביעילות לחיפוש, 548 00:26:29,810 --> 00:26:31,625 מה המחיר הם כנראה אתה משלם? 549 00:26:31,625 --> 00:26:32,500 קהל: [לא ברור] 550 00:26:32,500 --> 00:26:33,090 DAVID מלאן: ביצועים. 551 00:26:33,090 --> 00:26:33,798 למה את מתכוונת? 552 00:26:33,798 --> 00:26:37,380 ובכן ביצועים, לפחות בהקשר שאני מדבר עליו, הוא יותר טוב עכשיו. 553 00:26:37,380 --> 00:26:38,830 זוהי ההגדרה של אינדקס. 554 00:26:38,830 --> 00:26:41,180 זה יגרום חיפושים מהירים יותר. 555 00:26:41,180 --> 00:26:43,366 אז זמן יורד, כביכול. 556 00:26:43,366 --> 00:26:44,240 קהל: [לא ברור] 557 00:26:44,240 --> 00:26:45,031 DAVID מלאן: שטח. 558 00:26:45,031 --> 00:26:46,520 אז שוב, אלה הם מסחריים נפוצים. 559 00:26:46,520 --> 00:26:50,820 אני יכול להאיץ את החיפושים שלך, אבל זה יעלה לך יותר בתים של שטח. 560 00:26:50,820 --> 00:26:51,610 למה? 561 00:26:51,610 --> 00:26:55,230 ובכן, כברירת מחדל, אם יש לנו אף אחד אלה כוכבים אדומים, אף אחד המדדים הללו, 562 00:26:55,230 --> 00:26:58,797 כמו שאני אומר, איך אתה עושה את החיפוש עבור שם באתר זה? 563 00:26:58,797 --> 00:27:00,630 אז בואו לצייר שלנו לב בדוגמה זו. 564 00:27:00,630 --> 00:27:06,300 אם יש לנו דוד סקאלי כרים ו Arwa ואחרים בשורות אלה, 565 00:27:06,300 --> 00:27:06,910 לדוגמה. 566 00:27:06,910 --> 00:27:08,390 >> אז בואו לעשות בדיוק את זה. 567 00:27:08,390 --> 00:27:13,990 סקאלי נמצא כאן, ולאחר מכן יש לנו כרים, ו Arwa, 568 00:27:13,990 --> 00:27:18,390 וכל השאר, אם לא הגדר אינדקס, אם אפשר לומר כך, 569 00:27:18,390 --> 00:27:20,160 הכי טוב שאתה יכול לעשות הוא לחפש ליניארי. 570 00:27:20,160 --> 00:27:23,470 אם אתה מחפש Arwa, אנחנו לא הולך להיות מסוגל לקפוץ ישר אליה 571 00:27:23,470 --> 00:27:24,140 בִּמְהִירוּת. 572 00:27:24,140 --> 00:27:26,556 אנחנו הולכים להתחיל עליונים ללכת כל הדרך עד לתחתית, 573 00:27:26,556 --> 00:27:28,600 שלא כמו המקורי שלנו מייק סמית למשל. 574 00:27:28,600 --> 00:27:33,470 >> אם, לעומת זאת, אני אומר, היי, מסד נתונים, מדד בשדה השם הפרטי, 575 00:27:33,470 --> 00:27:37,000 אז זה הולך לעשות משהו להשתכלל ולתמוך משהו 576 00:27:37,000 --> 00:27:38,130 כמו חיפוש בינארי. 577 00:27:38,130 --> 00:27:39,820 זה כנראה לא חיפוש בינארי כשלעצמה. 578 00:27:39,820 --> 00:27:42,810 מאגרים נוטים להשתמש אחר מבנה נתונים בשם עצי b, 579 00:27:42,810 --> 00:27:46,540 לא להתבלבל עם עץ בינארי, כי רק לעשות את זה מהר כדי לחפש 580 00:27:46,540 --> 00:27:48,500 משהו לוגריתמים בטבע. 581 00:27:48,500 --> 00:27:53,510 אבל המחיר שאתה משלם כדי לבנות כי תכונה, כי מבנה נתונים בזיכרון, 582 00:27:53,510 --> 00:27:54,570 יותר בתים. 583 00:27:54,570 --> 00:27:57,170 אז זה עלול לקחת כמה מגה בייט, כמה גיגהבייט, מי יודע? 584 00:27:57,170 --> 00:27:58,410 זה תלוי בנתונים. 585 00:27:58,410 --> 00:28:02,640 >> אז בשלב מסוים, אתה צריך להחליט, זה כנראה לא מקרה נפוץ. 586 00:28:02,640 --> 00:28:06,000 אז מה הם נפוצים בפועל מקרים, אם אתה באמת צריך לבחור, 587 00:28:06,000 --> 00:28:10,080 מה יכול להיות בתחומים האהובים עליכם? 588 00:28:10,080 --> 00:28:10,580 אֶלֶקטרוֹנִי. 589 00:28:10,580 --> 00:28:14,400 ואני אוהב הדוא"ל בגלל הדוא"ל, בתיאוריה, אמור להיות ייחודי. 590 00:28:14,400 --> 00:28:17,650 וכך בדרך כלל, כאשר אתה יודע מראש שאחד השדות שלך 591 00:28:17,650 --> 00:28:20,277 הוא או יהיה ייחודי, כי נוטה להיות טוב שדה 592 00:28:20,277 --> 00:28:22,860 לחפש על, כי ככה, כשאתה מחפש משהו, 593 00:28:22,860 --> 00:28:26,194 אתה הולך לחזור אחד או אפס תגובות אז תסיים. 594 00:28:26,194 --> 00:28:28,110 אתה לא צריך לשמור מחפש עדיין לאחרים. 595 00:28:28,110 --> 00:28:31,992 >> וכך במקרה זה כאן, דואר אלקטרוני, כל עוד אתה לא יכול להירשם פעמיים 596 00:28:31,992 --> 00:28:33,450 עם אותו דוא"ל, היא טובה. 597 00:28:33,450 --> 00:28:36,710 מזהה על פי הגדרתו, ב בעולם במדעי המחשב, 598 00:28:36,710 --> 00:28:39,610 אם אתה מדבר על ID, אשר להיות ייחודי יותר. 599 00:28:39,610 --> 00:28:42,970 זהו מעין הקונוטציה של זהות או מזהה. 600 00:28:42,970 --> 00:28:46,440 ושאר אלה עשויים להיות, בואו נכנה אותם נחמד שיהיה ברשותך, 601 00:28:46,440 --> 00:28:47,860 אבל לא באמת נדרש. 602 00:28:47,860 --> 00:28:49,976 >> וכך במסד נתונים, שתציין אינדקסים, 603 00:28:49,976 --> 00:28:51,350 אבל אתה יכול להיות אפילו יותר מדויק. 604 00:28:51,350 --> 00:28:56,060 אתה יכול להגיד, היי, מסד נתונים, ודא שכל מזהה בטבלה זו היא ייחודית. 605 00:28:56,060 --> 00:28:59,330 אפילו לא נתנו מתכנת בטעות להכניס דוא"ל כפולה 606 00:28:59,330 --> 00:29:00,740 או לשכפל מספר תעודת זהות. 607 00:29:00,740 --> 00:29:03,140 כל כך הרבה כמו enums להגן עלינו באופן דומה, אתה 608 00:29:03,140 --> 00:29:04,881 יכול להיות אלה הגנות ברמה נמוכה יותר. 609 00:29:04,881 --> 00:29:07,130 וכך עיצוב מסד נתונים, קצת שכל, הוא סוג של כיף, 610 00:29:07,130 --> 00:29:08,380 כי אתה עושה את זה מתוך התגוננות. 611 00:29:08,380 --> 00:29:11,460 אתה סוג של תניח כי אתה עם מתכנתים נורא, נורא 612 00:29:11,460 --> 00:29:15,550 ואתה רוצה לשים כמה הגנות ככל שתוכל כדי להגן על הנתונים שלך, 613 00:29:15,550 --> 00:29:18,940 אבל בו זמנית אתה רוצה כדי לשפר את הביצועים שלהן 614 00:29:18,940 --> 00:29:21,386 על ידי בחירה של שדות לבצע אופטימיזציה עבור. 615 00:29:21,386 --> 00:29:24,260 אבל אתה לא יכול בהכרח לעשות את זה בריק כמו שאנחנו סוג של נמצא כאן. 616 00:29:24,260 --> 00:29:26,480 אתה חייב לדעת מה הם אלה מקרים נפוצים להיות. 617 00:29:26,480 --> 00:29:29,397 אם המפתחים יישום פנקס כתוב, 618 00:29:29,397 --> 00:29:32,230 ייתכן מאוד רוצה להיות מסוגל לחפש כמעט בכל תחום, 619 00:29:32,230 --> 00:29:33,830 רק מטבעו של היישום. 620 00:29:33,830 --> 00:29:37,910 אז אולי אתה מבלה שטח נוסף זה. 621 00:29:37,910 --> 00:29:39,090 >> נכון, כל שאלות? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 כֵּן. 624 00:29:42,486 --> 00:29:43,470 >> קהל: [לא ברור] 625 00:29:43,470 --> 00:29:44,404 >> DAVID מלאן: מס ' 626 00:29:44,404 --> 00:29:45,279 >> קהל: [לא ברור] 627 00:29:45,279 --> 00:29:47,840 628 00:29:47,840 --> 00:29:48,826 >> DAVID מלאן: אישור. 629 00:29:48,826 --> 00:29:49,701 >> קהל: [לא ברור] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> DAVID מלאן: הו, אז אנחנו מדברים בצורה 632 00:29:54,850 --> 00:29:57,940 עכשיו זה לגמרי בשפה אגנוסטי. 633 00:29:57,940 --> 00:30:02,370 אז אנחנו מדברים עכשיו על מסדי נתונים יחסיים באופן כללי יותר, 634 00:30:02,370 --> 00:30:04,760 או SQL מסדי נתונים באופן כללי יותר. 635 00:30:04,760 --> 00:30:06,870 >> קהל: [לא ברור] 636 00:30:06,870 --> 00:30:10,030 >> DAVID מלאן: מילה עדיפה להשתמש הוא, יכול להיות בשימוש על ידי כל שפה. 637 00:30:10,030 --> 00:30:15,280 אז אני יכול לכתוב קוד JavaScript, C קוד קוד, C ++, Java קוד, קוד רובי, 638 00:30:15,280 --> 00:30:19,010 שכולן לדבר עם שאילתות מסד נתונים ולבצע. 639 00:30:19,010 --> 00:30:22,310 למעשה, זה לא רע עניינו כדי שאילתא למשל. 640 00:30:22,310 --> 00:30:25,720 ושוב, אנחנו לא הולכים להיכנס Java או C ++ או שום דבר כזה יותר, 641 00:30:25,720 --> 00:30:29,420 אבל ב- SQL, השפה שבה אני כל הזמן בהתייחסו, שפת שאילתות מובנית, 642 00:30:29,420 --> 00:30:32,790 זו עצמה היא שפת תכנות, אבל זה אמור לשמש, לא 643 00:30:32,790 --> 00:30:37,330 הפתעה, מובנת שאילתות שאילתא. 644 00:30:37,330 --> 00:30:38,660 >> בכך אני מתכוון לזה. 645 00:30:38,660 --> 00:30:41,190 הדרך תבחר נתונים ממסד נתונים MySQL 646 00:30:41,190 --> 00:30:49,330 הוא שאתה ממש להקליד התוכנית שלך משהו כמו כוכב בחר ממשתמשים. 647 00:30:49,330 --> 00:30:52,200 אני מניח כי בטבלה זו, מעתה נקרא משתמשים. 648 00:30:52,200 --> 00:30:54,860 יכולתי לקרוא לזה כל מה שאנחנו רוצים, אבל זה סוג של הגיוני. 649 00:30:54,860 --> 00:30:57,240 וכך בחר הוא מאוד הפועל נפוץ, אם אתה 650 00:30:57,240 --> 00:30:59,290 יהיה, SQL, פשוטו כמשמעו שעושה את זה. 651 00:30:59,290 --> 00:31:02,730 מה אתה חושב כוכב אומר בהקשר זה? 652 00:31:02,730 --> 00:31:04,410 >> קהל: [לא ברור] 653 00:31:04,410 --> 00:31:05,380 >> DAVID מלאן: אני מצטער? 654 00:31:05,380 --> 00:31:06,300 >> קהל: [לא ברור] 655 00:31:06,300 --> 00:31:09,580 >> DAVID מלאן: לא נדרש, זה כוללני יותר מזה, בעצם. 656 00:31:09,580 --> 00:31:11,700 זה אופי הקלף. 657 00:31:11,700 --> 00:31:14,740 כוכב כמעט תמיד אומר משהו, אז זה אומר, במקרה זה, 658 00:31:14,740 --> 00:31:16,510 בחר הכל מסד הנתונים. 659 00:31:16,510 --> 00:31:20,730 אז כשאני אומר את זה, אני מתכוון להחזיר אותי בכל טור 660 00:31:20,730 --> 00:31:22,440 מהשולחן שלי התקשר משתמשת. 661 00:31:22,440 --> 00:31:24,730 אז תן לי סדרה מכך, כפי שהוא נקרא. 662 00:31:24,730 --> 00:31:28,210 במילים אחרות, לתת לי עותק של גיליון אלקטרוני, מה שאני מנסה להגיד. 663 00:31:28,210 --> 00:31:34,890 >> אבל אם אמרתי כוכב בחר ממשתמשים שם מזהה שווה 1, כיצד גדול 664 00:31:34,890 --> 00:31:36,640 סט התוצאה שלי להיות אז? 665 00:31:36,640 --> 00:31:41,680 או באופן שקול, כמה שורות צריכות אני אוחזר ממסד הנתונים? 666 00:31:41,680 --> 00:31:45,860 מסתבר שזו רק אחת, אם יש לי אכן מטופלים מזהים כמזהה ייחודית, 667 00:31:45,860 --> 00:31:50,710 ואם דוד כי יש מזהה ייחודי, אני צריך לחזור האחד והיחיד שורה אחת 668 00:31:50,710 --> 00:31:53,220 המכיל את כל המידע של הדוד. 669 00:31:53,220 --> 00:31:56,390 אם אמרתי לאן זה מזהה שווה 99, אני צריכה לחזור, 670 00:31:56,390 --> 00:32:00,320 בהקשר זה, אפס שורות, לפחות כרגע. 671 00:32:00,320 --> 00:32:03,620 >> עם זאת, אם אני לא באמת אכפת על כל המידע הזה, 672 00:32:03,620 --> 00:32:06,970 יכולתי רק לומר, מאיפה דוד חיים? 673 00:32:06,970 --> 00:32:10,860 מיקוד בחר משתמש שם מזהה הוא 1. 674 00:32:10,860 --> 00:32:15,820 זה יבחר לי רק zip של דוד קוד ולא המכלול של אותה השורה. 675 00:32:15,820 --> 00:32:19,541 איזו סיבה יכולה להיות אני עושה את זה במקום שאילתא הכוכב, הקלף? 676 00:32:19,541 --> 00:32:21,950 >> קהל: [לא ברור] 677 00:32:21,950 --> 00:32:24,590 >> DAVID מלאן: כן, אני יכול רק צריך את זה. 678 00:32:24,590 --> 00:32:26,350 אז ביצועים הם שוב את התשובה כאן. 679 00:32:26,350 --> 00:32:28,540 למה לבקש יותר מידע ממה שאתה צריך, 680 00:32:28,540 --> 00:32:32,020 כי גם אם זה בסדר יחד, אתה עדיין צריך להעתיק נתונים, 681 00:32:32,020 --> 00:32:35,560 זה היה נראה, ממסד הנתונים לתוכנית שלך איכשהו, 682 00:32:35,560 --> 00:32:38,490 וזה פשוט טיפשי אם אתה רק צריכים חמש הספרות האלה, 683 00:32:38,490 --> 00:32:40,340 לא את המכלול בשורה. 684 00:32:40,340 --> 00:32:42,180 >> אז איך אני מכניס משתמש? 685 00:32:42,180 --> 00:32:44,780 תניח שמשתמש יש רק רשום בפעם הראשונה. 686 00:32:44,780 --> 00:32:46,560 התחביר בדרך כלל ייראה כך. 687 00:32:46,560 --> 00:32:52,700 הכנס לתוך משתמשים, ו אז היינו אומרים ערכים, 688 00:32:52,700 --> 00:33:00,150 ואז היינו אומרים הערכים כמו, נניח, לורן סקאלי, 689 00:33:00,150 --> 00:33:02,380 videographer שלנו ממש כאן. 690 00:33:02,380 --> 00:33:04,390 והשדה הבא הוא מין. 691 00:33:04,390 --> 00:33:08,020 אז נגיד ציטוט, סוף ציטוט "F", אז יש לנו תעודת זהות 692 00:33:08,020 --> 00:33:12,250 ואני הולך say-- בואו להעמיד פנים שהיא לא ממש כאן, 693 00:33:12,250 --> 00:33:14,380 אז נצטרך אחורה בסיפור. 694 00:33:14,380 --> 00:33:16,530 אז 2 תהיינה הזהות שלה. 695 00:33:16,530 --> 00:33:19,130 ואז לשדה הבא הנה הדוא"ל שלה. 696 00:33:19,130 --> 00:33:22,140 אז זה הולך להיות כמו לורן סקאלי וכן הלאה, 697 00:33:22,140 --> 00:33:24,360 ואנחנו פשוט נקודת נקודה dot אותה מכאן על. 698 00:33:24,360 --> 00:33:26,890 עכשיו הוא יקבל קצת שאילתא מייגעת, אבל את הכנס 699 00:33:26,890 --> 00:33:28,310 בסופו של דבר ייראה ככה. 700 00:33:28,310 --> 00:33:30,970 >> אם אני רוצה להיפטר סקאלי, אה-אה, בוא deregister 701 00:33:30,970 --> 00:33:37,420 שלה, היא מוחקת את החשבון שלה, להסיר ממשתמשים שבו מזהים שווה 2, 702 00:33:37,420 --> 00:33:38,500 יהיה להיפטר סקאלי. 703 00:33:38,500 --> 00:33:48,050 או שאני יכול לומר משתמשים עדכון להגדיר, נניח, מה שאנחנו יכולים לשנות? 704 00:33:48,050 --> 00:33:49,430 נניח שהיא זזה. 705 00:33:49,430 --> 00:33:53,730 zip סט שווה 021-- לא, זה zip הנוכחי שלה. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 קוד ה- zip האחר רק אני יודע בעולם. 708 00:33:56,320 --> 00:33:59,002 אז שתשנה zip אותה code-- למעשה, 709 00:33:59,002 --> 00:34:00,460 כי לא הייתי משנה המיקוד שלה. 710 00:34:00,460 --> 00:34:02,170 >> מה עשיתי בדיוק? 711 00:34:02,170 --> 00:34:04,292 למרות שהתחביר הוא כנראה חדש. 712 00:34:04,292 --> 00:34:05,302 >> קהל: [לא ברור] 713 00:34:05,302 --> 00:34:08,010 DAVID מלאן: כן, עברתי את כולם לבוורלי הילס, קליפורניה. 714 00:34:08,010 --> 00:34:11,920 אז אני צריך בעצם לומר היכן מזהה שווה 2. 715 00:34:11,920 --> 00:34:12,820 וכן הלאה. 716 00:34:12,820 --> 00:34:15,290 אז SQL הוא על כל אלה מיני הוראות. 717 00:34:15,290 --> 00:34:20,260 בחר, להוסיף, למחוק, לעדכן, עם פרדיקטים אלה בסוף 718 00:34:20,260 --> 00:34:22,139 אלה הסעיפים שבו, אם אפשר לומר כך. 719 00:34:22,139 --> 00:34:25,170 ויש הרבה יותר אתה יכול לעשות, אבל זה באמת רק מסתכם 720 00:34:25,170 --> 00:34:29,750 פשוט, אם arcanely, להביע מה אתה רוצה את מסד הנתונים כדי לעשות. 721 00:34:29,750 --> 00:34:31,580 >> ואז את מסד הנתונים יהיה להבין, כאשר 722 00:34:31,580 --> 00:34:35,630 תכניס לורן סקאלי לתוך מסד נתונים, איפה לשים אותה בזיכרון 723 00:34:35,630 --> 00:34:38,230 כך שאנחנו מאוד יכול במהירות לקבל שלה מבוסס על כתובת הדוא"ל שלה 724 00:34:38,230 --> 00:34:42,610 או על פי מספר הזהות שלה וכדומה. 725 00:34:42,610 --> 00:34:43,391 כן, דן. 726 00:34:43,391 --> 00:34:44,266 קהל: [לא ברור] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 DAVID מלאן: שאלה טובה. 729 00:34:47,780 --> 00:34:50,370 האם התסריטים האלה להשתנות מעת מיקרוסופט הגישה אורקל 730 00:34:50,370 --> 00:34:52,290 כדי MySQL כדי PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 התשובה הקצרה היא שזה תלוי. 732 00:34:53,790 --> 00:34:58,697 בתיאוריה, יש מאוד משנה משותף משמעותי של SQL 733 00:34:58,697 --> 00:35:00,780 מה המשותף בין כל של מימושים אלה. 734 00:35:00,780 --> 00:35:03,340 עם זאת, יצרנים שונים יש תכונות נוספות 735 00:35:03,340 --> 00:35:07,120 למאגרי המידע שלהם לעשות דברים מסוימים מעבר להיקף של תכונות אלה, 736 00:35:07,120 --> 00:35:08,720 כי יכול היה, למעשה, לשבור. 737 00:35:08,720 --> 00:35:11,210 >> אז היזמים בדרך גידור מפני זה, 738 00:35:11,210 --> 00:35:14,350 כי הוא במקום לכתוב גלם קוד SQL כמו שאני כותב כאן, 739 00:35:14,350 --> 00:35:19,460 הם במקום להשתמש בספריה, ספרייה משותפת כי עצם 740 00:35:19,460 --> 00:35:23,650 מעין היא גבוהה יותר רמת ותקצירים אשר משם המוצר אתה משתמש. 741 00:35:23,650 --> 00:35:25,710 וזה נותן לך פונקציות והליכים 742 00:35:25,710 --> 00:35:28,810 לקרוא, כך שאתה אף פעם לא למעשה לכתוב SQL גלם. 743 00:35:28,810 --> 00:35:32,609 >> בתיאוריה, אם כן, אתה יכול לשנות מוצרים מ- Oracle ל- Microsoft 744 00:35:32,609 --> 00:35:34,650 או להיפך או כל דבר אחר, ואתה ממש 745 00:35:34,650 --> 00:35:36,920 לשנות דבר על הקוד שלך. 746 00:35:36,920 --> 00:35:40,180 המציאות, לעומת זאת, הוא, אתה לפעמים לוותר תכונות כתוצאה מכך. 747 00:35:40,180 --> 00:35:43,860 ייתכן בחר מוצר בגלל זה חייב תכונות אלה ערך מוסף, 748 00:35:43,860 --> 00:35:46,610 ואתה פשוט עכשיו לא באמצעות אותם במודע. 749 00:35:46,610 --> 00:35:51,630 >> וגם באופן מזדמן, רוב החברות נוטות לא להתרחק ממסד הנתונים שלהם. 750 00:35:51,630 --> 00:35:54,002 אז בזמן הזה הוא נחמד יש תכונה, המציאות 751 00:35:54,002 --> 00:35:55,960 כלומר, אם אתה בשיפוץ מסד הנתונים שלך, אתה 752 00:35:55,960 --> 00:35:59,890 כנראה מה שהופך צרור של שינויים אחרים בכל מקרה, מה שאתה עושה לא בהכרח 753 00:35:59,890 --> 00:36:01,360 צריך לצפות את זה. 754 00:36:01,360 --> 00:36:03,720 אז זה ללא ספק יתר הנדסת הבעיה, 755 00:36:03,720 --> 00:36:05,670 אבל זה באמת תלוי בהקשר. 756 00:36:05,670 --> 00:36:09,960 אבל בתיאוריה, SQL משותף במוצרים השונים הללו. 757 00:36:09,960 --> 00:36:11,560 באמת שאלות טובות. 758 00:36:11,560 --> 00:36:12,272 כֵּן. 759 00:36:12,272 --> 00:36:13,147 >> קהל: [לא ברור] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> DAVID מלאן: כן, אז אתה יכול לחשוב מסד נתונים 762 00:36:21,480 --> 00:36:25,020 רק הוא שרת, בסוף היום, ובתוך של שרת 763 00:36:25,020 --> 00:36:28,670 היא חבורה שלמה של שולחנות, שורות ועמודות. 764 00:36:28,670 --> 00:36:33,410 וכאשר אתה שולח שאילתה ככה מהתכנית שלך, האתר שלך, 765 00:36:33,410 --> 00:36:39,340 שנכתב ב- Java, Ruby, Python, מה שלא יהיה, השרת מקבל פקודה זו 766 00:36:39,340 --> 00:36:41,660 ופירוש זה באותו פשוטו כמשמעו דרך 767 00:36:41,660 --> 00:36:43,660 שהזכרנו קודם לכן עם בשפות לפרש, 768 00:36:43,660 --> 00:36:47,333 ולאחר מכן ביצוע פעולה כלשהי על אפס או שורות נוספות אפס או יותר טבלאות. 769 00:36:47,333 --> 00:36:48,208 קהל: [לא ברור] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> DAVID מלאן: בדיוק, בדיוק. 772 00:36:55,070 --> 00:36:58,450 אז פסאודו קוד למשהו ככה שאולי זה. 773 00:36:58,450 --> 00:37:02,450 בקובץ PHP שלך או שלך קובץ Python או קובץ Java שלך, 774 00:37:02,450 --> 00:37:09,210 היית צריך קוד פסאודו קוד, או שריטות כמו בלוקים כמו, אם משתמש מבקר 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V לראשונה, אז להכניס לתוך משתמשים וכן הלאה. 776 00:37:19,870 --> 00:37:22,619 והיינו לתרגם את זה כדי קוד בטון יותר בסופו של דבר. 777 00:37:22,619 --> 00:37:24,660 אבל באמת, יש לנו את כל אבני הבניין כאן, 778 00:37:24,660 --> 00:37:27,680 למרות שאנחנו מדלגים כמה הצעדים ליישום. 779 00:37:27,680 --> 00:37:31,560 >> אז תנו לי למצוא פגם עם מה שאנחנו להפליא עשה רק לפני רגע. 780 00:37:31,560 --> 00:37:36,470 יצרת די טבלה מלאה למשתמשים. 781 00:37:36,470 --> 00:37:38,920 יש להודות, נוכל ליישם זה בעוד כמה דרכים שונות, 782 00:37:38,920 --> 00:37:43,030 אבל אתה בעצם הובלת אותנו במורד path-- ואני אומר לך, 783 00:37:43,030 --> 00:37:48,080 אבל זה כנראה fault-- שלי של למדי יישום מסד נתונים יעיל. 784 00:37:48,080 --> 00:37:49,950 זה לא תקין. 785 00:37:49,950 --> 00:37:52,320 >> ועל ידי מנורמל אני מתכוון יש הולך להיות, 786 00:37:52,320 --> 00:37:57,380 לאורך זמן, יתירות משמעותית, ולכן יעילות, 787 00:37:57,380 --> 00:38:00,210 כי הוא בזבוז של מקום. 788 00:38:00,210 --> 00:38:05,650 בהתבסס על רק מה שאתה רואה כאן, יכול אתה רואה איפה זה בזבוז של שטח 789 00:38:05,650 --> 00:38:08,710 הוא יגיע, לאורך זמן, ככל שיותר ויותר משתמשים לרשום 790 00:38:08,710 --> 00:38:10,860 עבור אתר האינטרנט שלך? 791 00:38:10,860 --> 00:38:13,047 אילו נתונים עשוי להיות מיותר? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> קהל: [לא ברור] 794 00:38:20,940 --> 00:38:22,686 >> DAVID מלאן: למה אתה מתכוון לזה? 795 00:38:22,686 --> 00:38:23,561 קהל: [לא ברור] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 DAVID מלאן: כן. 798 00:38:32,930 --> 00:38:35,622 ואם נניח לצורך של היום כי זה נכון. 799 00:38:35,622 --> 00:38:38,330 מסתבר, ולמדנו זה בדרך הקשה, זה לא נכון. 800 00:38:38,330 --> 00:38:41,670 יש איכשהו בערים מרובות, איכשהו, באותו מיקוד, 801 00:38:41,670 --> 00:38:43,390 אשר שובר האינטואיציה הנפלאה הזו. 802 00:38:43,390 --> 00:38:46,180 אבל נניח שזה נכון, כי זה כמעט תמיד נכון. 803 00:38:46,180 --> 00:38:51,390 אז תניח כי מיקוד הוא תמיד קשור באותה העיר 804 00:38:51,390 --> 00:38:53,600 ומדינה, שהוא סוג הנחה סבירה, 805 00:38:53,600 --> 00:38:54,840 אך אינו נכון, מתברר. 806 00:38:54,840 --> 00:38:57,310 אבל הנחה סבירה למטרות של היום. 807 00:38:57,310 --> 00:39:01,650 >> אז נניח שאני גר בקיימברידג ' MA, בהתאם לטבלה של משתמש זה, 808 00:39:01,650 --> 00:39:04,100 ונניח כי לורן סקאלי מתגורר Cambridge, MA, 809 00:39:04,100 --> 00:39:06,120 ונניח כי כרים מתגורר Cambridge, MA, 810 00:39:06,120 --> 00:39:10,400 ו Arwa חי בקיימברידג ' MA, כולנו 02138. 811 00:39:10,400 --> 00:39:15,890 למה אנחנו זוכרים קיימברידג, MA, 02138 עבור ארבעתנו? 812 00:39:15,890 --> 00:39:18,903 מה צריך להספיק לזכור? 813 00:39:18,903 --> 00:39:20,249 >> קהל: [לא ברור] 814 00:39:20,249 --> 00:39:21,540 DAVID מלאן: רק את המיקוד. 815 00:39:21,540 --> 00:39:25,080 רק כי 02138 קיימים, כי אתה יודע מה יכולנו לעשות? 816 00:39:25,080 --> 00:39:32,650 אנחנו יכולים לקבל עליו חמודים כאן ושוב כאן, להגדיר שולחן אחר 817 00:39:32,650 --> 00:39:35,850 לאן זה הולך להיות שם, זה הולך להיות סוג, 818 00:39:35,850 --> 00:39:38,840 זה הולך להיות אורך, ואילך, אני 819 00:39:38,840 --> 00:39:42,900 הולך לקרוא את טבלת הערים שלי. 820 00:39:42,900 --> 00:39:47,011 זה נקרא, של כמובן, שולחן המשתמשים שלי. 821 00:39:47,011 --> 00:39:49,885 אז מה כדאי להכניס לכאן עבור שולחן הערים שלי, לדעתך? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> קהל: [לא ברור] 824 00:39:54,535 --> 00:39:55,930 >> DAVID מלאן: כן. 825 00:39:55,930 --> 00:40:01,440 אז zip ומדינה ועיר. 826 00:40:01,440 --> 00:40:05,350 וכך לסוג כאן, נגיד זה הולך להיות char 5 שוב, 827 00:40:05,350 --> 00:40:06,750 בכפוף לדיון קודם לכן. 828 00:40:06,750 --> 00:40:14,810 זה יהיה enum, אולי כמו לפני כן, העיר תהיה varchar 50. 829 00:40:14,810 --> 00:40:17,960 אז עכשיו מה אני מקבל למחוק מלוח זה 830 00:40:17,960 --> 00:40:21,995 לחסל חוסר יעילות זה? 831 00:40:21,995 --> 00:40:23,100 >> קהל: [לא ברור] 832 00:40:23,100 --> 00:40:23,850 DAVID מלאן: נחמד. 833 00:40:23,850 --> 00:40:30,239 המדינה העיר להיעלם, אז אני כבר עכשיו בוטל היעילות הפוטנציאלית 834 00:40:30,239 --> 00:40:33,280 לזכור באופן מיותר, קיימברידג ', MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, אשר, אני מקווה אף פעם לא הולך להשתנות. 836 00:40:35,712 --> 00:40:37,670 וגם אם כן, זה minorly מעצבן, עכשיו 837 00:40:37,670 --> 00:40:39,750 כי אני צריך לשנות אותו מספר שורות, 838 00:40:39,750 --> 00:40:43,770 ואילו כאן, יכולתי רק לשנות אותה במקום אחד. 839 00:40:43,770 --> 00:40:46,890 >> עכשיו מה trade-off, אולי? 840 00:40:46,890 --> 00:40:48,020 זה היה סופר נוח. 841 00:40:48,020 --> 00:40:50,730 האם כל הנתונים שלי יפה ביחד. 842 00:40:50,730 --> 00:40:53,644 אבל מה בבירור המקרה עכשיו? 843 00:40:53,644 --> 00:40:55,684 >> קהל: [לא ברור] 844 00:40:55,684 --> 00:40:58,100 DAVID מלאן: בדיוק, ואני שמח אפילו השתמשת במילה להצטרף, 845 00:40:58,100 --> 00:41:01,320 כי זה באמת מילת המפתח, בעולם של מסדי נתונים יחסיים 846 00:41:01,320 --> 00:41:05,270 ב- SQL, זה מילה ממש אתה אולי להקליד או לפחות להעביר. 847 00:41:05,270 --> 00:41:09,280 ואכן, מה שאנו צריכים לעשות לברור המידע המלא של הדוד הוא 848 00:41:09,280 --> 00:41:19,700 משהו כמו כוכב בחר משתמשים, להצטרף ערים, on-- ועכשיו 849 00:41:19,700 --> 00:41:24,010 אני הולך רק לעבור לשורה שנייה כך users.zip fits-- זה שווה 850 00:41:24,010 --> 00:41:34,570 cities.zip, שבו users.ID שווה 1. 851 00:41:34,570 --> 00:41:35,550 >> אז מה קורה? 852 00:41:35,550 --> 00:41:38,970 זה מכוער למראה, אבל אתה יכול סוג של לקרוא אותו משמאל לימין, מלמעלה למטה. 853 00:41:38,970 --> 00:41:41,030 כוכב בחר ממשתמשים היש כמו קודם, 854 00:41:41,030 --> 00:41:42,930 אבל זה לא ממשתמשים, כשלעצמה. 855 00:41:42,930 --> 00:41:45,910 זה ממשתמשים להצטרף הערים. 856 00:41:45,910 --> 00:41:48,520 מה אני מצטרף שני שולחנות על אלה? 857 00:41:48,520 --> 00:41:51,820 ובכן, ככל הנראה, שולחנות משתמשים zip שדה, 858 00:41:51,820 --> 00:41:54,810 ותקופה זה רק מיוחד תחביר לבטא רעיון זה, 859 00:41:54,810 --> 00:41:58,130 וזו שולחנות הערים zip שדה. 860 00:41:58,130 --> 00:42:01,580 אני רוצה את שני אלה להיות שווים, אבל אני רוצה בסופו של דבר לבחור 861 00:42:01,580 --> 00:42:06,280 רק אלה השורות שבהן מזהה בטבלת המשתמשים 862 00:42:06,280 --> 00:42:08,730 שווה 1, אשר קרה להיות שלי. 863 00:42:08,730 --> 00:42:11,781 >> ורק שיהיה ברור, מתכנת, בדרך כלל כאשר 864 00:42:11,781 --> 00:42:14,780 hardcode משהו כמו מספר 1, כי אחרת באתר בלבד 865 00:42:14,780 --> 00:42:17,630 תומך דוד או המשתמש הראשון מאוד, לך 866 00:42:17,630 --> 00:42:20,720 במקום יעשה משהו כמו ID, שם 867 00:42:20,720 --> 00:42:22,510 זה מייצג משתנה, משהו 868 00:42:22,510 --> 00:42:26,210 יכול להשתנות עם הזמן, דומה ברוחה מה שאמרתי קודם 869 00:42:26,210 --> 00:42:28,080 עם סוגים אלה של מצייני מיקום. 870 00:42:28,080 --> 00:42:30,396 אבל לעת עתה אנחנו פשוט hardcode זה כמו 1. 871 00:42:30,396 --> 00:42:31,520 אז מה זה אומר? 872 00:42:31,520 --> 00:42:35,100 ובכן, דרך נחמדה להמחיש זאת הוא שאם יד הלוח זה היא המשתמשים, 873 00:42:35,100 --> 00:42:38,090 והיד זהו רוכסנים שולחן, אנחנו סוג של finding-- 874 00:42:38,090 --> 00:42:41,330 וקצות האצבעות שלי הם zip כאן, ואת קצות האצבעות שלי 875 00:42:41,330 --> 00:42:43,740 הנה zip, אתה סוג של שלובים זה 876 00:42:43,740 --> 00:42:47,950 כך שאתה מקבל בחזרה שהתקבל טבלה מקורית, על ידי הצטרפות באמת 877 00:42:47,950 --> 00:42:49,590 שני שולחנות על המגרש המשותף. 878 00:42:49,590 --> 00:42:50,840 וזה לא חייב להיות zip. 879 00:42:50,840 --> 00:42:54,460 זה יכול להיות דבר אחר ביותר, אבל zip הוא נחמד, כי אחד, זה קצר, 880 00:42:54,460 --> 00:42:56,470 שני, זה תמיד באותו אורך, ולכן יש 881 00:42:56,470 --> 00:43:02,270 יעילות אמיתית למה אוליבייה המוצע כאן 882 00:43:02,270 --> 00:43:05,200 עם הפקטורינג את הרוכסן, ו [לא ברור] מציע שאנחנו להיפטר 883 00:43:05,200 --> 00:43:07,110 של העיר ומדינות. 884 00:43:07,110 --> 00:43:11,370 >> אז זהו התהליך המכונה נורמליזציה. 885 00:43:11,370 --> 00:43:14,171 כל שאלות על זה? 886 00:43:14,171 --> 00:43:16,170 ובכן תן לי להצביע זהו סוג של דברים, 887 00:43:16,170 --> 00:43:19,202 למרות שזה די ברמה נמוכה, הדיון הזה, כי היית חושב 888 00:43:19,202 --> 00:43:20,910 אתה סוג של מקבל לאיבוד העשבים, 889 00:43:20,910 --> 00:43:26,690 זו היא ביטוי של שפע הזדמנות למפתחים להיות רע. 890 00:43:26,690 --> 00:43:29,600 ואכן, גם כאשר אנחנו, ב קורסים שלמדנו, כאשר היו לנו, 891 00:43:29,600 --> 00:43:32,290 למשל, לא מנוסה מתכנתים ראשונים 892 00:43:32,290 --> 00:43:35,920 לבנות אתרי אינטרנט, במבט ראשון, האתרים עשויים להיראות נהדרים. 893 00:43:35,920 --> 00:43:38,280 ויש להם את כל פונקציונלי בקשנו, 894 00:43:38,280 --> 00:43:40,650 המפתחים עשו עבודה טובה. 895 00:43:40,650 --> 00:43:43,370 >> אבל הם לא בהכרח יודעים מספיק על עיצוב מסד נתונים 896 00:43:43,370 --> 00:43:46,680 או שהם לא חשבו קשה מספיק על סוגי נתונים 897 00:43:46,680 --> 00:43:49,220 ועל סוגי למשתמשים את האתר היה אמור להיות, 898 00:43:49,220 --> 00:43:53,240 ואנו מוצאים, אז, שישה חודשים מאוחר יותר, אחרי שהם כבר בוגרים או עברו על, 899 00:43:53,240 --> 00:43:56,016 כי לעזאזל, האתר שלנו הוא באמת, איטי באמת. 900 00:43:56,016 --> 00:43:58,890 ואני אפילו לא מדבר על כך מיליונים או אלפי משתמשים. 901 00:43:58,890 --> 00:44:02,580 אני מתכוון כמה מאות משתמשים בקמפוס, כולם רוצים, למשל, 902 00:44:02,580 --> 00:44:04,870 לקנות קורסים במקביל, הם 903 00:44:04,870 --> 00:44:07,010 באמצעות הקטלוג כי כמובן יישום שציינתי 904 00:44:07,010 --> 00:44:10,410 והדבר הוא מקבל באמת להאט כי לא היו אינדקסים. 905 00:44:10,410 --> 00:44:13,740 לא היו כוכבים אדומים, אם אפשר לדבר, או היו לנו לא בהכרח 906 00:44:13,740 --> 00:44:17,690 בחשבון את נתונים משותפים לקבל קצת חיסכון של החלל. 907 00:44:17,690 --> 00:44:21,880 >> וכך כאשר לדאוג לבדיקת מפתח או אדם מסד נתונים או משהו דומה, 908 00:44:21,880 --> 00:44:25,864 את סוגי השאלות לחשוב דרך הוא אפילו, בעת בדיקה, הקוד של מישהו 909 00:44:25,864 --> 00:44:28,530 לומר, לא בהכרח נראה דרך כל הקוד שלהם, אבל להגיד, 910 00:44:28,530 --> 00:44:30,154 בואו נסתכל דרך טבלאות מסד הנתונים. 911 00:44:30,154 --> 00:44:31,150 מה אתה מאחסן? 912 00:44:31,150 --> 00:44:33,941 ואז לומר, טוב, חכה רגע, למה אתה משתמש מספר שלם? 913 00:44:33,941 --> 00:44:36,224 מה אם יש לנו 4 מיליארד ו 1 של שורות אלה? 914 00:44:36,224 --> 00:44:38,140 וגם כאלה שאלות הן הזדמנות 915 00:44:38,140 --> 00:44:40,170 להדוף סוג של ו לקבל תחושה של, שם 916 00:44:40,170 --> 00:44:42,300 אם אתה לא בנוח לעשות זה, מישהו שיש יותר טכני 917 00:44:42,300 --> 00:44:45,425 לשאול את השאלות האלה, אם יש או אין האדם באמת יודע את החומר שלהם. 918 00:44:45,425 --> 00:44:47,890 וזהו סוג של הדבר הזה גם, כי אנשים 919 00:44:47,890 --> 00:44:50,540 באינטרנט אשר הם אוטודידקט, אולי 920 00:44:50,540 --> 00:44:53,920 ללמוד בתדירות נמוכה יותר, כי אתה לא בהכרח נתקל בו 921 00:44:53,920 --> 00:44:56,630 כמו הרבה, כי אתה יכול לקבל למעלה וריצת מסד נתונים, 922 00:44:56,630 --> 00:44:58,880 אבל אם קראת על הדרכות או היה 923 00:44:58,880 --> 00:45:01,880 ספר על נרמול בסיס נתונים ויצירת אינדקס וביצועים, 924 00:45:01,880 --> 00:45:04,255 אלה הם מיני דברים כי הם הולכים לפגוע בך. 925 00:45:04,255 --> 00:45:07,480 ואתה עלול לחשוב, או מהנדס רע אפשר לומר, נו, טוב, כדאי לשלם 926 00:45:07,480 --> 00:45:09,600 עבור מסד נתונים גדול או מסד נתונים מהיר יותר 927 00:45:09,600 --> 00:45:13,360 או סתם לזרוק כסף על זה, סולם אנכי, לא בהכרח כך. 928 00:45:13,360 --> 00:45:16,920 אם אתה רוצה ללכת ב-- ואתה יכול להיכנס לאחר אינדקסים fact-- ולהוסיף, 929 00:45:16,920 --> 00:45:20,320 וזה עלול לקחת כמה שעות עבור מסד נתונים לבנות כי נתונים חדשים 930 00:45:20,320 --> 00:45:24,100 המבנה שאני שהוזכר קודם לכן, אתה עדיין יכול לתקן את זה לאחר המעשה, 931 00:45:24,100 --> 00:45:26,180 כי זה המקום שבו אתה להתחיל להבחין 932 00:45:26,180 --> 00:45:28,830 מעצבים בין טוב לרע מעצבים, לא רק מבחינה אסתטית, 933 00:45:28,830 --> 00:45:32,972 אבל מבחינת ביצועים גם כן. 934 00:45:32,972 --> 00:45:33,555 יש שאלות? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 לא? 937 00:45:37,480 --> 00:45:41,980 אז עבור NoSQL, אשר היה סוג אחר של מסד הנתונים שעליו רמזתי קודם לכן, 938 00:45:41,980 --> 00:45:43,490 אין לך שורות ועמודות. 939 00:45:43,490 --> 00:45:47,000 במקום זאת, יהיה לך משהו זה נראה קצת יותר כמו זה. 940 00:45:47,000 --> 00:45:48,630 אני הולך להשתמש ובתחביר נפוץ. 941 00:45:48,630 --> 00:45:51,270 סוגריים מסולסלים לקרות לשמש לכאן די הרבה. 942 00:45:51,270 --> 00:45:55,400 ייתכן שיהיה משהו כמו השם הראשון הוא דוד, 943 00:45:55,400 --> 00:46:00,180 ייתכן שיהיה אחרון שם הוא מלאן, ציטוטים, 944 00:46:00,180 --> 00:46:07,530 ייתכן שיהיה מזהה הוא-- סלח לי, מזהה whoops-- הוא 1, 945 00:46:07,530 --> 00:46:13,410 הדוא"ל הוא malan@harvard.edu, ואני לא לטרוח להקליד את השאר, ולאחר מכן 946 00:46:13,410 --> 00:46:14,380 כמה דברים אחרים. 947 00:46:14,380 --> 00:46:17,380 >> במילים אחרות, זהו ייצוג טקסטואלי 948 00:46:17,380 --> 00:46:20,720 של מה שאנחנו בדרך כלל ניקרא אובייקט תכנית מחשב. 949 00:46:20,720 --> 00:46:26,079 משתמש באובייקט הוא בדרך כלל רק אוסף של זוגות ערך מפתח. 950 00:46:26,079 --> 00:46:27,370 אז שוב, מוטיב חוזר זה. 951 00:46:27,370 --> 00:46:30,440 ראינו זוגות ערך המפתח ב- HTML, ראינו זוגות ערך מפתח כעת 952 00:46:30,440 --> 00:46:34,020 בהקשר של מסדי נתונים, ואנחנו ראה זוגות ערך מפתח בהקשר 953 00:46:34,020 --> 00:46:35,970 של, אני חושב, שפה מוקדם יותר היום. 954 00:46:35,970 --> 00:46:36,890 השומר מתקרב. 955 00:46:36,890 --> 00:46:39,620 ואכן, זה ממש אילו נתונים מסתכם, 956 00:46:39,620 --> 00:46:44,240 נתונים ו metadata, או ערכים ומפתחות, בהתאמה. 957 00:46:44,240 --> 00:46:47,430 >> אז א-יחסי שאינו מסד נתונים, משהו מבוסס 958 00:46:47,430 --> 00:46:50,680 על אובייקטים, שבו אתה פשוט גוש הכל יחד ולשים אותו 959 00:46:50,680 --> 00:46:55,640 לזיכרון, היה בדרך כלל להיות כמו בתמונה, או חשב, כמו זה. 960 00:46:55,640 --> 00:47:00,500 ואני אשאיר את זה עכשיו כמו סוג של גישה חלופית. 961 00:47:00,500 --> 00:47:03,750 ואחד זה לא בהכרח טוב יותר מהשנייה. 962 00:47:03,750 --> 00:47:07,310 למעשה, מאוד באופנה בימים אלה הם מערכות מסדי נתונים 963 00:47:07,310 --> 00:47:11,942 כמו MongoDB ו Redis וכמה כלים כאלה אחרים, זמינים באופן חופשי, 964 00:47:11,942 --> 00:47:13,400 אבל הם יותר ויותר en אפנה. 965 00:47:13,400 --> 00:47:18,850 בין השאר משום שהם מציעים נוספים תכונות פני גישות הטבלאיות אלה, 966 00:47:18,850 --> 00:47:20,850 אלא גם משום שהם קל קצת להשתמש, 967 00:47:20,850 --> 00:47:24,099 כי אתה לא צריך לחשוב כל כך קשה על הרבה החלטות העיצוב הללו. 968 00:47:24,099 --> 00:47:25,970 אז הפלוסים והמינוסים. 969 00:47:25,970 --> 00:47:29,740 אז מבינים שיש אפשרויות מעבר למה שאנחנו פשוט בילינו זמן על. 970 00:47:29,740 --> 00:47:32,310 >> אז בוא נעשה את זה. 971 00:47:32,310 --> 00:47:37,870 בואו מעבר קצת בחזרה עכשיו כדי תכנות אינטרנט, 972 00:47:37,870 --> 00:47:40,470 כך שאנחנו סוג של להסיק היום עם משהו 973 00:47:40,470 --> 00:47:43,930 זה על הידיים קצת, מילוי בחלק פערים מאתמול. 974 00:47:43,930 --> 00:47:45,340 תן לי ללכת ראשון זה. 975 00:47:45,340 --> 00:47:49,310 אז לזכור כי אתמול היה לנו קצת HTML הקנונית 976 00:47:49,310 --> 00:47:55,110 דפים היו בתחילה, רק HTML, ולאחר מכן באופן משני היה CSS, 977 00:47:55,110 --> 00:47:56,620 גיליונות סגנון מדורג. 978 00:47:56,620 --> 00:47:59,830 זהו תג חדש שאנחנו לא לראות אתמול, או להתעכב על, 979 00:47:59,830 --> 00:48:01,490 מה שנקרא תג סקריפט. 980 00:48:01,490 --> 00:48:05,830 >> מסתבר שאתה באמת יכול להטביע שפה בשם JavaScript האינטרנט שלך 981 00:48:05,830 --> 00:48:08,310 דף ולעשות האינטרנט שלך דפים לעשות משהו. 982 00:48:08,310 --> 00:48:09,710 אז מה אני מתכוון לעשות את זה? 983 00:48:09,710 --> 00:48:12,630 ובכן, תן לי ללכת קדימה ופשוט ללוות את הקוד הזה לרגע. 984 00:48:12,630 --> 00:48:15,860 אני הולך להיכנס Cloud9, אין צורך ללכת לשם בעצמכם עדיין, 985 00:48:15,860 --> 00:48:21,350 ואני הולך להתקשר alert.HTML זה. 986 00:48:21,350 --> 00:48:23,650 אני הולך להדביק בקובץ שלי כאן. 987 00:48:23,650 --> 00:48:32,070 ורק כדי להבהיר מה שעשיתי, תן לי ללכת לכתובת זו וללכת להתריע, 988 00:48:32,070 --> 00:48:33,870 ואתה רואה את Hello World. 989 00:48:33,870 --> 00:48:35,440 >> אבל זה סוג של משעמם. 990 00:48:35,440 --> 00:48:37,410 אני רוצה לעשות משהו שונה קצת. 991 00:48:37,410 --> 00:48:40,610 אז אני הולך בעצם לעשות את זה. 992 00:48:40,610 --> 00:48:43,820 אני הולך להיכנס לפה דואר, ובין לבין תגי הסקריפט שלי, 993 00:48:43,820 --> 00:48:53,460 אומר התראה ( "שלום, עולם"); כך הודעה זה קצת מרושל, אבל יש לי HTML, 994 00:48:53,460 --> 00:48:56,180 בתוך אחד מהם הוא שפה בשם JavaScript, 995 00:48:56,180 --> 00:48:59,420 וזה מה שנקרא קריאה לפונקציה או קריאה לפרוצדורה. 996 00:48:59,420 --> 00:49:04,500 זהו הפועל, פשוטו כמשמעו, במקרה זה, ואני פנייה פונקציונלית קוד 997 00:49:04,500 --> 00:49:06,310 שמישהו כתב אחר. 998 00:49:06,310 --> 00:49:09,630 >> כך פונקציונלי הוא התראה, אז בואו נלך בדף זה 999 00:49:09,630 --> 00:49:14,046 עכשיו ולחץ רענן, ועכשיו אתה לראות קצת אינטראקטיביות מעט. 1000 00:49:14,046 --> 00:49:15,420 זהו סוג של ספר זקן ומכוער. 1001 00:49:15,420 --> 00:49:18,580 זה סוג של מזכיר לך את חלונות קופצים, אולי, של פעם 1002 00:49:18,580 --> 00:49:22,030 אבל זה לא עושה משהו קצת יותר תכנותי. 1003 00:49:22,030 --> 00:49:26,940 >> אז יותר מזה, בוא נעשה משהו יותר מעניין. 1004 00:49:26,940 --> 00:49:30,980 תן לי ללכת לכאן להיפטר זה. 1005 00:49:30,980 --> 00:49:33,840 ואני הולך קדימה ליצור צורה כמו שעשינו אתמול. 1006 00:49:33,840 --> 00:49:34,840 בעצם, אתם יודעים מה? 1007 00:49:34,840 --> 00:49:37,350 אני הולך להיכנס google.html, אשר אנו 1008 00:49:37,350 --> 00:49:43,027 נכתב על אתמול, שנראה כמו זו, דרך אשר חיפשנו חתול 1009 00:49:43,027 --> 00:49:45,360 אבל שם לב שיש סוג של באג בגרסה הנוכחית. 1010 00:49:45,360 --> 00:49:49,770 זה עובד לחתולים, אבל יניח כי אני לא לשתף פעולה ואני להקליד כלום, 1011 00:49:49,770 --> 00:49:53,290 ואני פשוט לוחץ להגיש. 1012 00:49:53,290 --> 00:49:54,540 זה סוג של התנהגות מוזרה. 1013 00:49:54,540 --> 00:49:57,300 לקח אותי Google אמיתי, לא נתן לי הודעת שגיאה. 1014 00:49:57,300 --> 00:50:00,590 הייתי רוצה לספר את המשתמש אתה צריך לתת לנו ערך. 1015 00:50:00,590 --> 00:50:01,780 >> אז איך נוכל לעשות זאת? 1016 00:50:01,780 --> 00:50:06,790 ובכן תן לי לחזור לתוך Cloud9 ו תן לי ללכת אל החלק העליון של הדף שלי 1017 00:50:06,790 --> 00:50:11,980 ולהוסיף תג סקריפט כזה, שבו אני הולך להקליד קוד JavaScript. 1018 00:50:11,980 --> 00:50:15,420 ואני הולך לעשות את הדברים הבאים. 1019 00:50:15,420 --> 00:50:22,910 אם (document.getelementByID-- וזכירה כי דיברנו על זה קודם לכן, 1020 00:50:22,910 --> 00:50:23,960 פונקציה. 1021 00:50:23,960 --> 00:50:25,310 מה מזהה אני רוצה להגיע? 1022 00:50:25,310 --> 00:50:33,050 אני רוצה לקבל q, ואני הולך נניח שווה כלום, כמו זה- 1023 00:50:33,050 --> 00:50:38,220 ממש הרשה לי להשתמש במרכאות כפולות רק consistency-- שווה כלום, 1024 00:50:38,220 --> 00:50:46,650 אז התראה ( "אנא הקלד שאילתה") כאן. 1025 00:50:46,650 --> 00:50:49,200 >> אז יש לי את מה שנראה משהו כמו מצב. 1026 00:50:49,200 --> 00:50:51,410 ראינו הרעיון הכללי הזה Scratch. 1027 00:50:51,410 --> 00:50:54,240 זה כמו אחד מאותם פאזל חתיכות שנראה ככה. 1028 00:50:54,240 --> 00:50:55,780 ומה שאני אומר? 1029 00:50:55,780 --> 00:50:59,520 ובכן, כאן למטה, לב שאני הולך לעשות את הדברים הבאים. 1030 00:50:59,520 --> 00:51:02,790 אני הולך לתת בטופס זה שדה לא רק שם של q, אשר 1031 00:51:02,790 --> 00:51:06,630 זה מה שגורם עבר ל- Google, אבל אני הולך לתת לו מזהה מקומי, 1032 00:51:06,630 --> 00:51:07,630 המכונה גם q. 1033 00:51:07,630 --> 00:51:11,780 אבל אני יכול להתקשר דבר זה אני רוצה, אני פשוט הולך להשאיר את זה פשוט 1034 00:51:11,780 --> 00:51:14,570 וגם לקרוא לזה q, רק לפשטות. 1035 00:51:14,570 --> 00:51:17,650 >> ועכשיו אני הולך לעשות משהו קצת יותר. 1036 00:51:17,650 --> 00:51:22,600 על שדות הטופס כאן, אני הולך להוסיף מה שנקרא מטפל באירועים. 1037 00:51:22,600 --> 00:51:32,260 ביום להגיש, אני רוצה לקרוא פונקציה הנקראת validate. 1038 00:51:32,260 --> 00:51:35,520 זו אינה קיימת עדיין, זה מילה, או לאמת פועל זה, 1039 00:51:35,520 --> 00:51:38,560 משום מה אני הולך לעשות הנה עכשיו הוא להוסיף קוד מסוים. 1040 00:51:38,560 --> 00:51:42,200 >> אני הולך לומר אמת פונקציה. 1041 00:51:42,200 --> 00:51:48,280 אני הולך להגביה זו ולהוסיף עוד סד מתולתל אחת פה ואחת כאן. 1042 00:51:48,280 --> 00:51:50,110 חשבתי מה זה עושה כעת. 1043 00:51:50,110 --> 00:51:54,210 יש לי now-- לחשוב על זה בתור נוצר שלי פיסת הפאזל עצמו כי לא בעבר 1044 00:51:54,210 --> 00:51:57,440 קיים, כבר קראו לי חידה חתיכת פיסת הפאזל לאמת. 1045 00:51:57,440 --> 00:52:01,620 המטרה בחיים שלה היא לבצע ארבע שורות הקוד בתוכו. 1046 00:52:01,620 --> 00:52:04,940 >> אם document.getElementById כך מושגית, 1047 00:52:04,940 --> 00:52:09,380 כי הוא הולך להיכנס האלמנט, אלמנט HTML אשר ייחודי 1048 00:52:09,380 --> 00:52:12,930 הרעיון הוא פשוט q, ולאחר מכן אף המבנה נראה קצת מוזר, 1049 00:52:12,930 --> 00:52:16,430 כי שווה שווה רק אומר שווה. 1050 00:52:16,430 --> 00:52:20,950 אז זה אומר אם האלמנט עם מזהה ייחודי של q, כאשר קיבל, 1051 00:52:20,950 --> 00:52:25,700 אין שום משמעות, זה פשוט שווה ציטוט סוף ציטוט, שום דבר שם, 1052 00:52:25,700 --> 00:52:27,170 אז מה אני רוצה לעשות? 1053 00:52:27,170 --> 00:52:29,360 אני רוצה לצעוק המשתמש. 1054 00:52:29,360 --> 00:52:31,710 >> ואנחנו לא נלך בפירוט רב כאן. 1055 00:52:31,710 --> 00:52:32,960 אני הולך להחזיר שווא. 1056 00:52:32,960 --> 00:52:34,380 כלומר שגיאה. 1057 00:52:34,380 --> 00:52:38,746 אחר, אני הולך להחזיר true. 1058 00:52:38,746 --> 00:52:40,120 אז או זה עבד או לא. 1059 00:52:40,120 --> 00:52:41,800 שקר או אמת. 1060 00:52:41,800 --> 00:52:47,820 ועכשיו אם אני לא לעשות טעויות, תן לי לחסוך זה רענן. 1061 00:52:47,820 --> 00:52:50,940 ותנו לי רק לבדוק פעמיים כי לא, למעשה, לעשות כל שגיאות הקלדה, 1062 00:52:50,940 --> 00:52:52,690 אז אני לא להביך את עצמי. 1063 00:52:52,690 --> 00:52:54,240 בוא נראה אם ​​זה עובד. 1064 00:52:54,240 --> 00:52:56,930 >> אז עכשיו אני הולך להקליד חתולים. 1065 00:52:56,930 --> 00:52:59,421 זה עדיין עובד, או עובד וחצי לפחות. 1066 00:52:59,421 --> 00:53:02,170 עכשיו תן לי לטעון אותו מחדש, ועכשיו תן לי לנסות הגשה מבלי להקליד 1067 00:53:02,170 --> 00:53:05,860 anything-- לעזאזל, זה שבר. 1068 00:53:05,860 --> 00:53:06,430 רגע אחד. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 הרשו לי לפתוח את המסוף, [לא ברור] יומן, לטעון מחדש את הדף. 1071 00:53:12,660 --> 00:53:13,576 תן לי לנסות את זה שוב. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 אה, לעזאזל. 1074 00:53:17,501 --> 00:53:18,000 שכחתי. 1075 00:53:18,000 --> 00:53:18,630 עשיתי טעות דפוס. 1076 00:53:18,630 --> 00:53:20,760 אני זוכר מה זה. 1077 00:53:20,760 --> 00:53:21,350 .ערך. 1078 00:53:21,350 --> 00:53:27,060 התכוונתי לומר אם הערך של האלמנט מזהה אשר q 1079 00:53:27,060 --> 00:53:29,800 שווה את זה, אז לצעוק המשתמש. 1080 00:53:29,800 --> 00:53:31,870 >> אז עכשיו תן לי לעצור את הנשימה שלי שוב. 1081 00:53:31,870 --> 00:53:33,480 מתחילים. 1082 00:53:33,480 --> 00:53:34,130 הנה. 1083 00:53:34,130 --> 00:53:35,010 אנא הקלד שאילתה. 1084 00:53:35,010 --> 00:53:36,840 אז זה לא נותן לי דרך. 1085 00:53:36,840 --> 00:53:40,210 אני יכול להיות סוג של שובבה עם זה, ובמקום בדיקה שום ערך, 1086 00:53:40,210 --> 00:53:46,720 אני יכול לומר משהו כמו, לא עוד חיפוש לחתולים, 1087 00:53:46,720 --> 00:53:51,150 ועכשיו אנחנו יכולים רק יותר בשובבות לתת חיפוש המשתמש לכלבים אם הוא או היא 1088 00:53:51,150 --> 00:53:57,490 רוצה, או אם אני נכנסתי פה לחפש לחתולים, עכשיו אני לא יכול. 1089 00:53:57,490 --> 00:53:58,690 >> אז מה takeaway כאן? 1090 00:53:58,690 --> 00:54:03,010 אז אחד, שמנו מוחדר בעולם של HTML ו- CSS שלנו, 1091 00:54:03,010 --> 00:54:04,320 פונקציונלי תכנות. 1092 00:54:04,320 --> 00:54:06,300 אני ממש יכול עכשיו החלטות בקוד. 1093 00:54:06,300 --> 00:54:10,570 בעבר, כל מה שיכולתי לעשות הוא לסמן תוכן טקסטואלי או תוכן גרפי 1094 00:54:10,570 --> 00:54:13,080 ולספר אותו מה לחפש כמו והיכן להציג. 1095 00:54:13,080 --> 00:54:16,650 עכשיו אני באמת יכול לשאול שאלות של דף האינטרנט 1096 00:54:16,650 --> 00:54:20,010 ולקבל החלטות על על זה, לבקש מהמשתמש 1097 00:54:20,010 --> 00:54:22,780 אם אני צריך לצעוק לו או לה. 1098 00:54:22,780 --> 00:54:28,740 >> אז בואו ננסה משהו בכוחות עצמו עם זה. 1099 00:54:28,740 --> 00:54:33,350 קדימה, תן לי לפתוח את השקופית הבאה כאן, ופשוט לציין דבר אחד. 1100 00:54:33,350 --> 00:54:37,250 בדיוק כמו עם CSS, נוכל לחשב את קוד JavaScript שלנו לקובץ נפרד, 1101 00:54:37,250 --> 00:54:40,660 אתה יכול לעשות את אותו הדבר עם JavaScript כמו עם CSS. 1102 00:54:40,660 --> 00:54:44,520 ואתה משתמש ששימוש מקור מייחסים של תג סקריפט. 1103 00:54:44,520 --> 00:54:46,540 אבל אנחנו לא נסבך דברים לעת עתה. 1104 00:54:46,540 --> 00:54:50,440 במקום זאת, אם אתה יכול ללכת לא בדף זה, 1105 00:54:50,440 --> 00:55:02,690 but-- תן לי לעבור ממקום למקום הזה order-- ללכת, אם זה היה אפשרי, בדף זה כאן. 1106 00:55:02,690 --> 00:55:03,592 URL זה כאן. 1107 00:55:03,592 --> 00:55:04,550 זה בשקופיות של היום. 1108 00:55:04,550 --> 00:55:07,133 ייתכן שיהיה עליך לטעון מחדש כי הוספתי כמה דבר. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> אבל ללכת לשם שבו חידות כמה מחכים. 1111 00:55:13,890 --> 00:55:16,670 וזה ייתן לנו הזדמנות, בהקשר כיף יותר מעט, 1112 00:55:16,670 --> 00:55:20,610 להשתכשך עם כמה JavaScript. 1113 00:55:20,610 --> 00:55:25,505 וכאשר אתה מגיע לשם, אני אסביר מה מחכה. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 קבל ירוק. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 גדר כחולה. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 סטים ירוקים, קובע אדום. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 אופס. 1122 00:56:20,220 --> 00:56:22,330 מצטער. 1123 00:56:22,330 --> 00:56:27,630 >> זהו ההיקף שלנו תיעוד עבור האתגר הזה. 1124 00:56:27,630 --> 00:56:29,920 וזה יעבוד כדלקמן. 1125 00:56:29,920 --> 00:56:33,340 אז מה יש לך על זה דף חבורה שלמה 1126 00:56:33,340 --> 00:56:38,024 פאזלים תמונה על ידי חבר באוניברסיטת סטנפורד. 1127 00:56:38,024 --> 00:56:41,190 אז מה שאתם רואים כאן הוא כמעט סוג של אחד מאותם חידות עין קסם, 1128 00:56:41,190 --> 00:56:43,815 אבל אם אתה רק בוהה בה, שום דבר לא הולך יצוץ מולך. 1129 00:56:43,815 --> 00:56:46,000 במקום זאת, משהו לא מוסתרים בתמונה זו. 1130 00:56:46,000 --> 00:56:47,790 וזה מוסתר בדרך הבאה. 1131 00:56:47,790 --> 00:56:51,740 תמונות, כפי שאתה ודאי יודע, יכול להיות מורכב רק של שלושה צבעים. 1132 00:56:51,740 --> 00:56:53,346 כמה אדום, כמה כחול, וכמה ירוקים. 1133 00:56:53,346 --> 00:56:55,220 ואנחנו יכולים לעשות את כל צבעי הקשת 1134 00:56:55,220 --> 00:56:57,570 על ידי ערבוב צבעים שלושה אלה איכשהו. 1135 00:56:57,570 --> 00:57:01,940 >> אז זה נראה בעיקר ירוק כחול, אבל כמו ניק אומר כאן, 1136 00:57:01,940 --> 00:57:04,060 תמונת הפאזל ברזל זהו פאזל. 1137 00:57:04,060 --> 00:57:06,780 הוא מכיל תמונה של משהו מפורסם, לעומת זאת, 1138 00:57:06,780 --> 00:57:08,310 התמונה עוותה. 1139 00:57:08,310 --> 00:57:11,500 מטרת המפורסם נמצאת את הספרות באדומה. 1140 00:57:11,500 --> 00:57:13,810 עם זאת, את ספרות באדומה יש כל חולק ב -10. 1141 00:57:13,810 --> 00:57:16,230 אז הם קטנים מדי בפקטור של 10. 1142 00:57:16,230 --> 00:57:18,280 אז במילים אחרות, ניק לקח תמונה מקורית, 1143 00:57:18,280 --> 00:57:21,500 והוא desaturated כל של אדום ממנו, 1144 00:57:21,500 --> 00:57:23,850 צמצום הכמות אדום דיו, אם תרצה, בו. 1145 00:57:23,850 --> 00:57:26,060 >> הערכים הכחולים וירוקים כולם נראים בדיוק חסר משמעות, 1146 00:57:26,060 --> 00:57:30,000 ערכים אקראיים, aka רעש תוכנן כדי לטשטש את התמונה האמיתית. 1147 00:57:30,000 --> 00:57:32,250 אז מה ניק עשה היה הוא מיתן את האדום ולאחר מכן 1148 00:57:32,250 --> 00:57:34,380 הוא פשוט זרק אקראי כמויות של כחול וירוק 1149 00:57:34,380 --> 00:57:37,590 על התמונה לסוג של מעורפל מה בעצם עדיין שם. 1150 00:57:37,590 --> 00:57:41,089 עליך לבטל עיוותים אלה כדי להציג את התמונה. 1151 00:57:41,089 --> 00:57:44,255 ראשית, להגדיר את כל הערכים הכחולים וירוקים לאפס להוציא אותם מן הדרך, 1152 00:57:44,255 --> 00:57:48,700 ולהסתכל על התוצאה. לאחר מכן להכפיל כל ערך אדום ב -10, 1153 00:57:48,700 --> 00:57:51,720 דרוג בחזרה עד כ הערך הסופי שלה. 1154 00:57:51,720 --> 00:57:53,035 מהו האובייקט המפורסם? 1155 00:57:53,035 --> 00:57:57,920 >> אז כל יש לך מלבן זה בדפדפן שלך עכשיו. 1156 00:57:57,920 --> 00:58:00,830 ושימו לב שיש כמה קוד פתיחה, אם אפשר לומר כך. 1157 00:58:00,830 --> 00:58:04,370 זהו קוד JavaScript ניק כתב בשבילך. 1158 00:58:04,370 --> 00:58:07,250 ושימו לב שיש קו באמצע כי 1159 00:58:07,250 --> 00:58:10,380 מתחיל עם קו נטוי נטוי, זה מה שנקרא בדרך כלל תגובה. 1160 00:58:10,380 --> 00:58:14,660 זה אומר שזה מונח המתכנת יש כי אין משמעות תפקודית. 1161 00:58:14,660 --> 00:58:16,520 זה רק סימן חזותי האדם. 1162 00:58:16,520 --> 00:58:18,670 >> אז אתה יכול להמשיך למחוק רק את השורה הזאת, 1163 00:58:18,670 --> 00:58:22,214 ולהיות סופר נזהר שלא למחוק או לשנות כל דבר אחר. 1164 00:58:22,214 --> 00:58:25,130 ותנו לי רק לך ללכת דרך מה הקוד הזה עושה ואני אשאיר את זה 1165 00:58:25,130 --> 00:58:28,580 בך כדי להבין את תמונת הסוד. 1166 00:58:28,580 --> 00:58:32,226 השורה הראשונה זה כאן כי יש לי רק מודגשת נותנת לך את הדברים הבאים. 1167 00:58:32,226 --> 00:58:34,100 בצד שמאל, יש לך מה שנקרא 1168 00:58:34,100 --> 00:58:39,140 משתנה שניק באופן שרירותי, אבל סביר שנקרא im עבור התמונה. 1169 00:58:39,140 --> 00:58:41,660 בצד הימני זה סימן שוויון, 1170 00:58:41,660 --> 00:58:45,240 הוא אומר לתת לי חדש ציטוט, סוף ציטוט "תמונה פשוטה". 1171 00:58:45,240 --> 00:58:49,680 >> תמונה פשוטה, בהקשר זה הוא מה שנקרא בכיתה, גם, 1172 00:58:49,680 --> 00:58:53,910 זה כמו סוג של class-- טכני prototype-- אבל באמת, 1173 00:58:53,910 --> 00:58:58,000 זה נותן לי אובייקט חדש, שתוכנם הם הקובץ, 1174 00:58:58,000 --> 00:58:59,610 ברזל-puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 במילים אחרות, ניק יצר התפיסה הזאת של תמונה פשוטה 1176 00:59:03,190 --> 00:59:05,920 כך שנוכל עבור פדגוגית מטרות, לשחק עם התמונה 1177 00:59:05,920 --> 00:59:09,790 ולשנות אדום שלה, ערכי ירוק וכחול. 1178 00:59:09,790 --> 00:59:11,750 >> ואיך אנחנו עושים את זה? 1179 00:59:11,750 --> 00:59:15,360 תחביר נסתר מעט זה כאן סוג של הוא כמו הגוש חוזר 1180 00:59:15,360 --> 00:59:19,140 שחלק שראה Scratch קודם לכן היום, שבו אתה יכול לחזור על 10 פעמים. 1181 00:59:19,140 --> 00:59:22,220 במקרה זה, ניק לא hardcoded מספר כמו 10. 1182 00:59:22,220 --> 00:59:28,020 במקום זאת הוא אומר, לאתחל משתנה בשם x 0, 1183 00:59:28,020 --> 00:59:33,180 לבדוק אם x קטן מ הרוחב של התמונה. 1184 00:59:33,180 --> 00:59:38,160 >> וכך להיות נכונה יותר, התמונה היא משתנים, נקודת פירושו ללכת בתוכו 1185 00:59:38,160 --> 00:59:40,900 ולקבל את עובייה, ו אז פתחו סוגריים, סגר 1186 00:59:40,900 --> 00:59:43,687 סוגריים הם רק הדרך של מתכנת לומר זה הוא פונקציה. 1187 00:59:43,687 --> 00:59:44,520 זהו הליך. 1188 00:59:44,520 --> 00:59:46,430 זוהי פונקציונלית שמישהו אחר כתב. 1189 00:59:46,430 --> 00:59:48,570 השתמש בו ולתת לי בחזרה תשובה. 1190 00:59:48,570 --> 00:59:53,610 ואז x ++ היא דרך מפוארת של אומר, אחרי שעשית את זה פעם אחת, 1191 00:59:53,610 --> 00:59:55,850 להגדיל x ב -1. 1192 00:59:55,850 --> 00:59:58,760 במילים אחרות, זה היא הדרך של מתכנת 1193 00:59:58,760 --> 01:00:05,760 של גרימת לולאה זה הולך לחזר על 1194 01:00:05,760 --> 01:00:10,410 כל העמודות בתמונה. 1195 01:00:10,410 --> 01:00:14,790 >> תמונה היא רק רשת של נקודות, שורות ועמודות של נקודות. 1196 01:00:14,790 --> 01:00:18,270 זוהי דרך של ולביקורות על כל העמודים האלה. 1197 01:00:18,270 --> 01:00:20,770 וגם מבפנים, בינתיים, אנחנו iterating 1198 01:00:20,770 --> 01:00:24,030 על הגבהים, כאן וכאן וכאן. 1199 01:00:24,030 --> 01:00:29,442 אז זה רק דרך לשוטט, כמעט כמו מכונת כתיבת ספר ישנה, 1200 01:00:29,442 --> 01:00:32,230 רק כדי לעבור על התמונה כולה באופן איטרטיבי. 1201 01:00:32,230 --> 01:00:36,370 גם זה לא לגמרי מלא ברור, פשוט לקחת על אמונה לעת עתה, 1202 01:00:36,370 --> 01:00:38,880 כי שלוש שורות אלה קוד יחד הם 1203 01:00:38,880 --> 01:00:43,090 הולך כדי לאפשר לך להיראות איטרטיבי בכל פיקסל, כל נקודה בתמונה. 1204 01:00:43,090 --> 01:00:43,790 >> מה זה פיקסל? 1205 01:00:43,790 --> 01:00:46,250 ובכן, כדי להיות ברור, אם נסתכל בבית המקורי גדלה, 1206 01:00:46,250 --> 01:00:49,060 אם אתה באמת לשים את העיניים למסך המחשב, זה 1207 01:00:49,060 --> 01:00:53,510 רק חבורה שלמה של נקודות, מספר אלף נקודות ארוזות יחד שם. 1208 01:00:53,510 --> 01:00:56,180 אז מה אתה עומד לעשות? 1209 01:00:56,180 --> 01:00:59,240 כל אחד הנקודות האלה, הגדרה סופית, 1210 01:00:59,240 --> 01:01:06,350 היא התוצאה של מה בדרך כלל RGB שנקרא, אדום, ירוק, כחול, אשר 1211 01:01:06,350 --> 01:01:09,940 שוב, ניתן לשלב לתת לך כל מספר של צבעים. 1212 01:01:09,940 --> 01:01:13,200 >> למעשה, אם אתה זוכר מן הרבים, לפני שנים רבות, 1213 01:01:13,200 --> 01:01:17,320 מסכי מקרן כמו הדברים האלה פעם הייתה לי לא עדשה אחת אלא שלוש. 1214 01:01:17,320 --> 01:01:20,700 אחד מהם לירוק אור אדום, אחד אותם לירוק אור ירוק, אחד מהם 1215 01:01:20,700 --> 01:01:21,600 לירוק אור כחול. 1216 01:01:21,600 --> 01:01:24,391 ואם היית בבית ספר תיכון כאילו הייתי שם הם היו מעולם 1217 01:01:24,391 --> 01:01:27,000 כראוי מיושר, היית תמיד צפייה בסרטי ההיסטוריה 1218 01:01:27,000 --> 01:01:29,770 שהיו מעוותים מעט, כי שלושת הצבעים היו לא 1219 01:01:29,770 --> 01:01:30,970 שילוב כראוי. 1220 01:01:30,970 --> 01:01:36,330 >> אבל מתברר שכל אחד אלה ערכים אדומים, ירוק וכחול, 1221 01:01:36,330 --> 01:01:37,980 יכולים להיות מספר הקשורים בהם. 1222 01:01:37,980 --> 01:01:42,500 לדוגמה, 0 אדום פירושו לא אדום, 0 עבור ירוק אומר שאין ירוק, 1223 01:01:42,500 --> 01:01:45,120 ו -0 עבור כחול אומר שאין כחול. 1224 01:01:45,120 --> 01:01:49,403 אז אם אין לך אדום, לא ירוק, ולא כחול, איזה צבע יש לך? 1225 01:01:49,403 --> 01:01:51,009 >> קהל: [לא ברור] 1226 01:01:51,009 --> 01:01:52,800 DAVID מלאן: אתה עושה כך מקווים, שהוא לבן. 1227 01:01:52,800 --> 01:01:55,333 למרבה הצער, זה operates-- מצטער? 1228 01:01:55,333 --> 01:01:56,380 >> קהל: [לא ברור] 1229 01:01:56,380 --> 01:01:58,630 DAVID מלאן: אז אתה בעצם יש שחור, במקרה הזה. 1230 01:01:58,630 --> 01:02:01,530 אז אם יש לך אף אחד מאלה צבעים מופעלים, אתה צריך שחור. 1231 01:02:01,530 --> 01:02:06,510 עם זאת, אם יש לך, נניח הרבה מהם, כמו הרבה אדום, 255 של זה, 1232 01:02:06,510 --> 01:02:10,340 הרבה ירוק, והרבה של כחול, כי הוא לבן. 1233 01:02:10,340 --> 01:02:12,230 אז אלה הם שני הקצוות. 1234 01:02:12,230 --> 01:02:17,460 אז על פי ההיגיון הזה, אם יש לי הרבה של אדום ולא ירוק ולא כחול, 1235 01:02:17,460 --> 01:02:18,485 איזה צבע זה? 1236 01:02:18,485 --> 01:02:19,360 קהל: [לא ברור] 1237 01:02:19,360 --> 01:02:20,610 DAVID מלאן: צדקה, כמובן. 1238 01:02:20,610 --> 01:02:25,940 ואז לא אדום, הרבה ירוק, לא כחול, ולאחר מכן 1239 01:02:25,940 --> 01:02:29,590 אם אתה לכם-- טוב, אנחנו רק נגמור זה, רק בגלל, אבל זה, כמובן, 1240 01:02:29,590 --> 01:02:31,350 עכשיו, הוא כחול. 1241 01:02:31,350 --> 01:02:33,030 ועכשיו אתה יכול לשלב צבעים אלה. 1242 01:02:33,030 --> 01:02:36,430 עכשיו במאמר מוסגר, אם מישהו מכם יש אי פעם לעשות איזה עיצוב אתר בפועל, 1243 01:02:36,430 --> 01:02:38,360 אתה באמת עשוי לראות סימנים כאלה. 1244 01:02:38,360 --> 01:02:42,030 FFF-- ולמעשה, זה כנראה אפילו לא זה. 1245 01:02:42,030 --> 01:02:44,380 זה FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> מישהו ראה אי פעם F של ו- E של ו- A through-- כך מתברר, 1247 01:02:48,970 --> 01:02:52,970 דיברנו אתמול על עשרוני, והיום, סוג של כ עשרונית. 1248 01:02:52,970 --> 01:02:54,570 היום דיברנו על בינארי. 1249 01:02:54,570 --> 01:02:59,010 מסתבר, הקסדצימלי הוא מאוד מערכת בסיס משותף להשתמש במחשוב. 1250 01:02:59,010 --> 01:03:04,960 בינארי יהיה שני דירקטורים, עשרוני הוא 10, הקסדצימלי הוא 16. 1251 01:03:04,960 --> 01:03:08,640 ומתברר, איך לעשות אתה סופר הקסדצימלי? 1252 01:03:08,640 --> 01:03:11,620 אפס, אחת, שתיים, שלוש, ארבע, חמש, שש, שבע, שמונה, 1253 01:03:11,620 --> 01:03:14,730 תשע, מה אתם משתמשים אחרי תשע? 1254 01:03:14,730 --> 01:03:16,600 מהו המספר הבא? 1255 01:03:16,600 --> 01:03:19,180 כבר השתמשנו אפס. 1256 01:03:19,180 --> 01:03:20,570 אני צריך 16 של אלה. 1257 01:03:20,570 --> 01:03:25,770 אפס, אחת, שתיים, שלוש, ארבע, חמש, שש, שבע, שמונה, תשע, 1258 01:03:25,770 --> 01:03:27,520 אתה צריך קצת מוסכמה שרירותית. 1259 01:03:27,520 --> 01:03:30,810 >> ומה האנושות החליט קצת זמן לפני שאחרי תשע מגיע המכתב 1260 01:03:30,810 --> 01:03:34,450 A, ולאחר מכן .C ואז B אז הדרך בה אתה לספור הקסדצימלי 1261 01:03:34,450 --> 01:03:37,040 הוא אפס, אחת, שתיים, שלוש, ארבע, חמש, שש, שבע, שמונה, תשע, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, וכי תספור איתך לאורך כל הדרך, מסתבר, עד 15. 1263 01:03:42,880 --> 01:03:47,850 אז אפס עד 15 הוא אפס דרך פ עכשיו למה זה משמעותי? 1264 01:03:47,850 --> 01:03:51,570 ובכן, כאשר יש לך שני F של, וככה אתם מביעים 255. 1265 01:03:51,570 --> 01:03:54,350 >> אז אם לקצר את הסיפור, ב העולם של פוטושופ, 1266 01:03:54,350 --> 01:03:57,299 כי תוכנת עיצוב גרפי, בעולם של התפתחות האינטרנט, 1267 01:03:57,299 --> 01:03:59,590 שבו אתה צריך המון צבעים, כמובן, לשחק עם, 1268 01:03:59,590 --> 01:04:02,350 לעתים קרובות מתכנתים יהיה לבטא אלה הקסדצימלי, 1269 01:04:02,350 --> 01:04:05,260 רק משום שהוא נוטה להיות קצת יותר פשוט. 1270 01:04:05,260 --> 01:04:07,850 למרות שבמבט ראשון זה הרבה יותר מורכב. 1271 01:04:07,850 --> 01:04:11,590 >> אז בכל מקרה, זה חשוב כי ניק בסטנפורד 1272 01:04:11,590 --> 01:04:15,100 נתן לנו שש חתיכות של פונקציונליות כי אתה, מתכנתי הניצנים, 1273 01:04:15,100 --> 01:04:17,060 עכשיו יהיה לך את היכולת להשתמש. 1274 01:04:17,060 --> 01:04:19,960 נבנה לתוך הרשת הזאת דף שש פונקציות, 1275 01:04:19,960 --> 01:04:21,820 שישה נהלים שניק כתב. 1276 01:04:21,820 --> 01:04:26,800 שלושה מהם יקבלו מספר, אדום, ירוק, או ערך כחול. 1277 01:04:26,800 --> 01:04:28,787 שלושה מהם יהיה להגדיר ערך זה. 1278 01:04:28,787 --> 01:04:30,620 וקו תחתי אלה הם רק מצייני מיקום, 1279 01:04:30,620 --> 01:04:32,600 אז אתה צריך לדעת מהן הדרישות. 1280 01:04:32,600 --> 01:04:36,240 >> אז עם שלוש פונקציות אלה, הראשון של הדברים האלה 1281 01:04:36,240 --> 01:04:39,190 הולך להיות x-לתאם, והשני של הדברים האלה 1282 01:04:39,190 --> 01:04:40,700 הולך להיות y לתאם. 1283 01:04:40,700 --> 01:04:44,650 במילים אחרות, אשר dot, אשר פיקסל אתה רוצה לקבל את הירוק של, 1284 01:04:44,650 --> 01:04:46,480 לקבל את הכחול של, לקבל את האדום של. 1285 01:04:46,480 --> 01:04:51,440 ואז כאן, זה הולך להיות x, זה הולך להיות ערך y, 1286 01:04:51,440 --> 01:04:55,379 וזה הולך להיות מספר. 1287 01:04:55,379 --> 01:04:57,170 אז בואו לעשות את הראשון קו זה ביחד 1288 01:04:57,170 --> 01:05:00,220 ואז אני אשאיר את זה לך כדי לנסות להסיק את השאר. 1289 01:05:00,220 --> 01:05:03,100 אז בהתאם להוראות בדף זה, אנחנו צריכים 1290 01:05:03,100 --> 01:05:08,960 כדי להגדיל את אדום בפקטור של 10, ואנחנו צריכים להסיר את ירוק 1291 01:05:08,960 --> 01:05:09,930 ולהסיר את הכחול. 1292 01:05:09,930 --> 01:05:12,410 בואו נתחיל עם התרחישים האחרונים. 1293 01:05:12,410 --> 01:05:17,760 אז אם אני רוצה, ואני הולך להגביה באמצעות כמה חללים, 1294 01:05:17,760 --> 01:05:22,291 אם אני רוצה להגדיר את אדום, הירוק, או הערך הכחול, 1295 01:05:22,291 --> 01:05:23,540 אני הולך לעשות את הדברים הבאים. 1296 01:05:23,540 --> 01:05:31,280 >> תמונה, im.setBlue, ולאחר מכן בהתבסס על ההוראות שלי כאן, 1297 01:05:31,280 --> 01:05:36,700 מה שלושה דברים שאני צריך הקלד בתוך סוגריים עכשיו? 1298 01:05:36,700 --> 01:05:41,960 אני צריך את ערך x, ערך ה- y, ומה מספר 1299 01:05:41,960 --> 01:05:48,770 אני צריך לשים כאן אם אני רוצה להיפטר ביום בהיר, מבוסס על הסיפור הזה כאן? 1300 01:05:48,770 --> 01:05:49,630 רק אפס. 1301 01:05:49,630 --> 01:05:52,420 אם אני לא רוצה שום כחול, אני פשוט הולך לשנות את זה לאפס. 1302 01:05:52,420 --> 01:05:54,465 >> עכשיו בואו פשוט לסכם את מה זה עושה. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 יש לי כאן על גבי אלה שורות שניות ושלישיות, 1305 01:06:01,170 --> 01:06:04,080 טענתי שתי לולאות, לולאות מקוננות, אם אתה 1306 01:06:04,080 --> 01:06:08,360 יהיה, כי הם הולכים להיות השפעה של התקדמות משמאל לימין, 1307 01:06:08,360 --> 01:06:11,590 מלמעלה למטה על כל x ערכים וכל ערכי y. 1308 01:06:11,590 --> 01:06:15,167 כי שוב, תמונה אחת רק רשת של שורות ועמודות. 1309 01:06:15,167 --> 01:06:17,000 אז זה הוא הולך לקבל להיפטר מכל הכחול. 1310 01:06:17,000 --> 01:06:18,627 תן לי לעזוב בקו לידך. 1311 01:06:18,627 --> 01:06:20,043 איך אוכל להיפטר של כל הירוק? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> קהל: [לא ברור] 1314 01:06:25,140 --> 01:06:26,151 >> DAVID מלאן: נחמד. 1315 01:06:26,151 --> 01:06:28,260 >> קהל: [לא ברור] 1316 01:06:28,260 --> 01:06:30,850 >> DAVID מלאן: נחמד. 1317 01:06:30,850 --> 01:06:36,120 ואני הולך כדי להתרחק, ופשוט לקחת לשמור על כך כבר לא עשית שום שגיאות הקלדה. 1318 01:06:36,120 --> 01:06:39,390 ואם אתה מרגיש בנוח עם מה שעשית, 1319 01:06:39,390 --> 01:06:42,936 אתם מוזמנים ללחוץ על הכפתור הפעל / שמור ולראות מה אתה מקבל. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 ושוב, ביצענו רק שלושה שינויים. 1322 01:06:48,690 --> 01:06:52,130 מחקנו כי ראשון להגיב והחליף אותו 1323 01:06:52,130 --> 01:06:53,575 עם שתי שורות אלו של הקוד. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 וזה בסדר אם אתה צריך להכות כפתור ההפעלה / שמור כמה פעמים 1326 01:06:58,450 --> 01:07:01,190 כדי לתקן משהו. 1327 01:07:01,190 --> 01:07:03,610 >> הרשה לי גם להתמקד על שלי קוד כך שתוכל לתמלל. 1328 01:07:03,610 --> 01:07:04,110 טוֹב. 1329 01:07:04,110 --> 01:07:08,720 אז אני רואה אנדרו יש מה נראה כטעות. 1330 01:07:08,720 --> 01:07:11,110 הוא רק צריך שחור גדול מלבן על המסך שלו. 1331 01:07:11,110 --> 01:07:13,120 האם מישהו אחר יש מלבן שחור גדול? 1332 01:07:13,120 --> 01:07:13,390 >> קהל: כן. 1333 01:07:13,390 --> 01:07:14,360 >> DAVID מלאן: מלבן שחור גדול? 1334 01:07:14,360 --> 01:07:16,068 אוקיי, אז בואו נחשוב לגבי משמעות השינוי. 1335 01:07:16,068 --> 01:07:20,560 אמרנו כי אפס, אפס, אפס, כך לא ירוק, לא אדום, לא כחול, 1336 01:07:20,560 --> 01:07:21,980 הוא הולך לתת לך שחור. 1337 01:07:21,980 --> 01:07:24,467 ומתברר כי רוב המחשבים הניידים שלנו 1338 01:07:24,467 --> 01:07:25,800 פשוט אין לי מספיק נאמנות. 1339 01:07:25,800 --> 01:07:27,750 אתה לא יכול לומר בדיוק שם למעשה הוא משהו שם. 1340 01:07:27,750 --> 01:07:30,340 ואם אתה סוג של אולי להישען המסך קדימה ואחורה, 1341 01:07:30,340 --> 01:07:32,850 אולי אתם רואים משהו קטן שם? 1342 01:07:32,850 --> 01:07:34,820 אולי, סוג של, סוג של? 1343 01:07:34,820 --> 01:07:36,640 זה לא שחור בתכלית. 1344 01:07:36,640 --> 01:07:38,050 >> קהל: [לא ברור] 1345 01:07:38,050 --> 01:07:39,510 >> DAVID מלאן: ספוילר! 1346 01:07:39,510 --> 01:07:42,610 יש כמה אדום שם, אבל זוכר מן המפרטים 1347 01:07:42,610 --> 01:07:44,940 הבעיה, ניק מיתן את זה. 1348 01:07:44,940 --> 01:07:47,860 הוא desaturated אותו מעט, אבל לא כל הדרך עד לאפס. 1349 01:07:47,860 --> 01:07:51,670 אז אם אנחנו רוצים להגדיל את הכמות של אדום, הרשו לי להעלות את הטריק הזה. 1350 01:07:51,670 --> 01:07:53,750 הרשו לי להתמקד על המסך שלי. 1351 01:07:53,750 --> 01:07:58,678 ותנו לי באים ואומרים סכום שווה im.getRed (x, y). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> שורת הקוד היא נותנת לי משהו שנקרא משתנה. 1354 01:08:05,790 --> 01:08:09,643 יש לי באופן שרירותי, אבל, ללא ספק, סביר שנקרא המשתנה שלי מה, 1355 01:08:09,643 --> 01:08:10,143 ככל הנראה? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 כמות. 1358 01:08:14,340 --> 01:08:14,980 סכום בדיוק. 1359 01:08:14,980 --> 01:08:16,960 אני יכול כבר קראתי לזה כל מה שאני רוצה, אבל אני 1360 01:08:16,960 --> 01:08:19,490 באמצעות תפקיד אחר זה כי שתיארתי קודם 1361 01:08:19,490 --> 01:08:25,359 כדי לקבל את הכמות אדומה x פסיק y. 1362 01:08:25,359 --> 01:08:27,520 למה עשיתי את זה? 1363 01:08:27,520 --> 01:08:30,004 מה אתה רוצה לעשות כאן? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 אתה צריך add-- 1366 01:08:33,619 --> 01:08:34,493 קהל: [לא ברור] 1367 01:08:34,493 --> 01:08:36,279 DAVID מלאן: כן, אולי הכפל אותו ב 10. 1368 01:08:36,279 --> 01:08:38,862 ואם אתה לא יודע את זה, אני הולך קדימה, לעשות זאת. 1369 01:08:38,862 --> 01:08:42,060 אני הולך קדימה, נניח, אני רוצה בסך של אדום 1370 01:08:42,060 --> 01:08:46,550 אני רוצה להיות מה הוא בבית האדום, פעמים 10, 1371 01:08:46,550 --> 01:08:50,330 והכוכב, הכוכבית על שלך המקלדת היא לעזאזל-- לא להשתמש x. 1372 01:08:50,330 --> 01:08:51,569 השתמש הכוכב. 1373 01:08:51,569 --> 01:08:55,350 ככה אתה להכפיל דברים ברוב שפות התכנות. 1374 01:08:55,350 --> 01:08:59,790 >> אז על פי האינטואיציה של כרים, מאוחסן במשתנה הזה שנקרא הסכום, 1375 01:08:59,790 --> 01:09:03,649 הוא כמה אדום אני רוצה ב xy מיקום. 1376 01:09:03,649 --> 01:09:11,500 איך, עכשיו, לעשות אני עושה את זה פיקסל יש את המספר? 1377 01:09:11,500 --> 01:09:12,859 אתה כבר עשית את זה קודם. 1378 01:09:12,859 --> 01:09:17,666 אתה קובע את הירוק ואת כחול ללא ערך, לאפס. 1379 01:09:17,666 --> 01:09:18,540 קהל: [לא ברור] 1380 01:09:18,540 --> 01:09:20,040 DAVID מלאן: כן, טוב אתה לא רוצה שזה 10. 1381 01:09:20,040 --> 01:09:21,460 אתה כבר עשית את החשבון כאן. 1382 01:09:21,460 --> 01:09:24,779 אז אנחנו מקבלים את הערך של אדום, שהוא מספר נמוך, ככל הנראה. 1383 01:09:24,779 --> 01:09:26,180 אנחנו הכפלנו עד ב -10. 1384 01:09:26,180 --> 01:09:29,139 מה אתה רוצה לעשות עם הסכום משתנה עכשיו? 1385 01:09:29,139 --> 01:09:30,130 >> קהל: [לא ברור] 1386 01:09:30,130 --> 01:09:30,880 >> DAVID מלאן: נחמד. 1387 01:09:30,880 --> 01:09:34,616 אז im.set-- מה? 1388 01:09:34,616 --> 01:09:35,640 >> קהל: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> DAVID מלאן: setRed, ב XY מיקום. 1390 01:09:39,760 --> 01:09:40,260 כֵּן. 1391 01:09:40,260 --> 01:09:41,200 ובדיוק הסכום. 1392 01:09:41,200 --> 01:09:44,257 במילים אחרות, משתנה הוא מציין מיקום זמני 1393 01:09:44,257 --> 01:09:45,840 כי אתה יכול לשים מה שאתה רוצה. 1394 01:09:45,840 --> 01:09:48,680 במקרה אנחנו לשים מספר זה, כרגע. 1395 01:09:48,680 --> 01:09:51,569 השם והכפיל אותו על ידי 10 כדי לעשות את זה גדול יותר. 1396 01:09:51,569 --> 01:09:56,480 ועכשיו אני החלפה משתנה כמו טענה שלישית כי, או קלט 1397 01:09:56,480 --> 01:09:57,810 להגדיר אדום. 1398 01:09:57,810 --> 01:10:00,440 וכך כי ברגע שאתה אסיים את זה, לשים לב 1399 01:10:00,440 --> 01:10:02,330 של נקודות-למחצה ואת בסוגריים. 1400 01:10:02,330 --> 01:10:06,290 >> קדימה, לחץ על לרוץ / לשמור שוב, ואתה 1401 01:10:06,290 --> 01:10:10,690 צריך לראות, קסם, מה היה באמת שם. [? Arwa,?] מה יש? 1402 01:10:10,690 --> 01:10:16,412 מגדל אייפל מנוצה מלאה אדום, לא חושך גמור. 1403 01:10:16,412 --> 01:10:17,870 זה צריך להיות יותר ברור עכשיו, כן? 1404 01:10:17,870 --> 01:10:18,840 בסדר. 1405 01:10:18,840 --> 01:10:20,215 ואנדרו, לא יותר קופסה שחורה? 1406 01:10:20,215 --> 01:10:21,090 קהל: [לא ברור] 1407 01:10:21,090 --> 01:10:22,180 DAVID מלאן: בסדר. 1408 01:10:22,180 --> 01:10:23,610 אז אני אשמור את זה על המסך. 1409 01:10:23,610 --> 01:10:27,010 אם אתה רוצה לשחק עם זה מאוחר יותר, אני אשחזר את זה בשבילך. 1410 01:10:27,010 --> 01:10:29,140 אבל הקוד הזה כאן עשה בדיוק את זה. 1411 01:10:29,140 --> 01:10:31,460 למה אנחנו לא עושים אחד אחר. 1412 01:10:31,460 --> 01:10:33,880 תן לי לגלול למטה מעט. 1413 01:10:33,880 --> 01:10:36,760 >> אז במקרה הזה, המקרן לא ממש עושה את זה צדק. 1414 01:10:36,760 --> 01:10:40,486 אבל על המסכים שלכם, סביר להניח שאתה יש תיבה אדומה ומאוד מאוד שחורה. 1415 01:10:40,486 --> 01:10:42,610 גם זה, הוא חידה כי מראה משהו מפורסם. 1416 01:10:42,610 --> 01:10:44,193 עם זאת, התמונה עוותה. 1417 01:10:44,193 --> 01:10:47,740 התמונה האמיתית, הפעם, היא בערכים הכחולים וירוקים. 1418 01:10:47,740 --> 01:10:51,820 עם זאת, כולם כבר מחולק ב -20 אז הערכים הם קטנים מאוד. 1419 01:10:51,820 --> 01:10:54,660 הערכים האדומים הם רק מספרים אקראיים, רעש. 1420 01:10:54,660 --> 01:10:57,190 בטל העיוותים האלה כדי להציג את התמונה האמיתית. 1421 01:10:57,190 --> 01:10:59,200 >> אז ניק ואז אומר לך מה לעשות. 1422 01:10:59,200 --> 01:11:04,290 הגדר את הערכים האדומים לאפס אז לא לקלקל מה זה. 1423 01:11:04,290 --> 01:11:07,110 ואז להכפיל את הכחול וערכים ירוקים ב -20. 1424 01:11:07,110 --> 01:11:09,820 אז זה כמעט אותה תוכנית כמו קודם, 1425 01:11:09,820 --> 01:11:11,380 אבל אתה היפוך התהליך. 1426 01:11:11,380 --> 01:11:13,780 ואני אשים הקוד שלי לפני על המסך במקרה 1427 01:11:13,780 --> 01:11:16,650 אתה רוצה לשוב ולעיין בו או לשחק עוד את מה שראו עיניו. 1428 01:11:16,650 --> 01:11:18,100 הרשו לי להתמקד על זה. 1429 01:11:18,100 --> 01:11:21,450 אבל לפתור תמונה נחושה פאזל, מספר שתיים. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> קהל: [לא ברור] 1432 01:11:40,580 --> 01:11:44,010 >> DAVID מלאן: בסדר, אז זה אחד אני לא הולך לתת רמזים רבים. 1433 01:11:44,010 --> 01:11:47,220 אז אני would-- הו, בוא לראות, יש לך טעות דפוס כאן. 1434 01:11:47,220 --> 01:11:49,621 אז לזכור, זה כאן בעצם צריך ללכת לשם. 1435 01:11:49,621 --> 01:11:52,870 אז מה הייתי מציע, אם אתה רוצה להתמקד על זה, יש את התשובה. 1436 01:11:52,870 --> 01:11:57,060 אם אתה רוצה לתמלל כי, כי צריך לקבל את העבודה הראשונה. 1437 01:11:57,060 --> 01:11:59,910 ואז אתה יכול להשתמש בזה בתור ההשראה השנייה. 1438 01:11:59,910 --> 01:12:02,230 נֶחְמָד. 1439 01:12:02,230 --> 01:12:02,730 טוֹב. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> ובשביל הסקרן, זו היא דוגמא פשוטה 1442 01:12:08,180 --> 01:12:11,080 של מדע או אמנות קרא steganography, 1443 01:12:11,080 --> 01:12:14,100 אמנות הסתרת המידע בתמונות. 1444 01:12:14,100 --> 01:12:16,890 בדרך כלל, תמונות יכולות להיות מסומן באופן בוטה מאוד 1445 01:12:16,890 --> 01:12:19,500 עם לוגו בתחתית בפינה, אבל ברור לך 1446 01:12:19,500 --> 01:12:22,070 יכול להיות הרבה יותר מתוחכם על זה ולמעשה 1447 01:12:22,070 --> 01:12:25,050 להסתיר תמונות אחרות התמונות איכשהו עם הטכניקה הזו. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> קח עוד 30 שניות, ולאחר מכן יהיה לנו לפחות להודיע ​​מה שאתה צריך לראות. 1450 01:13:05,770 --> 01:13:08,330 ואני אשאיר את השלישי אחד כתרגיל ב- Home, 1451 01:13:08,330 --> 01:13:11,353 אם תרצה יותר של לאתגר בסוף השבוע. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 ואני חושב אנדרו אולי מקבל את זה לראשונה. 1454 01:13:20,390 --> 01:13:22,645 מהי התמונה השנייה, אנדרו? 1455 01:13:22,645 --> 01:13:23,920 >> קהל: פסל החירות. 1456 01:13:23,920 --> 01:13:28,500 >> DAVID מלאן: פסל החירות תהיה התשובה הפעם. 1457 01:13:28,500 --> 01:13:31,140 אז שוב, רק כמה פשוט דוגמאות, שמטרתו 1458 01:13:31,140 --> 01:13:35,040 הוא לתת לך תחושה של איך שמנו מתורגם Scratch תמונתי 1459 01:13:35,040 --> 01:13:40,410 בלוקים כדי מעצבן יותר ויותר קוד מסובך, אבל כל הרעיונות 1460 01:13:40,410 --> 01:13:42,980 עדיין בדיוק אותו הדבר, אם כי עם כניסתה 1461 01:13:42,980 --> 01:13:48,380 עכשיו של המושג משתנה, להיות מסוגל לאחסן משהו זמני. 1462 01:13:48,380 --> 01:13:51,750 >> בוא נעשה הידיים על אחד יותר, רק עכשיו לחבר את הנקודות 1463 01:13:51,750 --> 01:13:53,880 למשהו קצת יותר בעולם האמיתי. 1464 01:13:53,880 --> 01:13:56,610 כשתהיה מוכן, אם אתה יכול ללכת URL זה על המסך. 1465 01:13:56,610 --> 01:14:00,610 זה גם את העותק של מגלשות, developers.google.com/maps~~V. 1466 01:14:00,610 --> 01:14:03,660 בואו באמת לעשות משהו אמיתי, אם אפשר לומר כך, על האינטרנט 1467 01:14:03,660 --> 01:14:07,600 באמצעות API של מפות Google, או ממשק תכנות יישומים, 1468 01:14:07,600 --> 01:14:08,940 באופן הבא. 1469 01:14:08,940 --> 01:14:12,341 >> Google, כמו חברות רבות, מספק הרבה פונקציונליות חינם 1470 01:14:12,341 --> 01:14:14,840 כי אתה יכול להשתמש בו כדי לבנות שלך יישומים מעניינים משלו. 1471 01:14:14,840 --> 01:14:18,890 למעשה, אם השתמשת אי פעם Uber להשיג מונית או מכונית, 1472 01:14:18,890 --> 01:14:21,640 אתה בוודאי יודע כי יש סופר המפה וזה מראה מכוניות על זה. 1473 01:14:21,640 --> 01:14:24,870 כלומר, ככל שאני יכול לספר, ב- Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 הם בעצם משתמשים מפות של גוגל, אבל סופר הוא לא חברה למיפוי, 1475 01:14:28,884 --> 01:14:31,050 ולא היה זה להיות במיוחד בעיה מעניינת 1476 01:14:31,050 --> 01:14:33,510 כדי לפתור על גבי שלהם בעית שירות מכונית. 1477 01:14:33,510 --> 01:14:35,510 וכך הם עומדים, שוב, על הכתפיים 1478 01:14:35,510 --> 01:14:37,520 של אחרים, Google במקרה זה. 1479 01:14:37,520 --> 01:14:42,850 אז הם משתמשים במפות של גוגל אבל משלהם למוסך רכבים ותכונות כגון אחרים. 1480 01:14:42,850 --> 01:14:47,770 >> אז אנחנו הולכים לנצל זה לבצע את הפעולות הבאות. 1481 01:14:47,770 --> 01:14:50,230 ואם אני כבר הלכתי מהר מדי, קוראים לי מעל בעוד רגע. 1482 01:14:50,230 --> 01:14:53,500 שמח לסכם חלק מן החומר התמונה. 1483 01:14:53,500 --> 01:14:56,290 אתה צריך לראות את עצמך בכל דף כזה. 1484 01:14:56,290 --> 01:14:58,230 אז נחמד של גוגל, הם מהטובים 1485 01:14:58,230 --> 01:15:01,364 של מתן לא APIs בלבד, אבל APIs חינם שאתה 1486 01:15:01,364 --> 01:15:02,780 יכול לשחק עם או לשימוש מסחרי. 1487 01:15:02,780 --> 01:15:06,450 הם מתחילים לחייב אותך אם השימוש שלך הוא גבוה, אבל הלכתי קדימה מראש 1488 01:15:06,450 --> 01:15:10,490 ונרשם אלינו לקבלת חשבון חינם כי, יש לקוות, 10 מחשבים 1489 01:15:10,490 --> 01:15:12,480 לא יגרום לפסילה אותנו פתאום. 1490 01:15:12,480 --> 01:15:14,320 אז אני מקווה זה הפגנה תעבוד. 1491 01:15:14,320 --> 01:15:18,840 >> ושימו לב שיש להם APIs עבור אנדרואיד, iOS, אינטרנט, ושירותי אינטרנט, 1492 01:15:18,840 --> 01:15:19,620 מה שזה לא יהיה. 1493 01:15:19,620 --> 01:15:20,700 בואו להתמקד באינטרנט. 1494 01:15:20,700 --> 01:15:26,560 אז ללחוץ על התיבה, אינטרנט ורוד, וכי יוביל אותך, אני מקווה, לדף 1495 01:15:26,560 --> 01:15:27,630 כאן. 1496 01:15:27,630 --> 01:15:29,335 ויש להם חבורה שלמה של ממשקי API. 1497 01:15:29,335 --> 01:15:31,210 וזה יכול להיות קצת מוחץ בהתחלה, 1498 01:15:31,210 --> 01:15:33,000 אבל אני מסיע אותנו דרך מה שאנחנו רוצים. 1499 01:15:33,000 --> 01:15:38,500 >> בצד ימין למעלה הוא מפות Google JavaScript API, ה- API JavaScript. 1500 01:15:38,500 --> 01:15:40,380 אז קדימה, לחץ על זה. 1501 01:15:40,380 --> 01:15:49,360 וזה יוביל אותך עכשיו אל עוקב אחרי דף, הדגמות דוגמת קוד. 1502 01:15:49,360 --> 01:15:51,190 תן לי להתרחק כאן. 1503 01:15:51,190 --> 01:15:56,300 ותן לי להוציא אותנו עם-- לגלול למטה למקום שבו הוא אומר צעדים להתחלה מהירים. 1504 01:15:56,300 --> 01:15:57,970 המסך שלך צריך להיראות כמו שלי. 1505 01:15:57,970 --> 01:16:01,130 >> ויש שני צעדים, לקבל מפתח ולהתחיל לפתח. 1506 01:16:01,130 --> 01:16:04,190 אני כבר עשיתי צעד אחד עבור לנו, מקבל מפתח שנקרא. 1507 01:16:04,190 --> 01:16:05,320 וזה רעיון משותף. 1508 01:16:05,320 --> 01:16:09,210 מפתח API הוא בדרך כלל רק מספר אקראי גדול או מחרוזת 1509 01:16:09,210 --> 01:16:11,130 כי אתה אמור להדביק את הקוד שלך, 1510 01:16:11,130 --> 01:16:15,280 כך שגוגל יודעת מי אתה כאשר אתה משתמש בשירות שלהם, ה- API שלהם. 1511 01:16:15,280 --> 01:16:17,370 זה לא אומר שאנחנו מחויב כל דבר. 1512 01:16:17,370 --> 01:16:21,030 ועכשיו, לחץ, במקום אחד, לחץ להתחיל לפתח. 1513 01:16:21,030 --> 01:16:25,990 אם אתה יכול פשוט לנופף לי אם מעל לא בטוח איפה אנחנו. 1514 01:16:25,990 --> 01:16:28,040 >> ככה שאנחנו נצטרך לגרד את שטח, כאן אבל מה 1515 01:16:28,040 --> 01:16:31,000 חשבתי יהיה משכנע היא לקבל את כל מאיתנו באמת, 1516 01:16:31,000 --> 01:16:34,240 באמצעות Cloud9 בחלון אחד הדרכה זו בחלון אחר, 1517 01:16:34,240 --> 01:16:37,120 מאפשר למעשה לקבל משלנו ולהפעלתו יישום 1518 01:16:37,120 --> 01:16:40,920 המטמיע מנהג Google למפות ב דף האינטרנט שלנו, 1519 01:16:40,920 --> 01:16:43,010 ואז מוסיף תכונות אחד או שתיים. 1520 01:16:43,010 --> 01:16:45,520 אבל אנחנו פשוט לשרוט את פני השטח של מה שאנחנו יכולים לעשות. 1521 01:16:45,520 --> 01:16:47,020 >> אז רק בדיקה בסיסית מהירה. 1522 01:16:47,020 --> 01:16:49,740 האם כולם בדף זה, API מפות JavaScript Google? 1523 01:16:49,740 --> 01:16:50,872 צריך לומר התחלת עבודה. 1524 01:16:50,872 --> 01:16:53,330 אנחנו לא הולכים לעבור העניין בשום צורה ואופן. 1525 01:16:53,330 --> 01:16:58,090 אישור, בלשונית אחרת, אם לא יש את זה פתוח, הולך לתוך Cloud9 1526 01:16:58,090 --> 01:17:03,500 ולקבל את עצמך רק כרטיסייה חדשה, בסופו של דבר. 1527 01:17:03,500 --> 01:17:11,070 אז שוב, c9.io מאתמול, c9.io, ופשוט ליצור קובץ חדש. 1528 01:17:11,070 --> 01:17:13,500 וללכת קדימה שיחה זה מה שאתה רוצה. 1529 01:17:13,500 --> 01:17:16,495 התקשרתי map.html שלי. 1530 01:17:16,495 --> 01:17:17,870 תקרא לזה משהו המסתיים .html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 ואתה צריך להיות בערך איפה אני בתהליך זה 1533 01:17:26,580 --> 01:17:31,470 עם רק תמריץ ממצמץ ריק כרטיסייה בשם משהו כמו map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 או קובץ, קובץ חדש הפעם. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> ועכשיו, על על API JavaScript מפות גוגל, 1538 01:17:48,000 --> 01:17:50,010 שנדלג קריאה דרך כל הטקסט הזה. 1539 01:17:50,010 --> 01:17:53,760 אבל שם לב כי העולם שלום הוא אכן בכל מקום, אתה רואה את זה עכשיו. 1540 01:17:53,760 --> 01:17:58,020 שלום יש בעולם הגדול הזה צבעוני דוגמא חבורה שלמה של HTML. 1541 01:17:58,020 --> 01:18:03,590 אתם מוזמנים להעתיק ולהדביק היחיד HTML, כך מן הסוג doc בראש 1542 01:18:03,590 --> 01:18:08,810 כל הדרך אל תג HTML הקרוב, ללכת קדימה ולהעתיק את כל ש-- שוב, 1543 01:18:08,810 --> 01:18:14,430 זה מתחת לעולם שלום, לדוגמה, בין ולהדביק את זה לתוך כרטיסיית Cloud9 שלך, 1544 01:18:14,430 --> 01:18:17,996 כך שכעת המסך צריך להיראות בערך כמו שלי. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> ואתה יכול לחסוך את זה, אבל לא לטעון אותו עדיין. 1547 01:18:24,520 --> 01:18:26,290 תנו מבט הראשון של ב את הקוד ולראות אם אנחנו 1548 01:18:26,290 --> 01:18:29,110 לא ניתן להסיק או ללמוד ממה זה Google 1549 01:18:29,110 --> 01:18:30,860 צפה לנו להעתיק ולהדביק בצורה עיוורת. 1550 01:18:30,860 --> 01:18:33,334 הם רק רוצים לעזור, פשוטו כמשמעו, לשם התחלה, 1551 01:18:33,334 --> 01:18:35,500 אבל אין כל כך הרבה מורכבות ממש שם. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 כל השאלות עדיין? 1554 01:18:42,210 --> 01:18:43,790 אנחנו בטוחים כדי לפרוץ קדימה? 1555 01:18:43,790 --> 01:18:44,330 בסדר. 1556 01:18:44,330 --> 01:18:46,800 >> כל כך מהר, בואו פשוט לעשות כמה בדיקות שפיות מהירות. 1557 01:18:46,800 --> 01:18:48,800 שורה אחת של מה שאני לראות, ואני מקווה, אתה 1558 01:18:48,800 --> 01:18:51,710 אתה מבין, מה זה אומר, HTML doctype? 1559 01:18:51,710 --> 01:18:52,385 כרים, זוכר? 1560 01:18:52,385 --> 01:18:53,260 קהל: [לא ברור] 1561 01:18:53,260 --> 01:18:53,968 DAVID מלאן: כן. 1562 01:18:53,968 --> 01:18:54,870 הנה בא HTML 5. 1563 01:18:54,870 --> 01:18:57,950 בינתיים, קו שני על מסך כאן פירושו היי דפדפן, 1564 01:18:57,950 --> 01:18:59,482 הנה מגיע HTML בפועל. 1565 01:18:59,482 --> 01:19:01,440 שורה שלוש היא היי דפדפן, הנה מגיע הראש. 1566 01:19:01,440 --> 01:19:04,260 קו ארבע הוא, כמובן, היי דפדפן, הנה מגיע התואר. 1567 01:19:04,260 --> 01:19:07,780 מה קו חמש לעשות? 1568 01:19:07,780 --> 01:19:09,930 למעשה, זה לא באמת לעשות משהו בשבילנו. 1569 01:19:09,930 --> 01:19:13,340 במקרה זה, זה פשוט משנה את הגודל הדף כברירת מחדל. קו שש, 1570 01:19:13,340 --> 01:19:16,140 עדיין לא דיברנו על, אבל זה מציין את קידוד התווים. 1571 01:19:16,140 --> 01:19:19,181 יש דרכים שונות כדי לקודד קבצים, במיוחד עבור שפות זרות. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 רק נוטה להיות ברירת המחדל. 1573 01:19:21,100 --> 01:19:26,580 >> אז עכשיו אנחנו נראה בתור שבע עד 16, כמה CSS. 1574 01:19:26,580 --> 01:19:29,260 ואף על פי שאנחנו לא ראינו את כל הדברים האלה לפני, 1575 01:19:29,260 --> 01:19:30,810 אנחנו יכולים סוג של מסיקה. 1576 01:19:30,810 --> 01:19:37,075 אז בשורת שמונה אמצעים, היי דפדפן, להחיל כל אחד מאלה שאליהם שני תגים, 1577 01:19:37,075 --> 01:19:37,575 ככל הנראה? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 טקסט HTML וגוף. 1580 01:19:41,701 --> 01:19:43,200 אז הפסיק מייצג את הדבר החדש שם. 1581 01:19:43,200 --> 01:19:46,140 וזה רק דרך ציון תגים מרובים בבת אחת. 1582 01:19:46,140 --> 01:19:47,640 >> אז יש לנו את הסוגריים המסולסלים. 1583 01:19:47,640 --> 01:19:51,170 אז כנראה, זה אומר לדפדפן, להפוך את גובה הדף% 100. 1584 01:19:51,170 --> 01:19:54,170 אז גם אם יש מעט מאוד תוכן, להפוך את הדף כולו, 1585 01:19:54,170 --> 01:19:55,530 לעשות את הדבר למלא את הדף. 1586 01:19:55,530 --> 01:19:57,524 הפוך את המפה בסופו של דבר למלא את הדף. 1587 01:19:57,524 --> 01:19:58,690 שוליים, מה זה אומר? 1588 01:19:58,690 --> 01:20:01,559 זה בדרך כלל כמו שרירותי שטח לבן מסביב לקצוות 1589 01:20:01,559 --> 01:20:04,350 שחלק מעצב דפדפן פשוט צריך להיות החליטו שם, כי זה 1590 01:20:04,350 --> 01:20:05,540 סוג של גורם לדברים להיראות נקיים יותר. 1591 01:20:05,540 --> 01:20:06,498 אבל אנחנו לא רוצים את זה. 1592 01:20:06,498 --> 01:20:08,710 אנחנו רוצים את המפה הולכת כל הדרך אל הקצוות. 1593 01:20:08,710 --> 01:20:10,930 ריפוד, דומות ברוחן בשוליים. 1594 01:20:10,930 --> 01:20:14,980 שולים מתכוונים בחוץ, אמצעי ריפוד בפנים, אבל זה אותו סוג של עסקה. 1595 01:20:14,980 --> 01:20:17,520 זה קצת חיץ בינך לבין הקצוות. 1596 01:20:17,520 --> 01:20:21,170 >> ואז קו 13 הוא טוב סיכוי סקירה מהירה. 1597 01:20:21,170 --> 01:20:26,440 מה עושה מפת סימן חדה כלומר, או מפת hashtag מתכוונת? 1598 01:20:26,440 --> 01:20:29,650 מה זה מתייחס, באופן עקרוני? 1599 01:20:29,650 --> 01:20:31,485 >> קהל: [לא ברור] 1600 01:20:31,485 --> 01:20:32,360 DAVID מלאן: בדיוק. 1601 01:20:32,360 --> 01:20:36,900 מאפיין זה, רכוש CSS זה חל רק לדבר אחד, תג HTML 1602 01:20:36,900 --> 01:20:41,180 יש כי מזהה של ציטוט, סוף ציטוט "מפה". 1603 01:20:41,180 --> 01:20:44,460 או קדימה בואו עכשיו, גלילה עד לתחתית של הקובץ, אשר 1604 01:20:44,460 --> 01:20:49,860 רחוק מדי הוא לא, והודעה על קו 19, אם תדביקו את זה בדיוק כמו שאני עשיתי, 1605 01:20:49,860 --> 01:20:53,405 קו 19 יש רק div, שהינה חלוקת הדף, שבו אני אתמול 1606 01:20:53,405 --> 01:20:54,820 נקרא אזור מלבני. 1607 01:20:54,820 --> 01:20:55,820 אין לזה שום בו. 1608 01:20:55,820 --> 01:20:57,550 זהו תג פתוח, תג סגירה. 1609 01:20:57,550 --> 01:20:59,490 אבל בכל זאת יש לו מזהה ייחודי. 1610 01:20:59,490 --> 01:21:02,090 >> אז מה שנראה קורה כאן הוא Google 1611 01:21:02,090 --> 01:21:05,880 מכין בדף האינטרנט שלנו כדי יש לגובה 100% הושלם, 1612 01:21:05,880 --> 01:21:09,680 וללא מרווח, ללא שוליים, כי מה אנחנו הולכים לשים בפנים 1613 01:21:09,680 --> 01:21:13,647 של div הזה, אשר מזהה ייחודי הוא המפה, היא מפה מוטבעת בפועל. 1614 01:21:13,647 --> 01:21:15,480 ואנחנו רוצים את זה כדי למלא בו ולא רק 1615 01:21:15,480 --> 01:21:17,560 להיות חלק מלבן קטן באמצע. 1616 01:21:17,560 --> 01:21:24,220 אז קו 14 מדגיש באופן דומה, המפה עצמה צריכה להיות בגובה של 100%. 1617 01:21:24,220 --> 01:21:29,220 >> אז עכשיו להבחין בין קווי 20 ו -28, זה קוד JavaScript. 1618 01:21:29,220 --> 01:21:33,020 וזה, למרות שזה מבחינה תחבירית קצת מוזר, 1619 01:21:33,020 --> 01:21:34,730 אין כל כך הרבה קורה כאן. 1620 01:21:34,730 --> 01:21:39,310 ב שורה 21, זה מכריז משהו שנקרא משתנה. 1621 01:21:39,310 --> 01:21:42,030 במקום לקרוא את זה מסתכם, כמו שעשינו בעבר, 1622 01:21:42,030 --> 01:21:44,500 אנחנו לייתר דיוק אומרים var, אשר רק אומר משתנה. 1623 01:21:44,500 --> 01:21:46,520 יכולנו להשתמש כי הקוד של ניק, אך הוא לא עשה זאת, אז אני 1624 01:21:46,520 --> 01:21:48,190 לא טורח לעשות את זה גם. 1625 01:21:48,190 --> 01:21:50,240 זה משתנה בשם למפות ולאחר מכן יש 1626 01:21:50,240 --> 01:21:53,360 פונקציה זו כנראה נקרא initMap. 1627 01:21:53,360 --> 01:21:55,780 >> אז זהו כמו המנהג שלנו פיסת הפאזל ב Scratch. 1628 01:21:55,780 --> 01:21:58,830 יצרנו חתיכה פונקציונלי שנקרא initMap, 1629 01:21:58,830 --> 01:22:00,980 ואתה יכול מעין להסיק מה קורה פה. 1630 01:22:00,980 --> 01:22:02,930 בצד שמאל, יש לנו משתנה, 1631 01:22:02,930 --> 01:22:06,000 כך אנחנו הולכים לשים את הדברים הבאים דבר בתוך משתנה, 1632 01:22:06,000 --> 01:22:07,362 מימין לשמאל. 1633 01:22:07,362 --> 01:22:11,940 הצד הימני אומר, היי דפדפן, לתת לי מפת Google חדשה. 1634 01:22:11,940 --> 01:22:16,490 ו google.maps.map היא רק דרך פאנקי של ציון כי הפונקציונליות הזו 1635 01:22:16,490 --> 01:22:19,790 שייך ל- Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> לאחר הסוגריים, ראינו זה לפני, היי דפדפן, לקבל 1637 01:22:23,010 --> 01:22:29,210 לי האלמנטים בדף, תג בדף שאת מזהה ייחודי הוא-- 1638 01:22:29,210 --> 01:22:30,710 >> קהל: [לא ברור] 1639 01:22:30,710 --> 01:22:31,790 >> DAVID מלאן: --map. 1640 01:22:31,790 --> 01:22:35,770 ומה קורה, טוב, הקו הזה ביחד, קו 23, 1641 01:22:35,770 --> 01:22:38,630 אומר בעצם, היי דפדפן, לך לקבל אותי 1642 01:22:38,630 --> 01:22:42,800 כי div ריק בדף אשר היא המפה מזהה ייחודי, 1643 01:22:42,800 --> 01:22:45,600 כי אני רוצה להכניס אל it-- להזריק לתוכו, 1644 01:22:45,600 --> 01:22:49,520 אם אתה will-- חבורה שלמה של תוכן מה שקורה מגיע מהאינטרנט, 1645 01:22:49,520 --> 01:22:50,427 לְאַחַר מִכֵּן. 1646 01:22:50,427 --> 01:22:52,010 וגוגל עושה את כל זה בשבילנו. 1647 01:22:52,010 --> 01:22:55,350 >> אז שוב, ממש בסוף של יום, יש לנו בדוגמה זו של הפשטה. 1648 01:22:55,350 --> 01:22:58,610 אין לי מושג מה היא המפה או כיצד ליישם API המפה. 1649 01:22:58,610 --> 01:22:59,460 אנחנו לא צריכים. 1650 01:22:59,460 --> 01:23:02,740 אנחנו רק צריכים להגיד את המפה איפה לשים את עצמו, ולהשאיר 1651 01:23:02,740 --> 01:23:04,880 אלה יישום שבבסיס פרטים ל- Google. 1652 01:23:04,880 --> 01:23:08,190 עכשיו יש כנראה שתי פיסות מידע 1653 01:23:08,190 --> 01:23:11,940 כי בדוגמא זו היא מתן ל API של גוגל. 1654 01:23:11,940 --> 01:23:16,450 כנראה במרכז המפה, ואת רמת הזום, אם אפשר לומר כך. 1655 01:23:16,450 --> 01:23:21,390 >> והאם מישהו מזהה את אלה קואורדינטות, קווי אורך ורוחב? 1656 01:23:21,390 --> 01:23:24,364 כנראה שלא, אבל אנחנו יכולים לחזור אל ההדרכה, לראות ממש. 1657 01:23:24,364 --> 01:23:25,780 אבל נראינו אותו בעוד רגע. 1658 01:23:25,780 --> 01:23:29,880 רמת זום היא ערך בין, אני לא יודע, אחד ב 13 או משהו כזה. 1659 01:23:29,880 --> 01:23:32,880 זה פשוט קשור עד איזה סכום אתם גדלה או קטן, וזהו. 1660 01:23:32,880 --> 01:23:35,690 ועכשיו ממש בסוף של בו, קו ההודעה 29-- 1661 01:23:35,690 --> 01:23:39,960 זה קצת מכוער כי זה wraps-- שורת הקוד 1662 01:23:39,960 --> 01:23:44,570 מה הוא מוריד אל הדפדפן API בפועל של גוגל. 1663 01:23:44,570 --> 01:23:47,500 כל הקוד של גוגל מהנדסי כתביו מיישמים 1664 01:23:47,500 --> 01:23:50,000 התכונה הזאת של מפות לשבץ. 1665 01:23:50,000 --> 01:23:51,470 >> עכשיו בואו לא משנים כלום. 1666 01:23:51,470 --> 01:23:54,761 אם אתה עוקב יחד, אתם מוזמנים רק לשמור את הקובץ כי, אם אתה אכן יש 1667 01:23:54,761 --> 01:23:55,760 מה שיש לי. 1668 01:23:55,760 --> 01:23:57,370 עבור אל כתובת האתר שלו. 1669 01:23:57,370 --> 01:23:59,820 אתה יכול ללחוץ על כפתור ההפעלה למעלה וזה לא יגיד 1670 01:23:59,820 --> 01:24:03,050 לך את הכתובת של שרת האינטרנט שלך שוב. 1671 01:24:03,050 --> 01:24:06,010 וזה יוביל אותך כרטיסייה חדשה. 1672 01:24:06,010 --> 01:24:11,910 אם תלחץ פתוח map.html, ואת רוב הסיכויים הם שאתה 1673 01:24:11,910 --> 01:24:15,520 הולך לקבל התראה, הודעת שגיאה, כן? 1674 01:24:15,520 --> 01:24:18,570 הודעת שגיאה, הודעת שגיאה? 1675 01:24:18,570 --> 01:24:21,170 >> אז לצערי, את השגיאה המסר הוא לא כל כך מאיר עיניים 1676 01:24:21,170 --> 01:24:23,890 אלא אם כן אתה בעצם לפתוח את מסוף, כי כרטיסייה מיוחדת אנחנו 1677 01:24:23,890 --> 01:24:27,110 היה מפשק אתמול קצת מוקדם יותר היום. 1678 01:24:27,110 --> 01:24:29,445 אבל נתקלתי זה מוקדם יותר, אז אני כבר 1679 01:24:29,445 --> 01:24:30,820 הבנתי מה הוא הפתרון. 1680 01:24:30,820 --> 01:24:34,440 בשקופיות של היום, או ליתר דיוק, ב Cloud9, הודעה 1681 01:24:34,440 --> 01:24:36,430 כי אנחנו לא עושים משהו בכוונה. 1682 01:24:36,430 --> 01:24:40,690 שימו לב כי תג סקריפט זה קו 29, אם אתה קורא את זה, 1683 01:24:40,690 --> 01:24:44,440 זה כמו maps.googleapis.com/ משהו, משהו, משהו, 1684 01:24:44,440 --> 01:24:46,430 אז מישהו שם לב, אחד היזמים, 1685 01:24:46,430 --> 01:24:50,040 כתבתי כל ההון מכתבים, מפתח ה- API. 1686 01:24:50,040 --> 01:24:51,700 >> אנחנו צריכים להדביק משהו שם. 1687 01:24:51,700 --> 01:24:53,450 וזה היה הצעד עשיתי בשבילנו לפני, 1688 01:24:53,450 --> 01:24:57,190 ושוב הם עלולים לאסור לנו אם פתאום, 12 או יותר מאיתנו 1689 01:24:57,190 --> 01:24:59,470 להתחיל להשתמש באותו מפתח, אבל בוא נראה מה קורה. 1690 01:24:59,470 --> 01:25:03,030 אז אם אתה נכנסת היום שקופיות, שקופית אחת מאוחר יותר, יש 1691 01:25:03,030 --> 01:25:07,070 מאוד פאנקי למראה זה מחרוזת של טקסט. 1692 01:25:07,070 --> 01:25:12,230 קדימה, פשוט להעתיק את זה ולהדביק אותו איפה שכתוב מפתח ה- API. 1693 01:25:12,230 --> 01:25:15,120 זהו האחד נרשמתי. 1694 01:25:15,120 --> 01:25:17,700 >> ובהחלט לא מנסה הקלדת אותה באופן ידני, 1695 01:25:17,700 --> 01:25:21,210 כי זה מרגיש טעון עם שגיאות כתיב, באופן פוטנציאלי. 1696 01:25:21,210 --> 01:25:23,260 אז פשוט להעתיק ולהדביק את זה. 1697 01:25:23,260 --> 01:25:26,090 וזה הולך לסדר את השורה עוד, אבל עכשיו, רק שיהיה ברור, 1698 01:25:26,090 --> 01:25:29,540 זה צריך להיראות קצת יותר ככה, איפה המפתח שווה לא 1699 01:25:29,540 --> 01:25:32,200 מהוונת צועקת עליך. 1700 01:25:32,200 --> 01:25:34,810 שמור את הדף שלך, לחזור אל הכרטיסייה האחרת, תטען מחדש 1701 01:25:34,810 --> 01:25:36,770 ומקווה לראות מפה של איפה? 1702 01:25:36,770 --> 01:25:37,790 >> קהל: אוסטרליה. 1703 01:25:37,790 --> 01:25:38,748 >> DAVID מלאן: אוסטרליה. 1704 01:25:38,748 --> 01:25:41,200 אז כנראה אלה הם קואורדינטות GPS של אוסטרליה. 1705 01:25:41,200 --> 01:25:44,491 ותנו לי להסתובב רק לרגע ולעזור לכל מי לא ממש שם, 1706 01:25:44,491 --> 01:25:47,729 אבל הרשו לי להעלות, באמצעות Google, למצוא ה- GPS קואורדינטות של עיר מולדתך 1707 01:25:47,729 --> 01:25:48,770 או מדינת ביתך. 1708 01:25:48,770 --> 01:25:51,436 וכנראה Google יכול להפוך את זה עד, או ויקיפדיה יכול להגיד לך. 1709 01:25:51,436 --> 01:25:54,410 אבל לבחור שני ערכים שונים עבור קווי אורך ורוחב, 1710 01:25:54,410 --> 01:25:57,530 לחזור ולהדביק אותם, ולאחר מכן טען מחדש את הדף לאחר השמירה 1711 01:25:57,530 --> 01:26:00,718 ולראות אם אתה יכול לקבל למפות עבור עיר מולדתך. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> וכאשר תסיים עם כי, את המעקב challenge-- 1714 01:26:08,042 --> 01:26:11,250 ואני אתן בכיוון קצת פחות, בכוונה, כך שאתה בכוונה 1715 01:26:11,250 --> 01:26:13,791 יש להיאבק על זוג דקות עם התיעוד, 1716 01:26:13,791 --> 01:26:18,740 לשנות את המפה כדי להיות לא זה ברירת מחדל כקריקטורה, אבל מפת לווין. 1717 01:26:18,740 --> 01:26:24,600 אז אתה בעצם רואה לווין דימויים במקום צבעים יפים. 1718 01:26:24,600 --> 01:26:29,710 >> והרמז אני אתן לך הוא לשנות את סוג המפה. 1719 01:26:29,710 --> 01:26:33,084 לחזור לאותה מקבלת נכתב בדף כדי לקבל השראה. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 כפי שאולי שמתם ליקט, אם אתה מחפש, 1722 01:26:42,390 --> 01:26:44,250 יש כל כך הרבה יותר דברים שאתה יכול לעשות. 1723 01:26:44,250 --> 01:26:46,380 כמה מכם כבר יש שינה את סוג המפה. 1724 01:26:46,380 --> 01:26:49,890 אבל אתה יכול לבצע-- למשל, תן לי ללכת למשהו שעשינו לקורס 1725 01:26:49,890 --> 01:26:52,050 אני teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 אחד undergrads שלנו עשה את זה. 1727 01:26:53,470 --> 01:26:58,890 לנו מרכז המפה שלנו מעל הרווארד יארד כיסוי כל שמות בניין אלה, 1728 01:26:58,890 --> 01:27:01,070 והיינו לו להוסיף את זה. 1729 01:27:01,070 --> 01:27:04,270 אז אם אני רוצה לחפש, למשל, הול מתיוס, 1730 01:27:04,270 --> 01:27:05,730 יש לנו בתפריט הנפתח מעט. 1731 01:27:05,730 --> 01:27:09,080 ואני חושב שהוא משתמש Bootstrap, את הספרייה שהזכרנו קודם לכן עבור זה. 1732 01:27:09,080 --> 01:27:12,190 ואם אתה לוחץ על מתיוס הול, זה מיד 1733 01:27:12,190 --> 01:27:14,790 קופץ על המפה כדי מסוים מופעי מיקום, וזה 1734 01:27:14,790 --> 01:27:16,440 לך תמונה ב מוקפץ הקטן הזה. 1735 01:27:16,440 --> 01:27:18,670 >> אבל גם זה קצת מוקפץ, לא הוספנו. 1736 01:27:18,670 --> 01:27:27,521 אם אני לגלול למטה על שלנו מקבל נכתב דף ולחפש חלון מידע, 1737 01:27:27,521 --> 01:27:29,770 תראה שחלק פונקציונלי אתה עצמך 1738 01:27:29,770 --> 01:27:31,561 יכול להוסיף, אם כי מורכבות קצת יותר, 1739 01:27:31,561 --> 01:27:33,970 משהו שנקרא חלון מידע. 1740 01:27:33,970 --> 01:27:37,190 ואם אני לוחץ דוגמה כאן, וזה מה שכיף, 1741 01:27:37,190 --> 01:27:40,530 אתה יכול לעשות דברים כאלה, לחיצה על סמן ואז voila, 1742 01:27:40,530 --> 01:27:42,400 מידע צץ. 1743 01:27:42,400 --> 01:27:45,874 >> אז יש לנו לא ממש הצגתי תכונות מספיקות של JavaScript 1744 01:27:45,874 --> 01:27:49,040 כדי לצייר תמונה של איך בדיוק אתה יכול לחווט את כל הדברים האלה יחד, 1745 01:27:49,040 --> 01:27:50,706 אבל אנחנו סוג של שרטנו את פני השטח. 1746 01:27:50,706 --> 01:27:53,140 למעשה, מה בדיוק עשיתי כאשר לחצתי על סמן זה, 1747 01:27:53,140 --> 01:27:55,819 היה מפעילת אירוע, מה שנקרא על האירוע לחץ. 1748 01:27:55,819 --> 01:27:57,610 ואנחנו בעצם רואים אירוע מוקדם יותר היום, 1749 01:27:57,610 --> 01:28:00,670 מה שנקרא להגיש אירוע, כאשר אנו מונעים 1750 01:28:00,670 --> 01:28:02,490 מהמשתמש מחפש חתולים. 1751 01:28:02,490 --> 01:28:06,560 אז אנחנו כבר הרים מעין ו choosed מבין כל תכונות שונות אלה, 1752 01:28:06,560 --> 01:28:08,990 כדי לתת לך תחושה, אני מקווה, של מה שאתה יכול למעשה 1753 01:28:08,990 --> 01:28:11,000 לעשות עם קצת יותר נחמה תכנות, 1754 01:28:11,000 --> 01:28:12,587 ומשאבים לגמרי בחינם. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> יש שאלות? 1757 01:28:18,770 --> 01:28:19,790 לא? 1758 01:28:19,790 --> 01:28:22,542 זוהי ההזדמנות האחרונה שלך, לפחות היום, ביום שישי, 1759 01:28:22,542 --> 01:28:25,000 כדי לקבל משהו מהלב כך שאתה יוצא מכאן 1760 01:28:25,000 --> 01:28:27,067 מרגיש בטוח ונוח. 1761 01:28:27,067 --> 01:28:27,566 כן. 1762 01:28:27,566 --> 01:28:29,740 >> קהל: מדוע לא אתה מוסיף עוד דבר אחד? 1763 01:28:29,740 --> 01:28:32,720 >> DAVID מלאן: אלוהים אדירים. 1764 01:28:32,720 --> 01:28:35,260 אני צריך לנוח בסוף השבוע, אני חושב. 1765 01:28:35,260 --> 01:28:36,180 שאלות נוספות? 1766 01:28:36,180 --> 01:28:37,055 >> קהל: [לא ברור] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> DAVID מלאן: אתה can-- ב Internet Explorer, מנוחתו עדן, 1769 01:28:46,810 --> 01:28:49,310 אתה אמור להיות מסוגל לשים VB תסריט, תסריט בסיסי ווירטואלי, 1770 01:28:49,310 --> 01:28:50,643 אבל באמת אף פעם לא עלה על זה. 1771 01:28:50,643 --> 01:28:52,490 אז התשובה הקצרה היא פשוט JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 שאלות נוספות? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 בסדר, טוב, הרשו לי לעשות זאת. 1776 01:28:59,760 --> 01:29:02,070 תן לי לתפוס עמיתינו בחוץ. 1777 01:29:02,070 --> 01:29:04,500 יש להם כמה הערכה צורות שהם רוצים שכולם 1778 01:29:04,500 --> 01:29:06,310 לבלות מילוי כמה דקות. 1779 01:29:06,310 --> 01:29:08,775 הם רוצים לאסוף בצורה וכל ויתורים כי ייתכן שיהיה בחוץ. 1780 01:29:08,775 --> 01:29:10,240 הוא יוכל גם תעודות. 1781 01:29:10,240 --> 01:29:12,380 אני מנחש שיש עדיין כמה חטיפים בחוץ. 1782 01:29:12,380 --> 01:29:14,360 תן לי להתעלף אלה, ואם אתה יש שאלות בינתיים, 1783 01:29:14,360 --> 01:29:17,120 אני אסתובב יותר בנפרד ואנחנו יכולים להתחיל. 1784 01:29:17,120 --> 01:29:17,879 כן כמובן. 1785 01:29:17,879 --> 01:29:18,754 קהל: [לא ברור] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 DAVID מלאן: זה בדרך כלל נכון בימים אלה. 1788 01:29:28,570 --> 01:29:30,730 אין ספק עם אינטרנט תוכנה, אתה נשען 1789 01:29:30,730 --> 01:29:32,901 על אחרים או שאתה מבחינה אסתטית באמצעות דברים 1790 01:29:32,901 --> 01:29:35,400 כמו Bootstrap, אז אתם לא יש ליישם את הרמה הנמוכה 1791 01:29:35,400 --> 01:29:37,169 פרטים של תפריטים כפתורים וכל זה. 1792 01:29:37,169 --> 01:29:39,210 אתה נשען על מישהו כמו גוגל, כך שאתה 1793 01:29:39,210 --> 01:29:42,050 לא צריך לבנות את Uber עסקי עסק מיפוי, 1794 01:29:42,050 --> 01:29:44,850 וכל מספר דומה יישומים, כמו גם. 1795 01:29:44,850 --> 01:29:46,350 >> למעשה, כניסות פופולריות, מדי. 1796 01:29:46,350 --> 01:29:48,500 אם השתמשת Spotify או כל מספר של אתרי אינטרנט, 1797 01:29:48,500 --> 01:29:51,210 תוכלו להיכנס כמה אתרים באמצעות פייסבוק. 1798 01:29:51,210 --> 01:29:53,350 אז מה נחמד, יש APIs מיועד כניסות 1799 01:29:53,350 --> 01:29:56,570 בימינו, כך אין לך יש שולחן משתמשים משלך 1800 01:29:56,570 --> 01:29:59,440 וכל מסד נתונים משלך בהכרח באותה מידה. 1801 01:29:59,440 --> 01:30:01,795 אתה יכול לתת פייסבוק לעשות כל של כי מורכבות בשבילך. 1802 01:30:01,795 --> 01:30:03,920 אז זה תקופה מרגשת, בכנות, בתכנות, 1803 01:30:03,920 --> 01:30:07,200 כי יש כל כך הרבה צדדים שלישיים שירותים שאתה יכול לבנות על גבי. 1804 01:30:07,200 --> 01:30:10,890 >> ושוב, המחיר שתשלם הוא או פיננסי או השבתה. 1805 01:30:10,890 --> 01:30:13,750 אם Google יורד, כך גם סופר, ניתן לטעון, 1806 01:30:13,750 --> 01:30:15,690 אבל אולי זה כבר תחלופה סבירה. 1807 01:30:15,690 --> 01:30:18,040 ושוב, זה היה אחד הנושאים, בתקווה, עבור בני הזוג של הימים האחרונים, 1808 01:30:18,040 --> 01:30:18,780 הוא קיזוזים כאלה. 1809 01:30:18,780 --> 01:30:20,738 ולעתים רחוקות הוא שם הולך להיות תשובה נכונה. 1810 01:30:20,738 --> 01:30:25,700 זה באמת יותר טוב של שתיים או יותר תשובות. 1811 01:30:25,700 --> 01:30:26,682 >> לעבור האלה מסביב. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> וחשבונות Cloud9 אלה ימשיכו לעבוד, בתיאוריה, לנצח. 1814 01:30:41,110 --> 01:30:45,000 אתה עלול למצוא אם תחכו כמה ימים או שבוע או יותר לחזור ולהיכנס אותם, 1815 01:30:45,000 --> 01:30:49,170 זה עלול לקחת כמו אחד או חמש דקות כדי לפתוח לגבות, 1816 01:30:49,170 --> 01:30:54,090 אבל זה רק בגלל שהם לשים אותו למצב שינה כדי לחסוך משאבים. 1817 01:30:54,090 --> 01:31:10,527