[MUSIC PLAYING] DAVID Malan: Bu CS50, və Bu həftə səkkiz başlanğıc. Və biz salamlayıram mutluyuz geri, böyük sürpriz, CS50 öz Ramon Galvan olmuşdur yüksələn bir baş Son bir neçə ay sərf LA İyul ayından bu yana, Hollywood, sanki yeni TV iş Colony adlı şou yaradıcısı əslində bir Harvard zəy özü. Və belə ki, biz bu görmək mutluyuz Amerika Birləşmiş Ştatları şəbəkə bu Yanvar debüt. Belə ki, üçün bizi qalmaq üçün həftə daha Ramon gəlib. Sonuna yaxın olduğunu artıq bilirik. Və nə bu deməkdir yoxdur ki, bütün çox demək kədərli, CS50 ayrıldı. Biz yalnız üç problem var dəstləri var əgər sol problem var Altı müəyyən Sizin əlləri indi və ya tezliklə olacaq sonra nəzərdə tutulur week-- bu körpü görə command line, bizim aləmlərin Biz istifadə edərək çox vaxt sərf etdik C, və web proqramlaşdırma dünya. Yaxşı, siz fikir bir çox görəcəksiniz command line iş borc, lakin yeni də bir çox və maraqlı fikir də ilgili olacaq ki, mobil ərizə və texnologiya, ümumiyyətlə, olan siz uşaqlar bu gün bütün tanış noutbuk və telefonlar və kimi. Belə ki, deyil həyata olacaq bir web səhifə və ya bir web özlüyündə, lakin faktiki web server. Bir web server qalan yazacaq kimin məqsədi həyat C yazılmış HTTP istekleri, o qəbul edir biz söhbət saxlamaq virtual zərfləri haqqında, və həqiqətən ilə ya cavab bir dot HTML kimi statik content-- fayl, və ya dot JPEG və ya faylları hər hansı bir digər sayı, və ya hətta bir PHP fayl vasitəsi web server ki, PHP şərh gedir kodu və nəticələri tüpürmək. İndi biz ilə təmin etdik çərçivəsində kifayət qədər bir az Həqiqətən pseudocode üçün problem distribution kodu altı 1000-dən artıq xətləri uzun qurmaq, bir çox şərh, fair-- olmaq lakin bu, həqiqətən deməkdir bir fürsət olmaq çirkli dalğıc öz əlləri almaq üçün kifayət qədər böyük layihə biz çox xüsusi var ki, sizin üçün həyata həkk ədəd, ki, həqiqətən, sizin CS50 çıxmaq zaman və proqramlaşdırma real dünya daxil edin və dabble istəyirəm layihələrin hər hansı bir sayı, Siz daha çox lazımdır rahatlıq bəzi mənbə yüklənərkən indeksi, bəzi açıq mənbə web layihə, və dalğıc edilməsi Siz uyğun gördüyünüz dəyişikliklər. Problem yeddi haqqında olacaq müəyyən Öz web-based tətbiq edilməsi ki, dinamik daxil edir və şəklində dinamik məhsulun istehsal bir etrade.com kimi web. Və problem səkkiz hələ müzakirə olunacaq müəyyən JavaScript kimi tanınan bir dil. Eyni zamanda, son Layihə üfüqdə edir. qondarma pre-təklifi bu gün bir həftə bağlıdır. Dəqiqləşdirilməsi üzrə Pre-proposal--, CS50 website-- haqqında olan olduqca təsadüfi imkan üçün Siz olduqca yığcam e-poçt göndərmək Sizin tədris fellow yalnız onu bildirmək üçün və ya düşüncə etdiyiniz nə üçün onun bir Səslənən board kimi ona istifadə edin. Və ağlı başında olma var yoxlamaq Əgər düşüncə etdiyiniz olub Çox off yeme haqqında çox az çox və ya bəlkə, və ya bəlkə siz heç bir fikrim yoxdur və söhbət məşğul istəyirəm. Bundan sonra bir təklifdir və statusu hesabat, Burada deyilən CS50 Hackathon Harvard və Yale tələbələri üçün Cambridge eyni. final layihənin həyata keçirilməsi, sonra bağlıdır. Və sonra burada CS50 ədalətli, Cambridge, eləcə də New Haven başqa kimi. Təklifi Belə ki, nəzər bu özəllikləri üçün haqqinda. Amma daha excitingly, çox, bir imkan əlləri çirkli almaq üçün, və bütövlükdə açıq Ürəyinizdə mövzular və alətlər dəstə və texnika köməkçi var Kursun əsas tədris proqramı, lakin buna baxmayaraq bağlı. Həmçinin gözəl gücləndirməklə daş üçün həqiqətən, sərin final layihələr bunu ki, yaxşı material kənarda, biz əhatə etdik getmək formal problem dəstləri və ya mühazirə. Belə ki, CS50 veb səhifəsinə getmək seminarlar bütün siyahısı. Siz hələ qeydiyyatdan deyilsə, ki, gözəl. Durmayın, hələ qeydiyyatdan və biz canlı streaming link ilə təqib, gün və vaxt saytında edir. Və hər şey olacaq qeyd və online qoymaq Siz edə bilməz, əgər xüsusi gün və dəfə. Thereafter-- də irəlidə yalan nə kimi, əlbəttə, CS50 Hackathon var. Qəbul həftə sıfır Bu foto, geri, son illərdə axşam bir AM 4 ətrafında. CS50 ədalətli, yenə hər iki şəhərdə baş tutacaq. Və sonra, yalnız bitki toxum, hətta hələ də olsa bir ay plus varsa, dövr sol Siz CS50 öz tədris qoşulmaq istərdim heyəti, və siz başlamaq istəyirəm bir CA olma haqqında düşünür, və ya tədris fellow, bilirik ki, ki, haqqında daha çox söhbət başlamaq lazımdır bu dövr. Amma burada təsvir bu il komandanın ən. Belə ki, php və mən kədərli idi Keçən həftə [ki? Allyse?] Xahiş əldə səy getdi Bizə bu gözəl rekvizit Mən istifadə başa deyil ki, belə həqiqətən yalnız cür axmaq baxdı biz bütün burada oturan bir kürək var idi ki, gün keçən çərşənbə, və bir az qaşıq. Amma bu mənim məcazi idi boya çalışır yolu niyə biz keçid edirik şəkil C PHP kimi bir dil. Və eyni hər hansı bir ola biləcəyini söylədi dillərdə Java, Python, Ruby sayı others-- lakin isə ya dəstələri C, məsələn, C bir proqram yazmaq adətən kimi ola bilər oxşar qaşıq alaraq və bir deşik qazma torpaq, qum və ya kir. PHP çox etmək üçün imkan verir problemin böyük sokması, daha az kodu yazmaq bir qədər kiçik aracı istifadə edərək, daha çox belə var, çünki funksionallıq da parçalı. İndi, biz, həqiqətən dramatik olsaydı, biz kürək üçün bir şey var ediyorum Burada, lakin belə ola bilər. Eyni zamanda, digər məcaz biz ilə gəldi Əlbəttə ki, siz ola bilər, deyil bir açarı kimi bir şey istifadə bir dırnaq kimi bir şey çəkic. Amma əlbəttə, doğru istifadə alət gedir çox deyil olmaq dil adlı C- və indi yalnız rahatsız [? Sanders,?] Yəqin ki, biz belə ki later-- düzeltmek lazımdır doğru vasitədir tez-tez istifadə etmək olmaq niyyətində deyil Bu aşağı səviyyədə alət. Həqiqətən, C bir dil deyil ki, Sizin ən heç istifadə edir və ya mütləq yenidən istifadə etməlidir. Və əslində, bir az yalnız vaxt secret-- Mən C özümü arasında olduqca çox istifadə Hər payız sentyabr və dekabr semestr. Və biz, çünki bir fürsət kimi istifadə əsaslarını öyrətmək üçün proqramlaşdırması, və kompüter ilə elm əsasları, data strukturları, alqoritmlər və like-- lakin çox tez olacaq sintaksis ki, indi çox və ideyaları C əsas belə gözəl var daha müasir transfer yüksək səviyyədə languages ​​kimi PHP və Python və Perl və Java və Objective-C-, çox deyil, həqiqətən, Objective-C-lakin Swift, bu yeni languages ​​ki, sizin çox olacaq sonra final layihə ilə dabble. Daha ADO olmadan, belə ki, həqiqətən edək bəzi problemləri həll etmək üçün PHP istifadə edin. Son ki, erkən Xatırladaq həftə, biz yalnız istifadə CS50 IDE, bir dinky az proqram yazıb ki, yalnız "Salam dünya" dedi. Və sonra mən onu xilas bir fayl hello.php çağırıb. Və sonra mən bu komanda qaçdı. Və niyə? İngilis, burada nə olub? Mən nə etdiyimi Mən bu komanda qaçdı? Evet? Auditoriya: bir funksiyası PHP var ki in-- başa düşür ki, nə deyilir. DAVID Malan: Yaxşı, bir funksiyası var Php və mənə daha konkret olsun, PHP adlı proqram a.k.a. var Anlayır tərcüməçi, hello.php məzmunu, və top şərh alt, soldan sağa və həmin əmrləri demək nə. hello.php olan əmrləri, əlbəttə, yalnız kod funksiyaları mənbəyidir və dəyişənlərin və loops və kimi, biz özümüz ki, PHP yazılı başlayıb. Lakin C fərqli olaraq, olan bir tərtib dili, PHP yalnız yazmaq və axır. Siz ki komisyoncu addım keçmək adet sıfır və olanları üçün konvertasiya, və sonra çalışır. Və bu bir ayaq nədir? Niyə biz addım atlama olunur? Niyə daha çox müasir languages ​​etmək Bu addımı atlamak edirlər? Fayda nə idi? Və ya yalnız daxilən? Biz etdik, hətta əvvəl çox PHP yazılı, nə haqqında faydalı deyil kodu tərtib sizcə? Yox? Törətməkdə deyil? Başını cızma? Bəli. Auditoriya: Daha dinamik. DAVID Malan: Daha dinamik? Siz nə deməkdir? Auditoriya: [işitilemez] DAVID Malan: OK, yaxşı, belə ki, giriş asılı olaraq, Siz hər zaman tərtib etmək yoxdur. Və həqiqətən kimi that-- kimi sadə nə davam nöqtəsidir kodu tərtib etmək? Bu yalnız bir addımdır making-- bu tələb olunur Son bir neçə üçün həftə, iki dəfə çox addımlar kimi yalnız proqram çalışan. Bu sizin ki, görən faydalı oldu , s bəzi səhv mesajları və görmək lakin hələ yalnız bir annoying addım var. Və belə proqramçılar həyata zamanla, niyə biz deyil yoxdur languages ​​yazmağa başlayın ki, kifayət qədər mexaniki addım lazımdır belə ki, yalnız yaza bilərsiniz Sizin kodu və axır. Lakin qiymət nə idi biz ödədik gördüm ki, müəyyən bir misal ilə, həftə son? Bəli? Speed. Belə ki [? ?] tərcüməçi nə bir az yavaş, ki, adet sıfır və olanları gözəl və bir kompüter üçün sürətli anlamaq üçün, çünki Intel CPU, və ya nə, yalnız neler anlayır bit o nümunələri ilə. Tərcüməçi isə bir proqram ki, həqiqətən deyil Ascii qaynağından oxumaq üçün var Siz yazılı indeksi, və çevirmək, belə ki, danışmaq, və ya bu son nəticədə çevirir necə anlamaq adet sıfır və olanları. Belə ki, yalnız bir az edir bir performans hit bit. Belə ki, ticarət-off bir az var. Biz burada bunu İndi əgər, mənə imkan irəli getmək və aşağıdakı kimi bir nümunə yoxdur. Mən burada getmək varsa, yeni bir fayl, mən gedirəm yenə bu saxlamaq üçün hello.php edir. İndi irəli getmək üçün gedirəm və "print salam dünya", deyə - və mən çap istifadə edə bilərsiniz ki, xatırlayıram, mən deyil print-F istifadə etmək lazımdır. İndi burada, Mən hello.php PHP əgər, huh-- mən şərh üçün görünmür. Mən yanlış nə idi? Auditoriya: bucaqlı bilərziklər. DAVID Malan: Bəli, sizə lazım olan ki, bucaq bracket qədər top. Belə ki, annoying cür, lakin tez istifadə almaq. Mən PHP kodu yazmaq varsa, mən ümumiyyətlə proqram demək lazımdır, və ya hey, tərcüməçi demək PHP, burada bəzi PHP kodu gəlir. Və sonra yaxşı tədbir üçün, mən Bu bu yaxın, əksinə yalnız sual işarəsi bucağı ilə bracket, indi aşağı burada, belə ki, Mən bu run əgər indi Mən istədiyiniz nəticə əldə. İndi bir qədər optimallaşdırma edək, yalnız əvvəl gördüm ki. Bu cür annoying i ki, PHP kosmik hello.php run var, çünki keçmiş I yalnız dot çizgi yazmaq bilər cür gözəl proqram adı. Bu yaxşı bir istifadəçi experience növü var. Bu çıxır, belə ki, bunu edə bilərsiniz aşağıdakı kimidir I PHP Bu kifayət qədər sirli istifadə edə bilərsiniz Burada üst sehr, olan ümumiyyətlə shebang adlanır, Bu kəskin rəmzidir vasitəsi, belə danışmaq, bu bang edir və ya bir nida point. Bu artıq bir proqram yoldur tipik Linux sistemi ki, ətraf mühit, və ya ENV adlanır. Və bu uzun hekayə xətti short-- line bir yalnız kompüter hey, PHP tapmaq deyir ətraf mühit mənim üçün tərcüməçi, belə danışmaq, yaddaş tapa bilərsiniz. Və indi gözəl nə var ki, mən burada getmək əgər, Mən dot çizgi edə bilərsiniz salam dot php, or-- hmm. Giriş qadağandır. Bəli, bu daha görürsünüz Əgər problem ilə yeddi müəyyən artıq, icazələrin var. Mən lazımdır ki çıxır bu əmri icra etmək [adlanır? chamod?] dəyişiklik bir plus x hello.php mode--. I [işitilemez] əlavə bu ehtiyac mənim kompüter izah addım, hello.php yürütülebilir etmək. İndi dot baş verir nə nə izləmək hello.php doğramaq, yalnız çalışır. Mən müəyyən etmək üçün ehtiyac yoxdur Artıq tərcüməçi. Mən hətta gözəlləşir edə bilər, hələ mən bu şey adını dəyişmək. Mən yalnız hello.php hərəkət əgər Salam, belə ki, sol üst bildiriş Proqramın adı Həqiqətən İndi yalnız Hello. İndi bir C proqram kimi baxmaq edə bilər, Bu php yazılı baxmayaraq və ya səmimi hər hansı bir sayı digər dillərdə. Belə ki, marginal genişləndirilməsi, heç bir funksional fərq. Amma bu yalnız bir az maraq var İndi, siz proqramları yaza bilərsiniz, belə ki, hər hansı bir dildə və istifadəçi yoxdur bilmək və ya o nə qayğı var. Yaxşı, bir daha baxaq çekici Məsələn indi Mən əvvəlcədən çırpılmış ki. Bu quote.php adlanır. Və mövcud online var. Və bu, olduqca short-- var ki, qeyd lakin bu bir command line proqramı fond qiymətləri baxmaq üçün gedir Mənim üçün olan həqiqətən gedir problem yeddi qurmaq üçün ilgili olmalıdır. Belə ki, mən edirəm nə edək. Çox üst mən var açıq bracket sual işarəsi PHP. Mən vasitəsi Mən bu xətt var functions.php-- adlı bir fayl tələb biz görmək olacaq bir az bu daha çox, lakin bu C kimi kəskin versiyası daxildir Siz getmək istədiyiniz Başqa bir fayl daxildir. PHP baxmayaraq, bu tələb çağırır də funksiyası daxildir malikdir. Və bu function.php çıxır ki yalnız bir şey I sinif əvvəl yazdı. Çünki, eyni kataloq qoyun Mən bəzi kodunu amil istədi ki, biz başqa yerdə istifadə edə bilərsiniz. Bu arada, siz yəqin ki, edə bilərsiniz burada neler çıxarmaq. Bu, C lakin bir az fərqli Mən nə deməkdir düzgün istifadə təmin? Daha texniki bu tərcümə. Hansı hallarda am proqram çıxdıqda və ya mövcud? Evet? Auditoriya: Siz yoxdur iki command line dəlilləri. DAVID MALAN: Mən yox line dəlilləri əmr. Və o ki, bir xatırlayıram arqumentlər proqramın adı özü edir. Və ikinci olacaq başqa bir söz Mən tez sonra yazın. Belə ki, yalnız C kimi, bu yoxlanılması mənim yoludur, istifadəçi əməkdaşlıq etdi və Mən nəzərdə tutulmuş proqram run? İndi, bir şey var bir az fərqli bütün C-ilk biz Bu dollar işarəsi var, və bir dollar nə PHP adlanır imzalamaq? Yalnız bir dəyişən. Bu izlədi bütün və yalnız bir dəyişən var nə həqiqətən zəng etmək istəyirəm. Bir şey var edək Mənim PHP proqramı itkin, yalnız son itkin kimi həftə, C qarşı nə olan? A növləri, həm də başqa bir şey. Heç bir şey yoxdur əsas funksiyası funksiyası. Heç bir əsas funksiyası var. Siz yalnız yazmağa başlayın olmadan kodu kifayət qədər ixtiyari narahat bəzi default adlandırma konvensiya funksiyası əsas. Belə ki, Arg C, yalnız həqiqətən qlobal dəyişən tərcüməçi ki, Mənə imkan verir. İndi bu maraqlı deyil. Belə ki, məhsulları axtarmaq. Dollar işarəsi fond deyil sol, ki, mənim dəyişən var. Sağ tərəfində, yəqin var PHP bir funksiyası Sistemi adlı Mən son command line keçən alıram arqument nə to-- söz. Və biz bu necə görürsünüz bir anda çalışır. Və sonra nəhayət mən qiymət hesabat alıram. Mən bir çap alıram belə payı. Və bu, xatırlayıram da php php bir şəkildə yol Siz var olmayan Artıq dollar işarəsi S. Siz yalnız qıvrım aşırma istifadə edə bilərsiniz və bəzi dəyişən plug. Siz narahat yoxdur eyni şəkildə printf istifadə edərək. Və bir kənara kimi bir dəyişən qoymaq zaman oxşar ikiqat quotes daxilində, Bir xülya texnika istifadə olunur dəyişən interpolation çağırıb. Bu, sadəcə burada dəyişən plug deməkdir. Və bir kənara, bəzi siz gələn kimi digər proqramlaşdırma fonları, Siz tək quotes istifadə edə bilər ətrafında strings bunu. Siz ikiqat quotes istifadə etməlidir dəyişən interpolation iş. Əks halda siz sözün lazımdır bu qıvrım aşırma görürük. Belə ki, nəhayət, nin irəli getmək və bu run edək. Mənim terminal bir az böyük etmək edək. Mənə davam və run edək Mənim quote kataloq daxilində. [? CDsource?] [? AM?] [? quote?] PHP quote dot PHP, və mən bir şey axtarmaq üçün gedirəm onun ticker simvolu GOOG kimi, və yeni adı bir payı, Alphabet Inc, bu gün etibarilə $ 717 başa gəlir. Bütün hüquqlar, biz istəyirsinizsə yenə bu run, hər kəs başqa fond ticker var Onlar yuxarı baxmaq istəyirsiniz? Microsoft Mən hesab edirəm ki, bu bir MSFT-- $ 53. Mən Yahoo bəlkə hesab edirəm. Və Facebook edir. Bunu bu proqram nədir? sehrli əlaqədar görünür ki, axtarış funksiyası. Belə ki, tez nəzər salaq. Ki, gəlmir çıxır PHP ilə, functions.php var. Və biz vasitəsilə getmək olmaz böyük ətraflı bu, lakin burada operativ söz fark ki functions.php-- xətti altı haqqında Mən sözün funksiyası demək. Mən funksiyası adı daxil. Mən sonra hər hansı bir daxil dəlilləri və ya parametrləri, Hesab edirəm ki, funksiya növ take-- istəyirəm. Və sonra həyata keçiririk. Mən əl dalğa lazımdır həyata keçirilməsi, kifayət qədər inkişaf etmiş doğru-ci ildən İndi, lakin biz, həqiqətən, yenidən görmək lazımdır bir həftə problem yeddi seçin. Amma çox, bu qədər təmiz olar. Mən də daxil Bugünkü code versiyası heç bir dot PHP faylı quote, edir. Da ehtimalla nə çünki yalnız sitat adlı proqramın top? Ki shebang-- sözdə kifayət qədər sirli sehr ki, sonra PHP tapmaq və deyir burada kod axır. Bütün hüquqlar, belə ki, gətirir biz off sol harada us ilə də olsa son sýrada bir daha inkişaf etmiş nümunələri. Hər hansı bir sualınız indiyə qədər haqqında PHP və ya biz nə edirik? No-- bütün hüququ. Evet? Auditoriya: Inside HTML faylları, səni nə [? Siz nə?] [? yalnız zəng?] bir [Işitilemez] PHP fayl? DAVID Malan: Yaxşı sualdır. Biz istəyirik bir web kontekstində keçid sözün haqqında Siz qondarma istifadə etməyin üst shebang, web server tez-tez çünki proqram Apache və ya Microsoft adlı IIS, Internet Information Server, və ya digər web server proqram hər hansı bir sayı, Bu gördüyü zaman bilir ki, bir dot PHP fayl, bu ki, bu tərcüməçi run lazımdır. Bu ilk xətt baxmaq deyil. Bu ilk line oyun So Siz etdiyiniz yalnız zaman yazılı command line və proqramları biz super tez-tez olmayacaq, lakin bu körpü bizim yoldur İndi bizim PHP üçün C nümunələri. Belə ki, həqiqətən bu dünyada körpü imkan web command line dünya aşağıdakı etməklə. Mənə davam və cəlb edək Burada yalnız bir an üçün artıq. Biz daha bir web server, və ya əgər belə biz burada mənim laptop üzərində varsa, Mən bu kimi çəkmək lazımdır. Və burada biz var bəzi formada internet. Və sonra burada, biz bir bina bir server Bu necə internet deyil çalışır ki, burada da bəlkə bəzi işıqları ilə server edir. Həqiqətən nələr olur Bu iki əlaqələri arasında? Belə ki, bu binada web server edir. Bu yalnız bir kompüter var ki, bir əməliyyat çalışan system-- bəlkə pulsuz proqram adlı CS50 IDE çalışan Apache. Beləliklə, siz həqiqətən bilərsiniz Bu binanın hesab bina kimi olan CSt0 IDE saxlanılır. Siz bütün harada Siz hesabları, burada bütün öz web server , siz bütün çalışan , öz unikal URL biz müzakirə başladı, P. altı qurmaq və daha çox görürsünüz. Burada mənim laptop bir yerdə var internet başqa. Mən URL ziyarət zaman, belə ki, məxsusdur Mənə ki, internet trafik gedir server, server-nin üzərində qəbul edən HTTP request-- kimi index.html almaq və bu ki, web page cavab. Belə ki, ümumi paradiqma var. Up hər şey Halbuki İndi bu gün hər şey qədər yalnız olurdu Bu binanın sərhədləri. Mən laptop istifadə, lakin Mən CS50 IDE bağlı idi həmin proqramların bütün I çalışan server, özü içərisində idi. Amma indi, bu PHP yeniden başlamaq edək bəzi faktiki proqramları yazmaq üçün bir web server tərəfindən xidmət olunur. Və bunu, mən getmək üçün gedirəm nümunələri bütün dəstə daxil Burada bu fikir təqdim edir. Belə ki, bu bir xülya yolu növüdür proqramlaşdırma paradiqma izah. Və əslində, kimi CS50 çıxmaq və ya, final layihələr üzərində işləmək və ya təqib etmək sinif, siz başlamaq lazımdır vücuda görmək xüsusilə böyüyüb olan C kimi dil ilə super aşağı level-- var ki, yaxşı var ki, həyata yazı proqram yolları. Müəyyən var təqib edə bilərsiniz nümunələri, faylları təşkil müəyyən yolları və funksiyaları adlandırma yolları, belə ki, uzun hekayə qısa, dünya gəldi acronyms bütün dəstə ilə və proqramlaşdırma yollarını adları. Bunlar istifadə edə bilər yalnız üsulları var. Onlardan biri, MVC adlanır Model View Controller üçün. Və bu, yalnız indi hədsiz mürəkkəb Siz salınması necə deyərək yolu bir PHP-based web, bizim halda. Siz faylları təşkil necə, necə, məntiq təşkil edirsiniz daha asan edir ki, bir şəkildə daha mürəkkəb web yazmaq? Həqiqətən, biz tez lazımdır yeddi p-set ilə orada almaq. MVC dünyada Belə ki, olacaq görmək ki, bizim code ümumiyyətlə can ya model kodu kimi xarakterizə etmək, və ya nəzarətçi indeksi, və ya keçirmək kodu. Mən gedirəm Bu aşağıdakı kimi sadəyə nəzarətçi edir Proqram beyin, Bu olduğu bütün maraqlı məntiq olur. Belə ki, hər şey biz oldum indiyədək sinif yazılı, cür nəzarətçi kimi kod Bu nəzarət edir proqram, sizin loops, sizin şərait, sizin funksiyaları və dəyişənlərin və bütün. Views, indi bir az olacaq web dünyada daha aydın. A view estetik deyil Sizin veb. Bu istifadəçi şəkillər sees-- nə HTML masalar, HTML tags və bütün ki, tüklü estetik bütün yazmaq ki, çətin deyil stuff, ancaq yaradan etdiyiniz yalnız nə, Sözdə görünüşü estetik edir. Və model, nəticədə gedir Verilənlər bazası stuff-- olmaq üçün biz bütün dalğıc başlamaq lazımdır daha bu Çərşənbə. Belə ki, nəzarətçi məntiq, görünüşü, estetik stuff deyil və model harada olacaq Biz faktiki veri. Belə ki, daha konkret, bu baxaq Aşağıdakı misal ilə. Mən burada dizine getmək üçün gedirəm Bugünkü mənbəyi olan bütün kod mövcud online. Mən versiyası sıfır getmək üçün gedirəm. Və burada zəng edək is-- CS50 veb versiyası sıfır. Bütün çox burada deyil. Bu, çox sadə web page var yəqin ki, istifadə nə HTML tags-- yalnız Ötən nümunələri tahmin? Bu nədir? Yəqin ki, böyük və qalın üçün H1-- adı, üst qədər ki logo, CS50. Və başqa nə oyun edir? Evet? Auditoriya: unordered siyahısı. DAVID Malan: unordered list-- belə UL tag və LI tags bəlkə bir neçə. Və bu unutmayın yoxsa, Bu vicdanla məsələ deyil. Bu tüklü sort var HTML icra ətraflı Siz tez baxmaq və geri sizin yolda edirik. Biz proqramlaşdırma üzrə daha çox diqqət lazımdır juicier ədəd fikir. Belə ki, yalnız bir sürətli götürək dilidir HTML baxmaq və həqiqətən Mən Yup, burada view mənbə açmaq əgər, ki, məhz burada olacaq nə. Bir UL tag var. Ki, daxili iç içə LI tags edir. Və sonra mən URL borc Burada faktiki proqramı. Və sonra da lectures.php yəqin deyil başqa dinamik səhifə ki,-nin ah see-- imkan var olacaq mühazirə ilk iki həftə. Belə ki, həftə sıfır və həftədə bir, edək Mən səhifə mənbə keçirmək əgər şeylərdir baxmaq, də super sadə. Bu iki pages aparıcı adlı week0.php və week1.php. Belə ki, nə indi hesab edir. Mən week0.php basın, mənim laptop week0.php üçün sorğu edir. web server, a.k.a., CS50 IDE, ki, virtual zərf alır. Bu mesaj görən oldu kimi week0.php almaq. O fayl tərcümə olunur, top alt fayl soldan sağa adlı week0.php-- və nəticələrini spitting. Belə ki, bu fayl daxilində, week0.php olmalıdır yaradan nəzarətçi məntiq Bu HTML, və biz tezliklə görəcəksiniz. Amma indi üçün, mənə həftə sıfır basın bildirin və indi biz, Çərşənbə və Cümə var və indi biz slaydlar yavaş-yavaş həftə sıfır. Və geri bilər bu geri yol. Belə ki, bu veb edir bütün var. Belə ki, bu bunu necə hesab edək. Mən geri getmək üçün gedirəm CS50 IDE burada mənbə kodu, Mən index.php açmaq üçün gedirəm. Bu fayl üst şərh bir dəstə edir. Və sonra bu fayl ortasında, onu çıxır heç bir PHP kodu. Siz heç bir yoxdur, çünki açıq bracket sual işarəsi PHP tags, Yalnız HTML qoymaq üçün pulsuz istəyirik. Çünki nə PHP tərcüməçi, etmək nəzərdə tutulur Bu faylı oxuyur zaman alt üst soldan sağa Bu yalnız arasında görür kodu şərh bu bucaq mötərizədə sual işarəsi. Və başqa bir şey deyil ki, PHP kimi tanımaq, yalnız həyata spits. Və HTML məhsulları sırasındadır yalnız tüpürmək edəcək. Belə ki, bu fayl ola bilər index.html adlanır, amma hər şeyi adlandırma alıram bir gücləndirməklə daş kimi dot PHP. Eyni Lectures.php-- underwhelming, yalnız bir HTML var. Week0.php, eyni yalnız bir HTML. Amma indi qoymaq bildirin atasözü mühəndis papaq, və biz bu inkişaf edə bilər necə hesab edir. Bu etmək çətin deyil, lakin mən növ surəti və pastası daxil keçir. Və əslində, mən həftə iki varsa, siz Mən yəqin ki, gedirəm nə bilirik? Mən deyiləm, week1.php getmək üçün gedirəm hər şey qeyd etmək gedir. Mən surəti gedirəm, yapışdırıb week2.php adlı yeni fayla, bəzi URL çimdik, və mənim yol ola bilər. Belə ki, biz nə əsasında Artıq C görüldü Bu inşallah, sağ hiss etmir. Surəti, pastası nadir hallarda doğru həll. Beləliklə, biz başlaya bilərsiniz nə Bu yaxşılaşdırılması üçün nə etmək? Harada imkanlar Daha yaxşı dizayn üçün? Mən almaq zaman həftə səkkiz, gedir həqiqətən annoying olmaq Mən dəyişmək istəyirsinizsə hər bir font Mən istəyirəm, və ya əgər mənim pages layout strukturu dəyişdirmək üçün. Belə ki, burada imkan var Daha yaxşı dizayn üçün? Yaxşı, nə hesab edək bu faylları bütün arasında paylaşdı. Burada həftə, həftə biri sıfır, burada lectures.php var, burada eyni nə index.php-- və müxtəlif, təxminən nə danışan, Bu fayllar hər? Evet? Auditoriya: [işitilemez] DAVID Malan: OK, yaxşı. Belə bir model, şübhəsiz ki, vasitəsi var hər dəfə mən mühazirə I seçin Mən yaradan olmalıdır çox oxşar axtarır səhifə. Və belə bəlkə mən leverage əslində, həqiqətən, qəsdən sayısal biz Bizim lectures-- dizine Mən daha çox qoymaq bilər Sizin cavab sözləri. Və həqiqətən, yalnız bir şey nə həftə arasında dəyişən one-- və belə mənə aşağı diyirləyin bildirin təxminən eyni place-- da belə ki, burada həftə sıfır, təxminən üst. Burada həftə bir həftə sıfır, həftə bir həftə sıfır. OK, sözün Əgər bilirsinizsə heç bir proqram, bu yalnız bir kimi indi model uyğunluğu oyun. Belə ki, müxtəlif var? Evet? Auditoriya: [işitilemez] DAVID Malan: Yaxşı, belə ki, adı heç belə yüngül, dəyişir. Zero bir, əlbəttə, gedir. Eyni şey H1 tag baş. Və biz olduqca kimi asanlıqla görmürəm URL bir az uzun, çünki. Lakin həmin URL'leri qədər dəyişir. Amma dəyişən deyil, nə mən cəsarət demək səhifə və məzmunu ən HTML tag eyni, rəhbəri eyni adı, demək olar ki, eynidir bədən eyni və başqa demək olar ki, hər şey istisna olmaqla, eyni deyil o kiçik tweaks. Belə ki, biz necə getmək olar Bu bəzi faktorinq? Yaxşı mənə dəqiq təklif edək növbəti versiyası ki. Belə ki, burada versiyası bir, mən dəqiq var Eyni faylları, plus digər bir neçə. Burada index.php-- və hətta var Siz əvvəl PHP görməmişəm Mən yəqin ki, bu həll etmək edirəm Burada görmək nə əsasında problem--? Bəli, bir az öhdəlik ki? Yox? Bəli, getmək. Auditoriya: [işitilemez] DAVID Malan: Yep. Auditoriya: [işitilemez] DAVID MALAN: Mən sizə lazımdır bir az Qaraçuxurlu danışmaq. Auditoriya: [işitilemez] DAVID Malan: OK, yaxşı. Mən bu idi Sizcə səni amma eşitmək ağır nə də əldə etdiyiniz hesab edirəm üst qədər ümumi idi tags, üzrə ümumi idi və tags alt, indi həyata factored edilmişdir və ya faylları nə çoxluq? Header.php və footer.php-- və biz olacaq bəzi tweaks etmək narahatlıq siz müraciət yalnız üçün, ədəd dəyişdirilməsi haqqında qaldırılmış Məsələn, mən doğru eşitdim bilər. Lakin bu mahiyyət görünür. Böyük məbləği var idi səhifənin üst ixtisar, və miqdarı altındakı redundancy, nin sözün yalnız məqamı imkan ki, məzmun kəsilmiş, ayrı fayl kimi qoyun biz factored CSS, ideyası qoymaq çox oxşar estetik, ayrı dot PHP fayl ki, mexanizm tələb istifadə edən C kəskin Daxildir kimi olan mahiyyətcə getmək deyən kimi , header.php məzmunu qamarlamaq və surəti və yapışdırın. Amma nə bu o deməkdir ki, indi edir index.php, mən bu iki xətləri var. Lectures.php, mən də bu iki xətləri var. Week0.php, mən də bu iki xətləri var. Belə ki, indi mən dəyişdirmək istəyirsinizsə Mənim bütün pages adı, və ya dəyişdirmək istəyirsinizsə, fundamental quruluş, Mən yalnız bir yerdə indi dəyişə bilərsiniz və ya iki places-- mövzu və footer, olaraq təyin olundu. İndi kodu başlanğıc baxmaq bir az daha sirli, sağ? Amma barədə düşünmək nə səhifə Mən week0.php tələb alıram əməlindəndir ki, yalnız rəsm kimi burada week0.php tələb olunur, bunun mənası nədir? Sözün, bu fayl brauzer tərəfindən tələb. web server a.k.a. CS50 ID-- bu Polip fayl, week0.php və oxuyur Bu alt üst, soldan sağa. Line biri, dərhal görür açıq bracket sual işarəsi PHP tələb header dot PHP, və nə PHP tərcüməçi ki, web daxil inşa does-- server, biz önceden çünki Bu avtomatik olaraq gedir Səninlə üçün header.php daxil nüsxə məzmunu, burada pastalar. Amma sonra tərcüməçi qarşılaşmalar sual işarəsi yaxın bracket, belə ki, bütün düşüncə həyata. İndi yalnız kor-koranə spits xətləri həyata yeddi vasitəsilə iki, yalnız xam HTML çünki. Səkkiz xətt olur ki, yoxdur faylı açılması again-- eyni sehrli, məzmunu qənimətçilik və onları tələb və ya onları sovuşdurmaq sağ sonra və ya. Amma yalnız bir səhv alluded. Bu, geri qismən addımdır biz header.php baxmaq, çünki, I növ bir küncü kəsilmiş etdik. Mən üçün imtina hansı xüsusiyyət Bu mübahisəli yaxşı dizayn qazanmaq üçün? Evet? Auditoriya: [işitilemez] DAVID MALAN: Bəli, mən cür bir nontrivial küncü kəsilmiş. Siz nə dəyişir ki, diqqət çəkən adı idi, adı sayı, və H1 sayı. Belə ki, mənim həll OK idi yalnız səhifə adını dəyişmək bildirin və ilə məşğul deyil heç problem. Belə ki, qismən var əmin üçün geri addım. Amma burada diqqətəlayiq nə Mən görmüşük ki, nə başqa factored bütün ümumi heyəti həyata. Və footer.php, mən factored qeyd ki, bütün həyata, az da olsa, ümumi stuff. Belə ki, mən elə indi lazımdır irəli bir addım və fix ki, adı məsələləri. Belə ki, nə edək. Mənim ikinci versiyası daxil edək Burada olan, yenə eyni faylları var bir yeni əlavə istisna olmaqla. Və bir az daha var verbose, amma əgər görək biz burada neler ayrı sataşmaq bilər. Belə ki, əvəzinə tələb header.php və footer.php, Mən yalnız bir tələb görünür fayl helpers.php, əlbəttə, çağırıb. Və mənə indi müəyyən edək helpers.php daxilində nə var funksiyaları yalnız bir dəstə Mən yalnız əvvəl kimi yazdı. Amma mən bunu helpers.php çağırıb. İndi yəqin da line üç və 10, mən iki funksiyaları zəng mövzu göstərməyə, footer göstərir. Ilə gəlmək olmayan PHP, mən o özümü yazdı. Mən helpers.php qoydu. İndi biz yalnız bu sintaksis gördüm bir dəfə, və bu super qısa idi. Amma bu yəqin bir dəlildir header, funksiyası göstərməyə. Niyə bilirik? Burada yaxın paren var, Burada açıq paren var. Və əlbəttə, yalnız C kimi, o parantez arasında bir şey bir input-- və ya deyil funksiyası arqument. Bu arqumentin data type nədir, Mən qeyd etdik dayalı? O kvadrat mötərizədə nə Keçən həftə əsasında göstərir? Bəli, bu bir array var xüsusi assosiativ array. Bu syntax admittedly bir az funky, lakin bu, yalnız keçir bir əsas dəyəri cüt. əsas quote dırnağı bağlamaq edir adı və dəyəri CS50 edir. Biz etmiş bu C, əvəzinə bilər daha çox bu kimi baxmaq, yalnız quote dırnağı bağlamaq CS50 və ya həqiqətən buruq olacaq aşırma, və ya C kimi bir şey, burada əsas sıfır, və dəyəri CS50 edir. Ancaq yenə də, PHP, baxmayaraq ki, syntax, yenə bir az qəribə deyil bu keçmək üçün imkan verir sözləri əvəzinə nömrələri dəyərləri ilə düymələri birləşmək. Belə ki, bu bütün nə deməkdir? Mən helpers.php getmək varsa, Bu funksiya baxaq. renderHeader.php deyil, renderHeader mənim funksiyası Mən görürəm, çünki bilirik ki, Burada funksiyası söz. Bu yəqin ki, ace yeni deyil fel adlı mübahisə edir amma bu deyilən bilərdi bir şey, amma data çağırıb bir az clean-- olmaq və yalnız xüsusilə bir tahmin almaq bəzi digər proqramlaşdırılmış, əgər əvvəl yüksək səviyyədə dil, bir şey C yuxarıda konseptual. Nə bərabər açıq bracket deyil yəqin ki, kvadrat mötərizə deməkdir? Yoxsa nə demək bilər? Biz Bəli C. bu görmədim etdik? Boş array. Xüsusilə, bu o deməkdir ki, əgər istifadəçi renderHeader zəng deyil bir arqumenti ilə, mən hələ gedirəm data adlı bir dəlil var, lakin onun default dəyəri boş array olacaq. Belə ki, yalnız bir gözəl rahatlığı var. Mən istifadəçi fəğan yoxdur ya mənim funksiyası yanlış istifadə deyirlər. Mən yalnız istifadəçi bir default verə bilər dəyəri, xüsusilə qayğı yoxdur. İndi bu funksiya, mən mənim əlləri dalğa gedir. Amma bu çıxarış funksiyası imkan verir Bizə data bu dəyişənlərin keçmək aşağıdakı şəkildə header.php daxil. Və bu son parça, Mən funky sintaksis, düşünürəm. Burada mənim yeni versiyası onu header.php-- sanki, dərdi, açıq bracket adı CS50, və bu idi. Və H1 üçün eyni şey. İndi yəqin deyir olduqca funky bir şey. Və mənə bu sadələşdirmək edək bir an üçün belə. Bu var nə olmaq mənim adı dəyişdi. Lakin, bir az çirkin əldə PHP ilə daim açıq Mötərizədə, və sonra çap funksiyası istifadə edin. Bu PHP bir stenoqrafiya ki çıxır yalnız bu notation, texniki bir bərabər işarəsi, adlı funksiyası yerinə çap echo lakin bu səmərəli, eyni şey. Bu yalnız daha yaxşı görünür. Bu, sadəcə bir sintaktik var şəkər, Siz, ki, mənim kodu bir az daha yaxşı baxmaq edir. Amma bu çıxır, və biz yenə bu görürsünüz uzun əvvəl, biz bu zəng etmək annoyingly uzun funksiyası adlanır HTML xüsusi chars ilə PHP, bu çıxır, çünki Müəyyən giriş var istifadəçi bizə bilər ki, və ya istifadəçilər bizə verə bilər ki, ki bizim saytda qırmaq üçün gedir. Amma biz növbəti görürsünüz JavaScript həftə. Amma indi üçün, yalnız bilirik ki, Bu fayl, headers.php, sadəcə adı edir ki, Mən keçdi, onu təhlükəsiz, əmin bir web enjekte ediləcək səhifə və mənim adı kimi spits və H1 kimi. Mən indi bu versiyası getmək əgər, mühazirələr onun adı geri var fark, həftə sıfır geri onun adı var, və Həqiqətən, HTML I yaradan alıram nə mənim ilk versiyası ilə eynidir Mənim ağ istisna olmaqla was--, Forma açılmış etdik, çünki fərqli mənim kodu bir az. Amma bütün yaradılan sonra Mən qayğı kodu. Belə ki, mənə fasilə imkan Yalnız bir an və görmək Hər hansı bir sualınız varsa və ya qarışıqlıq mən yaratdıq. Bütün hüquqlar, belə ki, twist edək bir az daha burada bir var görmek üçün yaxşılaşdırılması üçün imkan. Helpers.php də bu idi funksiyası, renderFooter çağırıb. Və diqqətəlayiq nə renderHeader və renderFooter? Və yenə, bu gün məqsədlər üçün, bilmək çıxarış funksiyası yalnız ki, keçən dəlilləri mənim yol header.php və footer.php daxil. Bağışlayın? Auditoriya: [işitilemez] DAVID MALAN: Bəli, mən yalnız The Line tələb dəyişdi. Belə ki, sanki mən günah etdik çıxarmaq və sovuşdurmaq, yenə. Bu bir çox deyil xətləri, lakin Us gəlib Mən çıxarmaq və hər şey sovuşdurmaq alıram Yalnız bir az söz dəyişdirmək üçün, və bir az söz Alan göstərir ki, həyata qarşı, burada footer burada header. Əks halda, hər şey eyni istisna olmaqla, əlbəttə, funksiyasının adları. Belə ki, biz daha yaxşı nə ola bilər? Yaxşı mənə bu versiyası açmaq bildirin Burada vasitəsi helpers.php da, niyə yalnız bir almaq deyil Bu barədə asan az? Bir az daha mürəkkəb yazmaq kodu, lakin göstərmək zəng? Belə ki, əsaslı nə dəyişib? Bu mübahisə edir, indi iki dəlilləri, hələ data. Və sonra ilk nə yəqin ki, istifadə olunur adı, Burada oxuyursunuz nə əsaslanır? Hətta əgər sintaksis bəzi hələ yeni. Dollar işarəsi Şablon nedir? Bağışlayın? Auditoriya: Header və ya footer. DAVID Malan: Header və ya footer. Belə ki, yəqin ki, mən qərara gəldim ki, əgər dəyişən tək şey Mən istəyirəm nə şablon print-- və şablon ilə Mən bu planını demək Mən çıxış etmək istəyirəm indeksi, amma bəzi plug istəyirəm dəyərlər belə əgər yalnız header var və ya footer, niyə Parameterize deyil ki, dəlil dollar işarəsi zəng şablon? Və sonra bu funky sintaksis mənə imkan verir burada bir dəyişən bir yol yaratmaq üçün. Belə ki, dollar işarəsi yolu dəyişir. Bu sintaksis nə tanış değilseniz, nə? Evet? Auditoriya: [işitilemez] DAVID Malan: Məhz. Şablon deyil, dırnağı bağlamaq quote, header, və ya şablon əgər, dırnağı bağlamaq quote, footer, orada line Mən qeyd etdik ki, line səkkiz, sadəcə header kimi, adını alaraq, və dot PHP ilə concatenating. Beləliklə, biz bu operator yox idi C. Bu dot operator Siz əgər php bir gözəl şey JavaScript və ya Java ilə tanış, Siz plus istifadə edə bilərsiniz concatenation etmək olun. C, bu neck-- bir ağrı var altı p-set və mən çox təəssüf edirəm, Siz nə etmək olacaq şeylərdir ki, boyun bir ağrı deyil strings concatenate üçün. Niyə? Yaxşı, siz var, çünki uzun bu bir string, və uzun bu var bir string, Yalnız birlikdə onları yerləşdirin bilməz. Nə əvəzinə C nə etmək lazımdır? Evet? Auditoriya: [işitilemez] DAVID Malan: Siz malloc var yaddaş, və ya yığını bir sıra istifadə edin. Və həqiqətən var kifayət qədər array böyük etmək Bu plus bu uyğun, plus backslash sıfır. Sonra istifadə onlara birlikdə concatenate loop üçün ilə pişik və ya əl bulamaq, və ya texnika hər hansı bir sayı. Və biz bir neçə göstərmək p-set altı. Bu boyun bir ağrı var. Bu Mən demək nə həqiqətən PHP qarşı C kimi şeylərdir qarşı bu. Siz yalnız çox daha çox almaq Pulsuz üçün funksionallığı, Siz diqqət bilər ki, ideal, əyləncə kodlaşdırma hissəsi, Siz həll etmək istəyirik layihə, daha aşağı səviyyədə minutiae daha. Belə ki, bu, yalnız yaradır header.php və ya Mən zəng hansı biri əsasında footer.php. Və həqiqətən, Mən getmək əgər index.php daxil bildiriş bütün yerinə changed-- oldu mövzu göstərmək və ya footer göstərmək zəng, Mən izlədi göstərmək zəng edirəm Mən istəyirəm şablon adı. Və siz də, bu görürsünüz, problemi, yeddi müəyyən biz istifadə etməyə imkan verir vasitəsi eyni funksiyası dəstələri etmək və müxtəlif web pages dəstələri. Belə ki, daha çox dayanmaq çox bu Detayları haqqında daha çox Siz yenə görəcəksiniz ki, problem set nin baxaq seven-- bir həll indi başında daha maraqlı problem. Bu günə qədər, heç bir şey var həyata xilas məlumat var. Əslində, yalnız zaman biz heç xilas etdik bu sinif etdik şey biz biraz çox sadə demo idi zaman geri, vasitəsi biz C fayl IO istifadə və mən mənim ad tipli hesab edirəm ki, və Hannah adı, və Mariyanın adı, və ya bəlkə Andy adı, və sonra biz bir CSV faylı qeyd vergül dəyərlər fayl ayrılır. Və düşünürəm fopen istifadə Mən xatırlayıram kimi, fprintf istifadə və biz bir fayl saxlanılır. İndi ki, sadə bir verilənlər bazası forması. Siz bir web etmək istəyirsinizsə Frosh Ani proqramı vasitəsi freshmen ideal bir idman üçün qeydiyyatdan bilər ki, data ilə bir şey etmək istəyirəm. Ötən həftə biz heç bir şey etmədi veri biz yalnız bildirib, Siz, həqiqətən, qeydə alınır. Və ya bəlkə mən e-poçt proctor və bu idi. Mən əgər Amma gözəl olardı ki, Proctor bir CSV faylı vermək bir Excel fayl kimi. Və ya daha yaxşı hələ, olardı Mən əgər gözəl bu istifadəçilərin adları qoymaq və adları yurddakı və ki, bütün bir verilənlər bazası ki, yalnız əbədi yaşayır qədər məlumatları silmək üçün seçin. Imkan verir ki, verilənlər bazası Mənə məlumat sorğu. And olsun ki, bir verilənlər bazası nə var. Bu gün təqdim və Gələn həftə də bir texnologiya adlı SQL-- bir Yapılandırılmış Query Başqa dilidir Language. Bu əhəmiyyətli bir proqramlaşdırma var dil, lakin verilənlər bazası üçün. İndi üçün bir verilənlər bazası, yalnız super xülya versiyası hesab Microsoft Excel, və ya Google Spreadsheets, və ya Apple Nömrələr. Bu, ümumiyyətlə imkan verir bir proqram məlumatların bütün dəstə saxlamaq üçün satır ve sütun çox kimi Excel bilər. Amma nə, xüsusilə də əgər, gözəl biz Excel ilə super tanış deyilik nə SQL siz imkan verir sorğu bu kodu xətləri yazılı məlumat harada siz, hətta əgər sizin verilənlər bazası, bu bir milyon satır var Siz hər şeyi super sürətli tapa bilərsiniz. Əslində, Excel xüsusilə böyük data dəstləri pis. Və əslində, bir neçə qədər il əvvəl çıxdı Excel yalnız saxlamaq üçün imkan verir ki, fel qədər 65.535 satır lakin, bir çox kimi səslənir dəfə, bir grad tələbə idi Mən açma xatırlayıram bu mən yaradan çünki Mənim tədqiqat və I CSV faylları tez təhlil etmək istədi yalnız Excel açılması ilə. Əlbəttə ki, mənim kompüter yalnız qəzaya uğrayıb, Mən artıq 65,000 satır idi, çünki. Amma 65.535 haradan gəldi? Microsoft nə edirdi, ehtimalla? Siz iki sizin səlahiyyətləri ilə yaxşı edirsinizsə? Bəli, onlar bir 16-bit istifadə dəyəri sıra sayı təmsil edəcək. Və 16 iki 65,536-- minus bir, çünki əgər sıfır index idi deməkdir Mən ola bilər satır ən çox. Və yalnız bir dizayn qərar idi. 16 bit qənaət, onlar mənə məhdud əvəzinə 4 milyard 16,000 satır, üçün, Mən ideal bilərdi. Amma indi, biz olacaq bir web kontekstində bu daha təqdim edir. Və nə SQL haqqında gözəl ki, belə deyil Bu olduqca güclü və olduqca baxmayaraq inkişaf etmiş, bu, həqiqətən boils aşağı dörd əsas əməliyyatları, dörd əsas funksiyaları, siz seçin will-- əgər, , məlumat alanda axtarış üçün məlumat üçün; silmək və ya məlumatların silinməsi; verilənlər bazası satır əlavə etmək üçün daxil; və yenilənməsi. Əgər Google istifadə əgər Belə ki, Spreadsheets, Apple Nömrələr, Microsoft Excel, siz yerinə, çox güman ki, bütün bir insan kimi bu əməliyyatların tərəfindən yalnız klaviatura və siçan istifadə edərək, Gözlərinizi, data daxil istifadə edərək, seçin və ya məlumat üçün axtarış, və ya yeniləmə data, və ya silmək data. Belə ki, bu nə deməkdir? Yaxşı, CS50 önceden götürmüş IDE MySQL adlı bir proqramdır. Bu pulsuz, açıq mənbə var super məşhur verilənlər bazası. Facebook, məsələn, bu üçün istifadə edir onlar istifadə digər alətlər arasında gün. Və çox məşhur web sites bir çox istifadə Bu böyük bir hissəsi bu, sürətli, çünki və pulsuz, çünki. Əlbəttə baxmayaraq alternativ mövcuddur. Və bəzi dabble bilər final layihələr üçün alternativ. Bu, eyni zamanda, bir ekran edir phpMyAdmin adlı web-based vasitədir. Bu təsadüfi deyil ki, Bu web-based də bir dillə yazılmış, PHP, lakin bunu nəzərdə nə Bizə verir bir web-based bir verilənlər bazası interface. MySQL adətən, çünki bir şey, tarixən, sizə yalnız qarşılıqlı olardı bir command line ilə. Və bu super olardı annoying və üçün gizli seçmək üçün mətn əmrləri yazın data, data daxil və məlumat silin. Internet Belə ki, bəzi insanlar bir web-based proqram yazıb yalnız bizə idarə edək ki, bizim məlumat bazasında data. Bu Excel cüt tıklayarak kimi, və onun bir web-based versiyasını. Və bu istifadə etmək olacaq nə nəticədə gələn həftə, deyil p-set altı, lakin bir şey qurmaq üçün CS50 Maliyyə, adlı bir verilənlər bazası var gedir istifadəçi adı və parol ilə istifadəçilər, dollar təşkil ki, onlar onların bank hesabları var. Bu olacaq Siz saxlamaq üçün istifadə bir şey rəmzləri və miqdarda Səhmlərin istifadəçilər virtual istifadə alıb Siz onlara verəcəyik dollar. Və istifadəçilər imkan olacaq Sizin sayt üçün qeydiyyatdan, belə ki, hətta dostları ki, Sizin veb üçün tune bilər və həqiqətən qeydiyyatdan daxil və ətrafında oynamaq və kodu günah tapmaq üçün cəhd edin, və web bugs tapmaq üçün cəhd edin. Onlar sadəcə qeydiyyatdan lazımdır səmərəli, özlərini ifadə edərək, kod vasitəsilə Siz bazasında yazın. Məsələn, bu tez ekran edir nə bir verilənlər bazası kimi ola bilər. Bu biri idi Ötən il solutions-- Bu mini Excel kimi bizim məlumat bazasında saxlanılır, fayl, MySQL adlanan bu proqram saxlanılır. Sol tərəfində, mən yəqin var hər istifadəçi bir unikal nömrəsini verilir. İkinci sütuna, mən təqdim etdik hər kəs bir istifadəçi öz konseptual mənada adı onların arasında. Və sağ tərəfində, Mən onlara bir hash təqdim etdik. İndi bu həqiqətən bir parol, ancaq bir düz mətn parol deyil. Bu, bir şifrelenmiş parol var Siz və ya hash parol. Hansı biz uzun əvvəl geri gəlmək lazımdır. Amma heç oxumaq etdik əgər haqqında məqalə bəzi bank və ya bəzi sizin parol veb güzəşt ola bilər ümumiyyətlə iki şeyi bir ola bilər. Belə ki, bu altı istifadəçilər yalnız bir pasaj edir. Siz indi anlamaq olar Hacking və ya krekinq vasitəsilə bizim altı xalq parol nə. Amma heç kazanılmış əgər bir uyarı və ya üzr bir şirkət və ya web deyərək, sorry, bir hacker, bizim məlumat bazasında boğuldu Siz yəqin ki, dəyişdirmək lazımdır sizin parol ki, nə demək bilər? Yaxşı, bir, demək bilər Şirkət, daha degenerativ olmuşdur və şifrənizi saxlanılması edilmişdir bu kimi bir sütun, unencrypted. Hansı rəqib deməkdir, olan verilənlər bazası çaldı sözün bilir istifadəçi adı və parol. Ki, ən pis mümkün ssenari var. Və p-set görəcəksiniz kimi yeddi qarşısını almaq üçün asandır. Heç bir bəhanə ki, var bu gün internet sərsəmlik forması. Two-- və biz bəzi yazılar tapa bilərsiniz Bu hələ ki, şahidlik etmək nonetheless-- olur iki, bəlkə rəqib verilənlər bazası bu versiyası çaldı. Hansı hələ cür pis indi onlar altı müştərilər var ki, bilirik, Mən istifadəçi adlarını bilirəm bu altı müştərilərin, və mən şifrelenmiş bilirəm versiyasını və ya hashed versiyasını, bu altı müştərilərin parol. Əgər hər hansı bir Lakin bilər [etdik? Hacker 2?] Siz parol cadar, və ya aldı bir problem versiyası baxmaq set, niyə hələ bir az worrisome onu edir düşmən sizin hash bilir parol? Auditoriya: onlar bilər, çünki bütün lüğət daxil hash funksiyası daxil. Və parol bir lüğətdir əgər söz, [? onlar yalnız matç edə bilər?] DAVID Malan: Məhz, düşmən yalnız sizin bəzi kimi, kod yaza bilərsiniz [etdi? Hacker?] 2, Siz artıq təkrarlamaq vasitəsi lüğət sözləri bütün, A və ya bütün mümkün birləşməsi Z vasitəsilə və nine-- vasitəsilə bir olan bir çox kimi səslənir, və bu. Amma bir kompüter üçün, bu, olduqca darn sürətli. Və əslində, idi ki, [baxımından? Hacker 2?] Idi ki, stuff etmək sanki bu kimi görünür və əks mühəndis nə həqiqətən idi. Necə biz belə ki, biz baxmaq lazımdır daha səmərəli bu saxlamayın. , Təşəkkürlə MySQL çıxır data növləri var gedir. Haqqında fun hissələrindən biridir verilənlər bazası dizayn, vicdanlı olmaq həqiqətən özünüz üçün qərar qəbul edilir necə data təmsil etməlidir? Siz kimi bir telefon nömrəsi təmsil etməlidir böyük sayı, və ya uzun kimi int? Yoxsa həqiqətən etməliyəm chars bir ardıcıllıqla kimi? Və çox ola bilər Bu qeyri-mənasız təsirlər. Əslində, bir erkən, fun ilgili hekayələr Mark Zuckerberg bina zaman deyil Facebook, bu, ilk yazılmış, və hələ də əsasən PHP yazılmışdır. Və ən böyük problemlərdən biri onlar erkən scaling edilib üzləşib. Onlar sonra məktəb əlavə saxlanılan zaman məktəb məktəb sonra, mənim bilik, orijinal həllər biridir surəti və yapışdırıb mahiyyətcə idi verilənlər bazası ki, bəzi və kodu bəzi, Harvard idi ki, öz server çalışan, və MİT öz server çalışan edilmişdir. Bu idi, bəzi Siz kim geri bilər, dost ola bilməz digər şəbəkələrdə. Siz yəqin ki, dost yoxdur 10 və ya belə il əvvəl MİT və ya Harvard, ancaq şəbəkələri span bilmədi qismən bu səbəbdən. Və ən böyük problemlərdən biri Mark və Facebook kimi şirkətlər üçün həqiqətən yüzlərlə idarə olunur və minlərlə və milyonlarla saniyədə sorğuların. Belə şeylər biz başlamaq lazımdır Bu həftə haqqında danışır həqiqətən ilgili olacaq yaxşı proqram yazılı və populyar uğurlu tools ki, istifadəçilər çox idarə edə bilərsiniz. Beləliklə, biz şey haqqında danışmaq lazımdır endeksleme və axtarış kimi, lakin bu gün üçün deyil. Biz Çərşənbə günü daha görəcəksiniz. [MUSIC - "Seinfeld" MÖVZUSUNDA] DAVID Malan: Siz bilər Bu və ondan çıxmaq. Və qalmaq yoxdur yaddaş bəzi əvvəlcədən müəyyən edilmiş məbləğ. Yaxşı, nə adlandırmaq olacaq? HOPARLÖR 1: Bəli, nə olub? HOPARLÖR 2: Nə demək? O, mühazirə verilməsi oldu. DAVID Malan: Və biz bir istifadə edə bilərsiniz funksiyası, yaddaş malloc çağırıb HOPARLÖR 1: Niyə onun silah hərəkət deyil? HOPARLÖR 2: Well that Bilirsiniz ki, normal deyil. O, yalnız var kimi, yalnız var böyük kolbasa orada asma. HOPARLÖR 1: Bu normal deyil? HOPARLÖR 2: Bəli, mən düşünürəm yalnız təsadüfən o güman superglue ilə deodorant əvəz.