[Powered by Google Translate] [Семинар] [Web Development: От идеята до Изпълнение] [Бен Kuhn] [Billy Janitsch] [Harvard University] [Това е CS50] [CS50.TV] [Billy] Здравейте, аз съм Били и това е Бен. >> [Бен] Hi. Отиваме да се говори за уеб програмиране днес. [WebDev] [Billy Janitsch и Бен Kuhn] Малко за нас на първо място. Бен е нещо обратно края на момчето на. Той прави нещата работят. И тогава ще отида и да ги направят красиви. Аз съм до голяма степен ангажирани с по-предния край дизайн оформление такива неща, и Бен, от друга страна, знае какво прави, така че той работи на гърба в края неща. Заедно сме направили няколко неща. Например, миналата година сме работили върху Gimblium който е онлайн студио за разработка на видеоигри. Това беше последният ни проект за класа, и от тогава сме направили Harvard Class която е онлайн рамка за сърфиране и пазаруване курсове в Харвард. Ние ще започнем с тази идея за нашия уебсайт. Отиваме да направим Facebook, но за котки. Преди да всъщност правят този сайт, не правете този сайт, защото това не е добре, но ние ще го използвам като рамка и да мине през процеса на това как ние приемаме тази идея и да го превърне в истински сайт можем да използваме. Ще започнем чрез счупване на интернет страницата надолу. Както сте били прави в CS50, искате да се мисли за това какви са реалните компоненти, които излизат в този сайт. По принцип тя се превръща от идея, която е само нещо като абстрактно понятие в истинско, осезаемо нещо, което бихте могли да направите. Започваме като попита някои въпроси. Какъв е този сайт? Защо се прави това? Какво е то ще се използва? Такива неща. В случай на Facebook Cat, ние основно искате уеб сайт, който позволява на котки социална мрежа помежду си. Идеята е, че те могат да публикувате на стените на другите, те могат да правят коментари, че такива неща. И това е, когато влезем в функционалните компоненти. Ние сега имаме този вид на рамка на - имаме потребителски профили, имаме коментари, и ние можем да публикуваме. Може би някой ден ще влиятелните харесвания и неща от този род. И ние вид искат да дадат приоритет на тези функции ще инча Искаме да кажем, като, добре, това е наистина важно, че всеки има профил и че всеки може да публикува на стени на другия. Вторично, че коментарите би било хубаво. Може би по-късно ще влиятелните харесвания. Така че, вие искате да имате представа за това, което е от основно значение за вашия проект и това, което е нещо като по-обща функция, която може да бъде приложена по-късно. Искаш ли някак да има специален списък в ума, но проектът, който започна с не ще бъде проектът, който завърши с. С други думи, нещата ще се променят, докато сте на развитие на сайта, и искате да оставите място за това. Аз ще го предам на Бен кой ще поговорим малко за структура. [Бен] Отивам да се говори за по-техническата страна на Мрежата за развитие. Хайде да отидем някои основи на първо място. Когато правиш уеб приложение, основната разделението, че ти започваш да трябва да имаш е ти започваш да има някои неща се случва в страната на клиента - което означава, че кодът, който сте браузър отнема от сайта и JavaScript, HTML, CSS неща на. Това е всичко, от страна на клиента. Ще има друг код, който работи на сървъра страна която следи всички данни, които хората изпращат, за да можете, реши на кого да даде това, което, подобно на тези неща. Това е просто някакъв терминология, така, че вие, момчета, всички сме запознати с това, за което говорим. Отвъд това разделение, че е добре да се мисли за вашия уеб приложение от гледна точка на няколко отделни компоненти. Когато правиш уеб програмиране едно от нещата, които винаги трябва да се опитват да направят е да се намали сложност. Колкото по-сложна е кодът е по-голям шанс има да се правят грешки, толкова по-трудно е да се промени по-късно. Така че, ако може да скъса приложението ти в някои отделни функционални области че ще - и можете да намалите вид на количество на транс-област комуникация - , който ще ви помогне много в дългосрочен план по отношение на намаляването бъгове. За да бъде бетон, обикновено хората се делят на уеб приложение в - те са нещо бръмча думи сега, но те все още са полезни. Може би сте чували хората да говорят за модели, изгледи и контролери. Моделите са най-актуалните данни, че приложението ти се ще да се справим. Например, в Cat Facebook, вашите модели ще бъдат - ще имате модел за подобни постове, и модел за потребителски профили, като тези неща. Вашите мнения са как ви представим, че данните на потребителите си. Може да имате един изглед за разглеждане на една длъжност и всички коментари и различно виждане за вашата стена, която има списък на всички публикации които са насочени към вас, и различно виждане за вашия News Feed - такива неща. И накрая, имате контролерите, които са основно, когато хората, които изпращате мнения и правите актуализации на вашия обратно края на система, вие нарастване куп броячи, и каквото. Това са вашите контролери. Аз отивам да се говори най-вече за модели. Прегледи технически не са толкова трудни и въпросът е повече с тях проектиране Контрольори ще бъдат специфични за каквото и да сте проектиране. Но има някои доста общи техники, които можете да използвате за да направите свои модели по-хубав и по-лесно да се работи с, че аз мисля, че са много полезни. Това е най-вече ще бъде за това как да се справят с вашите Web Apps данни в хубав начин. Основните въпроси, с модели са, че те живеят на клиента и сървъра и трябва да разбера а) как да ги вземем - всички съответни такива - от сървъра към клиента, и б) как да ги държи в синхрон. Вашите потребители ще искат да се направят някои актуализации. Те ще искат да направят нови мнения. Те ще искат да харесва неща и неща, ако имате харесвания. Това са основните технически предизвикателства за справяне с модели. Първото нещо, което вие ще искате да си зададете е какви данни отива в настоящия модел и какви заявки се ние ще искате да направите - това е, как ще да погледнем в моделите? За Cat вашия Facebook например, вашия пост ще има един автор, свързани с нея, някои стена пост текст, и получател на стена пост. И тогава може да искате да заявка, че в един куп различни начини. Вие ще искате да погледнете на него от който е написал, което пост, от които са получили, което публикувате, може би от датата, на която са публикувани. Но ако ти започваш да го направя по дата, тогава ще трябва да добавите друга област на поста си от кога точно е публикувал. Тези два фактора - какви данни, които искате да използвате и как искате да го видите - трябва да мисля за тях първо, защото те зависят един от друг, и това ще бъде по-трудно да ги добавите по-късно. Има и други съображения. Когато си мислиш за това как да се справите с модели на сървъра какво искате да погледнете е - Можете основно искаме да направим сървъра толкова просто, колкото е възможно. Правейки неща от страна на клиента е обикновено много по-бързо, ако можете да го направите единствено на клиента без да прави каквато и да е молба мрежа. Идеята е да се направи колкото се може повече от тези запитвания, колкото можете на клиента. Единственият проблем с това е, че ако поискате всичките си данни в началото след това, че ще отнеме много време да се зареди. Така че, идеята е да се намери златната среда между наличието на достатъчно данни за клиента което можете да направите голямата част от работата си там, но не само привлекателен всичко наведнъж така че да получите наистина бавно натоварване пъти в началото. Например, за вашата котка данни вие вероятно ще искате да донесе букет от последните постове на стените. Може би не искате да донесе на всички тях, защото това би могло да се върнем няколко години. Но вие не искате да ги донесе един по един защото това би довело до много Натоварването на мрежата. Това е често доста трудно - след като имате вървяща база данни - това е често доста трудно да промените какви данни имате в нея - тоест, да добавите нова колона база данни или нещо друго - така че една добра стратегия е всъщност само за да поддържат много от вашите данни в текстов петно ​​- на JSON петно ​​- JSON е JavaScript Object Notation - Причината, че е полезно е така, защото след това можете да добавяте нови свойства на всички тези JSON петна, без да променяте вашата база данни. Единственият недостатък на това е, че ако имате един куп полета , която сте добавили по-късно - като скрит в тази JSON петно ​​- тогава е по-трудно да ги задава въпроси вътре в базата данни. Например, ако по-късно - ако сте имали пост на вашия модел, който обсъждахме по-рано само с автора, получателя и текстът - Вие също може да имат JSON петно ​​и след това, ако по-късно исках да добавя поле за дата че не би трябвало да се промени вашата база данни. Можете просто да добавите дати, за да всички текстови полета. И тогава вие ще бъдете в състояние да погледнете тези от страна на клиента, но не би било в състояние да ги заявка на сървъра страна защото е скрит вътре този текст. Другият въпрос, който искате да се мисли за е как вашият клиент и вашия сървър ще общуват. Вие обикновено искате да запазите този толкова просто, колкото е възможно. Можете просто да имат като Get-ми-това искане за данни, а се създаде нов обект-а-нещо, и искане за актуализация-на-стар обект. И всички те ще бъдат различни URL адреси на сървър, който ви - че браузърът би - можете да използвате AJAX заявки за всички от тях и или да получите или публикувайте данни. Отново, за нашата Cat Facebook например, бихте могли да имат, че URL, за да получите индивидуален пост, и ще имаш един URL за създаване на нова стена пост а може би и URL за качването на снимка в профила, подобни неща. Но отново, че това е предварително да донесе голямата част от вашите данни, така че не е нужно да се запази вземане на мрежовите заявки. Поради тази причина, може да не искате да има, че индивидуална заявка получите за една длъжност, и вместо това просто ще искате една заявка получавате за цялата стена. И след това, ако се опитвате да се намери баланс, защото - това е също така ще зависи от вашата кандидатура. Защото, ако очакваме, че хората имат само 10 или 20 стенни мнения , че ще се оправи. Но ако очаквате, че ще има хиляди след това, че искането ще отнеме твърде дълго, и така може да искате да добавите получите-всички-мнения-тъй като параметър. Поради всички тези вие вероятно ще искате да синхронизирате данни в JSON - JavaScript Notation Object. Доста всеки език се занимава с JSON много добре. JQuery има тази хубава getJSON функция, която ще направи всичко на упорита работа за вас. И на PHP има и много хубави функции JSON за комуникация. Така че, това е може би най-добрият формат за изпращане на вашите модели назад и напред. Като пример за това, което сме говорили за толкова далеч, ето един пример поток за Cat вашия Facebook приложение. Това започва с вашия браузър иска URL базовата уебсайт. Сървърът вероятно ще изпрати над статичен HTML и някои JavaScript и CSS. Това е обикновено най-добре не да се направи някаква оказване на сървъра. Може би не искате да - Сървъра не се прави там ще надолу в списъка на стенни мнения и генериране на някои HTML за всеки един и да изпраща тази свърши. Това е обикновено най-добре да се направи, че от страна на клиента, защото в противен случай всеки път, когато искате да ги нарисуваш нещо, което трябва да направите заявка на сървъра. И това много бързо дава много режийни. Това е обикновено най-добре просто да се изпраща кораб надолу статичен HTML и след това се JavaScript и CSS, които ще направя за предоставяне от страна на клиента. Веднага след като тези неща идва в, тогава може да има - в JavaScript - можете да правите заявки за данни на стена и подобни неща, а след това сървърът е основно само прави заявките към базата данни и проверка на разрешения. Единственото важно нещо е, че не може да изпрати над някои други потребители стенни мнения че не ти е позволено да се види. Тя може да бъде в основата на много тънък слой достъп до вашата база данни, и тогава всичко на показваща данните - всички възгледи и неща - тези, които може да се случи във вашия браузър, а след това, когато искате да направите един пост или нещо Вие трябва само да изпратите нова заявка. Има също така някои модни неща можете да направите в началото на тази. От гледна точка на по-специфична техническа информация, развива в обикновен JavaScript може да бъде малко по-болезнено, така че има някои библиотеки и инструменти, които ще ви помогнат много с това. Мисля, че всички сте чували за Jquery което прави прави HTML рендиране и манипулиране на много по-лесно - има много фантазия функции за избледняване и навън, и правене на Zippy анимации. Има също така и тази библиотека, наречена Underscore.js. Тя има много полезни функции за комунални услуги, неща, което може да се очаква да има JavaScript че наистина doesn't - неща като размесването масив, премахване на дубликати от списък, или изправяне на списък от списъци. Това е само една малка примерен код. Подчертан е един тон от тези хубави функции, които искате вие ​​ще трябва през цялото време. И след това има един по-библиотека, която бих искал да прекарам малко време в наречен Backbone.js защото Backbone наистина ви помага да се справят с модели от страна на клиента и голяма част от объркването, което може да предизвика. Backbone ви дава тази концепция на модели и колекции в JavaScript, които основно са точно като на JavaScript обекти в JavaScript масиви, но те са събития, когато се променят свойствата си. Точно като в JavaScript, можете да имате едно събитие, когато един бутон получава кликнали или нещо Backbone тези модели и Backbone колекции ще излъчват такива неща че когато те се променят. Това означава, че можете просто да напишете нещо като този фрагмент от кода тук - това се казва, когато добавяте нещо към мнения масива преначертае цялата стена. И това бих казал, когато брой харесвания пост се променя, ви уведомява потребителя, че някой харесва тяхното мнение. Или когато всяко имущество на един пост и промени да преначертае гредата. Неща като това ще ви спести тонове на сложност, тъй като в противен случай ако не разполагате с някаква рамка като тази след това всеки път, когато в кода си, че промените нищо за един пост, ще трябва да се помни, себе си да се обадя на всички правят функциите на и подобни неща, и ако искате да добавите нещо ново, което се е случило всеки път, когато промяна на мнение, че ще трябва да мине през всяко място във вашия код, който сте модифицирали мнение и добави, че нещо ново. A рамка като това ще премахне много от това между слой комуникация , което прави кода сложен и трудно да се поддържа. Има малко за изгледи също. Отивам да напусне голямата част от тази на Били, защото технически не са много трудно. Използвайте Jquery за вашите мнения. Това е на практика като една необходимост в този момент. Той просто прави всичко много по-лесно. Има много библиотеки. Ако сте сложно потребителски интерфейс елементи ако искате автоматично довършване нещо или като един от тези фантастични мулти-селектори - ако искате нещо подобно, вероятно ще трябва просто да се търси около и можете да се намери добър библиотека, която ще направи това, което искате. Били ще обясни повече за действително трудните части на мнения. Също така, като страничен бележка, Backbone има някои функции за вземане на преглеждания комуникират добре с модели - поглед към документацията за всички тези библиотеки, всъщност. Само погледнете Документи. Те са много добре написани и лесно да се следват. Като цяло, можете да хубав много просто в Google, ако имате проблеми. Има много хора, които ги използват. Мисля, че това е като последна бележка. Има и някои по-съвременни неща, които можете да направите, ако търсите да направите вашия уеб ап допълнително страхотно. Можете да го направите - новата спецификация HTML5 има много хубави неща, които можете да направите. Локално съхранение - което е, че може да съхранява данни в браузъра - а не да се налага да се върна и да чета на сървъра за всичко, можете да запазите някои от тях на клиента и че дори позволява на хората - в някои случаи може дори да ви позволи да използвате уеб страница офлайн. Има едно нещо, наречено WebSockets които са различен вид на комуникацията в мрежата където вместо просто да се направи една заявка, можете да получите отговор и сте готови, продължаваш да отворите връзка към сървъра и за да можете да правите неща, като актуализации в реално време. Така че, ако сте се опитвали да направите чат приложение, бихте могли да използвате WebSockets да общуват назад и напред, така че не би трябвало да се запази с искане, "О, сървър, е някой да ми изпратите чат?" на всеки 10 секунди или нещо такова. Има и един интересен HTML5 функция, където можете да го правят да изглежда като на URL адреса на страницата се променя, без да се налага да всъщност го презареди. Можете да използвате назад и напред бутони, без да прави един куп на мрежовите заявки. Неща като това е наистина полезно от гледна точка на което го прави бързо, но също така работи като уеб приложение трябва. Има също така и това нещо, наречено CoffeeScript. CoffeeScript е на различен език, всъщност, че компилира до JavaScript. Можете да напишете всичките си код в CoffeeScript, и след това да стартирате този компилатор, и го изплюва файл с JavaScript, които можете да включите във вашата уеб страница. Причината, поради която CoffeeScript е хубаво е, защото тя се отървава от много от странни случаи, че JavaScript има където се равнява на равни, и се равнява на равни правят различни неща, или искали - той има по-хубав синтаксис за справяне с масиви и функции. Това е една малка програмка на CoffeeScript която произвежда списък на всички квадрати от 10 ^ 2 към 1 ^ 2 в обратен ред. Както можете да видите, CoffeeScript често ви позволява да изразя в една линия това, което ще отнеме пет линии на JavaScript. Той може да направи нещата много по-лесно. Това е малко на нов синтаксис за да научите най-първо, но определено ще ви направи по-продуктивни в дългосрочен план. Можете да използвате и други езици на сървъра от PHP - езици като Ruby, Python, или има дори проект, наречен node.js , които ще ви позволи да използвате JavaScript в сървъра. Лично аз наистина, наистина мразя PHP. Просто не ми харесва да работя с него. Ако вие също мисля, че това е ужасно cluge на даден език, След това можете да използвате един от тях вместо това. По принцип, ако искате да направите нещо и вие наистина не знам как да го направя, просто търсене в Интернет. Има тон и тона на ресурси, особено по - StackOverflow е страхотно. Това е този сайт, където програмисти да си задават въпроси. Може би сте се сблъскате с него, ако сте имали проблеми на CS50 проблемните комплекти. И там са тона на библиотеки за правене на почти всичко, което бихте искали. Ако искате да направите нещо и не знаете как да го направя, Не смятайте, че това е невъзможно. Просто се оглеждам и може да намерите някои добри ресурси. Като цяло приключи, основните храна за вкъщи са да опростим нещата. Колкото по-сложна вашия код е в началото и толкова повече ще се опитам да направя фантазия неща, колкото по-дълго тя ще предприеме, за да се получи нещо наистина функционално и толкова по-трудно е да се промени по-късно. Така че, направете нещата по тъп, лесния начин на първо място. За да отидете заедно с тази, Не се страхувай от изхвърлите стария код или почистване много. По принцип, след като всъщност имат нещо работа, това е много по-лесно да си помисля, отколкото, когато сте все още в началните етапи за това как мога да постави всичко това заедно. Това е най-добре да се направи възможно най-тъпото дизайн, който работи и след това я подобрим итеративно отколкото да се опитвате да получите всичко, от първия път. От гледна точка на клиент-сървър разделение, да запазят преднината си на сървъра много проста - само на база данни и някои удостоверяване и не вършат никаква тежка работа там. Направете всичките си сложен неща от страна на клиента в браузъра в JavaScript толкова, колкото можете. Огледайте се за библиотеки, които правят живота ви по-добре. Винаги по-добре да се използва код, че някой друг е написал Ако сте - а не да го напиша сам. Има много неща в Интернет. Google е най-добрият ти приятел. Google е най-добрият приятел на програмиста. Да, определено не се страхувайте да се огледам за такива неща. Добре. И с течение на Били. [Billy] Всъщност, преди да започнете с някои дизайн неща, Някой има ли някакви въпроси към Ben за всичко, което той говори за? Добре, добре. Отново, уведомете ни, ако нищо не е ясно или ако искате да отидете за нещо малко повече. Отивам да се върнем назад малко и да се говори за по-основните части на дизайн. Бен спомена модел, наречен - Съжалявам, модел оглед контролер система която е нещо като технически аспект, за да мога да ходя да гледам гледка конкретно, и аз отивам да се започне с това как ще се изработи мнение, че изглежда добре. Тук е нещо наистина основния шаблон за нашия Cat Facebook. Мисля, че има някои основи в съвременния дизайн на потребителския интерфейс че си струва бране. Можете да забележите, че има много празно пространство по цялата страница, достатъчно място за всичко. Не се чувствам като трябва да смачка всичко в една страница. Вие искате да оставите много място отворен, и ако отидете в почти всеки съвременен сайт ще видите, че има бяло навсякъде. Има бяло на места, не бихте очаквали. Имате тази цветова палитра, а това е мъдър в началото да изберете цветова палитра, че започваш да се работи с и развива. Можете също така - тя помага да изберете шрифт, и по този начин сте сортиране на работа с тези бетонни основи на конструирането. Имате си вид, имате си цветове, и след това можете да вид поберат всичко останало в колкото е необходимо. Така че, както казах, с цветова схема, която искате да използвате по-смели цветове на цветова схема пестеливо. Headers са приятни. Бутоните са хубаво да има наистина големи, лъскави цветове. Но като цяло, ако имате уеб сайт, който има цветове навсякъде, всичко, което се взираше в лицето, той просто изглежда претрупана, и то не е добро. Вие искате да обикновено използват светли цветове. Опитайте се да, отново, вземете доста последователна цветова схема. Можете да имате тези малки пръски от много цвят - че може да изглежда доста приятно, но вие искате да ги използвате доста пестеливо. Както казах, вие искате да бъде минимално. По-малко е почти винаги повече. Ако можете да покажете нещо или не покаже нещо, а ти си вид сигурни дали той трябва да бъде там по подразбиране - Вероятно вие сте най-добре да го оставя настрана. Винаги можете да го добавите в по-късно. Да, да опростим нещата. Но най-важното е, че можете да искате да разгледа множество проекти. Не мислете, че когато правите сайт, можете да го имате в главата си, че ти започваш да се направи сайта по определен начин, и то ще изглежда точно по този начин. Това ще има син заглавката на върха и синия страничен бар и след това нещо в жълто под-заглавието. Вие искате да направите множество шаблони. Можете или - ако сте добре с Photo Shop, можете да отворите този и вид дизайн на уеб сайт, както искате да изглежда. Ако не, можете просто да използвате писалка и хартия, но изравям множество дизайни. Вие искате да има в основата си създаде, където имате много различни дизайни, и ако някой се озовава работи, то това е страхотно. Ако някой се озовава при липса, тогава винаги има още един, за да се обърнат. Като цяло, не се чувствам като теб трябва да бъде ограничена какъвто и да е дизайн ви първоначално да вземе решение за. Дизайни са много променливи, и част от значението на модела оглед контролер система е, че можете да сменяте и излизат различни гледни точки, които искате. Можете да се развявам данните по един начин, и след това да реши, о, всъщност, че не работи толкова добре. Мисля, че това е нещо прекалено сложно или има част тук, че всъщност не е работа, така че аз съм просто ще се откаже напълно това виждане и суап в съвсем нова. Все още можем да използваме старите модели и старите контролери. Ние можем да направим всичко на сървъра и клиента, както бихме преди. Но действителната вълна на данните като показва ще бъде малко по-различен. Що се отнася до действително изпълнение на дизайна, който искате, След като вече имате няколко дизайни скицираме на хартиен или Photo Shop или каквото и да, има редица инструменти, които са направени достъпни за вас. Първият сте много добре запознати с който е вашият HTML, PHP, или каквото и език, който използвате само за кодирането на статични страници на вашия сайт. Вие сте работили много с HTML какъв вид ви дава тези тагове че можете да сложите нещата в, и в общи линии това е начин за организиране на вашето съдържание. Например, вие имате заглавката до там, така че ти започваш да имат етикет с глава, и то се случва да има някакъв текст вътре в него, която вероятно ще бъде в друг маркер. След това имате на страничната лента може би с няколко различни връзки, и тези, които ще си бъдат отделни тагове. Така че, в общи линии HTML в сърцето му е начин на разделяне на страницата как в крайна сметка искате да го форматирате. Така че отново, което сте виждали преди. Ти си доста комфортно с работа с него сега имайки предвид, че сте направили последния PSET надяваме, така че не трябва да бъде проблем. След това имате CSS, които основно се занимава с всички аспекти на дизайна статични. Това ще се справят с всички на цветовете, всички на позиционирането на различни елементи, където и да отидат с уважение един към друг, колко големи са те, различните видове позиционирания, че ще имат - С други думи, можете да имате неща фиксирани, така че, когато превъртате надолу те останат, или може да има неща, в сравнение с други елементи. Всички такива неща е в CSS. Освен това, можете да направите различни декорации, можете да имате текстови цветове, текстови ефекти, като всички такива неща. Бен даде един наистина добър семинар по този миналия уикенд, и така аз определено ще покажат, че, ако имате намерение да се прави някои модни неща с CSS. CSS3 всъщност е най-новата версия на CSS, и той може да направи всякакви наистина хубави неща. Той може да направи градиенти; можете да имате приятни, заоблени ъгли, можете да направите всякакви неща за да направите вашия сайт изглежда по-модерен и луксозен. Следващият инструмент е JavaScript и JQuery които Ben говорихме малко за това, но аз ще се получи малко по-навътре. JavaScript, като сте работили с него малко, или поне да се види, че в лекция, е един вид начин на динамично правиш неща в HTML. HTML, както знаете, е статично, така че след като имате HTML не можете да го промените. Но JavaScript, в някои отношения, е начин да бъде в състояние да променя HTML. Така че можете да направите това, и това е страхотно, но JavaScript наистина е болка да се работи. Това е толкова дълго и тъп и да се направи дори и най-простите неща изисква много линии на JavaScript. Така че, Jquery е в основата на библиотека за JavaScript, който опростява всичко това. Той казва, окей, ако искате да имате една квадратна кутия идват от ляво и избледняват в страницата, така че да е в средата, в JavaScript, който ще вземе - Аз не знам, сто линии, за да се направи, и то ще бъде болка, и излезе от него мрази всичко за уеб програмиране. JQuery Можете основно имат елемент-дот-избледняват-в, или нещо подобно. Така че, много, много прости функции, които ще ви позволи да направите всички видове готини анимации и неща от този род. Другото нещо, което тези две са наистина добри за е просто правиш динамични неща с уебсайта. Така че, вместо просто като си HTML страница - което показва някои данни, но всъщност не направи нищо - JavaScript и JQuery ще ви позволи да има бутони, които можете да кликнете върху, и можете да плъзгате елементи и повторно да ги поръчате и да ги сортирате, и имаме нови елементи добавяне или премахване. Можете да добавите-изтриване, такива неща. Така че, JQuery прави тон на готини неща. И Vipul всъщност дава семинар за него днес, според мен, при 5-часа, така че ако можете да си наоколо за толкова дълго, че би - 5 или 4? Four. Извинете. Всъщност е точно след това, така че аз бих препоръчал залепване наоколо за него, ако можете. JQuery е супер, супер полезно, и вие ще бъдете в състояние да направи много наистина хубави неща с него за почти всеки проект, уеб програмиране. Сега аз ще отида в нещо като отличие. Говорил съм основно за потребителски интерфейс. Потребителски интерфейс е само дизайна на сайта. Но има и нещо друго понятие, което е потребителски опит. Двамата са много различни. Interface определено е част от преживяването. С други думи, когато отидете на сайта, можете да потърсите в интерфейса. Това е част от начина, по който се насладете на сайта. Но потребителски опит е повече от това. Потребителят е опит за това какво е впечатлението, че потребителят получава от вашия сайт. Така че, очевидно, интерфейс е част от това. И това определено е необходима част, но това не е достатъчно. С други думи, ако имате приятен интерфейс, и това е красива и пъстра и всичко това, това е страхотно, но ако потребителят отива към вашия сайт, вижда доста оформление и е объркан от всичко, няма никаква представа как да се направи нещо, тогава явно сте направили наистина лошо уебсайт. Това е нещо, където потребителят опит идва инча Отивам да поговорим малко за UX дизайн - UX е съкратено от потребителски опит - и вид на това как можете да се уверите, че имате добър потребителски опит. Първата точка е, че вие ​​може да се изработи уеб сайт, където потребителят може да прави нищо, което че потребителят вероятно иска. Но ако потребителят не мога да разбера как да правя тези неща - с други думи, ако потребителят не разполага с добра идея, когато те отиват към вашия сайт на, "О, ако искам да обновя моя профил, тогава щракнете върху този бутон, или ако искате да публикувате на нечия стена, тогава ще отида да им стена и кликнете върху малка кутия. " Ако потребителят не знае, че след това можете ефективно да имате всъщност не реализира тази функционалност правилно. Част от прилагането на функционалност е, че потребителите са в състояние действително да го използвам. И това може да бъде разочароващ - може да направи един сайт, и той може да направи всички видове прекрасни неща, но след това ще имате хора го тестват и да кажат: "Това не мога да направя това. Защо не мога да го направя това? "И ще кажа, обратно към тях, "Е, той може да. Просто трябва да отидат в седмия падащото меню по този неясен страница, която само се намира чрез линк в долния десен ъгъл ръка "или нещо такова. Очевидно е, че вие ​​не искате това. Вие искате да бъде ясно на потребителите си това, което трябваше да направя, и тя трябва да бъде проста и интуитивна за тях. Друго нещо, което искате да се опитаме да направим е, че ако някой ще ходи да отидете на вашия сайт и 9 от 10 пъти вършат действие A, и един от 10 пъти вършат действия B, вие може би искате да се съсредоточи своя опит относно действията A. С други думи, вие искате да го направите много, много ясно как да се направи А. A трябва да бъде пред-и-център - отидете на сайта, да го видя, о, това е точно там. Като има предвид, B очевидно искате да бъде ясна, но можете да го оставите малко повече във фонов режим. David дава добър пример за това в лекция, който е системата Бостън T. Когато отидете до Бостън T и искате да си купите билет, вие трябва да получите в пет менюта, преди всъщност можете да закупите един билет за стойност $ 2, $ 2.50, което е колко е необходимо да се вози в метрото в една посока. Това е проблем, защото повечето хора, които са езда метрото вероятно просто искам да отида до едно място, да си купят билет, се кача на веднага. То няма смисъл, че те трябва да мине през много различни менюта да стигнем до там. А по-добър потребителски опит ще бъде бърз бутон на първа страница че просто казва, "си купи еднопосочен билет", и че ще постави във всички на стандарта стойностите по подразбиране, и след това, ако някой иска да си купи билет различна от тази, те все още, разбира се, имате възможност да, но сте оптимизиран за При обща употреба, което е наистина важно. Можете да видите примери за това на Facebook, нали? Ако отидете на Facebook и искате да публикувате статус, това е точно в горната част, което е това, което често искам да правя. Веднага след като влезете в страницата, можете да направите най-честите неща, които което искате да направите. Ако искате да направите малко по-сложни неща като: кажа, че искам да отида в стената на моя приятел и да публикувате снимка на нея - което аз ще искам да правя често, но не толкова често, колкото да публикувате статуси - така че в този случай, аз напишете името си в полето в горната част, кликнете върху техния профил, и след това, все още, това е точно на върха там веднъж съм намерила до техния профил. Отново, аз съм оптимизирана в приоритет за случаите на най-честата употреба. Друго важно нещо е, че често хората някак ще се опитат да се получи около това като казва, добре, така че аз съм направил сайта и хората намират, че е объркващо, и това е проблем, нали? Очевидно е, че не искате хората да се объркат от съдържанието на сайта си. Но начина, по който да се реши, че не трябва да има нещо, което се появи като каза, ей, аз ще ви научи как да използвате този сайт. Стъпка 1 - щракнете върху този бутон. Стъпка 2 - отидете тук. Разбира се, това е начин около него - това е един начин, по който можете да кажете на хората какво да правят, но това е Наистина не оптимален начин. Ако отидете на уеб сайт и изведнъж аз съм бомбардирани с този урок, който ми казва, какво да правя и къде да отида и всичко това, че не е забавно за мен. Това не е добър опит за мен. Това е нещо като болка. Искам просто да започнете да правите неща. Хората ще се затвори от диалоговия си кутия, или излез на самоучителя, не знам какво да правя, и след това се оплакват, защото Вие не сте им казва какво да правят. Начинът, по който да се реши този не е като даде всякакъв вид урок или направления - нещо подобно. Колкото и да можете да го избегнете, наистина искате да се покаже на потребителя какво да правя просто поради естеството на това как интернет страницата е изложена. С други думи, ако отида до Facebook, без влизане в системата, първото нещо, което виждам на главната страница - това е една малка кутийка за вход. Така че, дух. Аз трябва да влезнете Това е точно там. Като има предвид, ако аз отидох до Facebook и аз трябваше да кликнете малко линк в долната че каза "влезте в", а останалата част от страницата е просто някаква картина или нещо такова, Аз не бих наистина знам какво да правя, нали? Бих се бърка. Така че, това може да ми каже да отида там долу и щракнете върху бутона, за да влезете в системата, или дневника на бутон може да бъде точно в горната част, където аз отивам да го видя. Вие искате винаги да се показва на потребителя, какво да правя, и че трябва да се характеризират в самата страница. Когато си мисля за дизайн и подигравателен до различни начини за изразяване на вашия сайт, което наистина искам да мисля за това, потребителите ще да се прави и как можете да ги покажа какво да правя. Едно последно нещо е тестване е много, много важно. Това е страхотно да се намери някой - вземете един приятел, вземи някой, вие не знаете дори - който никога не е виждал на сайта, преди да използвате сайта. Тъй като сте работили на обекта, за часа, в който сте били вторачени в нея, и вие знаете точно какво да направя, така че явно ти започваш да се тестване на неща, които сте били, работещи по и че знаете работата. Но ако някой друг идва заедно и използва сайта, който никога не го е използвал и преди, това е едно уникално преживяване, защото трябва някой, който не разполага с предварително познаване на обекта навлиза в нея, така че те ще трябва ефективно никаква представа какво да правя или това, което вид на случаите на използване са подарък за тях. Това е страхотно. Това е уникален, защото те са по същество един човек с празен за ума. Те могат да ви кажа, ако нещо е объркващо или неясно. Те може да ви даде представа за това какво точно е потребителски опит на вашия сайт. Тя може да бъде много трудно да се каже, че себе си, така че определено бих Ви препоръчваме както сте разработването на вашите проекти - ако правиш уеб-базирани проекти - да накараш хората ползване на сайта още имате някакъв вид функционално демо. Сега отивам да поговоря малко за това как да се управлява проект за уеб програмиране. Минахме над това как можете да направите резервно челна страна на технически, Как можете да проектирате един наистина добър сайт, и това е чудесно, ако работите от себе си, но - дори ако работите от себе си и особено ако работите в отбор, управление на проекти се превръща в голям проблем. Вие сте нещо като чух за управление на проекти в различни форми, тъй като началното училище, когато било казано, групова работа. Вие трябва да си сътрудничат, да контактуват, всичко това. Всичко това все още се прилага тук, но има някои уникални обстоятелства с компютърни науки, който искате да бъде запознат, а вие искате да се уверете, че се справят добре. Първо ще говоря малко за екипа, който ще бъде инча Това е много важно да изберете правилния размер на екип, който да се работи върху, и в своя окончателен проект мисля, че имате възможност да изберете между един и четири души, ако съм вярна. Вие искате да се уверите, че не сте просто избора на броя на хората, че искате да работите с, защото те са вашите приятели. Вие искате да изберете един отбор, който е по-добър размер и че ще си свършат работата. Няма компромис в наличието на повече хора в сравнение с по-малко хора. Ако имате повече хора, очевидно повече работа може да бъде направено защото имате много хора, много код, много идеи, и всичко, което е страхотно. Но това също изисква много по-управление и много повече комуникация. С други думи, ако имате 4 хора, които работят по същия проект и всички те са с редактирането на същия код, повече или по-малко те всички видове трябва да знаете какво се случва, така че изисква от вас - ако добавите някаква нова функция ви вид трябва да се каже на хората - Аз съм това да се добави, Сменям това по този начин - особено ако можете да получите в наистина дълбока неща като моделите и контролерите, които са действително ще повлияе на начина на работа на обекта. Целият отбор трябва да е наясно с това, така че трябва да се уверете, че не сте избора твърде голям отбор, който ще бъде трудно да направи това съобщение. Можете също така не искате да изберете достатъчно малък екип, че не започваш да се да бъде в състояние да комуникира, защото това е просто вас. Друго нещо е да се помисли баланса на умения, където хората са. Това е чудесно, ако всички сте наистина добри програмисти. Но ако сте всички сървърни хора, значи, че вашият сайт е няма да изглежда много добре защото имате тази голяма база данни, и го прави супер-бързи заявки за търсене - което е страхотно - но когато отидете на нея, тя е като един сайт 1990 с червено и синьо навсякъде, и това не е добре също. Забележете, че Бен и аз работя в екип са много хубаво, защото аз съм нещо повече в предния край, и двамата си взаимодействат в средата-края, и Бен е наистина добър с обратно края на неща, така че работи много добре, защото можем да проектираме всеки сайт, и в общи линии дупките в този сайт, който трябва да бъде попълнено може да бъде запълнена от всяка една от нас, или може би и двете. Вие искате да се уверите, че няма дупки в своя екип. Всичко е наред, ако има малко припокриване. С други думи, ако имате 2-ма души, които са едновременно добър с задния край, че може да бъде добър, както и защото те могат да си помагат един на друг с проблеми че те имат. Това може да бъде проблем, ако имате само един човек, който е отговорен за нещо определено и ако се движат в един проблем, така че искам да имам малко припокриване но най-важното е искате да се уверите, че всички възможни дупки са запълнени. Последното нещо - и това трябва да е очевидно, но това често не е така. Наистина ли искаш да се забавляваш. Смисълът на този последен проект в CS50 и често точката на Мрежата за развитие като цяло не е просто да си вършат работа, защото тя се нуждае от това. Наистина ли искаш да се забавляваш, а вие искате да се направи нещо че те мотивира да работят по него. Ако всичко, което правим е болка да седнем и да работим върху, тогава вие не сте избора дясната проекта. Вие искате да изберете нещо, което ще намерите интересни, Наистина ли искате да видите резултата, вие сте развълнуван, когато получите нова идея за нещо, което може да направи - така че има всички видове проекти там, че аз съм сигурен, че можете да намерите - всеки има нещо, което наистина ще ги заинтригува ако те са прави уеб-базиран проект. Аз ще го кажа отново, точно сега. Ако вашият проект изглежда като болка и не искате да се работи върху него, изберете друг проект. Изберете нещо, което наистина ви вдъхновява. Бен спомена тази концепция за итерация малко, и аз искам да го прегледаме малко. Това е наистина важно да се работи в струи, където можете да получат нещо функционално. Тя може да бъде чудесно, ако имате този план за уеб сайт, който ще направи A, B, и C, и в крайна сметка ще стигнем до там. Но сте остана в тази фаза, където вие работите върху него и работи по него, но нищо не е направено получаване. Не е нужно нищо да се види и осезаем, функционален нещо. Това, което наистина искам да направя толкова, колкото тя изглежда нещо като болка понякога да работи върху нещо и след това някак го капачка, така че това е най-малко на една стабилна, бягане версия, дори и ако тя не разполага с всички функции, които искате. И може би има някои функции, които наистина искат да се добави, но просто не мога да защото искате да получите този сайт на функционална гледна точка. И така, вие искате да имате вид на целия процес на развитие изглежда така. Вие искате да се започне от някъде функционален - или по същество да започне с нищо - но искате да получите някъде много основен и функционален. И след това отново, направи нещо като скок и да получите някъде функционален отново. Вие бавно ще се изгради, и то може да отиде малко по-бавно, отколкото би по друг начин, но в дългосрочен план, ако сте постоянно остана в този среден път фаза, където можете всъщност не са нищо работа, тя може да бъде една наистина голяма неудовлетвореност да работят върху проекта си, защото ти си винаги толкова близо до получаване на това работи, и че никога не е действително работи. Вие искате да работите в тези функционални струи, и вие искате да се направят някои размисъл след всяка една. С други думи, след като сте на място, където мястото е сега работи - че не разполага с всичко, което ви харесва, но го прави някои неща - искате да се мисли, добре, е този сайт осъществяване на целта, която съм тръгнал да правя? С други думи, ако сайтът ще направи X, е това, което съм, работещи в посока на X? Има всички функции, които аз исках там? И освен това, е, че служи на общата цел, която искам? Ако сте констатацията, че вашият сайт е да започнете да се отклони в друга посока или може би нещата просто вид са не работят навън, може би е време да превключите предавките малко. С други думи, това си струва като се има предвид - че си струва да хвърлят идеи, ако е необходимо и като се има предвид съм аз наистина се работи за това, което искам да бъда. Вярвам, че това е следващата ми точка. Не се страхувайте да се откаже от идеите си. Само защото сте прекарали много часове в работа на функция и най-накрая имам работа, но тя наистина не върви толкова добре - като това не е толкова полезно или потребители имат проблеми да го използвате - неща от този род - не се страхувайте да го изхвърлим. Това е гадно, че сте прекарали много време да работи върху него, но в крайна сметка не искате един сайт, който е един вид събрахме заедно от тези парчета, които вид дейност, но не са толкова добре обслужен. Също така, не се страхувайте да прегърне нови идеи. Ако някой идва и казва, хей, че сайта изглежда наистина страхотно, но не би ли било чудесно, дори ако той също е направил това? Просто защото това е нещо, което не е имал намерение и нещо, което не е във вашата характеристики, нещо, което не сте задали, за да направя, не се страхувайте да го поеме и след това да работят с него. Тъй като често идеите, които ви движат с по време на курса на развитие в крайна сметка е наистина готини функции на сайта. Казвал съм го и преди. Аз ще го кажа отново. Тестери са супер, супер полезно. Опитайте се да получите хора, които никога не са виждали на сайта, преди да влезете и да видим какво става защото те могат да тестват не само полезността на сайта и работата на потребителя, но те също могат да тестват функционалността по начини, които не можеш. Ако направите някаква функция, която прави нещо определено и вие знаете, че ще ходи да се направи, че едно и също нещо правилно всеки път, това е страхотно. Но това често може да бъде трудно да се обясни ъглови случаите, когато потребителят може да напишете нещо, което не са очаквали - именно защото сте дефинирали характеристиките себе си. Така че, за да има някой, хайде, който няма представа как да използвате сайта и просто да го разбие в каквото и начини, по които може да направите, е наистина полезна, защото ви добиете представа от съвсем различна гледна точка на това, което на сайта си работи и това, което се нуждае от ремонт. На последно място, аз отивам да се говори за някои общи добри практики, и съм виждал много от тези в CS50, но те също така наистина, наистина се прилагат в обстановка на даден проект. Един от тях е коментари. Винаги коментар вашето код особено ако работите на голям екип. Тя може да бъде толкова досадно да просто да има гигантски блок от код, че някой е написал а може би и тя работи, може би това не е така, но вие нямате представа какво прави, така че нямам представа дали това е полезно или не, или дали тя трябва да бъде там или не, и ако работите върху нещо друго, че е възможно дори, че вие ​​работите по едно и също нещо, така че просто бъдете много, много внимателни, за да бъде внимателен на вашите колеги и пишат код, който е добре документирано. Не е нужно да се стигне дотам, че да направи цялата работа, където искал, ако увеличите брояч имате коментар, който казва, аз съм добавяне на 1 към този брояч. То не трябва да бъде, че подробно, но за всяка функция, която сте някога писане трябва да има някаква документация за това какво точно означава тази функция, какви са нейните входове са, и това, което тя трябва да се върне. По този начин можете да използвате други компоненти на хората за сайта и можете да се работи за изграждане на нещо голямо. Друго важно нещо е, че искам да правя редовни почиствания. Код получава разхвърлян. Да не се чувстват зле, ако вашият код е просто напълно нечетим и гигантски бъркотия. Това се случва в областта на уеб развитие винаги. Вие сте добавяне на нови функции, премахване на старите. Stuff ще е там, че не трябва да бъде. Това е добре, но вие искате да се уверете, че за да се справят с това редовно. Вие не искате да се остави да се изгради до точката, в която просто не мога да намеря нищо в кода си, а вие нямате представа какво нещо прави. Такъв е случаят с HTML. Понякога ще се окажете с предмети, които не съдържат нищо, и вие ще искате да се отървете от тях. В CSS, можете да се позовава на елементи, които не са вече там, така че искате да се отървете от този код. В JavaScript, може да сте извадили нещо от HTML. Така че, вие искате да се уверите, че сте винаги почистване, което прави нещата доста толкова, колкото можете, на регулярна основа. Друг наистина полезно нещо, че аз не мисля, че се очертава много в CS50 но си струва класирането им е контрол на версиите. Идеята за контрол на версиите е, когато вие основно следене на целия напредък сте направили към вашия сайт и ако в даден момент ти осъзнаваш, о, това е работил Преди известно време, но тя не работи повече, можете да се върнете към предишните версии и да видим какво се е променило оттогава и неща от този род. Основният начин да направите това е с Git, и Git е целият този вид система, която Вярвам, Tommy MacWilliam даде семинар за миналата година. Ако отидете в CS50 семинарите за 2011 г., можете да видите своя семинар по този въпрос. Идеята на Git е основно, че на редовни интервали от време, че правиш тези ангажименти които са начини за заявявайки, че сайта е в доста стабилна версия в момента, така че Правя го от опаковки и го отпрати към сървър, а след това можете да отидете на този сървър и гледам на всички предишни версии на кода си и да видим как се напредва и всички такива добри неща. Така че, това е в общи линии. Що се отнася до уеб програмиране, ние сме щастливи да си наоколо и да отговори на всеки въпроси, доколкото това е нашата презентация. Това е всичко. Благодаря. >> [Бен] Благодаря. [Аплодисменти] [Billy] Персонал, няма кой да имате някакви въпроси за неща, които ние сме обхванати или неща, които ние не сме включени, че те се надяваха, че ще покриват? Ние ще се радваме да отговорим на тези. Някой? [Член аудитория] Какви са плюсовете и минусите на използване на Ruby или използване Python? [Бен] Въпросът е, какви са плюсовете и минусите на използване на Ruby или Пайтън вместо като PHP. Плюсовете са, че Ruby и Пайтън са много по-добре, отколкото езика PHP. Поне по мое мнение, и аз мисля, че в много от мненията на други хора, както добре. Те са били предназначени повече за правене на сложни неща, и по-малко за пердах заедно уеб страници наистина бързо с малко на динамично съдържание. Затворниците са, че там е малко по-малко - има повече от кривата на обучение , за да ги създаде. Това е, като в PHP, може просто да има HTML файл и ще ви пиша по-малко, отколкото, въпросителен знак, а след това ви пиша някакъв код, и след това да напишете въпросителен знак, по-голяма-от, а след това сте готови. В други езици като Ruby или Python, , което трябва да мине през един малко повече работа, за да получите първоначалното управление сайт. Има също така и - поне той да бъде използван в случай - че има и още документация на разположение за PHP, само защото има повече хора, които го използват. Мисля, че това не е толкова голям проблем вече. Има със сигурност много добра документация за неща като Ruby по релси или Django за Python е еквивалент. PHP е един, че всеки се е използвал в продължение на години, и вие знаете как тя работи. Ruby и Python са малко по-малко зрели. [Член аудитория] Ако ви се налага да избират между една от тях, за да учат или да вдигне, които бихте предпочели? Честно казано, мисля, че зависи от човека. Съжалявам. Въпросът е кой ще те вземе някой да се научи? Намирам Python най-хубавото лично. Има много хора, които - аз направих първия си проект в Мрежата Dev в Python и Django. Има много хора, които обичат Ruby по релси също. Вероятно все повече хора, които знаят Ruby по релси. Честно казано, аз просто ще отида с каквото и хората около вас знаят , така че да има хора, да задават въпроси. Въпросът беше - на споделени сървъри е малко трудно да се работи върху Python? Това зависи от вашия хостинг. Съществуват известен брой на уеб Силите, които ще публикуваме Python неща. WebFaction прави това, нали? WebFaction е едно, че Били и аз се използва за някои проекти. Те са наистина страхотно. Те подкрепят повечето езици. Но е вярно, че PHP е много по-широка подкрепа. Така че, ако сте остана на уеб-домакин, която само върши PHP, че това е добра причина да се използва PHP. [Аудитория потребител] Аз просто имам в обучение как да намират някои бази данни, и знам, че ми SQL е навсякъде, но аз наскоро се е изложен на - и ти го посочи. Виждате ли JSON и разширяеми бази данни. My SQL все още е навсякъде. Как виждате това да се случи? Има ли ще бъде все по-голяма тенденция за повече разширяема (недоловим)? Въпросът беше - не мисля, че там ще бъде тенденция към не-SQL база данни. Например, като MongoDB. Мисля, че това определено е вярно. Моят съвет е най-вече свързани с MySQL тук само защото е MySQL индустриален стандарт. Лично аз предпочитам бази данни, които не разполагат с schemos като MongoDB , където не е нужно издаването на, о, аз трябва да добавите друга колона. Горко ми, като каквото и да правя? Това е много трудно да се направи, че на MySQL, но когато имаш нещо като Монго това е много по-хубав. Другото хубаво нещо за Монго е, че вашите записи са всъщност JavaScript обекти. Няма по вид стъпка преобразуване, където трябва да се вземат тези редове за бази данни и ги превръщат в обект на JavaScript и след това да ги изпратите по жицата. Мисля, че такива неща, че ще бъде много, много полезно за бързо уеб развитие в бъдеще. [Billy] Нещо Бих добавил, която е само една обща точка е, че не се чувствам като теб трябва да е научил всичко от езиците, които сме обсъдени от нашия семинар. Очевидно въпросът е да ви даде представа за това какво е там, и ако сте заинтригувани от някое от нещата, които споменах можете да ги Гугъл и прочетете за тях. И както споменах, че има няколко семинари, които се занимават с точно тези неща. Има дори повече семинари, които не са споменати, че най-вероятно да получите в тези неща, както добре. Идеята е, че ако искате да работите върху нещо, тук са инструментите на ваше разположение. Да не се чувстват претоварени, ако не сте много сигурни какви са тези инструменти правят точно, но знаем, че те са там, и че можете да направите широка употреба от тях от Гугъл. [Член аудитория] Какви неща ще трябва да направя, за да се уверете, че вашия сайт изглежда добре на мобилни устройства? [Billy] Мобилните устройства са малко по-трудни. Има два начина, можете да го подход. Първият начин е, че вие ​​действително имате мобилен уебсайт. С други думи, вие извършвате някаква откриване в началото когато браузърът се прави искане към вашия сайт, които или казва върнете тази гледна точка - което ще е и виждането за настолни или преносими браузъри - и този друг изглед за мобилни устройства. Това е място, където възгледи са наистина хубави, че в голяма степен може да суап двама и има интерфейс, който работи много добре на мобилни устройства и да имат напълно различен един, който работи добре на устройства на браузъра. Проблемът е, че е необходимо много време, тъй като това означава, кодиране напълно различен интерфейс. Другият начин, по който можете да го направите, е - много от съвременните телефони ще покаже сайтове и се опитват да ги направят като браузър би и те правят най-добре. Можете да вид се опитват да останат светлина върху размера на JQuery JavaScript, който използвате който се стреми да бъде мястото, където нещата могат да се объркат малко. Това е нещо като начина, по който трябва да се използва, ако не е нужно много време. Ако ви е нужно време, за да работи на мобилен интерфейс, това е очевидно най-добрият вариант. Мисля, че като цяло за CS50 проекти, вие ще искате да изберете една или друга страна. С други думи, вие искате да направите мобилно приложение или искате да направите уеб сайт на работния плот. И това някак определя къде да отидете с това. Но ако искате да го разшири по-късно, вероятно най-добрият ти залог е да се направи друг интерфейс за другия. Имам малко опит в разработването на WordPress-базирани сайтове. Аз домакин на личен сайт на WordPress за известно време. Тези видове рамки може да бъде хубаво, точно както много основни неща. Често вие просто ще се сблъскате с много проблеми, макар и адаптивност. Вие ще искате да имате нещо да изглежда по определен начин или да бъде по определен начин а ти просто не може, защото това е трудно жични в системата, която това е начина, по който трябва да прави неща, които могат да бъдат малко по-малък проблем. Оттогава съм вид бил по-склонни да работят с обекти от земята. За такива неща в блога бази данни и неща от този род, че наистина не е толкова трудно да се изгради рамка. Ако сте наистина се протегна за време, можете да разбира се използва нещо като WordPress или нещо такова за един блог. Видовете неща, че блоговете магазин и не са наистина достатъчно трудно, че ако сте стартирали в нито една от тези видове неща, вие може би си най-добрия, само за да направи в къща версия. Мисля, че това е за него, така че благодаря отново, че дойдохте. Ние наистина се ползват разговаря с вас и се надявам, че сте научили някои неща. [Бен] Ние сме щастливи да говоря - ние трябва да отида, но ние сме щастливи да се говори повече извън ако имате друг въпрос. Благодаря отново. [Аплодисменти] [CS50.TV]