1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [MÜZİK OYUN] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> David MALAN Bu CS50 ve Bu haftanın sekiz başlangıcıdır. 5 00:00:13,350 --> 00:00:17,510 Ve biz ağırlamaktan çok mutluyuz geri, büyük bir sürpriz, CS50 kendi Ramon 6 00:00:17,510 --> 00:00:22,160 Galvan olmuştur yükselen üst düzey Geçtiğimiz birkaç ay geçirdikten 7 00:00:22,160 --> 00:00:26,190 LA Temmuz ayından itibaren, Hollywood, kelimenin tam anlamıyla yepyeni bir TV'de çalışan 8 00:00:26,190 --> 00:00:31,930 Koloni denilen gösterisi, yaratıcısı Aslında Harvard şap kendisidir. 9 00:00:31,930 --> 00:00:36,610 Ve böylece biz bu görmek çok heyecan duyuyoruz ABD ağında bu Ocak ilk. 10 00:00:36,610 --> 00:00:40,370 Yani bunun için bizi izlemeye devam edin ve için hafta daha Ramon gelmek. 11 00:00:40,370 --> 00:00:42,550 >> Sonun yakın olduğunu artık biliyorum. 12 00:00:42,550 --> 00:00:47,400 Ve bu ne demek orada değil ki tüm bu çok söylemek üzücü, CS50 sol. 13 00:00:47,400 --> 00:00:49,400 Biz sadece üç sorun var setleri var left-- 14 00:00:49,400 --> 00:00:52,510 Sorun olan six-- ayarlamak Elleriniz şimdi veya yakında olacak 15 00:00:52,510 --> 00:00:56,080 Daha sonra kastedilen hafta-- bu köprü nedeniyle Komut satırında, bizim dünya 16 00:00:56,080 --> 00:00:59,450 biz kullanarak bizim zaman en geçirdim C ve web programlama dünyası. 17 00:00:59,450 --> 00:01:02,350 Peki, sen fikir bir sürü görürsünüz Komut satırı işten ödünç 18 00:01:02,350 --> 00:01:04,560 ancak yeni de bir sürü ve ilginç fikirler 19 00:01:04,560 --> 00:01:07,929 Ayrıca için germane olacak ki mobil uygulamalar ve teknoloji, 20 00:01:07,929 --> 00:01:10,470 daha genel olarak, hangi ile adamlar günümüzde tüm tanıdık 21 00:01:10,470 --> 00:01:12,090 dizüstü bilgisayarlar ve cep telefonları ve benzeri. 22 00:01:12,090 --> 00:01:15,220 >> Yani değil uygulamak edeceğiz Bir web sayfası ya da bir web sitesi 23 00:01:15,220 --> 00:01:17,620 başına, ama gerçek bir web sunucusu. 24 00:01:17,620 --> 00:01:21,590 Bir web sunucusu kalanını yazacak Amacı hayatında C ile yazılmış 25 00:01:21,590 --> 00:01:25,410 HTTP isteklerini, bu almak için biz konuşmaya devam sanal zarflar 26 00:01:25,410 --> 00:01:29,780 yaklaşık ve aslında birlikte ya cevap Bir nokta HTML gibi bazı statik content-- 27 00:01:29,780 --> 00:01:32,310 Dosya ya da nokta JPEG veya dosya başka bir numara, 28 00:01:32,310 --> 00:01:37,070 hatta bir PHP dosyası sayede web Sunucu bu PHP yorumlamak için gidiyor 29 00:01:37,070 --> 00:01:38,332 Kod ve sonuçları tükürmek. 30 00:01:38,332 --> 00:01:40,540 Şimdi, biz sağladık çerçevenin biraz 31 00:01:40,540 --> 00:01:43,100 Gerçekten bu-- için sorun için dağıtım kodu 32 00:01:43,100 --> 00:01:47,496 Altı 1.000 hatları üzerinden uzun set, bir lot yorum, fair-- olmaktır 33 00:01:47,496 --> 00:01:49,370 ama bu gerçekten kastedilen bir fırsat olarak 34 00:01:49,370 --> 00:01:52,570 Kirli dalış ellerini almak oldukça büyük bir projeye 35 00:01:52,570 --> 00:01:55,570 biz çok özel ettik o Sizin için oyulmuş parçaları, 36 00:01:55,570 --> 00:01:59,046 böylece gerçekten CS50 çıktığınızda ve programlama gerçek dünyasına girmek 37 00:01:59,046 --> 00:02:00,920 ve serpmek istiyorum Projelerin herhangi bir sayı, 38 00:02:00,920 --> 00:02:03,253 Eğer çok daha büyük olacak konfor, bazı kaynak indirirken 39 00:02:03,253 --> 00:02:05,020 Kod, bazı açık kaynak Web'de proje, 40 00:02:05,020 --> 00:02:08,174 ve dalış ve yapım Uygun gördüğünüz değişiklikleri. 41 00:02:08,174 --> 00:02:11,340 Sorun yedi hakkında olacak set Kendi web tabanlı bir uygulama yapma 42 00:02:11,340 --> 00:02:14,140 dinamik girdi alır ve şeklinde, dinamik çıkışı üretir 43 00:02:14,140 --> 00:02:16,920 Bir etrade.com benzeri web sitesi. 44 00:02:16,920 --> 00:02:20,800 Ve sorun sekiz henüz üzerinde durulacak set JavaScript olarak bilinen başka bir dil. 45 00:02:20,800 --> 00:02:24,170 >> Bu arada, son Proje ufukta. 46 00:02:24,170 --> 00:02:26,800 Adlandırılan ön teklif Bugünden itibaren bir hafta kaynaklanmaktadır. 47 00:02:26,800 --> 00:02:29,930 Şartnamede başına Öncesi proposal--, CS50 en website-- hangi bir 48 00:02:29,930 --> 00:02:33,260 oldukça rahat bir fırsat için Eğer güzel bir özlü e-posta göndermek 49 00:02:33,260 --> 00:02:35,170 öğretme adama Onu iletmek için 50 00:02:35,170 --> 00:02:38,250 ya ne düşündüğünü, kadar onu bir sondaj kurulu olarak ona kullanın. 51 00:02:38,250 --> 00:02:40,980 Ve aklı var check-- Eğer düşündüğünüzü olsun 52 00:02:40,980 --> 00:02:43,210 Çok uzakta ısırma konusunda çok az fazla ya da belki, 53 00:02:43,210 --> 00:02:46,480 ya da belki hiçbir fikrim yok ve bir konuşma yapmaya istiyorum. 54 00:02:46,480 --> 00:02:48,480 >> Bundan sonra bir öneri ve durum raporu, 55 00:02:48,480 --> 00:02:51,860 Burada adlandırılan CS50 hackathon Harvard ve Yale öğrencileri için Cambridge 56 00:02:51,860 --> 00:02:52,362 hem. 57 00:02:52,362 --> 00:02:54,320 Nihai proje en Uygulama daha sonra kaynaklanmaktadır. 58 00:02:54,320 --> 00:02:59,290 Ve sonra burada CS50 fuarı, Cambridge, yanı sıra New Haven başka şekilde. 59 00:02:59,290 --> 00:03:02,500 Teklifin Yani, bir göz atın Bu hususlarla için web sitesi. 60 00:03:02,500 --> 00:03:06,530 >> Ama daha heyecan verici, çok bir fırsat ellerini kirli olsun, 61 00:03:06,530 --> 00:03:09,350 ve bir bütüne açık zihinleri konular ve araçları demet 62 00:03:09,350 --> 00:03:12,920 ve teknikleri yardımcı ancak dersin temel müfredatıyla, 63 00:03:12,920 --> 00:03:14,810 ama yine de ilişkili. 64 00:03:14,810 --> 00:03:18,400 Ve de harika basamak taşları için gerçekten harika nihai projeler yapıyor o 65 00:03:18,400 --> 00:03:22,020 iyi malzeme ötesinde biz kapalı ettik gitmek resmen problem setleri veya derste. 66 00:03:22,020 --> 00:03:24,446 Yani için CS50 web sitesine gidin Seminerlerin tamamı liste. 67 00:03:24,446 --> 00:03:26,070 Henüz kayıt yoksa, bu iyi. 68 00:03:26,070 --> 00:03:29,860 Devam edin ve hala kayıt ve biz olacak Bir canlı streaming linki takip, 69 00:03:29,860 --> 00:03:31,844 Gün ve saat internet sitesinde yer almaktadır. 70 00:03:31,844 --> 00:03:33,760 Ve her şey olacak kaydedildi ve online koymak 71 00:03:33,760 --> 00:03:35,800 Eğer yapamıyorsanız Özellikle gün ve saatleri. 72 00:03:35,800 --> 00:03:39,380 >> Thereafter-- iyi Vermekteyiz ne gelince, tabii ki, CS50 hackathon var. 73 00:03:39,380 --> 00:03:43,560 Alınan haftaya sıfırdan Bu fotoğraf, hatırlama, yıl geçmiş akşam 01:00 civarında 4. 74 00:03:43,560 --> 00:03:46,900 CS50 fuarı, hangi yine her iki şehirde de yer alacak. 75 00:03:46,900 --> 00:03:49,760 Ve o zaman, sadece bitki Tohum, hatta hala biz se 76 00:03:49,760 --> 00:03:54,080 bir ay var artı varsa, dönem sol Eğer CS50 kendi öğretisini katılmak istiyorum 77 00:03:54,080 --> 00:03:56,770 Personel ve başlatmak istediğiniz CA olma düşünmeye, 78 00:03:56,770 --> 00:03:59,550 ya da öğretim adam, biliyorum biz bu konuda daha fazla konuşmaya başlayın edeceğiz 79 00:03:59,550 --> 00:04:00,630 Daha sonra bu dönem. 80 00:04:00,630 --> 00:04:03,470 Ama burada bir resimde Bu yılki takımın en. 81 00:04:03,470 --> 00:04:06,950 >> Ve böylece, PHP-- ve çok üzücü oldu Geçen hafta [yani? Allyse?] Nazikçe 82 00:04:06,950 --> 00:04:09,370 alma çabası gitti Bize bu harika sahne 83 00:04:09,370 --> 00:04:11,720 Ben kullanarak sona ermedi o, o kadar Gerçekten sadece biraz aptalca görünüyordu 84 00:04:11,720 --> 00:04:15,160 Hepimiz burada oturan bir kürek vardı gün geçen Çarşamba günü, ve biraz kaşık. 85 00:04:15,160 --> 00:04:17,709 Ama bu benim mecazi oldu boyamak için çalışırken yolu 86 00:04:17,709 --> 00:04:21,600 neden biz geçiş yapıyorsanız resim C PHP gibi bir dil. 87 00:04:21,600 --> 00:04:25,480 Ve aynı Herhangi söylenebilir languages-- Java, Python, Ruby sayısı 88 00:04:25,480 --> 00:04:31,270 diğerlerini göre değil oysa veya demet Cı, örneğin, C bir program yazma 89 00:04:31,270 --> 00:04:34,050 tipik gibi olabilir Böyle bir kaşık alarak 90 00:04:34,050 --> 00:04:36,770 ve bir delik kazma zemin, kum veya kir içinde. 91 00:04:36,770 --> 00:04:39,770 PHP çok daha almasına izin veriyor Sorunun üzerinden büyük ısırıkları, 92 00:04:39,770 --> 00:04:42,842 çok daha az kod yazma Bir çok küçük aracını kullanarak, 93 00:04:42,842 --> 00:04:45,050 çok daha çok var çünkü işlevsellik parçalı. 94 00:04:45,050 --> 00:04:47,633 >> Şimdi, biz gerçekten dramatik olsaydı, Biz kürek şey olurdu 95 00:04:47,633 --> 00:04:48,760 Burada, ama öyle olsun. 96 00:04:48,760 --> 00:04:51,370 Bu arada, diğer mecaz biz ile geldi 97 00:04:51,370 --> 00:04:53,770 tabii ki, olabilir, bir Bir anahtar gibi bir şey kullanmak 98 00:04:53,770 --> 00:04:56,610 Bir çivi gibi bir şey çekiç. 99 00:04:56,610 --> 00:04:58,980 Ama tabii, sağ Kullanım aracı oluyor 100 00:04:58,980 --> 00:05:01,360 çok değil olmak dil denir C- 101 00:05:01,360 --> 00:05:03,590 ve şimdi sadece rahatsız [? Sanders,?] Muhtemelen 102 00:05:03,590 --> 00:05:07,890 Biz böylece later-- tamir edeceğim Doğru aracı sık sık kullanmak 103 00:05:07,890 --> 00:05:09,640 olacak değil Bu düşük düzey aracı. 104 00:05:09,640 --> 00:05:13,720 Ve gerçekten de, C dil olmadığını Çoğunuz şimdiye kullanmak için gidiyoruz 105 00:05:13,720 --> 00:05:15,590 ya mutlaka tekrar kullanmak gerekir. 106 00:05:15,590 --> 00:05:18,350 >> Ve aslında, biraz sadece zaman secret-- 107 00:05:18,350 --> 00:05:23,160 C kendimi arasında oldukça fazla olduğunu kullanmak Her sonbahar Eylül ve Aralık 108 00:05:23,160 --> 00:05:23,870 yarıyıl. 109 00:05:23,870 --> 00:05:25,790 Ve bu çünkü biz bir fırsat olarak kullanmak 110 00:05:25,790 --> 00:05:27,852 temellerini öğretmek programlama, 111 00:05:27,852 --> 00:05:29,810 ve onunla bilgisayar ile bilim temelleri, veri 112 00:05:29,810 --> 00:05:32,435 yapıları, algoritmalar ve da-- ama çok çabuk olacak 113 00:05:32,435 --> 00:05:35,010 sözdizimi şimdi bakın ve fikirler C yatan 114 00:05:35,010 --> 00:05:37,530 çok harika vardır daha modern aktarılabilir 115 00:05:37,530 --> 00:05:41,130 yüksek seviyeli diller gibi PHP ve Python ve Perl ve Java 116 00:05:41,130 --> 00:05:46,750 ve Objective-C- değil çok aslında Amaç-C- ama Swift, bu yeni 117 00:05:46,750 --> 00:05:50,010 dil olduğunu çoğunuz olacak o zaman bitirme projesi ile serpmek. 118 00:05:50,010 --> 00:05:55,070 >> Fazla uzatmadan Yani, aslında atalım Bazı sorunları çözmek için PHP kullanmak. 119 00:05:55,070 --> 00:06:00,230 Geçen ki erken hatırlayın hafta, biz sadece kullanılan CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 Biz dinky küçük bir program yazdı sadece "Hello world" dedi. 121 00:06:02,990 --> 00:06:05,680 Ve sonra ben onu kurtardı Bir dosya merhaba.php çağırdı. 122 00:06:05,680 --> 00:06:07,280 Ve sonra bu komutu koştum. 123 00:06:07,280 --> 00:06:08,080 >> Ve neden? 124 00:06:08,080 --> 00:06:09,900 İngilizce, burada neler oluyor? 125 00:06:09,900 --> 00:06:12,760 Ben ne zaman ne yapıyordu Ben bu komutu koştum? 126 00:06:12,760 --> 00:06:13,405 >> Evet? 127 00:06:13,405 --> 00:06:16,572 >> HEDEF KİTLE: Bazı işlev PHP var Bu açmayız anlar ne okur. 128 00:06:16,572 --> 00:06:19,696 DAVID MALAN: İyi, bazı fonksiyon var PHP-- ve bana daha spesifik olalım, 129 00:06:19,696 --> 00:06:21,810 PHP adında bir program da bilinir, orada 130 00:06:21,810 --> 00:06:25,872 Anlayan bir tercüman, merhaba.php içeriği, 131 00:06:25,872 --> 00:06:27,830 ve üst bunu yorumluyor alt, soldan sağa 132 00:06:27,830 --> 00:06:29,590 ve bu komutlar söylediklerine yapar. 133 00:06:29,590 --> 00:06:33,320 Merhaba.php komutları, tabii ki, Sadece code-- işlevleri kaynak olduğunu 134 00:06:33,320 --> 00:06:35,750 ve değişkenler ve döngüler ve gibi, kendimize o 135 00:06:35,750 --> 00:06:37,460 PHP yazmaya başladı. 136 00:06:37,460 --> 00:06:40,240 >> Ama C aksine, hangi derlenmiş dil, 137 00:06:40,240 --> 00:06:42,810 PHP sadece yazmak ve çalıştırın. 138 00:06:42,810 --> 00:06:46,420 Siz bu aracı adımı atlayın sıfır ve olanlar dönüştürülmesi, 139 00:06:46,420 --> 00:06:47,790 ve sonra koşuyor. 140 00:06:47,790 --> 00:06:50,510 Ve böylece bu bir ters nedir? 141 00:06:50,510 --> 00:06:52,690 Neden adımı atlama var? 142 00:06:52,690 --> 00:06:55,238 Neden daha modern diller do bu adımı atlayın eğilimindedir? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Yararı neydi? 145 00:07:01,220 --> 00:07:02,080 >> Ya da sadece sezgisel? 146 00:07:02,080 --> 00:07:04,200 Biz ettik bile daha önce çok PHP yazılı, 147 00:07:04,200 --> 00:07:07,210 ne değildir hakkında yararlı değil senin kod derleme sizce? 148 00:07:07,210 --> 00:07:08,520 Hayır mı? 149 00:07:08,520 --> 00:07:09,610 Işlemekten değil mi? 150 00:07:09,610 --> 00:07:11,350 Başını çizilmeye? 151 00:07:11,350 --> 00:07:12,614 Evet. 152 00:07:12,614 --> 00:07:13,600 >> HEDEF KİTLE: Daha dinamik. 153 00:07:13,600 --> 00:07:14,683 >> DAVID MALAN: Daha dinamik? 154 00:07:14,683 --> 00:07:16,032 Ne demek istedin? 155 00:07:16,032 --> 00:07:17,000 >> HEDEF KİTLE: [duyulamaz] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID MALAN: Tamam, iyi, çok girişe bağlı olarak, 158 00:07:22,390 --> 00:07:23,470 bunu her zaman derlemek zorunda değilsiniz. 159 00:07:23,470 --> 00:07:24,990 Ve gerçekten gibidir ki- kadar basit neyi 160 00:07:24,990 --> 00:07:26,990 Devam noktasıdır kodunuzu derlemek için? 161 00:07:26,990 --> 00:07:29,480 Bu var sadece bir adım making-- bu gerektirmektedir 162 00:07:29,480 --> 00:07:31,900 Son birkaç için hafta, iki katı adımlar 163 00:07:31,900 --> 00:07:33,820 tıpkı senin program çalışıyor. 164 00:07:33,820 --> 00:07:36,940 Senin olduğunu görünce yararlı oldu , vb bazı hata mesajları ve bkz 165 00:07:36,940 --> 00:07:38,720 ama yine de sadece sinir bozucu bir adım. 166 00:07:38,720 --> 00:07:41,810 >> Ve böylece programcılar gerçekleşmiştir zamanla, neden biz değiliz 167 00:07:41,810 --> 00:07:45,327 yok dilleri yazmaya başlayın Bu oldukça mekanik adımı ihtiyaç 168 00:07:45,327 --> 00:07:47,160 böylece sadece yazabilirsiniz kodunuzu ve çalıştırın. 169 00:07:47,160 --> 00:07:48,920 Ama fiyat neydi biz ödenen gördüm 170 00:07:48,920 --> 00:07:50,910 Belirli bir örnekle, hafta son? 171 00:07:50,910 --> 00:07:51,650 Evet? 172 00:07:51,650 --> 00:07:52,370 >> Hız. 173 00:07:52,370 --> 00:07:54,690 Yani [? ?] tercümanlar ne Biraz daha yavaş, 174 00:07:54,690 --> 00:07:57,330 ki sıfırlar ve olanlardır güzel ve bir bilgisayar için hızlı 175 00:07:57,330 --> 00:08:00,070 anlamak için, çünkü Intel CPU, ya da her neyse, 176 00:08:00,070 --> 00:08:03,070 Sadece Neler anlar bit bu desenleri ile ilgili. 177 00:08:03,070 --> 00:08:05,370 Bir tercüman Oysa Bir program o gerçekten 178 00:08:05,370 --> 00:08:07,980 Ascii kaynağını okumak zorunda Yazdığınız kod, 179 00:08:07,980 --> 00:08:12,700 ve dönüştürmek, tabiri caizse, ya da sonuçta dönüştürür nasıl anlamaya 180 00:08:12,700 --> 00:08:13,525 sıfır ve olanlar. 181 00:08:13,525 --> 00:08:15,650 Yani biraz sürer Bir performans isabet biraz. 182 00:08:15,650 --> 00:08:16,858 Bu yüzden bir ticaret-off biraz. 183 00:08:16,858 --> 00:08:21,570 Burada üzerinde bunu şimdi eğer, bana izin devam edin ve aşağıdaki gibi bir örnek yok. 184 00:08:21,570 --> 00:08:26,610 Burada giderseniz, yeni bir dosya, ben gidiyorum Yine bu tasarruf merhaba.php olduğunu. 185 00:08:26,610 --> 00:08:31,450 Ve şimdi ben önde gidiyorum ve "baskı merhaba dünya" derler - 186 00:08:31,450 --> 00:08:35,130 ve ben baskı kullanabilirsiniz hatırlamak, I do not Baskı-F kullanmak zorunda. Ve şimdi buraya, 187 00:08:35,130 --> 00:08:42,039 Ben merhaba.php ve PHP yaparsanız, huh-- I yorumlamışlardır görünmemektedir. 188 00:08:42,039 --> 00:08:43,412 Neyi yanlış yaptım? 189 00:08:43,412 --> 00:08:44,710 >> HEDEF KİTLE: açılı bilezikler. 190 00:08:44,710 --> 00:08:47,015 >> DAVID MALAN: Evet, ihtiyacınız O açılı ayraç kadar üst. 191 00:08:47,015 --> 00:08:49,390 Bu yüzden can sıkıcı tür, ama hızlı bir şekilde buna alışmak. 192 00:08:49,390 --> 00:08:53,500 PHP kodu yazmak zorunda kalırsanız, ben Genellikle programa söylemek gerekir, 193 00:08:53,500 --> 00:08:56,950 ya hey, tercümana söyleyin PHP, burada bazı PHP kodu geliyor. 194 00:08:56,950 --> 00:09:00,440 Ve sonra iyi ölçmek için, I would Bu değil, bu kapatmak değil 195 00:09:00,440 --> 00:09:03,740 Sadece soru işareti açısı dirsek, şimdi buraya, böylece 196 00:09:03,740 --> 00:09:06,840 Ben yine bu çalıştırırsanız, şimdi Ben istenen sonucu almak. 197 00:09:06,840 --> 00:09:09,820 >> Şimdi hafif bir optimizasyon yapalım, sadece daha önce de gördüm ki. 198 00:09:09,820 --> 00:09:14,040 Bu tür can sıkıcı bir durum ki ben PHP uzay merhaba.php çalıştırmak zorunda, 199 00:09:14,040 --> 00:09:16,060 Çünkü geçmişte I Sadece nokta çizgi yazabilirsiniz 200 00:09:16,060 --> 00:09:17,560 Tür güzel program adı. 201 00:09:17,560 --> 00:09:19,420 Daha iyi bir kullanıcı deneyimi türüdür. 202 00:09:19,420 --> 00:09:24,160 >> Çıkıyor Yani bunu yapabilirsiniz following-- I PHP 203 00:09:24,160 --> 00:09:28,780 Bu oldukça şifreli kullanabilirsiniz Burada üstünde sözler, 204 00:09:28,780 --> 00:09:31,740 bu, genel olarak, bir mesele olarak adlandırılır Bu keskin sembol sayede, 205 00:09:31,740 --> 00:09:34,270 tabiri caizse, bu bir patlama olduğunu veya bir ünlem işareti. 206 00:09:34,270 --> 00:09:38,490 Ve bu şimdi bir programa yoludur Tipik bir Linux sistemi üzerinde o 207 00:09:38,490 --> 00:09:41,500 çevre ya da env olarak adlandırılır. 208 00:09:41,500 --> 00:09:43,920 Ve bu uzun bir hikaye LINE short-- hat bir adil 209 00:09:43,920 --> 00:09:48,710 Bilgisayar hey, PHP bulmak, diyor çevrede benim için tercüman, 210 00:09:48,710 --> 00:09:50,610 tabiri caizse, senin belleğinde bulabilirsiniz. 211 00:09:50,610 --> 00:09:54,130 >> Ve şimdi ne güzel mi ben buraya gitmek, 212 00:09:54,130 --> 00:09:57,750 Ben nokta çizgi yapabilirim merhaba nokta php, veya-- hmm. 213 00:09:57,750 --> 00:09:59,000 İzin reddedildi. 214 00:09:59,000 --> 00:10:02,350 Eh, bu daha da göreceksiniz eğer sorun, yedi set 215 00:10:02,350 --> 00:10:04,060 değil zaten, izinleri var. 216 00:10:04,060 --> 00:10:06,510 Ben gerektiğini çıkıyor Bu komutu çalıştırmak için 217 00:10:06,510 --> 00:10:10,779 [denir? chamod?] değişim Bir plus x merhaba.php mode--. 218 00:10:10,779 --> 00:10:13,820 Ben [duyulamaz] ek, bu bir ihtiyaç Bilgisayarımı söylüyor adım 219 00:10:13,820 --> 00:10:16,400 merhaba.php çalıştırılabilir yapmak. 220 00:10:16,400 --> 00:10:21,310 Ve şimdi nokta olan oldu neler izle merhaba.php eğik, sadece çalışır. 221 00:10:21,310 --> 00:10:23,310 Ben belirtmek gerek yok Artık tercüman. 222 00:10:23,310 --> 00:10:26,680 Ve ben bile güzel yapabilir, Hala, eğer ben bu işi yeniden adlandırın. 223 00:10:26,680 --> 00:10:30,570 Ben sadece merhaba.php taşırsanız Hello-- yüzden, sol üst fark 224 00:10:30,570 --> 00:10:32,860 Programın adı Gerçekten şimdi sadece merhaba. 225 00:10:32,860 --> 00:10:37,300 Şimdi ben bir C programı gibi görünmesini sağlayabilirsiniz, o PHP-- yazılmış oluyor olsa da 226 00:10:37,300 --> 00:10:39,210 ya açıkçası herhangi bir sayı diğer dillerde. 227 00:10:39,210 --> 00:10:41,480 >> Yani marjinal geliştirme, fonksiyonel bir fark. 228 00:10:41,480 --> 00:10:44,460 Ama bu sadece küçük bir merakı var şimdi, programlar yazmak, böylece 229 00:10:44,460 --> 00:10:48,989 herhangi bir dilde ve kullanıcı yok bilmek ya da o ne bakım var. 230 00:10:48,989 --> 00:10:51,030 Peki, bir daha bakalım zorlayıcı örnek şimdi 231 00:10:51,030 --> 00:10:52,850 Ben önceden çırpılmış olduğunu. 232 00:10:52,850 --> 00:10:54,955 Bu quote.php olarak adlandırılır. 233 00:10:54,955 --> 00:10:56,740 Ve bu online var. 234 00:10:56,740 --> 00:11:00,299 Ve bu oldukça short-- olduğunu fark ama bu kadar bir komut satırı programı 235 00:11:00,299 --> 00:11:02,840 Hisse senedi fiyatları yukarı bakmak için gidiyor Benim için, hangi aslında gidiyor 236 00:11:02,840 --> 00:11:04,230 Sorun yedi set germane olmak. 237 00:11:04,230 --> 00:11:05,396 >> Yani ben ne yapıyorum bakalım. 238 00:11:05,396 --> 00:11:08,640 Çok üstünde bende Açık braket soru işareti PHP. 239 00:11:08,640 --> 00:11:13,372 Ben bu sayede Sonra, bu satırı var functions.php-- adlı bir dosya gerektiren 240 00:11:13,372 --> 00:11:15,080 Biz görmeye gidiyoruz biraz bu konuda daha fazla, 241 00:11:15,080 --> 00:11:17,340 ancak bu C adlı gibi Keskin sürümü dahil 242 00:11:17,340 --> 00:11:19,090 Gitmek istediğiniz yere Başka bir dosya yer alıyor. 243 00:11:19,090 --> 00:11:23,720 PHP buna rağmen, bu ihtiyaç aramaları aynı zamanda bir fonksiyon içerir vardır. 244 00:11:23,720 --> 00:11:26,861 Ve function.php olduğu ortaya çıktı Sadece bir şey dersten önce yazmıştım. 245 00:11:26,861 --> 00:11:29,860 Çünkü, aynı dizine koymak Bazı kodunu faktör istedi 246 00:11:29,860 --> 00:11:31,800 biz başka bir yerde kullanmak isteyebilirsiniz. 247 00:11:31,800 --> 00:11:34,560 >> Bu arada, muhtemelen yapabilirsiniz Burada neler oluyor anlaması. 248 00:11:34,560 --> 00:11:39,200 Bu C- ama biraz farklı Ben ne demek istiyorsunuz doğru kullanımını sağlamak? 249 00:11:39,200 --> 00:11:41,180 Daha teknik tercüme. 250 00:11:41,180 --> 00:11:45,950 Hangi koşullar altında am I Program bırakma veya çıkarken? 251 00:11:45,950 --> 00:11:47,074 Evet? 252 00:11:47,074 --> 00:11:47,990 >> HEDEF KİTLE: Eğer yoksa İki komut satırı argümanları. 253 00:11:47,990 --> 00:11:49,480 >> DAVID MALAN: Ben yok satırı argümanlarını komuta. 254 00:11:49,480 --> 00:11:52,396 Ve bu o birini hatırlıyorum argümanlar programın adı kendisidir. 255 00:11:52,396 --> 00:11:55,340 Ve ikinci olacak başka bir sözcük Ben istemi sonra yazın. 256 00:11:55,340 --> 00:11:57,460 Dolayısıyla, sadece C gibi, bu kontrol benim yoludur, 257 00:11:57,460 --> 00:12:00,022 Kullanıcı işbirliği yaptı ve Ben istendiği gibi programı çalıştırmak? 258 00:12:00,022 --> 00:12:01,730 Şimdi, bir şey var biraz farklı 259 00:12:01,730 --> 00:12:04,020 Her C- ilk biz Bu dolar işareti var, 260 00:12:04,020 --> 00:12:07,710 ve bir dolar ne PHP göstermek oturum? 261 00:12:07,710 --> 00:12:08,440 Sadece bir değişken. 262 00:12:08,440 --> 00:12:11,731 Bu, ardından Bay Kane, sadece bir değişken ne olursa olsun, aslında onu aramak istiyorum. 263 00:12:11,731 --> 00:12:14,000 Bir şey var dikkat edin Benim PHP program eksik, 264 00:12:14,000 --> 00:12:18,210 sadece son eksikti gibi hafta, C, karşı ne hangisi? 265 00:12:18,210 --> 00:12:21,620 >> Bir tür, aynı zamanda başka bir şey. 266 00:12:21,620 --> 00:12:26,409 Hiçbir şey var Ana işlevi function--. 267 00:12:26,409 --> 00:12:27,450 Hiçbir ana işlevi var. 268 00:12:27,450 --> 00:12:29,680 Sadece yazmaya başlayın kalmadan kod 269 00:12:29,680 --> 00:12:32,790 Oldukça keyfi endişelenecek Bazı varsayılan adlandırma kuralı 270 00:12:32,790 --> 00:12:33,880 Fonksiyon ana. 271 00:12:33,880 --> 00:12:36,720 Yani arg C sadece gerçekten global bir değişken 272 00:12:36,720 --> 00:12:39,049 tercüman olduğunu Bana kullanılabilir hale getirir. 273 00:12:39,049 --> 00:12:40,090 Şimdi, bu ilginç. 274 00:12:40,090 --> 00:12:41,140 Yani bir şeyler aramak. 275 00:12:41,140 --> 00:12:43,370 Dolar işareti stoku üzerinde sol, o benim değişken var. 276 00:12:43,370 --> 00:12:45,120 Sağ tarafta, Görünüşe göre var 277 00:12:45,120 --> 00:12:50,270 PHP bir işlev arama denilen Benim son komut satırını geçirerek 278 00:12:50,270 --> 00:12:51,902 argüman ne ki-- kelime. 279 00:12:51,902 --> 00:12:53,610 Ve biz nasıl bu göreceğiz Bir an çalışıyor. 280 00:12:53,610 --> 00:12:55,380 >> Ve sonra son olarak ben fiyat raporlama ediyorum. 281 00:12:55,380 --> 00:12:58,650 Bir tane yazdırarak ediyorum filanca payı. 282 00:12:58,650 --> 00:13:02,082 Ve bu, unutmayın in PHP-- PHP-- bir şekilde yol 283 00:13:02,082 --> 00:13:04,290 Yapmanız gerek yok nerede Artık Dolar işareti S. 284 00:13:04,290 --> 00:13:06,782 Sadece küme parantezi kullanabilirsiniz ve bazı değişken takın. 285 00:13:06,782 --> 00:13:09,240 Sen endişelenmenize gerek yok Aynı şekilde printf kullanılmıştır. 286 00:13:09,240 --> 00:13:13,530 >> Ve bir kenara, gibi bir değişken koyduğunuzda Böyle çift tırnak içinde, 287 00:13:13,530 --> 00:13:17,370 Bir fantezi tekniği kullanıyor Değişken enterpolasyon aradı. 288 00:13:17,370 --> 00:13:20,380 Sadece burada değişkeni fiş demektir. 289 00:13:20,380 --> 00:13:23,760 Ve bir kenara, bazı size gelenler olarak diğer programlama geçmişlere, 290 00:13:23,760 --> 00:13:26,960 Eğer tek tırnak kullanamazsınız etrafında dizeleri bunu yapmak için. 291 00:13:26,960 --> 00:13:30,290 Sizin için çift tırnak kullanmanız gerekir Değişken interpolasyon çalışmak. 292 00:13:30,290 --> 00:13:32,740 Aksi takdirde tam anlamıyla edeceğiz Bu küme parantezi bakın. 293 00:13:32,740 --> 00:13:34,500 >> Yani son olarak, en go ahead ve bu çalışmasına izin. 294 00:13:34,500 --> 00:13:36,690 Benim Terminal biraz daha büyük yapalım. 295 00:13:36,690 --> 00:13:41,940 Beni go ahead ve çalıştıralım Benim alıntı dizinin içinde. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? alıntı?] PHP alıntı dot PHP, 297 00:13:46,950 --> 00:13:50,290 ve ben bir şey aramak için gidiyorum onun senedi simgesi olan GOOG gibi, 298 00:13:50,290 --> 00:13:55,510 ve yeni adıyla bir pay, Alfabe A.Ş., bugün itibariyle, 717 $ maliyet. 299 00:13:55,510 --> 00:13:58,680 Pekala, biz isterseniz Yine bu çalıştırın, herkes 300 00:13:58,680 --> 00:14:02,600 Başka bir hisse senedi var onlar kadar bakmak istiyorum? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft, ben düşünüyorum bu bir MSFT-- 53 $. 302 00:14:06,770 --> 00:14:09,720 Ben Yahoo belki olduğunu düşünüyorum. 303 00:14:09,720 --> 00:14:12,130 Ve Facebook olmasıdır. 304 00:14:12,130 --> 00:14:13,740 >> Bunu yaparken bu program nedir? 305 00:14:13,740 --> 00:14:16,306 Sihirli gömülü gibi görünüyor Bu arama fonksiyonu. 306 00:14:16,306 --> 00:14:17,430 Yani kısaca bir göz atalım. 307 00:14:17,430 --> 00:14:21,815 >> Bu gelmiyor çıkıyor PHP ile, bu functions.php içinde. 308 00:14:21,815 --> 00:14:23,690 Ve biz aracılığıyla gitmeyecek ayrıntılı olarak, bu, 309 00:14:23,690 --> 00:14:28,040 ama burada operatif kelime olduğunu fark bu functions.php-- hattı altıncı 310 00:14:28,040 --> 00:14:29,440 Ben tam anlamıyla işlevini söylüyorlar. 311 00:14:29,440 --> 00:14:31,050 Benim işlevin adını belirtin. 312 00:14:31,050 --> 00:14:34,330 Ben daha sonra herhangi bir belirtin argümanlar veya parametreleri, 313 00:14:34,330 --> 00:14:36,480 Ben bu işlevi hiç türleri take-- istiyorum. 314 00:14:36,480 --> 00:14:37,580 Ve sonra bunu uygulamak. 315 00:14:37,580 --> 00:14:39,240 >> Ve ben elimi dalga edeceğiz uygulanmasını, 316 00:14:39,240 --> 00:14:42,115 oldukça gelişmiş hakkı beri Şimdi, ama biz aslında tekrar görürsünüz 317 00:14:42,115 --> 00:14:44,700 Bir hafta içinde problem yedi set. 318 00:14:44,700 --> 00:14:47,490 Ama ben de, bu kadar temiz olabilir. 319 00:14:47,490 --> 00:14:49,590 Ayrıca dahil Bugünün kod sürüm 320 00:14:49,590 --> 00:14:52,340 Hiçbir nokta PHP dosyası var alıntı, bir. 321 00:14:52,340 --> 00:14:57,270 De muhtemelen ne Çünkü Sadece alıntı denilen programın üst? 322 00:14:57,270 --> 00:15:00,140 Bu shebang-- denilen Oldukça şifreli sözler 323 00:15:00,140 --> 00:15:04,590 o zaman PHP bulup diyor Burada benim kodu çalıştırın. 324 00:15:04,590 --> 00:15:07,360 >> Pekala, o getiriyor Biz kaldığı yerden bizi 325 00:15:07,360 --> 00:15:09,560 olsa son seferinde-- biraz daha gelişmiş örnekler. 326 00:15:09,560 --> 00:15:13,980 Herhangi bir sorunuz şimdiye kadar yaklaşık PHP veya ne yapıyoruz? 327 00:15:13,980 --> 00:15:15,570 Hayır-- tamam. 328 00:15:15,570 --> 00:15:16,180 Evet? 329 00:15:16,180 --> 00:15:19,610 >> İZLEYİCİ: Inside HTML dosyaları, Sen ne 330 00:15:19,610 --> 00:15:22,226 [? sen ?] [? Sadece diyoruz?] Bir [duyulamaz] PHP dosyası? 331 00:15:22,226 --> 00:15:23,350 DAVID MALAN: İyi bir soru. 332 00:15:23,350 --> 00:15:26,070 Biz konum bir web bağlamda, geçiş için kelimenin tam anlamıyla hakkında 333 00:15:26,070 --> 00:15:28,028 sözde kullanmayın üstündeki shebang, 334 00:15:28,028 --> 00:15:31,980 Web server-- genellikle nedeni Program Apache veya Microsoft denilen 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server veya diğer web sunucu yazılımının herhangi bir sayıda, 336 00:15:37,470 --> 00:15:40,636 o gördüğünde bilir Bir nokta PHP dosyası, öyle 337 00:15:40,636 --> 00:15:42,010 Bunun üzerine tercüman çalıştırmanız gerekir. 338 00:15:42,010 --> 00:15:43,468 O ilk satırında bakmaz. 339 00:15:43,468 --> 00:15:45,580 Bu ilk satır hüner Yani sen sadece zaman olduğunu 340 00:15:45,580 --> 00:15:48,330 yazma komut satırı programs-- süper sık ​​yapmayacağım, hangi 341 00:15:48,330 --> 00:15:52,510 ancak köprü bizim yolu Şimdi bizim PHP bizim C örnekleri. 342 00:15:52,510 --> 00:16:00,680 >> Yani gerçekten bu dünyayı köprü izin web komut satırı dünyasından 343 00:16:00,680 --> 00:16:02,230 aşağıdakileri yaparak. 344 00:16:02,230 --> 00:16:05,090 Beni go ahead ve çizelim Burada sadece bir an için bitti. 345 00:16:05,090 --> 00:16:09,940 Biz değil bir web sunucusuna sahip, ya da eğer öyleyse Burada benim laptop üzerinde varsa, 346 00:16:09,940 --> 00:16:11,280 hangi Böyle çekersiniz. 347 00:16:11,280 --> 00:16:14,250 Ve burada biz bazı şeklinde internet. 348 00:16:14,250 --> 00:16:18,210 Ve sonra buraya, biz Bir building-- bir sunucu 349 00:16:18,210 --> 00:16:20,760 Bu nasıl internet works-- ve burada 350 00:16:20,760 --> 00:16:23,120 belki bazı ışıkları ile sunucusudur. 351 00:16:23,120 --> 00:16:27,530 Aslında neler oluyor bu iki bağlantı arasındaki? 352 00:16:27,530 --> 00:16:29,240 >> Yani bu binada bir web sunucusudur. 353 00:16:29,240 --> 00:16:31,420 Bu sadece bir bilgisayar var Bazı işletim çalışıyor 354 00:16:31,420 --> 00:16:34,561 system-- belki özgür yazılım olarak adlandırılan CS50 IDE çalıştıran Apache. 355 00:16:34,561 --> 00:16:36,310 Yani aslında can Bu binanın düşünüyorum 356 00:16:36,310 --> 00:16:38,579 yapı olarak bu CSt0 IDE depolanır. 357 00:16:38,579 --> 00:16:40,870 Hepiniz sahip orasıdır Senin hesapları, burada tüm 358 00:16:40,870 --> 00:16:43,130 kendi web sunucusu var Hepiniz çalışan 359 00:16:43,130 --> 00:16:45,730 Kendi benzersiz URL'ler Biz tartışmaya başladı, 360 00:16:45,730 --> 00:16:47,280 S. altı set ve daha fazla göreceksiniz. 361 00:16:47,280 --> 00:16:49,450 >> İşte benim laptop yerde var internette başka. 362 00:16:49,450 --> 00:16:54,550 Bir URL ziyaret ettiğinizde Ve böylece aittir Benim için, bu internet trafiği gidiyor 363 00:16:54,550 --> 00:16:58,360 sunucusuna sunucunun üzerinde alıcı bir HTTP request-- 364 00:16:58,360 --> 00:17:02,900 benzeri bir index.html olsun ve bu kadar Bu web sayfasında yanıtlarken. 365 00:17:02,900 --> 00:17:04,280 Yani genel paradigma bu. 366 00:17:04,280 --> 00:17:07,089 Yukarı şeyi Oysa Şimdi bugün, her şey kadar 367 00:17:07,089 --> 00:17:09,660 Sadece oluyordu Bu binanın sınırlandırır. 368 00:17:09,660 --> 00:17:12,910 Benim laptop kullanarak, fakat I, CS50 IDE bağlanmıştır 369 00:17:12,910 --> 00:17:17,369 böylece bu programların hepsi ben koşuyordu bu sunucu, kendisi içinde oldu. 370 00:17:17,369 --> 00:17:22,660 >> Ama şimdi, en PHP yeniden kullanmak başlayalım bazı gerçek programlar yazmak için bu 371 00:17:22,660 --> 00:17:24,230 Bir web sunucusu tarafından sunulmaktadır. 372 00:17:24,230 --> 00:17:30,320 Ve bunu yapmak için, ben gidiyorum örnekler sürü halinde 373 00:17:30,320 --> 00:17:33,710 Burada bu fikri tanıtmak. 374 00:17:33,710 --> 00:17:38,500 Yani bu bir fantezi yol tür Bir programlama paradigmasını açıklayan. 375 00:17:38,500 --> 00:17:41,540 >> Ve aslında, gibi CS50 çıkmak ya da, nihai projeler üzerinde çalışmak 376 00:17:41,540 --> 00:17:43,520 ya da bazı izleyin almak sınıfı, sen başlayacağız 377 00:17:43,520 --> 00:17:45,740 --daha dünya olduğunu görmek için Özellikle büyümüş 378 00:17:45,740 --> 00:17:48,300 C gibi dillerle Çok düşük level-- olduğu 379 00:17:48,300 --> 00:17:51,290 orada daha iyi olduğunu fark yazma yazılımı yolları. 380 00:17:51,290 --> 00:17:53,290 Belirli vardır takip edebilirsiniz desenleri, 381 00:17:53,290 --> 00:17:57,640 dosyalarınızı organize belirli yolları ve işlevlerini adlandırma yolları, 382 00:17:57,640 --> 00:18:00,300 böylece uzun lafın kısası, Dünya kadar gelmiştir 383 00:18:00,300 --> 00:18:04,340 kısaltmaların bir sürü ile ve programlama yollarını adları. 384 00:18:04,340 --> 00:18:06,260 Bunlar kullanabilirsiniz sadece teknikleridir. 385 00:18:06,260 --> 00:18:09,660 >> Ve bunlardan biri, MVC denir Model View Controller için. 386 00:18:09,660 --> 00:18:12,270 Ve bunun için, sadece bir Şimdi, bir aşırı karmaşık 387 00:18:12,270 --> 00:18:18,960 Eğer paralamak nasıl söyleyerek yolu PHP tabanlı web sitesi, bizim durumumuzda. 388 00:18:18,960 --> 00:18:22,140 Eğer dosyalarınızı organize nasıl, nasıl, mantığı düzenliyorsunuz 389 00:18:22,140 --> 00:18:26,220 kolaylaştırır bir şekilde daha karmaşık web siteleri yazmak? 390 00:18:26,220 --> 00:18:28,550 Ve gerçekten, biz hızla edeceğiz yedi p-set ile oraya. 391 00:18:28,550 --> 00:18:32,020 >> MVC dünyasında Yani, gidiyoruz görmek için bizim kod genellikle can 392 00:18:32,020 --> 00:18:38,290 Her iki modelin kodu olarak karakterize edilebilir, ya da denetleyici kodu veya görünümü kodu. 393 00:18:38,290 --> 00:18:40,200 Ve ben gidiyorum follows-- olarak basite 394 00:18:40,200 --> 00:18:42,074 denetleyicisidir Programınızın beyinleri, 395 00:18:42,074 --> 00:18:44,100 bunun nerede hepsi ilginç mantık olur. 396 00:18:44,100 --> 00:18:46,110 Yani her şey biz oldum bugüne kadar sınıfta yazma, 397 00:18:46,110 --> 00:18:48,210 tür kontrolör gibi code-- o kontrol ediyor 398 00:18:48,210 --> 00:18:50,585 Programınız, senin döngüler, senin koşulları, senin işlevleri 399 00:18:50,585 --> 00:18:52,100 ve değişkenler ve hepsi bu. 400 00:18:52,100 --> 00:18:56,160 >> Görüntüleme, şimdi, biraz olacak web dünyasında daha belirgin. 401 00:18:56,160 --> 00:18:59,360 Bir görünüm estetik olduğunu Web sitenizin. 402 00:18:59,360 --> 00:19:04,080 Bu, kullanıcı görüntüleri sees-- ne HTML tabloları, HTML etiketleri ve tüm 403 00:19:04,080 --> 00:19:08,220 Bu, kabarık estetiğinin tüm yazmak o kadar da zor değil şeyler, 404 00:19:08,220 --> 00:19:11,380 ancak üreten konum sadece ne, Sözde görünüm, estetik olduğunu. 405 00:19:11,380 --> 00:19:13,880 Ve model sonuçta, gidiyor Veritabanı stuff-- olması olan 406 00:19:13,880 --> 00:19:16,510 Hepimizin içine dalış başlayacağız daha bu Çarşamba. 407 00:19:16,510 --> 00:19:19,740 Yani denetleyici mantığıdır, görünüm, estetik şeyler 408 00:19:19,740 --> 00:19:23,500 ve model nereye olacak Bizim gerçek veri depolamak. 409 00:19:23,500 --> 00:19:26,410 >> O yüzden daha somut, bu bakalım Aşağıdaki örnekte ile. 410 00:19:26,410 --> 00:19:34,700 Burada benim dizine gitmek için gidiyorum Günümüz kaynağı olan tüm code-- 411 00:19:34,700 --> 00:19:35,770 online olarak kullanılabilir. 412 00:19:35,770 --> 00:19:37,800 Ve ben sürümü sıfır gitmek için gidiyorum. 413 00:19:37,800 --> 00:19:41,500 Ve burada diyelim o-- CS50 web sitesinin sürümü sıfır. 414 00:19:41,500 --> 00:19:43,010 Tüm kadar burada yok. 415 00:19:43,010 --> 00:19:46,810 Bu bir çok basit bir web sayfası Muhtemelen kullanarak neyi HTML tags-- sadece 416 00:19:46,810 --> 00:19:48,970 Geçmiş örneklerden tahmin? 417 00:19:48,970 --> 00:19:49,890 >> Bu da ne? 418 00:19:49,890 --> 00:19:53,920 Muhtemelen o büyük kalın için H1-- başlık, üst yukarı bu logo, CS50. 419 00:19:53,920 --> 00:19:55,080 Ve başka ne oynayan nedir? 420 00:19:55,080 --> 00:19:55,799 Evet? 421 00:19:55,799 --> 00:19:56,840 HEDEF KİTLE: Sırasız liste. 422 00:19:56,840 --> 00:19:59,990 David MALAN: Düzensiz list-- yüzden UL etiketi ve LI etiketleri belki bir çift. 423 00:19:59,990 --> 00:20:01,840 Ve bu hatırlamıyorum yoksa, dürüst farketmez. 424 00:20:01,840 --> 00:20:04,170 Bunlar kabarık tür vardır HTML uygulama detayları 425 00:20:04,170 --> 00:20:06,378 hızlı bir şekilde bakmak ve geri yolda konum. 426 00:20:06,378 --> 00:20:10,040 Biz programlama hakkında daha fazla odaklanmak gerekir suludur parçaları fikirler. 427 00:20:10,040 --> 00:20:12,890 >> Yani sadece hızlı atalım HTML-- bakmak ve gerçekten 428 00:20:12,890 --> 00:20:16,880 Ben yup, burada görünüm kaynağını açarsanız, Tam olarak burada oluyor neler. 429 00:20:16,880 --> 00:20:18,440 Bir UL etiketi var. 430 00:20:18,440 --> 00:20:20,630 Bunun iç içe LI etiketleri olduğunu. 431 00:20:20,630 --> 00:20:24,470 Ve sonra URL ödünç Burada asıl ders içeriğinin. 432 00:20:24,470 --> 00:20:27,570 >> Ve daha sonra lectures.php görünüşte 433 00:20:27,570 --> 00:20:31,640 Başka dinamik olarak oluşturulan sayfa Bu, en ah see-- izin sahip olacak 434 00:20:31,640 --> 00:20:33,170 dersin ilk iki hafta. 435 00:20:33,170 --> 00:20:36,600 Yani hafta sıfır ve haftada bir, haydi Ben sayfa kaynağını görüntülemek eğer bu-- bakmak, 436 00:20:36,600 --> 00:20:38,120 Ayrıca süper basit. 437 00:20:38,120 --> 00:20:42,430 Bu iki sayfalara lider adı week0.php ve week1.php. 438 00:20:42,430 --> 00:20:44,040 Peki ne oluyor şimdi düşünün. 439 00:20:44,040 --> 00:20:50,630 >> Ben week0.php tıklayın benim laptop week0.php isteği yapıyor. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Web sunucusu, nam-ı diğer, CS50 IDE, sanal zarfı alıyor. 442 00:20:58,110 --> 00:21:01,040 Bu mesaj görüşüyor gibi week0.php olsun. 443 00:21:01,040 --> 00:21:05,060 Daha sonra dosyayı yorumlanması, üst aşağıya, dosya haklıydın-- sol 444 00:21:05,060 --> 00:21:07,720 denilen week0.php-- ve Sonuçları tükürme. 445 00:21:07,720 --> 00:21:10,510 Yani bu dosyanın içinde, week0.php olmalıdır 446 00:21:10,510 --> 00:21:15,410 oluşturuyor denetleyici mantığı Bu HTML, ve yakında görürsünüz. 447 00:21:15,410 --> 00:21:19,340 >> Ama şimdi, bana haftada sıfır tıklayınız izin ve şimdi, Çarşamba ve Cuma var 448 00:21:19,340 --> 00:21:25,260 ve şimdi slaytlar Yavaş yavaş haftadan sıfırdan. 449 00:21:25,260 --> 00:21:27,400 Ve sen çağırmak olabilir geri bu gelen yol. 450 00:21:27,400 --> 00:21:29,340 Yani bu web sitesi yapıyor hepsi bu. 451 00:21:29,340 --> 00:21:31,120 >> Yani o bunu nasıl düşünelim. 452 00:21:31,120 --> 00:21:34,290 Ben geri gidiyorum CS50 IDE burada kaynak kodu, 453 00:21:34,290 --> 00:21:36,660 ve ben index.php açmak için gidiyorum. 454 00:21:36,660 --> 00:21:38,910 Bu dosyanın en üstünde yorumların bir demet. 455 00:21:38,910 --> 00:21:43,000 Sonra bu dosya, ortasında o çıkıyor hiçbir PHP kodudur. 456 00:21:43,000 --> 00:21:47,380 Eğer herhangi yoksa Çünkü Açık braket soru işareti PHP etiketleri, 457 00:21:47,380 --> 00:21:49,180 Sadece HTML koymak için özgürsünüz. 458 00:21:49,180 --> 00:21:51,480 >> Çünkü neyi PHP tercüman, yapmak gerekiyordu 459 00:21:51,480 --> 00:21:53,938 Bu file-- okuduğunda ise yukarıdan aşağıya, haklıydın-- sol 460 00:21:53,938 --> 00:21:59,100 sadece o arasında gördüğü kod yorumlar Bu açılı ayraçlar işareti soru. 461 00:21:59,100 --> 00:22:02,380 Ve başka bir şey değil mi bu PHP gibi tanımak, sadece dışarı tükürür. 462 00:22:02,380 --> 00:22:05,080 Ve HTML şeyler arasında mı Sadece tükürmek olacaktır. 463 00:22:05,080 --> 00:22:09,090 >> Yani bu dosya olabilir index.html çağrıldı, 464 00:22:09,090 --> 00:22:11,690 ama her şeyi adlandırma ediyorum bir atlama taşı olarak nokta PHP. 465 00:22:11,690 --> 00:22:15,960 Benzer Lectures.php-- underwhelming, sadece bazı HTML var. 466 00:22:15,960 --> 00:22:19,840 Week0.php, benzer sadece bazı HTML. 467 00:22:19,840 --> 00:22:22,300 >> Ama şimdi en üstünde koyalım atasözü mühendislik şapka, 468 00:22:22,300 --> 00:22:24,400 ve biz bu nasıl geliştirebileceğimizi düşünün. 469 00:22:24,400 --> 00:22:28,541 Bunu yapmak zor değil, ama ben tür kopyasını ve hamur haline intikal. 470 00:22:28,541 --> 00:22:31,540 Ve aslında, ben hafta iki yaparsanız, Herhalde yapacağım biliyor musun? 471 00:22:31,540 --> 00:22:34,940 Ben değilim, week1.php gitmek için gidiyorum Her şeyi vurgulamak için gidiyorum. 472 00:22:34,940 --> 00:22:39,110 Ben kopyalamak için gidiyorum, yapıştırın week2.php adlı yeni bir dosyaya, 473 00:22:39,110 --> 00:22:42,440 Bazı URL'leri çimdik ve yoluma. 474 00:22:42,440 --> 00:22:45,240 >> Yani biz ettik ne dayalı zaten C görülen 475 00:22:45,240 --> 00:22:46,860 Bu umarım, doğru gelmiyor. 476 00:22:46,860 --> 00:22:49,610 Kopyala, yapıştır nadiren doğru çözüm. 477 00:22:49,610 --> 00:22:51,429 Yani biz başlayabilirsiniz ne Bu geliştirmek için ne yapmak? 478 00:22:51,429 --> 00:22:53,345 Nerede fırsatlar Daha iyi tasarım için? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Ben almak zaman hafta sekiz, gidiyor 481 00:22:58,760 --> 00:23:00,910 gerçekten sinir bozucu olmaya Ben değiştirmek isterseniz 482 00:23:00,910 --> 00:23:03,930 her birinin yazı İstediğim veya eğer benim sayfaları 483 00:23:03,930 --> 00:23:06,522 düzeni yapısını değiştirmek için. 484 00:23:06,522 --> 00:23:08,396 Peki fırsat Daha iyi tasarım için? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Peki, ne düşünelim Bu dosyaların hepsi paylaşılır. 487 00:23:15,160 --> 00:23:21,696 >> İşte burada bir hafta var, bir hafta biri sıfır, burada lectures.php var, 488 00:23:21,696 --> 00:23:25,790 Burada aynı şey index.php-- var ve Farklı, kabaca ne konuşuyor, 489 00:23:25,790 --> 00:23:26,760 Bu dosyaların her? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Evet? 492 00:23:32,060 --> 00:23:34,560 >> HEDEF KİTLE: [duyulamaz] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID MALAN: Tamam, iyi. 495 00:23:42,160 --> 00:23:46,115 Yani desen mutlaka sayede, var Her zaman, ders I seçin 496 00:23:46,115 --> 00:23:48,250 Bir üretme olmalıdır çok benzer görünümlü sayfa. 497 00:23:48,250 --> 00:23:50,375 Ve böylece belki de kaldıraç Aslında gerçekten, 498 00:23:50,375 --> 00:23:53,060 kasten sayısal biz Bizim lectures-- endeksli 499 00:23:53,060 --> 00:23:55,290 ben daha koyabilirsiniz Cevabınız kelimeler. 500 00:23:55,290 --> 00:23:59,984 Ve gerçekten, tek şey nedir bu hafta arasında değişiyor Şehre 501 00:23:59,984 --> 00:24:02,400 ve bu yüzden beni aşağı kaydırmak izin aşağı yukarı aynı duymak yüzden bölgesindeki 502 00:24:02,400 --> 00:24:05,480 Yani burada bir hafta sıfır, kabaca üstünde. 503 00:24:05,480 --> 00:24:12,370 İşte haftada bir, hafta sıfır, haftada bir, haftada sıfır. 504 00:24:12,370 --> 00:24:14,370 Tamam, tam anlamıyla bilmek eğer hiçbir program 505 00:24:14,370 --> 00:24:16,286 bu sadece bir gibi artık desen eşleştirme oyunu. 506 00:24:16,286 --> 00:24:17,200 Peki farklı ne var? 507 00:24:17,200 --> 00:24:18,765 Evet? 508 00:24:18,765 --> 00:24:19,777 >> HEDEF KİTLE: [duyulamaz] 509 00:24:19,777 --> 00:24:22,360 David MALAN: İyi, yani başlıktaki Hiç bu kadar hafif, değişiyor. 510 00:24:22,360 --> 00:24:24,010 Sıfır birine, tabii ki, devam etmektedir. 511 00:24:24,010 --> 00:24:25,570 Aynı şey H1 etiketi oluyor. 512 00:24:25,570 --> 00:24:28,790 Ve biz oldukça, kolayca görmüyorum URL'ler biraz uzun olduğu için. 513 00:24:28,790 --> 00:24:30,670 Ama bu URL'ler biraz değişiyor. 514 00:24:30,670 --> 00:24:34,490 >> Ama is değişen değil, ne ben cesaret demek page-- içeriğinin en iyi şekilde 515 00:24:34,490 --> 00:24:38,530 HTML etiketi aynıdır, başkanı Aynı başlık, hemen hemen aynıdır 516 00:24:38,530 --> 00:24:40,659 Vücut aynıdır ve hemen hemen her şey 517 00:24:40,659 --> 00:24:42,450 haricinde aynıdır o küçük tweaks. 518 00:24:42,450 --> 00:24:45,310 Bu yüzden hakkında nasıl gidebiliriz Bu bazılarını faktoring? 519 00:24:45,310 --> 00:24:48,740 >> Peki beni tam olarak teklif izin Bir sonraki sürümde söyledi. 520 00:24:48,740 --> 00:24:53,890 Yani burada sürümünde tek yer, ben tam var aynı dosyalar, artı diğerleri bir çift. 521 00:24:53,890 --> 00:24:59,730 Burada index.php-- ve hatta eğer var: Eğer daha önce hiç görmedim PHP 522 00:24:59,730 --> 00:25:05,511 ne muhtemelen bu çözmek için yapıyorum Burada gördüğünüz ne dayalı problem--? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Evet, hafif bir bağlılık olduğunu? 525 00:25:12,760 --> 00:25:13,450 Hayır mı? 526 00:25:13,450 --> 00:25:16,020 Evet, devam et. 527 00:25:16,020 --> 00:25:17,380 >> HEDEF KİTLE: [duyulamaz] 528 00:25:17,380 --> 00:25:18,380 >> DAVID MALAN: Evet. 529 00:25:18,380 --> 00:25:20,380 >> HEDEF KİTLE: [duyulamaz] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID MALAN: Ben sana ihtiyacım var Sadece biraz daha yüksek sesle konuşur. 532 00:25:28,669 --> 00:25:31,084 >> HEDEF KİTLE: [duyulamaz] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID MALAN: Tamam, iyi. 535 00:25:36,660 --> 00:25:38,620 Ve ben o was bence-- sen-- ama ben duymak zor 536 00:25:38,620 --> 00:25:42,690 Ne de alıyorsanız olduğunu düşünüyorum kontör yaygındı etiketler, 537 00:25:42,690 --> 00:25:47,710 ortak ve etiketleri alt, şimdi dışarı çarpanlarına edilmiştir 538 00:25:47,710 --> 00:25:51,140 veya dosyaları ne küme? 539 00:25:51,140 --> 00:25:53,476 Header.php ve footer.php-- ve biz gidiyoruz 540 00:25:53,476 --> 00:25:55,600 Bazı düzenlemelerin yapılması endişe sen hitap sadece 541 00:25:55,600 --> 00:25:59,370 için, sayılar değişen hakkında kaldırdı örnek, seni doğru duydum eğer. 542 00:25:59,370 --> 00:26:02,060 >> Ama bunun özü gibi görünüyor. 543 00:26:02,060 --> 00:26:04,820 Büyük miktarda varsa Sayfanın üst kısmında fazlalık, 544 00:26:04,820 --> 00:26:06,736 ve büyük miktarda alt fazlalık, 545 00:26:06,736 --> 00:26:09,280 en anlamıyla sadece vurgulamak izin ve bu içerik kesip, 546 00:26:09,280 --> 00:26:13,270 Ayrı bir file-- gibi koymak biz çarpanlarına CSS, fikri 547 00:26:13,270 --> 00:26:16,710 koymak çok benzer estetik, Ayrı bir nokta PHP dosyası o, 548 00:26:16,710 --> 00:26:20,340 mechanism-- gerektirir kullanan C keskin include-- gibi olan 549 00:26:20,340 --> 00:26:23,570 esasen gitmek demek gibi bir şeydir , header.php içeriğini kapmak 550 00:26:23,570 --> 00:26:25,370 ve kopyalayıp buraya yapıştırın. 551 00:26:25,370 --> 00:26:29,490 >> Ama ne bu demektir ki şimdi ise index.php, ben bu iki satır var. 552 00:26:29,490 --> 00:26:32,130 Lectures.php olarak, aynı zamanda Bu iki satır var. 553 00:26:32,130 --> 00:26:35,230 Week0.php olarak, aynı zamanda Bu iki satır var. 554 00:26:35,230 --> 00:26:38,380 >> Yani şimdi, ben değiştirmek istiyorsanız Benim tüm sayfaları başlığı, 555 00:26:38,380 --> 00:26:40,530 ya ben değiştirmek istiyorum temel yapısı, 556 00:26:40,530 --> 00:26:44,380 Ben, sadece tek bir yerde şimdi değiştirebilirsiniz ya da iki places-- üstbilgi ve altbilgi, 557 00:26:44,380 --> 00:26:45,429 sırasıyla. 558 00:26:45,429 --> 00:26:47,970 Şimdi kodun başlangıç ​​bakmak Biraz daha şifreli, değil mi? 559 00:26:47,970 --> 00:26:53,590 Ama düşünmek eğer hangi sayfa I week0.php talep ediyorum halinde doing-- olup, 560 00:26:53,590 --> 00:26:59,880 biraz üzerinde çizim gibi burada-- week0.php istenen, 561 00:26:59,880 --> 00:27:00,960 bu ne anlama gelir? 562 00:27:00,960 --> 00:27:04,410 >> Kelimenin tam anlamıyla, bu dosya tarayıcı tarafından istedi. 563 00:27:04,410 --> 00:27:06,240 Web server-- da bilinir 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- Bu kapmak Dosya, week0.php ve okur 565 00:27:09,250 --> 00:27:10,780 o yukarıdan aşağıya, soldan sağa. 566 00:27:10,780 --> 00:27:15,400 Birinci hatta, hemen karşılaşır Açık braket soru işareti PHP gerektirir 567 00:27:15,400 --> 00:27:17,872 header nokta PHP ve böylece Ne PHP yorumlayıcı 568 00:27:17,872 --> 00:27:20,580 bu ağ-yapı halinde yerleşik does-- Sunucu, biz önceden çünkü 569 00:27:20,580 --> 00:27:24,580 o otomatik olarak geçer senin için çok header.php içine kopyalar içerikleri, 570 00:27:24,580 --> 00:27:25,640 onları buraya yapıştırır. 571 00:27:25,640 --> 00:27:28,790 >> Ama sonra tercüman karşılaşır Soru işareti yakın dirsek, 572 00:27:28,790 --> 00:27:30,320 bu nedenle tüm düşünerek yapılır. 573 00:27:30,320 --> 00:27:33,400 Şimdi sadece körü körüne tükürür hatları üzerinden yedi üzerinden iki, 574 00:27:33,400 --> 00:27:35,240 Sadece çiğ HTML çünkü. 575 00:27:35,240 --> 00:27:38,470 Sekiz satır alır ve yapar dosyayı açmadan vasıtasıyla yine aynı büyü, 576 00:27:38,470 --> 00:27:41,460 içeriğini kapma ve Onları gerektiren veya bunları yapıştırarak 577 00:27:41,460 --> 00:27:42,480 Tamam o zaman ya da orada. 578 00:27:42,480 --> 00:27:44,210 >> Ama ben sadece bir hata sorar gibiydi. 579 00:27:44,210 --> 00:27:48,610 Bu, geriye kısmi bir adımdır Biz header.php bakarsanız, çünkü 580 00:27:48,610 --> 00:27:50,850 Ben tür bir köşesini kesti ettik. 581 00:27:50,850 --> 00:27:56,250 Ben sırayla pes etmedi Ne özelliği Bu tartışılabilir daha iyi tasarım elde etmek için? 582 00:27:56,250 --> 00:27:57,305 Evet? 583 00:27:57,305 --> 00:27:58,180 HEDEF KİTLE: [duyulamaz] 584 00:27:58,180 --> 00:28:00,570 DAVID MALAN: Evet, ben tür Bir nontrivial köşe kesti. 585 00:28:00,570 --> 00:28:04,489 Sen ne değişiyordu işaret başlık oldu, başlık sayısı, 586 00:28:04,489 --> 00:28:05,530 ve H1 sayısı. 587 00:28:05,530 --> 00:28:08,170 Yani benim çözüm, tamam, oldu Sadece sayfa adlandırmak izin, 588 00:28:08,170 --> 00:28:10,080 ve bununla başa değil olursa olsun sorun. 589 00:28:10,080 --> 00:28:12,130 Böylece kısmi bir bulunuyor emin geri adım. 590 00:28:12,130 --> 00:28:14,300 >> Ama burada dikkat çekicidir ne Ben yaptım ki neler 591 00:28:14,300 --> 00:28:17,200 Aksi çarpanlarına edilir tüm ortak şeyler dışında. 592 00:28:17,200 --> 00:28:21,520 Ve footer.php de, ben çarpanlarına fark Bütün bunlar dışında, daha az da olsa, 593 00:28:21,520 --> 00:28:22,790 Ortak şeyler. 594 00:28:22,790 --> 00:28:26,070 Yani ben bir şekilde şimdi muktedir gerekir bir adım daha ileri götürmek ve düzeltmek 595 00:28:26,070 --> 00:28:27,160 Bu başlık sorunları. 596 00:28:27,160 --> 00:28:28,180 O yüzden böyle yapalım. 597 00:28:28,180 --> 00:28:35,060 >> Benim ikinci sürümü içine gidelim Burada, yine, hangi, aynı dosyaları var 598 00:28:35,060 --> 00:28:36,825 yeni bir ek haricinde. 599 00:28:36,825 --> 00:28:38,950 Ve biraz daha var ayrıntılı, ancak en eğer görelim biz 600 00:28:38,950 --> 00:28:40,550 Burada neler oluyor ayrı kızdırmak olabilir. 601 00:28:40,550 --> 00:28:45,370 Bunun yerine gerektiren header.php ve footer.php, 602 00:28:45,370 --> 00:28:50,180 Ben tek gerektiren gibi görünüyor file-- helpers.php, tabii ki, adı. 603 00:28:50,180 --> 00:28:52,560 Ve, bana şimdi şart izin helpers.php içinde ne 604 00:28:52,560 --> 00:28:55,330 fonksiyonların sadece bir demet ben hemen önce olduğu gibi yazdı. 605 00:28:55,330 --> 00:28:57,550 Ama bunu helpers.php çağırdı. 606 00:28:57,550 --> 00:29:00,370 >> Şimdi görünüşe göre, içinde çizgi, üç ve 10, ben 607 00:29:00,370 --> 00:29:02,840 İki functions-- çağırıyor başlığı render altbilgi vermekteyiz. 608 00:29:02,840 --> 00:29:05,040 Ile gelmiyor olanlar PHP, ben bu kendimi yazdım. 609 00:29:05,040 --> 00:29:07,880 Ve ben helpers.php koydum. 610 00:29:07,880 --> 00:29:11,210 >> Şimdi, biz sadece bu sözdizimi gördüm Bir kez, ve süper kısa oldu. 611 00:29:11,210 --> 00:29:15,330 Ama bu görünüşte bir argümandır başlık, fonksiyon işlemek için. 612 00:29:15,330 --> 00:29:16,450 Neden biliyor musunuz? 613 00:29:16,450 --> 00:29:18,522 Peki burada bir parantez yakın olduğunu, Burada açık bir parantez var. 614 00:29:18,522 --> 00:29:21,230 Ve tabii ki, sadece C gibi, Bu parantez şey 615 00:29:21,230 --> 00:29:23,350 Bir input-- ya da bir işlevine argüman. 616 00:29:23,350 --> 00:29:26,710 >> Bu argümanın veri türü nedir, Ben vurguladık ne dayalı? 617 00:29:26,710 --> 00:29:30,820 O köşeli parantezler ne geçen hafta dayanan, gösteriyor mu? 618 00:29:30,820 --> 00:29:33,390 Evet, bir array-- var: Özellikle bir ilişkisel dizi. 619 00:29:33,390 --> 00:29:35,700 Ve bu sözdizimi kuşkusuz Biraz korkak, 620 00:29:35,700 --> 00:29:38,860 ama bu sadece geçiyor bir anahtar değer çifti. 621 00:29:38,860 --> 00:29:43,530 Anahtar alıntı unquote olduğunu başlık ve değer CS50 olduğunu. 622 00:29:43,530 --> 00:29:46,220 >> Biz yapmış olsaydı, bu C, bunun yerine olabilir 623 00:29:46,220 --> 00:29:49,400 daha bunun gibi görünüyorsun, Sadece alıntı unquote CS50-- 624 00:29:49,400 --> 00:29:52,460 ya aslında kıvırcık olurdu parantezler, veya C böyle bir şey, 625 00:29:52,460 --> 00:29:55,580 nerede anahtar sıfırdır, ve değer CS50 olduğunu. 626 00:29:55,580 --> 00:29:59,840 Fakat yine de, PHP, olsa bile sözdizimi, yine biraz garip 627 00:29:59,840 --> 00:30:02,860 Eğer geçmesine izin verir kelime numara yerine 628 00:30:02,860 --> 00:30:05,120 değerleri ile anahtarları ilişkilendirmek. 629 00:30:05,120 --> 00:30:06,390 >> Peki bu ne anlama geliyor? 630 00:30:06,390 --> 00:30:09,750 Ben helpers.php içine giderseniz, Şimdi bu fonksiyonu bakalım. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php yerine renderHeader, benim işlevi 632 00:30:13,620 --> 00:30:16,220 ve ben görüyorum çünkü biliyorum Burada fonksiyon anahtar. 633 00:30:16,220 --> 00:30:19,450 Bu görünüşte onu C- yeni bir verilerinin-- adlı bir argüman alır 634 00:30:19,450 --> 00:30:22,400 ama bu denilen olabilirdi şey, ama ben, veri denir 635 00:30:22,400 --> 00:30:25,090 Biraz clean-- olmak ve Sadece özellikle bir tahmin almak 636 00:30:25,090 --> 00:30:28,173 Eğer diğer bazı programlanmış ettik daha önce üst düzey bir dil, bir şey 637 00:30:28,173 --> 00:30:29,820 C'nin üzerinde, kavramsal. 638 00:30:29,820 --> 00:30:33,820 >> Ne eşit açık dirsek yapar Muhtemelen köşeli ayraç demek? 639 00:30:33,820 --> 00:30:35,540 Ya bu ne anlama geliyor olabilir? 640 00:30:35,540 --> 00:30:39,660 Biz Evet C. bu görmedim? 641 00:30:39,660 --> 00:30:40,480 >> Boş bir dizi. 642 00:30:40,480 --> 00:30:45,440 Spesifik olarak, bu demektir, eğer Kullanıcı renderHeader aramıyor 643 00:30:45,440 --> 00:30:49,340 Bir argüman, ben hala gidiyorum Veri adında bir argüman var, 644 00:30:49,340 --> 00:30:52,327 ancak varsayılan değer boş bir dizi olacak. 645 00:30:52,327 --> 00:30:53,660 Yani bu sadece güzel bir kolaylık var. 646 00:30:53,660 --> 00:30:56,493 Ben, kullanıcıya bağırma yok ya da benim işlevi yanlış kullanılan söylüyorlar. 647 00:30:56,493 --> 00:30:59,849 Ben sadece kullanıcıya varsayılan verebilir değer, özellikle umurumda değil. 648 00:30:59,849 --> 00:31:01,890 Şimdi bu fonksiyonu, ben benim ellerimi dalga olacak. 649 00:31:01,890 --> 00:31:07,620 Ama bu özü işlevi veriyor Bize verilerde bu değişkenleri geçmek 650 00:31:07,620 --> 00:31:10,360 şu şekilde header.php içine. 651 00:31:10,360 --> 00:31:13,100 Ve bu son parça, Ben korkak sözdizimi düşünüyorum. 652 00:31:13,100 --> 00:31:15,860 İşte benim yeni versiyonu arasında onu header.php-- 653 00:31:15,860 --> 00:31:20,140 kelimenin tam anlamıyla, derdi, açık braket başlık CS50, ve bu oldu. 654 00:31:20,140 --> 00:31:21,766 Ve H1 aynı şey. 655 00:31:21,766 --> 00:31:24,310 >> Şimdi görünüşe diyor çok korkak bir şey. 656 00:31:24,310 --> 00:31:28,030 Ve beni bu basitleştirmek izin Bir an için aşağıdaki gibi. 657 00:31:28,030 --> 00:31:31,020 Bu benim ettik budur olmak benim başlık değişti. 658 00:31:31,020 --> 00:31:35,140 Ancak, biraz çirkin oluyor PHP ile sürekli açık parantez için, 659 00:31:35,140 --> 00:31:36,610 ve sonra yazdırma işlevini kullanın. 660 00:31:36,610 --> 00:31:40,810 PHP bir steno sahip çıkıyor Sadece bu gösterimi, 661 00:31:40,810 --> 00:31:45,050 Teknik bir bir eşittir işareti, Çağrılan işlev yerine baskı yankı 662 00:31:45,050 --> 00:31:46,800 ancak etkili aynı şey. 663 00:31:46,800 --> 00:31:48,440 >> Bu sadece daha iyi görünüyor. 664 00:31:48,440 --> 00:31:50,510 Bu sadece bir sentaks var Şeker, eğer sen, 665 00:31:50,510 --> 00:31:52,260 bu benim kod biraz daha iyi görünmesini sağlar. 666 00:31:52,260 --> 00:31:54,010 Ama çıkıyor, ve Biz yine bu göreceğiz 667 00:31:54,010 --> 00:31:57,420 uzun zaman önce, biz bu aramak zorunda rahatsız edici uzun işlevi çağrılır 668 00:31:57,420 --> 00:32:00,582 HTML özel karakter olarak PHP, o çıkıyor, çünkü 669 00:32:00,582 --> 00:32:02,790 Bazı girişler vardır Kullanıcı bize verecekleri yönünde 670 00:32:02,790 --> 00:32:05,160 veya kullanıcıların bize verin diye, Bu sitemizi kıracağız. 671 00:32:05,160 --> 00:32:07,035 Ama biz bir sonraki göreceğiz JavaScript ile hafta. 672 00:32:07,035 --> 00:32:10,740 Ama şimdi, sadece biliyorum Bu dosya, headers.php, sadece 673 00:32:10,740 --> 00:32:13,040 başlık alır Ben geçirilen, bunu yapmak 674 00:32:13,040 --> 00:32:17,380 Güvenli olduğundan emin bir ağ-yapı halinde enjekte edilmesi sayfa ve benim başlık olarak dışarı tükürür 675 00:32:17,380 --> 00:32:18,640 ve benim H1 olarak. 676 00:32:18,640 --> 00:32:24,440 Yani şimdi bu sürümü giderseniz, konferanslar unvanını geri olduğunu fark, 677 00:32:24,440 --> 00:32:28,630 Haftanın sıfır geri unvanına sahip ve Gerçekten de, HTML I üreten ediyorum 678 00:32:28,630 --> 00:32:32,110 Ya benim ilk sürümü ile aynıdır Benim boşluk dışında Ben--, 679 00:32:32,110 --> 00:32:35,150 Ben biçimlendirme başladım çünkü farklı benim kod biraz. 680 00:32:35,150 --> 00:32:38,082 Ama ben oluşturulan ettik Ben umurumda kodu. 681 00:32:38,082 --> 00:32:39,790 Bu yüzden bana için duralım Sadece bir an ve görmek 682 00:32:39,790 --> 00:32:42,200 Herhangi bir sorunuz varsa veya karışıklık ben yarattım. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Pekala, o yüzden büküm edelim Biraz daha burada 685 00:32:48,150 --> 00:32:51,500 Bir var olup olmadığını görmek için iyileştirilmesi için bir fırsat. 686 00:32:51,500 --> 00:32:56,130 Helpers.php bu vardı işlevi, renderFooter çağırdı. 687 00:32:56,130 --> 00:32:59,652 Ve yaklaşık kayda değer ne renderHeader ve renderFooter? 688 00:32:59,652 --> 00:33:02,610 Ve yine, bugünün amaçlar için, biliyorum özü fonksiyonu sadece olduğunu 689 00:33:02,610 --> 00:33:08,280 geçen argümanları yolumu header.php ve footer.php içine. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Maalesef? 692 00:33:11,780 --> 00:33:13,056 >> HEDEF KİTLE: [duyulamaz] 693 00:33:13,056 --> 00:33:15,180 DAVID MALAN: Evet, ben sadece çizgi gerektirir değişti. 694 00:33:15,180 --> 00:33:19,410 Yani kelimenin tam anlamıyla, ben günah işledim kopyalama ve yapıştırma, yine. 695 00:33:19,410 --> 00:33:21,920 Bu çok büyük bir sayı değil hatlarının ama on-- gel 696 00:33:21,920 --> 00:33:25,220 Ben kopyalama ve her şeyi yapıştırarak ediyorsam Sadece küçük bir sözcüğü değiştirmek için, 697 00:33:25,220 --> 00:33:28,610 ve bir küçük kelime Alan işaret eden dışarı isimli karşı, burada altbilgi burada başlık. 698 00:33:28,610 --> 00:33:30,670 Aksi takdirde, her şey Aynı haricinde 699 00:33:30,670 --> 00:33:32,180 Tabii, işlevin isimler. 700 00:33:32,180 --> 00:33:33,690 Yani biz daha ne olabilir? 701 00:33:33,690 --> 00:33:39,810 >> Peki beni bu sürümünü açalım Burada, burada helpers.php olarak, 702 00:33:39,810 --> 00:33:42,300 neden sadece bir alamadım Bu konuda akıllı küçük? 703 00:33:42,300 --> 00:33:46,410 Biraz daha karmaşık yaz kodu, ancak işlemek diyorsun? 704 00:33:46,410 --> 00:33:48,470 Yani temelde ne değişti? 705 00:33:48,470 --> 00:33:51,770 >> Bir argüman alır şimdi-- İki argüman, hala veri. 706 00:33:51,770 --> 00:33:54,444 Ve sonra ilk ne Muhtemelen için kullanılan isim, 707 00:33:54,444 --> 00:33:55,860 Burada okuyorsanız ne dayalı? 708 00:33:55,860 --> 00:33:58,452 Bile sözdizimi bazıları hala yeni. 709 00:33:58,452 --> 00:33:59,660 Dolar işareti şablonu nedir? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Maalesef? 712 00:34:03,016 --> 00:34:03,710 >> HEDEF KİTLE: Başlık veya altbilgi. 713 00:34:03,710 --> 00:34:04,510 >> DAVID MALAN: Başlık veya altbilgi. 714 00:34:04,510 --> 00:34:07,134 Yani görünüşe göre, karar verdim ki eğer Değişen tek şey 715 00:34:07,134 --> 00:34:10,159 Ne istediğimi şablon print-- ve şablona tarafından 716 00:34:10,159 --> 00:34:13,100 Bunun için planı olduğu anlamına Ben çıktı istediğiniz kod, 717 00:34:13,100 --> 00:34:16,350 ama bazı takmak istiyorum values-- eğer öyleyse bu sadece başlık var 718 00:34:16,350 --> 00:34:20,440 veya altbilgi, neden parameterize yok Bu ve argüman dolar işareti arayın 719 00:34:20,440 --> 00:34:21,409 Şablon? 720 00:34:21,409 --> 00:34:26,250 Ve sonra bu korkak sözdizimi bana izin verir Burada bir değişkene bir yol oluşturmak için. 721 00:34:26,250 --> 00:34:28,030 >> Yani dolar işareti yolu bir değişkendir. 722 00:34:28,030 --> 00:34:31,120 Bu sözdizimi ne yapar Eğer bilginiz varsa, do? 723 00:34:31,120 --> 00:34:32,512 Evet? 724 00:34:32,512 --> 00:34:34,065 >> HEDEF KİTLE: [duyulamaz] 725 00:34:34,065 --> 00:34:34,940 DAVID MALAN: Kesinlikle. 726 00:34:34,940 --> 00:34:37,600 Şablon ise, unquote alıntı, header veya şablon ise, 727 00:34:37,600 --> 00:34:41,170 unquote alıntı, altbilgi, orada bu hat Ben vurgulanmış ettik, hat sekiz, 728 00:34:41,170 --> 00:34:46,330 sadece başlığının gibi, bu ismi alıyor, ve nokta PHP ile birleştirerek. 729 00:34:46,330 --> 00:34:49,750 Yani biz bu operatörü yoktu C. Bu nokta operatörüdür 730 00:34:49,750 --> 00:34:54,520 sen eğer PHP-- inanılmaz bir şey JavaScript veya Java aşina, 731 00:34:54,520 --> 00:34:56,949 Eğer artı kullanabilirsiniz birleştirme yapmak imzalamak. 732 00:34:56,949 --> 00:34:59,974 >> C, bu neck-- bir ağrı altı p-set ve ben, çok üzgünüm, 733 00:34:59,974 --> 00:35:02,390 Yapmanız gereken gidiyoruz bu-- bu boyun bir ağrı 734 00:35:02,390 --> 00:35:03,930 dizeleri bitiştirmek için. 735 00:35:03,930 --> 00:35:04,670 Neden? 736 00:35:04,670 --> 00:35:06,580 Peki, sen var çünkü eğer bu uzun olan bir dize, 737 00:35:06,580 --> 00:35:09,538 ve bu uzun olduğunu başka bir dize, Sadece onları bir arada fişi olamaz. 738 00:35:09,538 --> 00:35:11,070 Ne yerine C yapmak zorunda mı? 739 00:35:11,070 --> 00:35:11,680 Evet? 740 00:35:11,680 --> 00:35:12,380 >> HEDEF KİTLE: [duyulamaz] 741 00:35:12,380 --> 00:35:15,090 >> DAVID MALAN: malloc zorunda Bellek veya yığın üzerinde bir dizi kullanın. 742 00:35:15,090 --> 00:35:17,214 Ve aslında var Yeterince bu dizi büyük yapmak 743 00:35:17,214 --> 00:35:20,940 Bu artı bu sığdırmak için, artı ters eğik çizgi sıfır. 744 00:35:20,940 --> 00:35:24,994 Sonra kullanarak onları bir arada birleştirmek for döngüsü ile kedi veya manuel karıştırın, 745 00:35:24,994 --> 00:35:26,160 ya da herhangi bir teknikten yararlanılması. 746 00:35:26,160 --> 00:35:27,760 Ve size bir çift gösteren p-set altı. 747 00:35:27,760 --> 00:35:29,080 >> Bu boyun bir ağrı var. 748 00:35:29,080 --> 00:35:34,190 Ve bu benim hakkında ne demek istediğimi gerçekten bir PHP karşı C gibi paha karşı bu. 749 00:35:34,190 --> 00:35:36,870 Sadece daha fazlasına ulaşın Bedava işlevsellik, 750 00:35:36,870 --> 00:35:39,030 Eğer odak böylece, ideal, fun 751 00:35:39,030 --> 00:35:41,190 kodlama bölümü, Eğer çözmek istediğiniz proje, 752 00:35:41,190 --> 00:35:43,190 oldukça düşük seviyede önemsiz ayrıntılar daha. 753 00:35:43,190 --> 00:35:49,840 >> Yani bu sadece üretir header.php veya Ben dediğiniz birine dayalı footer.php. 754 00:35:49,840 --> 00:35:52,280 Ve gerçekten ben gidersem index.php içine, haber 755 00:35:52,280 --> 00:35:56,230 Tüm bu yerine changed-- var başlığını işlemek veya altbilgi oluşturma çağırıyor, 756 00:35:56,230 --> 00:36:00,230 Ben takip ediyorum hale çağırıyor Ben yapmak istiyorum şablonun adı. 757 00:36:00,230 --> 00:36:02,370 Ve sen de, bu göreceksiniz, probleminde, yedi set 758 00:36:02,370 --> 00:36:05,530 biz kullanmak için izin sayede Aynı işlev demet yapmak 759 00:36:05,530 --> 00:36:07,550 ve farklı web sayfalarının demet. 760 00:36:07,550 --> 00:36:10,570 >> Yani oldukça çok durmak daha Bu Detaylar-- çok fazla 761 00:36:10,570 --> 00:36:13,210 Eğer tekrar görürsünüz ki Sorun seti en bakalım yedi-- 762 00:36:13,210 --> 00:36:16,850 bir çözelti hemen başında daha ilginç bir soruna. 763 00:36:16,850 --> 00:36:19,310 Bugüne kadar hiçbir şey biz ettik yapılan kaydedilmiş veri var. 764 00:36:19,310 --> 00:36:22,920 Aslında, sadece zaman biz hiç biriktirdim Biz bu sınıfta yaptığım bir şey 765 00:36:22,920 --> 00:36:31,030 biz kısa bir süre çok basit bir demo vardı zaman geri, böylece biz, C dosyası IO kullanılan 766 00:36:31,030 --> 00:36:34,520 ve benim adına yazdığınız düşünüyorum ve Hannah'ın adı ve Maria'nın adı 767 00:36:34,520 --> 00:36:37,610 ya da belki Andy'nin adı ve o zaman CSV file-- kurtardı 768 00:36:37,610 --> 00:36:39,430 virgülle değerler dosyası ayrılmış. 769 00:36:39,430 --> 00:36:43,530 >> Ve biz sanırım fopen-- kullanılan Hatırladığım kadarıyla biz fprintf kullanılan 770 00:36:43,530 --> 00:36:44,910 ve biz bir dosyayı kaydettiğiniz. 771 00:36:44,910 --> 00:36:46,920 Şimdi, bu en basit Bir veritabanı formu. 772 00:36:46,920 --> 00:36:50,230 Sizin için bir web sitesi yapmak istiyorsanız Frosh IM programı, burada birinci sınıf 773 00:36:50,230 --> 00:36:53,390 ideal bir spor için kayıt olabilirsiniz Bu verilerle bir şeyler yapmak istiyorum. 774 00:36:53,390 --> 00:36:55,370 Geçen hafta, biz hiçbir şey yapmadı verilerinin-- biz sadece dedi, 775 00:36:55,370 --> 00:36:56,661 Eğer gerçekten, kayıtlıdır. 776 00:36:56,661 --> 00:36:58,950 Ya da belki gönderilecektir proctor, ve bu oldu. 777 00:36:58,950 --> 00:37:02,110 >> Elimde olsa Ama güzel olurdu o Proctor bir CSV dosyası vermek 778 00:37:02,110 --> 00:37:03,340 Bir Excel dosyası gibi. 779 00:37:03,340 --> 00:37:05,090 Veya daha iyisi, it would Elimde olsa güzel 780 00:37:05,090 --> 00:37:08,830 bu kullanıcıların isimleri koymak ve İsimleri yurt ve bütün 781 00:37:08,830 --> 00:37:11,740 Bir veritabanına o Sadece, sonsuza dek yaşar 782 00:37:11,740 --> 00:37:13,530 kadar verileri silmek için seçin. 783 00:37:13,530 --> 00:37:15,645 Sağlayan bir veri tabanı Beni bilgileri sorgulamak için. 784 00:37:15,645 --> 00:37:18,070 Ve gerçekten de, bir veritabanı budur. 785 00:37:18,070 --> 00:37:20,470 >> Bugün tanıtmak ve Önümüzdeki hafta da bir teknoloji 786 00:37:20,470 --> 00:37:25,020 denilen SQL-- bir Structured Query Başka bir dildir dil. 787 00:37:25,020 --> 00:37:28,750 Bu temelde bir programlama var dil, ancak veritabanları için. 788 00:37:28,750 --> 00:37:31,760 Ve şimdi bir veritabanı sadece Bir süper fantezi versiyonu olarak düşünmek 789 00:37:31,760 --> 00:37:35,710 Microsoft Excel veya Google Tablolar, veya Apple Numaraları. 790 00:37:35,710 --> 00:37:39,950 Genellikle sağlayan bir program veri bir sürü saklamak için 791 00:37:39,950 --> 00:37:43,960 sütunlar ve sıralar içinde oldukça gibi Excel'de olabilir. 792 00:37:43,960 --> 00:37:47,100 >> Ama ne, özellikle güzel Biz Excel ile süper aşina değiliz 793 00:37:47,100 --> 00:37:52,040 Ne SQL yapmanızı sağlar sorgu şudur kod satırları yazarak bilgi 794 00:37:52,040 --> 00:37:55,220 nerede can, hatta eğer senin Veritabanı, o bir milyon satır var 795 00:37:55,220 --> 00:37:57,190 Eğer işler süper hızlı bulabilirsiniz. 796 00:37:57,190 --> 00:37:59,950 Aslında, Excel, özellikle bir büyük veri kümeleri kötü. 797 00:37:59,950 --> 00:38:02,460 Ve aslında, birkaç kadar yıllar önce, çıktı 798 00:38:02,460 --> 00:38:08,890 Excel, yalnızca saklamak için izin verecek verilerinin-- kadar 65.535 satır 799 00:38:08,890 --> 00:38:12,020 En ancak, bir sürü gibi geliyor zaman, bir grad öğrenci oldu 800 00:38:12,020 --> 00:38:14,920 ve ben üzerinde açma hatırlıyorum bu benim üreten çünkü 801 00:38:14,920 --> 00:38:17,900 Benim araştırma ve ben CSV dosyalarını bunları hızlı bir şekilde analiz etmek istedim 802 00:38:17,900 --> 00:38:19,530 Sadece Excel'de açarak. 803 00:38:19,530 --> 00:38:23,730 Tabii ki, benim bilgisayar çöktü, Ben 65.000'den fazla satır vardı çünkü. 804 00:38:23,730 --> 00:38:27,210 >> Ama 65.535 nereden geldi? 805 00:38:27,210 --> 00:38:29,670 Microsoft ne yapıyordu, muhtemelen? 806 00:38:29,670 --> 00:38:32,430 Eğer iki güçlerin iyi iseniz? 807 00:38:32,430 --> 00:38:37,160 Evet, onlar bir 16-bit kullandığını değer satır sayısını temsil etmek. 808 00:38:37,160 --> 00:38:41,310 Ve 16, iki 65,536-- eksi bir, çünkü eğer 809 00:38:41,310 --> 00:38:45,414 Sıfır endeksi oldu demektir Ben olabilir satır çoğu sayısı. 810 00:38:45,414 --> 00:38:46,830 Ve bu sadece bir tasarım karardı. 811 00:38:46,830 --> 00:38:52,760 16 bit kaydederek, onlar beni sınırlı yerine 4 milyar 16.000 satır için, 812 00:38:52,760 --> 00:38:54,322 ki ben ideal olabilirdi. 813 00:38:54,322 --> 00:38:57,030 Ama şimdi, biz gidiyoruz Bir web bağlamında bu daha tanıtmak. 814 00:38:57,030 --> 00:39:00,390 Peki SQL hakkında güzel olduğunu bile olduğunu oldukça güçlü ve güzel olsa 815 00:39:00,390 --> 00:39:04,050 Sofistike, gerçekten kaynar aşağı dört temel işlemleri, dört 816 00:39:04,050 --> 00:39:08,060 tuşu işlevleri, seçtiğiniz will-- eğer, , veri almak arama için 817 00:39:08,060 --> 00:39:12,510 veri; silmek veya veri silme; veritabanına satır eklemek için insert; 818 00:39:12,510 --> 00:39:13,410 ve güncellenmesi. 819 00:39:13,410 --> 00:39:17,010 Hiç Google kullanmış eğer öyleyse Tablolar, Apple Sayılar, Microsoft 820 00:39:17,010 --> 00:39:19,310 Excel, siz idam, Büyük olasılıkla, her 821 00:39:19,310 --> 00:39:22,530 Bir insan olarak bu operasyonların kriteri Sadece klavye ve mouse-- kullanarak 822 00:39:22,530 --> 00:39:26,050 Gözlerini, veri ekleme kullanarak seçmek veya veri aramak için, 823 00:39:26,050 --> 00:39:28,360 ya da veri güncelleme veya silme veri. 824 00:39:28,360 --> 00:39:29,870 >> Peki bu ne anlama geliyor? 825 00:39:29,870 --> 00:39:34,300 Peki, CS50 önceden yüklenmiş IDE MySQL adında bir programdır. 826 00:39:34,300 --> 00:39:37,050 Bu ücretsiz, açık kaynak var Süper popüler veritabanı. 827 00:39:37,050 --> 00:39:40,590 Facebook'tan, örneğin, bu için kullanır Onlar kullanan diğer araçlar arasında gün. 828 00:39:40,590 --> 00:39:44,300 Ve çok popüler web siteleri bir çok kullanırım o büyük ölçüde, hızlı, çünkü 829 00:39:44,300 --> 00:39:45,230 ve ücretsiz çünkü. 830 00:39:45,230 --> 00:39:46,820 Kesinlikle rağmen alternatifler var. 831 00:39:46,820 --> 00:39:49,580 Ve bazılarınız ile uğraşmak olabilir Nihai projeler için alternatifler. 832 00:39:49,580 --> 00:39:55,330 >> Bu arada, bir ekran görüntüsü phpMyAdmin adında bir web-tabanlı bir araç. 833 00:39:55,330 --> 00:39:58,260 Bu bir tesadüf olduğunu Bu web tabanlı bir araç da 834 00:39:58,260 --> 00:40:01,720 Bir dilde yazılmış, PHP, ama yapmak istemedim ne 835 00:40:01,720 --> 00:40:04,620 Bize vermek bir web tabanlı Bir veritabanına arayüz. 836 00:40:04,620 --> 00:40:07,180 MySQL tipik olduğu için bir şey, tarihsel olarak, size 837 00:40:07,180 --> 00:40:08,770 Sadece etkileşim olur bir komut satırı ile. 838 00:40:08,770 --> 00:40:10,811 Ve bu süper olurdu can sıkıcı ve sahip oynamasından 839 00:40:10,811 --> 00:40:14,487 seçmek için metinsel komutları yazın veri veri eklemek ve verileri silin. 840 00:40:14,487 --> 00:40:16,820 Internet üzerinden Yani bazı insanlar web tabanlı bir program yazdı 841 00:40:16,820 --> 00:40:18,900 sadece bize yönetmesine izin olduğunu Bizim veritabanı verileri. 842 00:40:18,900 --> 00:40:23,040 Bu Excel çift tıklayarak gibi, ve bunların web tabanlı bir sürümünü çalıştıran. 843 00:40:23,040 --> 00:40:26,370 >> Ve sizin için bu kullanmak için gidiyoruz ne sonuçta gelecek hafta değil, p-set altı, 844 00:40:26,370 --> 00:40:28,680 ama bir şey inşa etmek CS50 Finans denir ki 845 00:40:28,680 --> 00:40:32,630 bir veritabanına sahip oluyor kullanıcı adları ve şifreleri ile kullanıcılar, 846 00:40:32,630 --> 00:40:34,860 Dolar tutarları onlar banka hesaplarında var. 847 00:40:34,860 --> 00:40:37,280 Olacak Eğer saklamak için kullanabileceğiniz bir şey 848 00:40:37,280 --> 00:40:39,910 semboller ve miktarları hisse senetlerinin Kullanıcıların 849 00:40:39,910 --> 00:40:42,567 Sanal kullanılarak almış Onlara vereceğim dolar. 850 00:40:42,567 --> 00:40:44,900 Ve kullanıcıların izin gidiyor Siteniz için kayıt, 851 00:40:44,900 --> 00:40:47,190 bu yüzden bile arkadaşlarınız o Web sitenize de ayar yapabilirsiniz 852 00:40:47,190 --> 00:40:49,360 ve aslında kaydolun oturum ve çevresinde oynamak 853 00:40:49,360 --> 00:40:52,807 ve kodunuzda hata bulmak için çalışın, ve web sitenizde hataları bulmaya çalışın. 854 00:40:52,807 --> 00:40:55,390 Ve onlar sadece tarafından kayıt edeceğiz etkin bir şekilde, kendileri ekleme 855 00:40:55,390 --> 00:40:58,120 kodu ile size veritabanına yazmak. 856 00:40:58,120 --> 00:41:02,470 >> Örneğin, bu hızlı ekran görüntüsü ne bir veritabanı gibi görünebilir. 857 00:41:02,470 --> 00:41:05,190 Bu birine ait olduğunu Geçen yılki solutions-- 858 00:41:05,190 --> 00:41:07,760 Bu mini Excel gibi Bizim veritabanında saklanır, dosya, 859 00:41:07,760 --> 00:41:09,950 MySQL denilen bu yazılım saklanır. 860 00:41:09,950 --> 00:41:13,260 Sol tarafta, ben görünüşte ettik Her kullanıcıya benzersiz bir numara verilir. 861 00:41:13,260 --> 00:41:16,200 İkinci sütunda, ben verdim Herkes, bir kullanıcı kendi aşkına-- 862 00:41:16,200 --> 00:41:16,880 aralarında. 863 00:41:16,880 --> 00:41:21,430 Ve sağ tarafta, Ben onlara bir karma verdik. 864 00:41:21,430 --> 00:41:26,760 >> Şimdi bu aslında bir şifre, ama düz metin parola değil. 865 00:41:26,760 --> 00:41:30,160 Bu ise, bir şifreli parola var olacak, ya da karma şifre. 866 00:41:30,160 --> 00:41:32,000 Hangi önce uzun geri geleceğiz. 867 00:41:32,000 --> 00:41:34,340 >> Ama sen hiç okudum eğer nasıl bir makale 868 00:41:34,340 --> 00:41:37,950 Bazı banka veya bazı şifrenizi Web sitesi, ele geçirilmiş olabilir 869 00:41:37,950 --> 00:41:39,630 genellikle iki şeyden biri anlamına gelebilir. 870 00:41:39,630 --> 00:41:42,780 Yani bu altı kullanıcıların sadece bir alıntıdır. 871 00:41:42,780 --> 00:41:45,460 Hepiniz şimdi anlamaya hack ve çatlama aracılığı ile 872 00:41:45,460 --> 00:41:47,690 Bizim altı kişinin şifreleri nelerdir. 873 00:41:47,690 --> 00:41:49,720 Ama sen hiç gotten eğer Bir uyarı ya da bir özür 874 00:41:49,720 --> 00:41:52,803 bir şirket ya da web sitesi söyleyerek gelen, üzgünüm, bir hacker, bizim veritabanına kırdı 875 00:41:52,803 --> 00:41:56,360 muhtemelen değiştirmek gerekir senin şifre, ne demek olabilir? 876 00:41:56,360 --> 00:41:59,670 >> Eh, bir, anlamına gelebilir şirket, daha zekâlı olmuştur 877 00:41:59,670 --> 00:42:03,630 ve şifrenizi saklamak olmuştur Böyle bir sütunda, şifrelenmemiş. 878 00:42:03,630 --> 00:42:05,840 Hangi düşman demektir, kim, veritabanı çaldı 879 00:42:05,840 --> 00:42:07,440 kelimenin tam anlamıyla sizin yanınızdaki bilir kullanıcı adı ve şifre. 880 00:42:07,440 --> 00:42:08,960 Yani olabilecek en kötü senaryo. 881 00:42:08,960 --> 00:42:11,710 Ve p-set göreceğimiz gibi Yedi önlemek çok kolay. 882 00:42:11,710 --> 00:42:15,624 Kesinlikle mazeret bunun için var Bugünün internet aptallık formu. 883 00:42:15,624 --> 00:42:18,540 Iki-- ve biz bazı makaleler bulabilirsiniz bu hala gerçeği tanıklık 884 00:42:18,540 --> 00:42:21,710 nonetheless-- olur İki, belki düşman 885 00:42:21,710 --> 00:42:23,840 veritabanının bu sürümü çaldı. 886 00:42:23,840 --> 00:42:27,110 Hangi hala biraz kötü çünkü şimdi onlar altı müşteriler var olduğunu biliyorum, 887 00:42:27,110 --> 00:42:29,270 Ben kullanıcı adları biliyorum Bu altı müşterilerinin, 888 00:42:29,270 --> 00:42:32,910 ve ben şifreli biliyorum sürümleri, ya da karma versiyonları 889 00:42:32,910 --> 00:42:34,340 Bu altı müşterilerin şifreler. 890 00:42:34,340 --> 00:42:37,010 Sizden kim olabilir ama yapılmış [? Hacker 2?] 891 00:42:37,010 --> 00:42:41,150 Eğer şifreleri çatlamış veya nereye götürdüklerini Bir sorun bu sürümü bakmak 892 00:42:41,150 --> 00:42:46,280 set, neden hala biraz endişe verici öyle düşman senin karma bilen varsa 893 00:42:46,280 --> 00:42:47,435 şifreler? 894 00:42:47,435 --> 00:42:49,732 >> HEDEF KİTLE: ellerinden geldiğince Çünkü Bütün sözlüğü girin 895 00:42:49,732 --> 00:42:50,690 karma işlevi. 896 00:42:50,690 --> 00:42:54,520 Ve şifrenizi bir sözlük ise kelime [? onlar sadece match-- edebilir?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID MALAN: Kesinlikle, hasım Sadece biraz sizin gibi kod yazabilirsiniz 898 00:42:57,640 --> 00:43:00,526 [için mi? Hacker?] 2, Eğer üzerinde yineleme sayede 899 00:43:00,526 --> 00:43:03,400 sözlükteki kelimelerin hepsi, A ya da tüm muhtemel kombinasyonları 900 00:43:03,400 --> 00:43:06,610 Z arasındaki ve nine-- boyunca bir hangi bir sürü gibi geliyor, ve öyle. 901 00:43:06,610 --> 00:43:08,361 Ama bir bilgisayar için, oldukça lanetlemek hızlı. 902 00:43:08,361 --> 00:43:10,610 Ve aslında, oldu noktası [? Hacker 2,?] Oldu 903 00:43:10,610 --> 00:43:12,540 bu maddeleri almak kelimenin tam anlamıyla, bu gibi görünüyor 904 00:43:12,540 --> 00:43:14,900 ve tersine mühendislik ne aslında. 905 00:43:14,900 --> 00:43:17,270 >> Nasıl biz Yani biz bakacağız daha verimli saklamak. 906 00:43:17,270 --> 00:43:20,210 , Minnetle MySQL, çıkıyor veri tipleri olmak için oraya gidiyor. 907 00:43:20,210 --> 00:43:22,800 Ve hakkında eğlenceli parçalarından biri veritabanı tasarım, dürüst olmak gerekirse, 908 00:43:22,800 --> 00:43:25,810 Aslında kendiniz için karar olduğunu nasıl verileri temsil etmelidir? 909 00:43:25,810 --> 00:43:29,630 Eğer bir telefon numarasını temsil etmelidir Büyük bir sayı, ya da uzun gibi bir int? 910 00:43:29,630 --> 00:43:31,630 Ya da aslında yaparsınız karakter dizisi olarak? 911 00:43:31,630 --> 00:43:33,780 Ve çok olabilir Bu olmayan önemsiz etkiler. 912 00:43:33,780 --> 00:43:36,714 >> Aslında, tek bir erken, eğlenceli hikayeler germane 913 00:43:36,714 --> 00:43:39,880 Mark Zuckerberg kurarken olduğunu Facebook, özgün yazılmış, 914 00:43:39,880 --> 00:43:42,300 ve hala büyük ölçüde PHP ile yazılmış. 915 00:43:42,300 --> 00:43:45,400 Ve en büyük zorluklardan biri onlar erken ölçeklendirme oldu karşı karşıya. 916 00:43:45,400 --> 00:43:48,820 Onlar sonra okula ekleyerek tuttu zaman Okul okuldan sonra, benim gördüğüm kadarıyla, 917 00:43:48,820 --> 00:43:51,639 Orijinal çözümlerden biri kopyalama ve yapıştırma esasen oldu 918 00:43:51,639 --> 00:43:53,430 database ve kod bazı 919 00:43:53,430 --> 00:43:55,346 Harvard olduğu şekilde Kendi sunucu üzerinde çalışan, 920 00:43:55,346 --> 00:43:56,995 ve MİT kendi sunucu üzerinde çalışan oldu. 921 00:43:56,995 --> 00:43:59,120 Bu neden, bazı Sizden kim hatırlamak olabilir, 922 00:43:59,120 --> 00:44:01,510 Eğer arkadaşlarım var olamazdı Diğer ağlarda. 923 00:44:01,510 --> 00:44:05,050 >> Muhtemelen de arkadaşın yok 10 ya da öylesine yıl önce MİT veya Harvard, 924 00:44:05,050 --> 00:44:07,467 ama sen ağları yayılan olamazdı kısmen bu nedenle. 925 00:44:07,467 --> 00:44:10,550 Ve en büyük zorluklardan biri Mark ve Facebook gibi şirketler için 926 00:44:10,550 --> 00:44:13,460 aslında yüzlerce işleyen ve binlerce milyonlarca 927 00:44:13,460 --> 00:44:14,460 Saniyede istekleri. 928 00:44:14,460 --> 00:44:16,501 Yani işler biz başlayacağız Bu hafta bahsediyoruz 929 00:44:16,501 --> 00:44:19,860 Gerçekten germane olacak İyi yazılım yazma ve halk 930 00:44:19,860 --> 00:44:23,040 Başarılı araçlar olduğunu kullanıcıların bir sürü işleyebilir. 931 00:44:23,040 --> 00:44:25,460 >> Yani biz şeyleri konuşacağız indeksleme ve arama gibi, 932 00:44:25,460 --> 00:44:26,910 ancak bugün için öyle. 933 00:44:26,910 --> 00:44:28,780 Biz Çarşamba günü daha fazla bilgi için sizi görecek. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [MÜZİK - "Seinfeld" TEMA] 936 00:44:33,902 --> 00:44:35,943 DAVID MALAN: size edebilirsiniz o ve ondan çıkarmak. 937 00:44:35,943 --> 00:44:38,859 Ve sopa zorunda değilsiniz belleğin bir kısmı önceden belirlenmiş bir miktarı. 938 00:44:38,859 --> 00:44:40,580 Peki, o çağrılacak gidiyor? 939 00:44:40,580 --> 00:44:42,369 >> KONUŞMACI 1: Peki, ne oluyor? 940 00:44:42,369 --> 00:44:43,535 HOPARLÖR 2: Ne demek istiyorsun? 941 00:44:43,535 --> 00:44:44,451 O bir konferans veriyor. 942 00:44:44,451 --> 00:44:47,650 DAVID MALAN: Ve biz kullanabilirsiniz Fonksiyon memory-- için malloc denilen 943 00:44:47,650 --> 00:44:50,050 >> KONUŞMACI 1: Neden kollarını hareket etmiyor? 944 00:44:50,050 --> 00:44:52,450 >> HOPARLÖR 2: Peki bu- bilirsin, bu normaldir. 945 00:44:52,450 --> 00:44:57,162 O sadece var gibi bu sadece Büyük sosis orada asılı. 946 00:44:57,162 --> 00:44:59,040 >> KONUŞMACI 1: Bu normaldir? 947 00:44:59,040 --> 00:45:03,096 >> HOPARLÖR 2: Evet, ben biz düşünmek Sadece yanlışlıkla diye varsayıyorum 948 00:45:03,096 --> 00:45:06,840 superglue ile yaptığı deodorantı yerini aldı. 949 00:45:06,840 --> 00:45:07,608