[MUSIC kucheza] STEPHEN kilemba: Kwa hiyo mimi nina Stephen kilemba. Juu ya upande wa hapa, labda sisi Unaweza kupata baadhi ya watu kupiga mbizi katika. Tuna Gabriel na Zack. Hivyo kwa mpango wa mafupi juu ya nini hii ni kwenda kuangalia kama, Mimi nina kwenda kufanya baadhi sana ngazi ya juu kuangalia nini MVC ni. Gabe? GABRIEL Guimaraes: mimi nina kwenda majadiliano juu ya Ruby na kidogo kidogo jinsi reli linafanya kazi na jinsi unaweza kukusaidia kujenga maombi ya mtandao. ZACK CHAUVIN: Na mimi nina kwenda kuonyesha mfano maalum ya jinsi kutumia reli kujenga programu super kutisha. STEPHEN kilemba: Awesome. Sweet. Wote haki. Basi hebu majadiliano juu ya MVC. Basi hebu kwenda slide ijayo, ambayo Nitafanya na kubwa ya kifungo hii. Na hebu kwenda maendeleo next--, Mimi kama kufikiri kuhusu kwenda CVS, kwa sababu CVS ni kuhifadhi na Pia ina V katika kituo hicho. Na hivyo hebu fikiria ya kuhifadhi. Na hebu kufanya kuhifadhi hii kuuza jambo moja tu. Hivyo sisi ni kwenda kuwa na hii kuhifadhi tu kuuza vikombe haya nyekundu. Na kufikiria wewe kutembea katika, na unakwenda mbele ya kuhifadhi, na mtu. Na jina lake ni Vince. Na Vince mawimbi hodi katika wewe, anasema hi. Na taarifa jambo moja kuhusu Vince. Hivyo wakati sisi kufikiri juu ya Vince, sisi kufikiri juu ya mbili vivumishi muhimu. Vince ni nzuri, lakini yeye kijinga. OK. Hivyo unajua, hakuna kosa yake mwenyewe, kwa bahati mbaya, yeye ni nzuri. Yeye ni mtazamo wetu. Hivyo yetu ya kwanza mwanachama kutupwa ni huko. Kuendelea kuwa katika akili. Sasa, unaweza kuuliza Vince, unaweza kwenda, hey Vince. Mimi nina wateja. Anasema hi. Mimi kwa kweli wanataka moja ya vikombe yako nyekundu. Na je Vince kusema? Je, mtu yeyote yoyote wazo nini Vince anasema? Mimi nina kwenda baridi wito. Unafikiri Vince anasema? Watazamaji: Yeye anasema, siwezi kuonyesha ambako ni, lakini siwezi kukupa moja. STEPHEN kilemba: Yeye anasema, siwezi kuonyesha ambako ni, lakini siwezi kukupa moja. Hata mbaya. Mtu mwingine na mwingine wazo nini Vince anaweza kusema? Watazamaji: Yeye ina kwenda kuangalia kama wana vikombe nyekundu yoyote. STEPHEN kilemba: Vince hana hata kujua ana kuangalia. Kitu kingine? Hivyo alisema, ina kuangalia kama ana vikombe nyekundu. Kwenda mbele. Watazamaji: Nini kikombe nyekundu? STEPHEN kilemba: Nini kikombe nyekundu? Nini kikombe nyekundu? Vince ni kuchanganyikiwa. Hivyo Vince ni kwenda kuzungumza na yetu ijayo mwanachama kutupwa, Carl. Na wakati sisi kufikiri juu ya Carl, sisi gotta kufikiri kuhusu mbili kubwa adjectives-- yeye ni kudhibiti, lakini yeye hawezi. Hivyo Vince goes-- yeye huenda, ni nini kikombe nyekundu? Sijui nini kikombe nyekundu ni. Yeye anarudi kote, na anauliza Carl. Anasema, Carl, mtu aliuliza kwa kikombe nyekundu. Je, unaweza kufanya hivyo? Na je Carl kusema? Hebu takwimu ni nje. Je, mtu yeyote yoyote wazo nini Carl anasema? Na mimi itabidi kurudia hivyo nyuma yenu. Niliona harakati mkono. Watazamaji: Yeye anasema mtu mwingine kupata vikombe nyekundu. STEPHEN kilemba: Anawaambia mtu mwingine kupata kikombe nyekundu. Hasa. Na je tuna wazo mtu huyo anaweza kuwa? Ni ladha. Ni kwenda kuanza na M. Mob? Watazamaji: Model. STEPHEN kilemba: mfano, ndiyo. Jina lake ni si Mfano, kwa bahati mbaya, kwa sababu hiyo jina silly. Tuna Mitt. Na wakati sisi kufikiri juu ya Mitt-- hakuna, hii si picha ya Zack. Tuna kufikiri ya mbili vivumishi muhimu na Mitt. Yeye ni uwezo, lakini yeye mtiifu. Hivyo Mitt anajua ana kufanya, lakini yeye kweli hawezi kufanya kitu chochote. Au yeye kweli hawawezi kuamua juu yake mwenyewe. Hivyo tuna Carl. Carl shouts katika Mitt. Na anasema, hey Mitt, tunahitaji vikombe nyekundu. Na Mitt inakwenda kikombe yake nyekundu depository. Yeye grabs kikombe, naye anatoa ni nyuma. Je, mtu yeyote yoyote wazo nini kinatokea, basi? Anatoa kikombe. Hadi sasa Mitt amekwenda nyekundu yake kikombe there, kuchukuliwa nje, checked it off, alisema, Mimi alichukua moja nyekundu kikombe. Na yeye kutoa kwa Carl. Je, una wazo? Unafikiri Carl gani? Watazamaji: Carl anatoa ni Vince. STEPHEN kilemba: Carl anatoa ni Vince. Vince. Watazamaji: Na Vince inaonyesha ni kwa [inaudible]. STEPHEN kilemba: Hasa. Hivyo hiyo ni hasa hivyo. Hivyo Vince inachukua kikombe, haina hata kujua ni nini, lakini yeye inaonyesha ni kwa mtumiaji. Basi hebu kujaribu recreate kweli hii kwa ufupi. Na sisi ni gonna haja tatu kujitolea kimya, kama wewe guys si kwenda kuwa na uwezo wa kusema. Hivyo inaweza mimi kunyakua tatu? OK. Na ni nani ungependa kuwa? Watazamaji: Mimi itabidi kuwa Vince. STEPHEN kilemba: Vince, OK. Beautiful lakini kijinga. Mkuu. Mtu mwingine? Sisi ni kuangalia kwa uwezo lakini mtiifu. Mtu yeyote mwingine wanataka kuwa na uwezo? Watazamaji: Mimi inaweza kuwa Carl. STEPHEN kilemba: Sweet. Sisi tumepewa Carl. Watazamaji: Mitt. STEPHEN kilemba: Mitt, OK. Na sisi ni kwenda haja a-- Nitakuwa wateja. Hivyo kuja juu juu, kuja juu juu. Na ni kila mtu katika mtazamo? Hivyo nina kwenda kuuliza Vince kwa kusimama mbele, kutabasamu tu, tu kutabasamu kama mkali iwezekanavyo. Na sisi ni kwenda kuuliza Carl, haki, kwa nini si wewe, kama, kusimama haki ya nyuma yake? Na Mitt, kwa nini si wewe tu kwenda mbali kwa nyuma, na kisha mimi nitakupa kundi vikombe hutegemea nje na. Hivyo mimi nina wateja. Nitakapokuja. Na mimi kufanya [inaudible] mimi kusema, hi, Ningependa kikombe. Perfect. Hivyo Vince hana wazo. Kwa hiyo ni nini Vince kufanya ijayo? Vince-- OK, hivyo mimi nina kwenda kuwa akisimulia sasa. Vince shouts katika Carl, kikombe! Je, Carl nini? Carl yells at Mitt. Mitt grabs kikombe. Mitt anatoa ni Carl. Carl anarudi kwa Vince. Na Vince inaonyesha ni kwa mtumiaji. Na kwamba ni juu, juu, juu, hivyo high kuangalia MVC. Sisi kugawanya yake na kuwa na mtazamo, nini user anaona, mtawala, mtu ambao hufanya kila kitu kwa background lakini kwa kweli huwezi update chochote au hawawezi kufanya kitu chochote cha maana yoyote ila wito mtazamo na mfano. Na kisha tuna Mitt, mfano, ambao updates chochote data tuna. Hivyo asante sana kwa mazuri yetu, kudhibiti, na kujitolea uwezo. Na nadhani kwamba alikuwa ni. [Makofi] Nadhani Gabe ni kwenda kuzungumza sasa juu ya hopefully chini kiwango cha juu. GABRIEL Guimaraes: OK, guys. Sasa hebu majadiliano kidogo zaidi kuhusu kanuni na kuhusu Ruby juu ya reli yenyewe, na kuhusu jinsi inahusiana yote ya hadithi hii MVC. Kimsingi, Ruby juu ya reli ni mfumo. Zaidi juu ya kwamba katika pili. Lakini tu kukupa hisia ya nani kutumia hiyo, kama, yote haya companies-- kubwa hivyo GitHub, Groupon, Twitter-- wao ni wote kutumia Ruby juu ya Reli kama mfumo wao kuu kutekeleza tovuti yao. Hivyo mimi nina uhakika mengi ya watu wametumia tovuti hizi hapa. Na ni Ruby yote juu ya reli kutekeleza mfano, maoni, na mtawala juu ya yote ya tovuti hizi na wengi zaidi. OK? Hivyo kama nilivyosema, Ruby juu ya Rails ni mfumo. Na unaweza aina ya kufikiria mfumo kwa maana ya kama kujenga nyumba. Hivyo kama wewe ni kwenda kujenga house-- na unaweza daima kuanza kutoka mwanzo, haki? Unaweza kujaribu kuja na njia ya aliona mbao, na kuleta kuni na mahali, na kupata mawe katika sura ya haki, na kisha wote ya kwamba. Lakini hiyo ni kwenda kuchukua pengine kura ya miaka mpaka kupata vifaa vyote, na unaweza kupata kila kitu pamoja, na wewe kweli kuanza kujenga nyumba yako. Hivyo ni zamu nje kama wewe kuanza nje na mfumo na kitu ambacho ni tayari aina ya mahali kwa aina yoyote ya nyumba kwamba unataka build-- kitu hiyo ni generic sana lakini kwamba unaweza basi mfano kuelekea yako mwenyewe goals-- basi unaweza kujiinua nguvu hii ya mifumo ya kujenga yao kitu gani, kwa kasi zaidi. OK. Hivyo hii ni wazo moja katika mfumo wa maombi ya mtandao au kwa aina yoyote ya maombi, kwa jambo hilo. Wewe kweli kuanza nje na nusu ya maombi tayari kuna mahali kwa ajili ya wewe. Na kwa kuwa, I mean wewe kupata kura ya files kwamba tayari kuwa na kazi, kama maktaba, kama utendaji, na amri kwamba unaweza kuendesha ili kufanya maisha yako mengi rahisi na rahisi. OK. Hivyo katika kesi hii, tunakwenda kwa majadiliano juu ya Ruby juu ya reli. Kuna kura ya tofauti mifumo huko nje. Kuna Django kwa Python. Kuna Zend mfumo ni au Laravel kwa PHP. Kuna kura ya ndio tofauti. Ruby juu ya reli ni pretty nice mwezi mmoja. mengi ya watu kutumia katika startups na aina hii ya mazingira. Na baadhi ya haya kubwa sana makampuni ambayo mimi ilionyesha hapa kabla ya pia kutumia Ruby juu ya reli. Hivyo tu kukupa hisia ya kile Ruby ni kama, tangu wewe guys ni kutumika zaidi kwa, kama, C na kidogo kidogo ya PHP sasa, hivyo Ruby ni kwenda kuwa sawa PHP yako katika maana hii. Hii si Ruby. Hii ni C. OK? Lakini hii ni kama DJBHash kazi kwamba mimi kujua watu wengi kutumika kwa pset misspellings. Na katika Ruby, pretty kiasi kama katika PHP, wewe inaweza kutekeleza hili na tu mistari michache ya kificho. Badala ya kuwa na wasiwasi kuhusu hash kazi, kuwa na wasiwasi kuhusu ndoo, na yote ya kwamba, unaweza kusema tu, kamusi = Hash.net. Na kisha kutumia aina ya kama wazo moja kwamba PHP alikuwa. Na hivyo ni kwa kweli. Na kisha kama unataka kuangalia, ili kuangalia kazi itakuwa kama kamusi "foo" sawa sawa na kweli, kurudi kweli. Na kwamba ni yote, OK? Hivyo taarifa tofauti chache. Hakuna nusu colons hapa, kama kulikuwa na katika C. Lakini wazo la jumla ni sawa sana. OK? Pia, katika Ruby, kuna vito, ambayo ni aina ya maktaba Ruby. Na Rails Hushughulikia yao katika njia nzuri sana kwa ajili yenu. Hivyo kama unataka kuweka katika baadhi ya maktaba hiyo gani barua pepe, au kwamba gani ujumbe wa maandishi, au kwamba hana ushirikiano na Facebook, au aina yoyote ya jambo kama kwamba kwa programu yako, ni sana, rahisi sana. Tabia mbaya ni unaweza kupata kitu kama kwamba juu ya mtandao. Na wao tu kufanya kitu kama kuweka ambayo gem unataka kutumia katika gem file. Na kisha Rails installs kila kitu. Huwezi kuwa na wasiwasi kuhusu yoyote ya kwamba, hivyo hiyo ni kweli cool. Pia, kuna mengi, mengi ya msaada online. Hivyo unaweza kupata kura ya mambo. Kama una makosa, unaweza tu kwenye Google yake, na ni kwenda kuwa rahisi sana kupata msaada. Na ni mengi ya fun-- exactly-- kwa sababu wewe hawana na wasiwasi kuhusu ngazi ya chini maelezo, utekelezaji wa meza hash na kuwa na kuja na yote ya Headers HTTP, na kura ya mambo, na hata baadhi ya kiwango mambo juu zaidi. Huwezi kuwa na wasiwasi kuhusu kwamba katika reli. Ni gani sana, nicely sana kwa ajili yenu. Na tunakwenda kuonyesha kwamba zaidi uthabiti sana hivi karibuni. OK. Hivyo kidogo kuhusu Ruby tena. Hivyo ni kama C, kama nilivyosema. Badala ya printf, tunasema "Unaweka," ambayo ni "kuweka kamba." Ni unaweka kamba console. Na katika kesi hii, tuko uchapishaji tu "Hello World." Hatuna haja ya mabano, lakini ni kiasi pretty sawa. Na kisha kama unataka kufanya kitu hapa, kama magazeti kundi la "smalls" na kundi la "bigs" katika Wakati kitanzi, ni aina ya kama katika C, haki? Huna zilizounganishwa, lakini ni kiasi pretty sawa. indentation hapa makosa, hivyo x sawa 1. Na kisha Wakati x ni ndogo kuliko 50-- hii ni Kama, hii ni Else. Ni pretty kiasi kama uliyoiona. Na kisha x + = 1 ni incrementing tu, aina ya kama kufanya ++ kwamba unaweza kufanya katika C. Lakini ni pretty kiasi gani wewe aliona katika C. Ni lazima kuwa ngumu sana. Lakini ni nguvu zaidi. Hivyo kuna amri chache hapa kwamba ni dhahiri kidogo karibu zaidi. Hivyo kwa mfano, "unaweka." Unaweza kutumia nukuu hii hashtag hapa na magazeti tu something-- pretty kiasi kama nini ungependa kufanya kama % D au% C au kiasi fulani kama hiyo. Na unaweza kweli kuweka Kama haki baada ya taarifa hiyo. Hivyo mimi tu wanataka kufanya this-- Kama x ni mkubwa kuliko 3. Hivyo ni kwa nini nina kufanya nzima Kama block? Sijui. Naweza tu magazeti hii tu kama x ni sawa na zaidi ya 3. Hivyo hii ni line moja njia ya kufanya hili katika Ruby. orodha katika Ruby ni kitu hodari sana. Hivyo huna kweli wanahitaji kuwa na aina moja tu. Unaweza kuwa na kamba, na kisha idadi ya baadhi, na chochote. Na kama unataka append kitu cha orodha, unaweza tu kutumia hii nukuu haki hapa. Na kama unataka iterate. Pretty much 4each katika PHP, hapa, kuwa na orodha na kufanya "List.each kufanya." Na hii "ELEM," hii ni kama jina la kila kipengele kwamba mimi nina kwenda kuwa katika orodha yangu. Na kisha naweza tu "unaweka ELEM." Na "unaweka" pretty much Hushughulikia kuweka kwa ajili yenu, uchapishaji yake. Haijalishi kama ni kamba au int. Ni kwenda kufanya kazi ya kuwa nje kwa ajili yenu. Haki? Baridi. Na kama PHP, Ruby na HTML pia kuunganisha sana, nicely sana. Na hapa, kuna baadhi ya HTML na Ruby ndani yake. Hivyo tuna tag mwili kama katika HTML. Na kama tunataka kuangalia kwamba mtumiaji ni, kwa mfano, watumiaji katika, tunaweza kusema tu, mwanzo wa Ruby, kama user.logged_in ?, mwisho wa Ruby. Magazeti jambo hili nzima, ambayo ina baadhi ya Ruby ndani yake, ambayo ni tu aina ya kama kwamba syntax kwa ajili ya PHP kwamba Prints nje kutofautiana. Hebu magazeti user.name. Hivyo kuwakaribisha, Stephen, ndani ya HTML div. Na mwisho, tuna "mwisho" na Ruby code, ambayo ina maana hii ni yangu Kama block. OK? Hivyo ni kama imefumwa ushirikiano kati ya Ruby na HTML. Pia kuna kura ya rasilimali. Lakini kabla ya sisi kusonga mbele, mtu yeyote anaweza una maswali yoyote kuhusu Ruby, chochote? OK. Kuna kura ya rasilimali online kwa tryruby.org, Kanuni Academy, ruby-lang.org, ambapo unaweza kujaribu nje ya browser yako kabla ya wewe kweli kusema, oh, OK, mimi nina kwenda kutumia Ruby kwa ajili ya mradi wangu wa mwisho. Na hivyo dhahiri kutoa wale kujaribu. Wote wa slides hizi ni kwenda kuwa inapatikana online, hivyo unaweza tu download yao. Na ndiyo? Watazamaji: [inaudible] nini tu ilionyesha mara HTML na kanuni iliyoingia katika kwa wazo hili la Model View Mdhibiti? GABRIEL Guimaraes: Ndiyo. Tutafanya kwamba katika pili wakati sisi kuonyesha mfano wetu, OK? Shukrani kwa ajili ya swali. Hivyo swali ilikuwa kimsingi kama sisi wanaweza kuonyesha ushirikiano huu wa Ruby katika HTML ndani ya Model Tazama mfumo Mdhibiti. Hivyo wazo la Model Mfumo View Mdhibiti ni kimsingi ni falsafa, tu kama Stephen ilionyesha hapa. Na si kitu kwamba una kufanya, lakini ni kitu kwamba inafanya maisha yako ili rahisi sana. Na Ruby juu ya reli ni kujengwa karibu falsafa hii ya kificho. Hivyo sisi ni kwenda kuonyesha mfano haraka sana. Hivyo Rails ni upendo. mengi ya watu ni kutumia, kama nilivyosema. Na kwa kweli ni furaha. You guys lazima dhahiri kutoa ni kujaribu. MVC hufanya kila kitu rahisi. Hivyo Model View Mdhibiti, mambo kutenganisha na kuweka mtu mmoja, per se, au sehemu moja ya maombi yako kufanya kila ya kazi mbalimbali kwamba maombi ina kufanya. Na muda kidogo alitumia juu ya matatizo ngazi ya chini. Na maarufu sana hivi sasa. Tuna Rails 4.0, ambayo ni toleo mpya. Na inakuja na mengi ya mambo ya baridi. Swali jingine. Watazamaji: Swali jingine. Ruby juu ya reli dhidi ya Ruby juu ya reli Grails. GABRIEL Guimaraes: OK. swali lilikuwa, Ruby juu ya reli dhidi ya Ruby-- Watazamaji: Grails. Ruby? GABRIEL Guimaraes: Yeah. Hivyo Ruby ni lugha. Watazamaji: No. Mimi nina kuuliza wewe kulinganisha lugha na mfumo wa, Ruby juu ya reli, kwa lugha nyingine maarufu framework-- Grails-- na Ruby juu ya reli. GABRIEL Guimaraes: OK. Sorry. Swali, kulinganisha Ruby na Ruby juu ya reli na mwingine mfumo na another-- Watazamaji: Ruby. Ni sawa. Kama huna kujua kuhusu hilo, hiyo faini. GABRIEL Guimaraes: Kama, ninachokielewa ni that-- Watazamaji: Kuna mwingine mfumo iitwayo Grails. GABRIEL Guimaraes: Oh, Grails. Mimi kamwe kusikia hivyo. Sorry. Mimi sijawahi kusikia Groovy juu ya reli. Sorry. Watazamaji: Ni bora zaidi kuunganishwa na Java. GABRIEL Guimaraes: Mimi naona. Watazamaji: Mimi tu curious baadhi ya watu najua like-- GABRIEL Guimaraes: Hapana, mimi kamwe kusikia kwamba moja, kwa bahati mbaya. Grails. Watazamaji: Na baadhi ya watu wazi kama Ruby juu ya reli. GABRIEL Guimaraes: Nina kutumika Ruby juu ya reli mengi. Nimekuwa kutumika baadhi Django na Python, kama nilivyosema. Nimekuwa kutumika baadhi Laravel. Lakini sikuwa kutumika Groovy juu ya reli. Sorry. Na ni maarufu sana sasa na Rails 4.0. Kama, baadhi ya mambo ambayo reli gani kwa ajili yenu, kwa mfano, ni wewe kuwa na kura ya files CSS na kura ya JavaScript files. Na unaweza kutibu yao kama tofauti na kila kitu. Lakini basi automatically-- wakati kutuma code yako na uzalishaji, ni moja kwa moja inaandaa yao yote katika faili moja hiyo minified bila nafasi, hivyo kwamba inachukua hadi nafasi chini katika maombi yako, hivyo kwamba kweli unaweza kuongeza mambo mengi. Hiyo ni kwa nini makampuni kama kubwa kama Twitter na GitHub ni kutumia reli, kwa sababu haina wote kwamba kwa ajili yenu, ambayo ni kweli cool. Jambo moja kwamba ni sana, sana, ngumu sana kwa ajili ya watu, ikiwa ni pamoja nami, ambao ni kujaribu kazi na mfumo mwanzoni, ni kwamba wakati wewe kuanza nje ya maombi, wewe ni kwenda kuona rundo la files. Kama, wakati wewe kujenga Rails New, Maombi yangu, wewe ni kwenda kuona yote haya folders-- programu, bin, config, db, lib, logi, umma. Kama, kura na kura ya mambo ya ajabu. Na kwa mara ya kwanza mimi aliona kwamba, nilikuwa kama, OK, mimi hawana wazo nini kinaendelea. Mimi nataka tu kujenga tovuti na "Hello, ulimwengu," na hii ni kunipa, kama, Bilioni 100 kurasa tofauti. Sijui nini kinaendelea. Hivyo tafadhali wala kuwa pia daunted na kwamba. Wazo ni kwamba kweli ina nusu ya nyumba pale kwa ajili yenu tayari. Ina nzima mfumo wa tayari. Hiyo ni kwa nini kuna files nyingi. Lakini jambo zuri ni kwamba ni hutenganisha wote nicely sana. Tabia mbaya ni huna kuwa na wasiwasi juu zaidi ya folders haya. moja muhimu zaidi, mimi wangesema ni programu folder, ambapo programu yako kweli anaishi. Hivyo config, utaenda na configurate baadhi ya mambo, kama database yako na mambo kama ambayo aina ya database unatumia. Lakini nyingine zaidi ya kwamba, kama wengi kazi yako ni kwenda kufanywa katika programu. Hivyo katika programu, una mali, controllers, wasaidizi, mailers, mifano, maoni. Hivyo hapa, unaweza kuanza kuona kwamba controllers, mifano, na maoni kuja katika kucheza. Mailers ni tu kama wewe unataka kutuma barua pepe. Wasaidizi kama unataka kujenga baadhi ya kazi kwamba matumizi mengi katika maoni. Hivyo kuziweka katika wasaidizi. Na mali kimsingi ni wote wa picha yako, yote ya CSS yako, yako yote ya JavaScript, na kama aina wale ya mambo ambayo kupata alimtuma kwa mteja. Na kila kitu kwamba ni katika mali, kwamba nilivyosema hapo kabla, anapata minified. Ni ulioandaliwa. Na wewe si kweli kuwa na wasiwasi kuhusu kwamba wakati unaendelea na uzalishaji code. Baridi. Sasa Zack kinaendelea kuja katika, na yeye ni kwenda kufanya mfano wa Twitter50. Watazamaji: Woo-hoo! ZACK CHAUVIN: Awesome. Hivyo mimi alikuwa na nafasi ya kazi na Ruby juu ya reli huu majira ya joto. Ni mfumo wa ajabu. Mimi nina sehemu sana kwa hilo. Na mimi itabidi kuonyesha kidogo ya mfano wa kile inaweza kuangalia kama. Rukia juu ya Chrome. Hivyo hii ni mfano wa rahisi sana Ruby juu ya reli application-- kitu kama hili ni jambo kwamba Ruby kweli excels that-- tu ambapo yako mifano ni sana kichele. Katika mfano huu, utaona mifano mbili tofauti, ambayo ni kwamba tuna watumiaji na tuna tweets. Hivyo hii ni Twitter50, Harvard ya mwenyewe Twitter. Kama unaweza kuona, mimi nina watumiaji katika kamazack. Na mimi nina uwezo wa kufanya tweets mpya. Hivyo mimi think-- "Hii ni" - sorry? Watazamaji: [inaudible]. ZACK CHAUVIN: Oh, OK. Haja ya kuacha server. Excellent. Hivyo hapa sisi ni. Kama unaweza kuona, tuna wetu Twitter maombi ya haki hapa. Na ni super rahisi kuanza server. Tutaweza tu kufanya "reli server." Mkuu. OK. Shukrani kwa ajili hiyo. Hivyo sasa sisi ni mbio. Na tutaweza kusema, "Hii ni wa kushangaza semina. " Na hebu angalia nini kinatokea. Hivyo tutaweza tweet kuhusu hilo. Chini chini, unaweza kuona sasa kuna tweets zaidi ya tatu. Hivyo tuna kidogo ya pagination kinachoendelea. Na tuna kwamba tweet. Na naweza pia kutafuta njia yangu search tweets-- kwa hili na mbili wale ambao wana neno "Hii" katika wao show up. Sisi pia unaweza kufuta tweets na kubonyeza kidogo Delete kifungo. Na ni wazi, naweza tu kufuta baada ya kuwa ni mali ya mimi. Tayari, sisi karibu na utendaji wa Twitter. Kama, wakati unafikiri kuhusu hilo, Twitter kweli haina kufanya yote kwamba mengi. Ni ina watumiaji, ina tweets. Kuna baadhi ya utendaji ngumu zaidi. Lakini wakati wewe kweli kupata chini kwa hiyo, ni rahisi kabisa Ruby juu ya reli ya programu. Na kitu kama hii, na uelewa mzuri wa Ruby juu ya reli, unaweza pengine kufanya katika saa moja au mbili. Na kwamba kweli inakuja nyuma Ruby mantra, ambayo ni mkataba juu ya Configuration. Hivyo nyuma katika siku, watu, wakati wowote walitaka kufanya tovuti hii, ingekuwa kuanza kutoka mwanzo. OK, nataka kufanya tovuti. Hebu kufanya faili hili na faili hili na faili hii. Kwa Ruby juu ya reli, kuna hakuna hiyo. Unaweza kusema, nataka programu mpya. Na kama Gabe alituonyesha, ni inajenga zima muundo faili kwa ajili yetu. Na sisi tu mabadiliko sehemu kidogo kwamba tunahitaji. Sisi tu Customize nini ni ya kipekee kuhusu programu yetu. Baridi. Hivyo kurejea mada yetu preview-- kuvutia. Wapi mimi kuwasilisha? Watazamaji: Full screen. Top haki. ZACK CHAUVIN: Excellent. Baridi. OK. Hivyo kwanza ya yote, mfano wa kuigwa. Stephen alifanya kutisha kazi ya wakionyesha MVC. Na sasa tunakwenda yanahusiana kwamba nyuma ya Ruby juu ya reli. Hivyo mfano unaweza aina ya kufikiria kama database. Tumekuwa kuona hii katika CS50 Fedha, ambapo maduka mfano habari kuhusu jinsi wengi hifadhi una, au shughuli zote kwamba alifanya. Huu ni mfano wa mstari wa jinsi wewe ungekuwa kwenda juu ya kufanya mtindo mpya katika reli. Hivyo nataka user. Ni kwenda kuwa barua pepe, ambayo ni kamba, na password, ambayo Pia kamba. Hivyo ni kama those-- nataka kila mstari katika meza yangu ya watumiaji kuangalia kama hiyo. sehemu kweli kutisha kuhusu reli ni kwamba inafanya unnecessary kuandika SQL yoyote pretty much. Jinsi wengi wenu guys kupendwa kuandika SQL katika pset 7? Hasa. SQL si sana user-kirafiki. Na Rails abstracts yote mbali na haya amri kweli ni rahisi. Hivyo kwa mfano, kama tuna user, user ina tweets nyingi. Na kila mmoja wa wale tweets ni mali ya mtumiaji. Hivyo kama wewe kuangalia hapa, hii ni kielelezo kwa tweet yetu. Na wote tuna kusema ni line-- hii moja mimi nina tweet na mimi ni kwa mtumiaji. Na kwa kuwa line moja na a kidogo ya database Configuration, Rails seti up uhusiano huu. Wakati wowote, naweza kusema tu, zack.tweets, kama, nipe yote ya Zack tweets. Hakuna SQL. Super rahisi. Tena, kwamba ni mkataba juu ya Configuration kuja katika kucheza. Unaweza kuona kidogo ya mfano wa Ruby hapa. Kama alitoa alisema, kuandika Ruby ni aina ya kama kuandika Kiingereza. Ni sana ngazi ya juu ya lugha, na inafanya ni kweli rahisi kwa sisi kusema mambo kama, nataka kuhakikisha kwamba tweet hii ina mwili. Uwepo wake ni kweli. Na mimi nataka kuhakikisha kwamba hii tweet, kama kawaida Twitter, ina urefu max ya 140. Ni super-Intuitive, a Lugha kubwa kweli kweli. Next up tuna maoni. Hivyo hii inahusisha HTML na CSS. Na hapa ni mfano wa maoni. Hivyo Ruby juu ya reli aina ya seamlessly samlar wote Ruby na HTML ili kuzalisha nini tunataka juu ya ukurasa. Hivyo hii ni mfano wa mpangilio yetu. Hivyo unaweza kuona baadhi ya vitambulisho kwamba guys ni kutumika, kama HTML, mwili, kwamba mambo mema yote. Na haki katika hapa, ingawa, sisi kuingiza baadhi Ruby kwa kusema, kama kuna ujumbe kwa kuonyesha, kisha kuonyesha ujumbe katika div. Hivyo mimi si kupata sana katika hiyo. Lakini hii ni kwa ujumla ukurasa kwamba anapata zilizotolewa on-- na bila kujali ukurasa uko , hii moja anapata zinazotolewa. Hivyo hii ni nini anapata pamoja daima. Baridi. Mfano mwingine wa view-- hii ni moja ambapo waliamua tweets wote. Na baadhi ya mambo haya ili kuangalia pretty ukoo. Hivyo kwa mfano, haki hapa, tuko looping kupitia katika kila tweets, na sisi ni uchapishaji yao nje. Hivyo hapa ni mahali ambapo sisi ni uchapishaji nje ya mwili. Na kama user-- tweet ya hapa mfano halisi wa hakuna SQL ni kushiriki. Mimi nina kuuliza tu, hii ni tweet ya user user sasa? Kisha kuonyesha uhusiano kufuta. Ni super rahisi. mtawala. Hivyo hii ni, tena, interface kati ya mfano wa kuigwa na maoni. Ni moja kwamba hana kazi ngumu ya interacting-- kuwa middleman. Ni mizigo habari kwa kuangalia, ambayo tutaweza kuona katika sec. Na ili kuingiliana kwa mfano, ni wito mbinu mfano, ambayo ni nini nyie ni ukoo na kazi. Hivyo kwa mfano, hii ni tweet wetu mtawala. Inaweza kuangalia kidogo inatia wasiwasi hivi sasa. Lakini ni kweli super Intuitive mara moja kuanza mbizi katika. Hivyo kwa mfano, katika ripoti yetu, hiyo ni ambapo tunataka kuonyesha tweets wote. Na hivyo mstari huu kimsingi tu anauliza kwa tweets wote. Na kisha sisi initialize wote tweet-- mpya ili kama kama wanataka kujenga tweet mpya juu ya ukurasa. Na anauliza nini user sasa ni. Na hii ni sawa sana atatoa kwamba aliona katika pset 7, ambapo ni aina ya kuwaambia tu view-- ni aina ya, kama, kupita vigezo kwamba wewe ni kwenda haja katika mtazamo kwa mtazamo. Na kuna rundo zima mbinu za mbalimbali kwamba mtawala tweet hii inaweza kushughulikia. Lakini kwa kweli, reli gani kazi kubwa ya aina ya kugawa yao katika tofauti matendo ambayo mtawala wako anaweza kufanya. Je, kuna maswali yoyote kuhusu sehemu yoyote ya MVC ya reli? Aina ya tu breeze kwa. Hivyo wewe guys unaweza kuangalia nje juu yako mwenyewe. Kutisha. Tutaweza kuendelea. Hivyo kufunga reli. Kufunga reli inaweza kuwa, kama, moja ya sehemu ngumu zaidi ya reli nzima mchakato, kwa bahati mbaya. Lakini ni wazi, yote ya sisi ni karibu kusaidia. Na mara moja ni juu huko, mengi ya rasilimali kubwa, kama Gabe zilizotajwa, kwa ajili ya kupata kuanza. Hapa ni viungo kwamba itabidi ili kupakua Rails kupata imewekwa kwenye mashine yako. Ni wazi, ni inapatikana kwa wote Windows na Mac na kwa CS50 appliance. Maswali kuhusu kitu chochote tumekuwa alisema? Watazamaji: Mimi itakuwa nia, actually-- hivyo najua kwamba kushusha programu ni kikwazo kubwa. Kama kuna maslahi ya kutosha na kushusha kikao mini au kitu. ZACK CHAUVIN: Mm-hm. Yeah. Hiyo inaweza kuwa kweli kusaidia. Kama mtu kweli gung-ho kuhusu kutumia hii kwa ajili ya mradi wao au katika siku zijazo, basi tunatarajia dhahiri kuwa na furaha na kuzungumza na wewe juu ya hilo. Mm-hm. Watazamaji: Swali kuhusiana kwa nini mimi aliuliza kabla. Kwa wale wa wewe ambao wamefanya mifumo mengine ambayo ni bado kujaribu kufanya hivyo kitu, iwe rahisi kujenga tovuti au utendaji, nadhani maana yoyote ya nini sisi itakuwa juu ya reli dhidi ya Zend au baadhi ya mifumo ya nyingine na lugha. ZACK CHAUVIN: mimi itabidi tu kusema yangu $ 0.02 juu ya hilo. Mimi upendo Ruby juu ya reli. Nimepata nafasi ya kufanya kazi katika wote PHP na Ruby juu ya reli. Mimi napendelea sana Ruby juu ya Reli kwa sababu ya Ruby. Dhahiri, hiyo ni sehemu kubwa ya hiyo. Kama, wakati uko kuchagua mfumo wako, wewe pia kuchagua lugha yako. Ruby ni super accessible-- Nadhani Lugha bora zaidi kuliko PHP. Lakini hiyo ni aina ya upendeleo wa binafsi. Kama vile, maanani mwingine ni jamii nyuma mfumo kwamba wewe ni kufanya kazi pamoja. Hivi sasa Ruby juu ya reli ni kweli moto. Kuna tani ya msaada nyuma yake. You post kitu juu ya stack Kufurika kuhusu tatizo uko kuwa katika Ruby juu ya reli, na ni akajibu. Tena, ni wazi chanzo, ambayo ina maana kwamba ni daima kuwa iliyopita. Kuna tani ya watu kwamba ni kweli kujitolea ili kufanya a hii kweli kutisha mfumo. Hivyo kwamba ni kwa nini mimi ingekuwa kuchagua Ruby juu ya reli. GABRIEL Guimaraes: Yeah. Napenda kusema kwamba wazo nyuma ya mifumo zaidi uko kwenda kupata huko nje ni sana, ni sawa, haki? Hivyo Model View Mdhibiti, ukweli kwamba mtawala wetu kwenda kuangalia kama kitu kama moja ya kazi ya kila this-- ni kama moja ya kurasa yako, na ni maelekezo yenu, na initializes vigezo. Hiyo inaenda kuwa kitu kimoja kwa ajili ya kila mfumo kwamba unaweza kuona huko nje. Na kuna kwenda kuwa mfano wa kuigwa. Na unaweza kufanya mambo kama, "ni ya." Hivyo badala ya kufanya SQL version, wewe tu, kama, kufanya, user.tweets, na unaweza kupata kila kitu. Kila mtu ana hiyo. Ila katika Ruby, unaweza kufanya user.tweets, na kisha baadhi mifumo katika PHP, kufanya user.getalltweets WAPI PHP wangu si tatizo. Kama, ni line kubwa. Ni kitu kimoja, lakini ni line kubwa. Hivyo hiyo ni moja ya sababu kuu ya upendeleo wangu juu ya Ruby. Ni mimi tu kufanya hasa kitu kimoja katika mifumo mengine, ni tu inachukua yangu mara mbili mistari kwa muda mrefu wa kanuni. OK? Yoyote maswali mengine? ZACK CHAUVIN: Something Mimi itabidi kutaja quickly-- Gabe aliyesema kidogo kuhusu vito. Na kwamba ni kweli great-- I mean, hii ni aina ya kawaida ya mifumo yote, kwamba kuna aina ya dhana gem, ambayo ni kama katika mfano mdogo wangu, Mimi kuingia. Kama, unaweza ishara katika, ishara nje. Kama, hiyo ni kweli aina ya mchakato tata. Ilikuwa kubebwa kidogo kidogo kwa ajili yenu katika pset 7. Lakini mimi bado kikamilifu kujua jinsi kutekeleza ishara-katika, ishara-nje. Na hiyo ni kwa sababu Ruby juu ya reli ina tani ya vito kwamba kufanya mambo kama hayo kwa ajili yenu. Tena, mkataba juu ya Configuration. Kila mtu kwenda kufanya ishara-katika hili, ishara-nje hatua. Hivyo kwa nini tu kufanya mfuko, aitwaye Kubuni katika kesi hii, ambayo ni gem. Wewe tu pamoja na hiyo. Na kisha kuna baadhi ya msaada online na jinsi ya kutumia hiyo. Na huna kuwa na wasiwasi kuhusu jambo kama hilo. Attaching picha hizi things-- gem kwa ajili hiyo. Kama, wakati wowote wewe ni kujaribu kufanya lolote jipya, kuna gem kwa ajili hiyo. Na wewe aina ya tu kipande pamoja vito haya na kujenga kweli tata maombi ya haraka sana. Baridi. Yoyote maswali mengine? STEPHEN kilemba: Woo-hoo. Sidhani [inaudible]. GABRIEL Guimaraes: OK. Asante sana, guys. STEPHEN kilemba: Buh-bye. ZACK CHAUVIN: Buh-bye. STEPHEN kilemba: Woo-hoo. [Makofi] Yay.