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