[MUZIKO Ludante] Stephen turbano: Do ​​mi estas Stephen turbano. Trans la flanko ĉi tie, eble ni povas akiri iuj personoj bucear en. Ni havas Gabriel kaj Zack. Do por mallonga vojmapon sur kio ĉi tuj aspekti, Mi tuj faros kelkajn ekstreme altnivela rigardi kion MVC estas. Gabe? GABRIEL Guimaraes: Mi iras al paroli pri Ruby kaj iomete kiom Rails verkoj kaj kiel ĝi povas esti helpi vin konstrui TTT aplikoj. Zack Chauvin: Kaj mi tuj montri vin specifa ekzemplo de kiel uzi Rails konstrui super awesome app. Stephen turbano: Awesome. Dolĉa. Bone. Do ni parolu pri MVC. Do ni iru al la proksima glito, kio Mi faros premante la butonon. Kaj ni iru al la next-- disvolviĝo, Mi ŝatas pensi tuj CVS, ĉar CVS estas vendejo kaj Ankaŭ havas V en la centro. Do imagu al vendejo. Kaj ni akiru ĉi vendejo vendi nur unu aferon. Do ni tuj havos ĉi stoki nur vendi tiujn ruĝajn tasoj. Kaj imagu vi iradu en, kaj vi iru al la fronto de la vendejo, kaj persono. Kaj lia nomo estas Vince. Kaj Vince ondoj saluton ĉe vi, diras hi. Kaj vi rimarkas ion pri Vince. Do kiam ajn ni pensu pri Vince, ni Necesos pripensi du ŝlosilaj adjektivoj. Vince estas bela, sed li estas malsaĝa. Akcepti. Vi do scias, nenian kulpon de siaj propraj, Bedaŭrinde, li estas bela. Li estas nia vido. Do nia unua elenco membro estas tie. Konservu ke en menso. Nun, vi demandas Vince, vi iru, hey Vince. Mi estas kliento. Li diras hi. Mi vere volas unu el viaj ruĝaj tasoj. Kaj kion signifas Vince diri? Ĉu iu havas iun ideon kio Vince diras? Mi iras al malvarma alvoko. Kion vi pensas Vince diras? Publiko: Li diras: Mi povas montri vin kie ĝi estas, sed mi ne povas doni vin unu. Stephen turbano: Li diras: Mi povas montri vin kie ĝi estas, sed mi ne povas doni vin unu. Eĉ pli malbone. Ajnulo havas alian ideon kio Vince povus diri? Publiko: Li devas iri ĉeko se ili havis neniu ruĝa tasoj. Stephen turbano: Vince ne eĉ scias ke li devas kontroli. Ion alian? Do vi diris, devas kontrolu se li havas ruĝan tasoj. Konduku. Publiko: Kio ruĝan tason? Stephen turbano: Kio ruĝan tason? Kio ruĝan tason? Vince estas konfuzita. Do Vince tuj paroli kun nia flanko elenco membro, Carl. Kiam ni pensas pri Carl, ni Gotta pensi du grandaj adjectives-- li estas kontrolo, sed li estas nekapabla. Do Vince goes-- li iras, kio estas ruĝa tason? Mi ne scias kion ruĝa kaliko estas. Li turnas ĉirkaŭe kaj li demandas Carl. Li diras, Carl, iu petis ruĝan tason. Ĉu vi povas fari tion? Kaj kion signifas Carl diri? Sed ni provu ĝin. Ĉu iu havas iun ideon kion Carl diras? Kaj mi simple ripeti ĝin reen al vi. Mi vidis manon movado. Publiko: Li diras al iu alie akiri la ruĝan tasoj. Stephen turbano: Li diras al iu alia por akiri la ruĝan tason. Trafe. Kaj ĉu ni havas ideon kiu tiu persono povus esti? Estas aludo. Iĝos starti kun M. Mob? Publiko: Modelo. Stephen turbano: La modelo, jes. Lia nomo ne estas modelo, bedaŭrinde, ĉar tio estas stulta nomo. Ni havas Mitt. Kiam ni pensas pri Mitt-- ne, tio ne estas bildo de Zack. Ni devas pensi pri du ŝlosilo adjektivoj kun Mitt. Li estas kapabla, sed li estas obeema. Do Mitt scias kion li devas fari, sed li vere ne povas fari nenion. Aŭ li vere ne povas decidi sur lia propra. Do ni havas Carl. Carl krias ĉe Mitt. Kaj li diras, hey Mitt, ni bezonas ruĝan tasoj. Kaj Mitt iras al sia ruĝa taso deponejo. Ĝi kroĉas tason, kaj li donas ĝin reen. Ĉu iu havas iun ideon kio okazas tiam? Donas la taso. Ĝis nun Mitt iris al sia ruĝa Taso-deponejo, forprenis gxin el, kontrolis ĝin, diris: Mi prenis unu ruĝan tason. Kaj li donos gxin al Carl. Ĉu vi havas ideon? Kion vi pensas Carl faras? Publiko: Carl donas ĝin al Vince. Stephen turbano: Carl donas ĝin al Vince. Vince. Publiko: Kaj Vince montras ĝin al [inaudible]. Stephen turbano: Ekzakte. Do tio estas ĝuste tio. Do Vince prenas la tason, eĉ ne scias kion estas, sed li montras ĝin al la uzanto. Do ni provu rekrei tiu vere mallonge. Kaj ni estas gonna bezono tri silentaj volontuloj, kiel vi uloj ne tuj por povi paroli. Do mi povus ekpreni tri? Akcepti. Kaj kiu vi ŝatus esti? Publiko: Mi estos Vince. Stephen turbano: Vince, OK. Bela sed stulta. Granda. Ajnulo? Ni serĉas kapabla sed submetitaj. Iu alia volas esti kapabla? Publiko: mi povus esti Carl. Stephen turbano: Dolĉa. Ni havas Carl. Publiko: Mitt. Stephen turbano: Mitt, OK. Kaj ni tuj bezonas a-- mi estos la kliento. Do venu, venu supren. Kaj estas ĉiuj konsiderante? Do Mi tuj demandas Vince al stari en la fronto, nur ridetas, nur ridetante tiel brila kiel ebla. Kaj ni iras, por demandi Carl, Bone, kial ne vi, kiel, staras rekte malantaŭ ŝi? Kaj Mitt, kial vi ne nur pafis en la dorso, kaj tiam Mi donos al vi unu grupo de tasoj por pendi evi. Do mi estas kliento. Mi venas. Kaj Mi faros [inaudible] mi diru hi, mi ŝatus tason. Perfekta. Do Vince havas ideon. Do kion signifas Vince faru? Vince-- OK, do mi iros esti rakonti nun. Vince krias ĉe Carl, kaliko! Kion Carl faros? Carl krias ĉe Mitt. Mitt kroĉas tason. Mitt donas ĝin al Carl. Carl revenas al Vince. Kaj Vince montras ĝin al la uzanto. Kaj tio estas alta, alta, altaj, tiel alta rigardi MVC. Ni dividu por havi vidon, kion la uzanto vidas, controlador, iu kiu faras ĉion en la fono sed vere ne povas ĝisdatigi ion aŭ ne povas fari ion ajn signifon krom nomante la vido kaj la modelon. Kaj tiam ni havas Mitt, la modelo, kiuj ĝisdatigas ajn datumojn ni havas. Do dankon tiel por nia bela, kontroli, kaj kapablaj volontuloj. Kaj mi kredas ke estis ĝi. [Aplaŭdo] Mi kredas Gabe iras por paroli nun sur espereble malpli alta nivelo. GABRIEL Guimaraes: OK, knaboj. Nun tuj parolos iom pli pri kodo kaj pri Ruby on Rails mem, kaj pri kiel ĝi rilatas al ĉiuj ĉi MVC rakonton. Esence, Ruby on Rails estas kadro. Pli pri tio en dua. Sed nur por doni al vi senco de kiu estas uzanta ĝin, kiel, ĉiuj tiuj grandaj companies-- tiel GitHub, Groupon, Twitter-- ili ĉiuj uzas Ruby on Rails kiel ilia ĉefa kadro implementar ilia retejo. Do mi certas ke multaj homoj uzis tiujn retejojn tie. Kaj estas la tuta Ruby on Rails implementar la modelo, la vido, kaj la regilo sur ĉiuj tiuj retejoj kaj multaj pli. OK? Do kiel mi diris, Ruby on Reloj estas kadro. Kaj vi povas ia pensas pri kadro en la senco de kiel konstruante domon. Do se vi iras konstrui oni house-- kaj vi povas ĉiam komenci de nulo, ĉu ne? Vi povas provi veni supren kun maniero segi la lignon, kaj alporti lignon sur la lokon, kaj por ricevi la ŝtonojn en la ĝustan formon, kaj tiam ĉiu de tio. Sed tio tuj prenos probable multaj jaroj ĝis vi akiras la tutan materialon, kaj vi akiri ĉion kune, kaj vi reale komenci konstrui vian domon. Do rezultas se komencas evi kadron kun iu kiu estas Jam ia en loko por ajna tipo de domo ke vi volas build-- ion tio estas tre genéricos sed ke vi povas tiam modeligi al via propra goals-- tiam vi povas utiligi tiu potenco de la kadroj por konstrui ili ion multe, multe pli rapida. Akcepti. Do ĉi tiu estas la sama ideo en enkadrigi apliko retejo aŭ por ajna tipo de apliko, tiurilate. Vi vere komenciĝas kun duono de apliko jam en loko por vi. Kaj per tio, mi volas diri al vi ricevi multajn dosierojn kiuj jam havas funkciojn, kiel bibliotekoj, kiel funcionalidad, kaj ordonas ke vi povas kuri por fari vian vivon multe simpla kaj facila. Akcepti. Do en ĉi tiu kazo, ni tuj paroli pri Ruby on Rails. Ekzistas multaj malsamaj kadrojn por tie. Ekzistas Django por Python. Ekzistas Zend Framework aŭ Laravel por PHP. Ekzistas multaj malsamaj. Ruby on Rails estas bela agrabla nova. Multaj homoj uzas tiun en startups kaj tiu speco de medio. Kelkaj el tiuj tre granda kompanioj kiuj mi montris ĉi tie antaŭ Ankaŭ uzante Ruby on Rails. Do nur por doni al vi senso de kio Rubeno estas kiel, ekde vi uloj estas pli uzitaj por, kiel, C kaj iomete de PHP nun, tial Rubeno tuj estos la ekvivalento de via PHP-ĉi senco. Tiu ne estas Rubeno. Tiu estas C. OK? Sed ĉi tio estas kiel la DJBHash funkcio kiun mi konas multajn personojn uzita por PSET fuŝo. Kaj en Ruby, belaj multe kiel en PHP, vi povus implementar ĉi kun nur kelkaj linioj de kodo. Anstataŭ devi maltrankviligi pri la hash funkcio, devi maltrankviligi la siteloj, kaj ĉiuj de tiu, vi simple povas diri, vortaro = Hash.net. Kaj poste vi uzas specon de kiel la saman ideon ke PHP havis. Kaj tial estas al vera. Kaj tiam se vi volas kontrolu, do kontrolu funkcio estus se vortaro "foo" egalas egalas vera, revenu vera. Kaj jen ĉio, OK? Do vi rimarkas kelkajn diferencojn. Ne estas duon-dupunktoj tie, ĉar estis en C. Sed la ĝenerala ideo estas tre simila. OK? Ankaŭ, en Ruby, ekzistas gemoj, kiujn estas speco de la Ruby bibliotekoj. Kaj Rails manipulas ilin en tre agrabla maniero por vi. Do se vi volas enmeti en iu biblioteko kiun faras retmesaĝoj, aŭ ke faras teksto mesaĝado, aŭ kiu faras integriĝo kun Facebook, aŭ ajna speco de aĵo tiel dum via app, ĝi estas tre, tre facila. Odds estas vi povas trovi ion tiel sur la interreto. Kaj ili nur faru iu kiel meto kiu gemo vi volas uzi en la gemo dosiero. Kaj tiam Rails instalas ĉiun. Vi ne devas maltrankvili pri ajna de tiu, por ke estas vere malvarmeta. Ankaŭ, estas multe, multe da helpo en linio. Do vi povas trovi multajn aferojn. Se vi havas eraro, vi povas simple Guglas ŝin, kaj ĝi tuj estos tre facila akiri helpon. Kaj estas multaj fun-- exactly-- ĉar vi ne devas maltrankviligi la malalta nivelo detaloj, implementación de hash tabloj kaj devi veni supre kun ĉiuj de la HTTP- titolaj kaj multaj eventoj, kaj inkluzive iuj pli alta nivelo tion. Vi ne devas maltrankviligi pri kiuj en Rails. Ĝi faras tre, tre bele por vi. Kaj ni iras por montri ke pli konkrete tre frue. Akcepti. Do iomete pri Rubeno denove. Do estas ĝuste kiel C, kiel mi diris. Anstataŭ printf, ni diru "Metas", kio estas "meti ŝnuron." Ĝi metas ŝnuron al la konzolo. Kaj en ĉi tiu kazo, ni estas nur presi "Saluton Mondo." Ni ne bezonas la krampoj, sed estas sufiĉe tre similaj. Kaj tiam se vi volas fari ion tie, kiel presi faskon de "Smalls" kaj faskon de "bigs" En momento buklo, Estas speco de kiel en C, dekstra? Vi ne havas la params, sed estas sufiĉe tre la sama. La deŝovon tie grafoj, do x estas 1. Kaj tiam Kvankam x estas pli malgranda ol 50-- ĉi estas Se, tiu estas Else. Ĝi estas sufiĉe multe ŝatas kion vi vidis. Kaj tiam x + = 1 estas simple pliigante, speco de kiel fari la ++ ke vi povas faros en C. Sed estas belaj tre kio vi vidis en C. Ĝi ne devus esti tro komplika. Sed estas pli potenca. Do estas kelkaj komandoj tie kiuj estas definitive iom pli nova. Do ekzemple, "metu". Vi povas uzi ĉi hashtag skribmaniero tie por ĝuste presi something-- sufiĉe tre kiel kio vi farus se la% D aŭ% C aŭ iun tiel. Kaj vi povas reale enmetu Se tuj post la deklaro. Do mi nur volas fari this-- Se x estas pli granda ol 3. Do kial mi devas fari kompletan Se bloko? Mi ne scias. Mi povas simple printi nur se x egalas pli granda ol 3. Do ĉi tiu estas unu linio vojo fari tion en Ruby. Liston en Ruby iu tre versátil. Do vi ne vere bezonas havi nur unu tipo. Vi povas havi ĉenon, kaj tiam iuj numeroj, kaj kiom. Kaj se vi volas alfiksus ion listo, vi povas simple uzi tiun skribmaniero dekstra tie. Kaj se vi volas persisti. Pli malpli la 4each en PHP, tie, vi havi lerta kaj vi do "List.each fari." Kaj tiu "elem," jen kiel la nomo de ĉiu elemento ke mi nepre akiros en mia listo. Kaj tiam mi povos simple "metas elem." Kaj "metas" preskaux ansoj metante ĝin por vi, presi ĝin. Ne gravas se ĝi estas ĉeno aŭ int. Iĝos funkcias por vi. Dekstra? Cool. Kaj ĝuste kiel PHP, Ruby kaj HTML ankaŭ integras tre, tre bele. Kaj tie, tie estas kelkaj HTML kun Ruby en ĝi. Do ni havas korpon etikedo kiel en HTML. Kaj se ni volas kontroli ke uzanto estas, ekzemple, ensalutinta, ni povas simple diri, komencante de Rubeno, se user.logged_in ?, fino de Ruby. Presu ĉi tiu tuta afero, kiu havas iujn Ruby en ĝin, kiu estas nur speco de tia sintakso por PHP kiu presas el variablo. Ni presi la user.name. Do bonvena, Stefano, ene de HTML div. Kaj fine, ni havas "fino" kaj Ruby kodo, kio signifas ĉi estas mia Se bloko. OK? Do estas simple kiel senjunta integriĝo inter Ruby kaj HTML. Ekzistas ankaŭ multaj rimedoj. Sed antaŭ ol ni movas sur, faras neniun havas demandojn pri Ruby, io? Akcepti. Ekzistas multaj rimedoj en linio al tryruby.org, Kodo Akademio, ruby-lang.org, kie vi povas provi ĝin sur via foliumilo antaŭ vi reale diras, ho, OK, Mi iras por uzi Ruby por mia fina projekto. Kaj tiel definitive doni tiujn provi. Ĉiuj de ĉi tiuj diapozitivoj estas tuj estos disponebla en linio, tiel ke oni nur elŝuti ilin. Kaj jes? Publiko: [inaudible] kion vi ĵus montris Estis HTML kaj la kodo enigita enen ĝin al tiu nocio de Model View Controlador? GABRIEL Guimaraes: Jes. Ni faros tion en dua kiam ni montras nian ekzemplon, OK? Dankon pro la demando. Do la demando estis esence, se ni povas montri ĉi integriĝo de Rubeno en HTML ene de la Modelo Montru Controller kadro. Do la ideo de la Modelo Vidi Controller kadro estas ĝi estas esence filozofio, ĝuste kiel Stephen montris tie. Kaj ne estas io ke vi devas fari, sed estas iu kiu faras vian vivon tiel simpla. Kaj Ruby on Rails estas konstruita ĉirkaŭ tiu filozofio de kodo. Do ni iras por montri ekzemplo tre frue. Do Rails estas amo. Multaj homoj uzas ĝin, kiel mi diris. Kaj estas vere amuza. Vi ĉiuj devus definitive provu. MVC faras ĉion pli simpla. Do la Model View Controller, la disigante aferoj kaj metante unu persono, per, aŭ unu parton de via apliko fari ĉiun de la malsamaj laborpostenoj ke vi apliko devas vidi. Kaj malpli da tempo pasigis sur malalta nivelo problemojn. Kaj tre populara nun. Ni havas Rails 4.0, kio estas nova versio. Kaj ĝi venas kun amaso de malvarmeta havajxoj. Alia demando. Publiko: Alia demando. Ruby on Rails kontre Ruby on Rails Grails. GABRIEL Guimaraes: OK. La demando estis, Ruby on Rails kontre Ruby-- Publiko: Grails. Ruby? GABRIEL Guimaraes: Yeah. Do Ruby Estas la lingvo. Publiko: No. Mi petas vin kompari lingvon kaj kadron, Ruby on Rails, kun alia populara lingvo framework-- Grails-- kun Ruby on Rails. GABRIEL Guimaraes: OK. Pardonu. La demando estis, komparu Ruby kaj Ruby on Rails al alia kadro kaj another-- Publiko: Rubeno. Estas OK. Se vi ne scias pri tio, ke estas bone. GABRIEL Guimaraes: Kiel, kion mi komprenas estas that-- Publiko: Jen plia kadro nomita Grails. GABRIEL Guimaraes: Ho, Grails. Mi neniam aŭdis pri ĝi. Pardonu. Mi neniam aŭdis pri Groovy on Rails. Pardonu. Publiko: Estas multe pli bone integrita kun Java. GABRIEL Guimaraes: mi vidas. Publiko: Mi estas nur kurioza pri iuj homoj mi scias like-- GABRIEL Guimaraes: Ne, mi neniam auxdis pri tio, bedaŭrinde. Grails. Publiko: Kelkaj homoj evidente kiel Ruby on Rails. GABRIEL Guimaraes: Mi havas uzita Ruby on Rails multon. Mi jam uzis kelkajn Django kun Python, kiel mi diris. Mi jam uzis kelkajn Laravel. Sed mi ne estis uzinta Groovy on Rails. Pardonu. Kaj ĝi estas tre populara nun kun Rails 4.0. Kiel multaj el la aĵoj kiujn Rails faras por vi, ekzemple, estas vi havas multajn CSS dosierojn kaj multaj JavaScript dosierojn. Kaj vi povas trakti ilin kiel apartaj kaj ĉiu. Sed tiam automatically-- kiam Vi sendu vian kodon por produktado, ĝi aŭtomate kompilas ilin ĉiujn en unu sola dosiero ke'S minified sen ajna spacoj, tiel ke ĝi prenas supren malpli spaco en via apliko, tiel ke vi povas vere grimpi aferojn multe. Tial tiaj grandaj kompanioj kiel Twitter kaj GitHub uzas Rails, ĉar ĝi faras ĉiu ke por vi, kiuj estas vere malvarmeta. Unu afero kiu estas tre, tre tre fortimiga por homoj, inkluzive min, kiuj klopodas labori kun kadro komence, estas ke kiam vi komencu marsxi aplikon, vi tuj vidos al amaso de dosieroj. Kiel, kiam oni kreas Rails Nova, Mia Apliko, vi tuj vidos ĉiujn tiujn folders-- app, bin, config, db, lib, log, publiko. Kiel, sunaj kaj multaj ajxoj. Kaj unuafoje mi ekvidis tion, mi estis kiel, OK, Mi havas neniun ideon kio okazas. Mi ĵus volas krei retejo kun "Saluton, mondo!" kaj tio donas al mi, kiel, 100 miliardoj malsamaj paĝoj. Mi ne scias kio okazas. Do bonvolu ne esti tro daunted per tio. La ideo estas ke ĝi efektive havas la duonon de domo tie por vi jam. Ĝi havas kompletan enkadrigi vin jam. Tial estas tantas dosierojn. Sed la bela afero estas, ke ĝi disigas ĉiuj ili tre bele. Odds estas vi ne devas maltrankviligi pri plej el tiuj dosierujoj. La plej grava, mi dirus, estas la app dosierujon, kie via app reale vivas. Do la agord, vi tuj devas configurate iuj aĵoj, kiel via datumbazo kaj aliaj similaj ĝis kia datenbazo vi uzas. Sed alia ol tio, kiel la plimulto de vian laboron tuj estos farita en app. Do en app, vi havas aktivojn, regiloj, helpantoj, mailers, modeloj, rigardoj. Do jen, vi komencas vidi ke controladores, modeloj, kaj vidoj venas en ludo. Mailers estas nur se vi volas sendi retpoŝtojn. Helpantoj se vi volas krei iuj funkcioj ke vi uzas tre en la vido. Do vi metis ilin en helpantojn. Kaj aktivoj estas esence ĉiuj via idolo, ĉiuj de via CSS, ĉiuj viajn Ĝavoskripto, Kiel tiuj specoj de aĵoj kiuj get sendita al la kliento. Kaj ĉio tio en la aktivoj, ke mi diris antaŭe, ĝi alvenas minified. Ĝi estas kompilita. Kaj vi ne vere devas maltrankviligi ke kiam iras al produktado kodo. Cool. Nun Zack tuj venos, kaj li estas faros ekzemplon de Twitter50. Publiko: Woo-hoo! Zack Chauvin: Awesome. Do mi havis la eblecon labori kun Ruby on Rails tiu somero. Estas nekredebla kadro. Mi tre parta al ĝi. Kaj mi nur montras al vi iom da ekzemplo de kio povis simili. Transsalti al Chrome. Do tiu estas ekzemplo de tre simpla Ruby on Rails application-- ion kiel tio estas io ke Ruby vere elstaras that-- ĝuste kie via modeloj estas tre bone difinita. En ĉi tiu ekzemplo, vi vidos du malsamaj modeloj, kiu estas ke ni havas uzantoj kaj ni havas tweets. Do tiu estas Twitter50, Harvard propra Twitter. Kiel vi povas vidi, mi estas ensalutinta kielzack. Kaj mi povas fari novan tweets. Do mi think-- "Tiu estas" - sorry? Publiko: [inaudible]. Zack Chauvin: Oh, OK. Bezonas halti la servilo. Bonega. Do jen ni estas. Kiel vi povas vidi, ni havas niajn Twitter apliko jam ĉi tie. Kaj estas súper facila por komenci la servilo. Ni nur faru "reloj servilo." Granda. Akcepti. Dankon pro tio. Do nun ni kuras. Kaj ni diras, "Tiu estas imponega seminario. " Kaj ni vidu kio okazas. Do ni Tweet pri ĝi. Malsupren malsupre, vi povas vidi nun ekzistas pli ol tri tweets. Do ni havas iomete de paginación okazas. Kaj ni havas tion tweet. Kaj mi ankaŭ povas serĉi tra mia tweets-- serĉi ĉi tiun kaj la du kiuj havas la vorton "Ĉi" en ili aperas. Ni ankaŭ povas viŝi la tweets de klakante sur la malmulta Forigi butonon. Kaj evidente, mi povas nur forviŝi la fosto kiu apartenis al mi. Jam, ni preskaŭ havis la funcionalidad de Twitter. Kiel, kiam vi pripensas ĝin, Twitter vere ne plenumu cxion multe. Ĝi havas uzantojn, gxi havas tweets. Estas iuj pli kompleksaj funcionalidad. Sed kiam vi vere povos subeniri al ĝi, ĝi estas tute simpla Ruby on Rails app. Kaj iun kiel ĉi tio, kun bona kompreno de Ruby on Rails, vi povis probable fari en horo aŭ du. Kaj ke vere venas reen al la Ruby mantra, kio estas konvencio super agordo. Do reen en la tago, personoj, ĉiutempe ili volis fari ĉi tiu retejo, devus komenci de nulo. OK, mi volas fari retejon. Ni faru ĉi dosieron kaj Ĉi tiu dosiero kaj la dosiero. Kun Ruby on Rails, ekzistas nenio de tio. Vi diras: Mi volas novan app. Kaj ĝuste kiel Gabe montris al ni, ke kreas la tutan dosieron strukturo por ni. Kaj ni simple ŝanĝu la iom partoj, ke ni bezonas. Ni nur personecigi kion estas unika pri nia app. Cool. Do reiri al niaj prezento preview-- interesa. Kie mi prezenti? Publiko: Plena ekrano. Supre dekstre. Zack Chauvin: Bonega. Cool. Akcepti. Do unue: la modelo. Stefano faris imponega laboron de resumante MVC. Kaj nun ni iras rilatigi ke reen al Ruby on Rails. Do la modelo vi povas speco de pensi kiel la datumbazo. Vi venas vidante ĉi en CS50 Financo, kie la modelo tendencas la informo pri kiom stokoj vi havas, aŭ ĉiuj transakcioj ke vi faris. Tiu estas ekzemplo de linion de kiel vi farus iru en fari novan modelon en Rails. Do mi volas ke uzanto. Iĝos havi retpoŝto, kiu estas ĉeno, kaj pasvorton, kiuj Estas ankaŭ la kordo. Do estas kiel those-- Mi volas ĉiu vico en mia tablo de uzantoj aspektas tiel. A vere awesome parto pri Rails estas kiu faras nenecese skribi ajnan SQL sufiĉe tre. Kiom da de vi uloj amis skribi SQL en PSET 7? Trafe. SQL estas ne tre uzantamika. Kaj Rails abstrae ĉiuj ke for kun tiuj vere facila komandoj. Do ekzemple, se ni havas uzanto, uzanto havas multaj tuits. Kaj ĉiu el tiuj tweets apartenas al uzanto. Do se vi rigardas tie, ĉi estas nia modelo por nia tweet. Kaj ĉiuj ni devas diri estas tiu sola line-- min tweet kaj mi apartenas al uzanto. Kaj kun tiu sola linio kaj Iomete de datumbazo agordo, Rails establas ĉi tiun rilaton. Anytime, mi povas nur diri, zack.tweets, kiel, donu al mi cxion de Zack tweets. Neniu SQL. Super facila. Denove, tio estas konvencio super agordo venanta en ludo. Vi povas vidi iomete de ekzemplo de Rubeno tie. Ŝati Donis diris, skribante Rubeno estas speco de kiel skribi angle. Ĝi estas tre altnivela lingvo, kaj ĝi faras lin vere facila por ni diri aĵojn kiel, mi volas certiĝi ke tiu tweet havas korpon. Lia ĉeesto estas vera. Kaj mi volas certigi ke ĉi kvivit, ĝuste kiel normala Twitter, havas max longo de 140. Estas súper-intuicia, oni vere granda lingvo. Sekva supren ni havas la vidon. Do tiu engaĝas HTML kaj CSS. Kaj jen ekzemplo de vido. Do Ruby on Rails tipon de perfekteco integriĝas ambaŭ Ruby kaj HTML por generi kion ni volas sur la paĝo. Do tiu estas ekzemplo de nia aranĝo. Do vi povas vidi iuj etikedoj ke vi infanoj kutimis, kiel HTML, korpo, ĉiuj ke bonaj ajxoj. Kaj bone cxi tie, ni korpigi iuj Ruby dirante, se ekzistas mesaĝon montri, poste montros la mesaĝon en div. Do mi ne ricevos tro multe en tiu. Sed tio estas ĝenerale paĝo kiu alvenas sendadis on-- kaj negrave kia paĝo vi estas sur, tiu unu prenas pruntitaj. Do jen kion akiras inkludis ĉiam. Cool. Alia ekzemplo de view-- ĉi estas la unu kie elegio ĉiuj tweets. Kelkaj el ĉi aĵoj povus aspekti bela familiara. Do ekzemple, ĝuste ĉi tie, ni estas looping tra ĉiu de la tweets, kaj ni presi ilin ekstere. Do tie estas kie ni estas presi ekster la korpo. Kaj se la tweet la user-- ĉi tie estas reala ekzemplo de neniu SQL estas implikitaj. Mi nur demandas, estas jena tuit de uzanto la aktuala uzanto? Tiam montri ligilon forigi ĝin. Estas súper simpla. La controlador. Do tiu estas, denove, la interfaco inter la modelo kaj la vido. Estas la unu kiu faras la malfacilan laboron de interacting-- estante la intermediario. Ĝi ŝarĝas informoj por la vidi, kion ni vidos en sek. Kaj por interagi kun la modelo, ĝi flamo modelo metodoj, kiuj estas kio vi uloj estas konataj kiel funkcioj. Do ekzemple, ĉi tiu estas nia tweet la controlador. Ĝi povus aspekti iom fortimiga nun. Sed estas fakte super intuicia unufoje komencinte subnaĝado en. Do ekzemple, en nia indekso, jen kie ni volas montri ĉiujn tweets. Kaj tiel ĉi linio esence nur petas ĉiuj tweets. Kaj poste ni pravalorizi ambaŭ la nova tweet-- tiel kiel se ili volas krei nova tweet sur tiu paĝo. Kaj petu kion la aktuala uzanto estas. Kaj tiu estas tre parenca al la Redonu ke vi vidis en PSET 7 kie estas nur speco de rakonti la view-- Estas speco de, kiel, pasante la variabloj kiujn vi tuj bezonos en la vido al la vido. Kaj tie estas tuta aro da de malsamaj metodoj ke ĉi tiu tweet de la controlador povas manipuli. Sed vere, Rails faras grandan laboron de klaso de dividanta ilin en la malsamaj agoj kiuj via controlador povus fari. Ĉu estas demandoj pri iu el la MVC partoj de reloj? Speco de ĵus venteton per. Do vi uloj povas kontroli ĝin sur via propra. Imponega. Ni daŭre iros. Do instali Rails. Instalado Rails povus esti, kiel, unu el la pli fortimiga partoj de la tutaj Rails procezo, bedaŭrinde. Sed evidente, ĉiuj ni estas ĉirkaŭe helpi. Kaj fojo tion pagas tie, multajn grandajn rimedojn, kiel Gabe menciita, por ekuzi. Jen la ligiloj kiuj vi bezonos por elŝuti Rails akiri ĝin instalita en via maŝino. Evidente, ĝi estas disponebla por ambaŭ Vindozo kaj Mac kaj por la CS50 aparaton. Demandojn pri io ni diris? Publiko: mi estus interesis, actually-- do mi scias ke elŝutanta programaro estas la plej granda baro. Se troviĝas sufiĉa intereso havi elŝutante mini kunsido aŭ io. Zack Chauvin: Hmm. Yeah. Tio povus esti vere utila. Se iu vere Gung-Ho pri uzante ĉi por ilia projekto aŭ en la estonteco, tiam ni estos plej definitive feliĉa diskuti kun vi pri tio. Hmm. Publiko: Rilatanta demando al kio mi demandis antaŭe. Por tiuj el vi, kiuj faris aliajn kadrojn kiuj estas ankoraŭ provas fari la saman aferon, plifaciligi konstrui retejon aŭ funcionalidad, mi kredas neniun senson kial ni estus sur Rails kontre Zend aŭ iuj de la aliaj kadroj kaj lingvoj. Zack Chauvin: mi nur diri miajn $ 0,02 pri tio. Mi amas Ruby on Rails. Mi havis la eblecon labori en ambaŭ PHP kaj Ruby on Rails. Mi multe preferus Ruby on Rails pro Ruby. Definitive, tio estas granda parto de ĝi. Kiel, kiam vi estas elektanta via kadro, vi ankaŭ elektu vian lingvon. Rubeno estas súper accessible-- Furaĝo multe pli bona lingvo ol PHP. Sed tio speco de persona prefero. Siavice, alia konsidero estas la komunumo malantaŭ la kadro ke vi laboras kun. Nun Ruby on Rails estas vere varmega. Estas tunoj de subteno malantaŭ ĝi. Vi sendi ion sur Parva Overflow pri problemo vi estas havante en Ruby on Rails, kaj ĝi estas respondita. Denove, ĝi estas malferma fonto, kiu signifas ke ĝi estas konstante sxangxigxas. Estas tunoj de personoj kiuj vere dediĉita por fari ĉi tion vere awesome kadro. Tial estas kial mi volas elekti Ruby on Rails. GABRIEL Guimaraes: Yeah. Mi dirus ke la ideo malantaŭ plej kadrojn vi estas tuj ekscios estas tre, tre simile, dekstra? Do la Model View Controller, la fakto ke nia controlador La tuj serĉos kiel iu kiel this-- ĉiu de la funkcioj estas kiel unu el viaj paĝoj, kaj ĝi alidirektilojn vi, kaj ĝi inicializa la variabloj. Tio tuj estos la sama afero por ĉiu kadro kiun vi vidas tie. Kaj tie tuj estos la modelo. Kaj vi povas fari aferojn kiel, "apartenas al". Do anstataŭ fari la SQL versio, vi nur, kiel, do, user.tweets, kaj vi ricevos ĉion. Ĉiuj havas tiun. Krom en Ruby, vi faras user.tweets, kaj tiam iuj kadroj en PHP, vi faru user.getalltweets KIE mia PHP ne estas problemo. Kiel, ĝi estas granda linio. Estas la sama afero, sed estas granda linio. Do tio estas unu el la ĉefaj kialoj de miaj preferoj super Ruby. Estas nur mi faras ĝuste la samon en aliaj kadroj, ĝi simple prenas min dufoje kiel longaj linioj de kodo. OK? Ajna alia demandojn? Zack Chauvin: Io Mi mencias quickly-- Gabe parolis iom sur gemoj. Kaj tiu estas vere great-- Mi volas diri, ĉi estas ia komuna al ĉiuj kadroj, ke estas speco de gemo koncepto, kiu estas kiel en mia malgranda ekzemplo, Mi ensaluti. Kiel vi povas ensaluti, subskribi ekstere. Kiel, tio estas vere speco de kompleksa procezo. Ĝi manipulis iom iom por vi en PSET 7. Sed mi ankoraŭ ne plene scias kiel implementar signo-en, signo-ekstere. Kaj tio estas ĉar Ruby on Rails havas tunojn de gemoj kiuj lavas da tio por vi. Denove, konvencio super agordo. Ĉies tuj estos faranta tiu signo-en, subskribi-out paŝo. Do kial ne simple fari pakon, nomita Intencu en tiu kazo, kiu estas gemo. Vi nur inkludas. Kaj tiam tie estas iom da helpo Enreta kun kiel uzi ĝin. Kaj vi ne devas maltrankviligi pri io ajn kiel tio. Alfiksantaj fotojn por tiuj things-- gemo por tio. Kiel, iam ajn vi provas fari nenion nova, estas gemo por tio. Kaj vi speco de simple peco kune ĉi tiuj gemoj kaj konstrui vere kompleksa apliko tre rapide. Cool. Ajna alia demandojn? Stephen turbano: Woo-hoo. Mi ne kredas [inaudible]. GABRIEL Guimaraes: OK. Danke tiel, knaboj. Stephen turbano: Buh-bye. Zack Chauvin: Buh-bye. Stephen turbano: Woo-hoo. [Aplaŭdo] Yay.