[Powered by Google Translate] [Seminar] [Web Development: idea İcrasına] [Ben Kuhn] [Billy Janitsch] [Harvard Universiteti] [Bu CS50 edir] [CS50.TV] [Billy] Hi, I Billy Ben və bu Ben edir. >> [Ben] Hi. Biz bu gün web inkişaf haqqında söhbət etmək olacaq. [Webdev] [Billy Janitsch və Ben Kuhn] Ilk haqqımızda A bit. Ben geri sonuna oğlan sortudur. O, hər şeyi iş edir. Və sonra mən getmək və onları olduqca edir. Mən stuff daha ön-end layout dizayn cür əsasən cəlb deyiləm və Ben, digər tərəfdən, o, geri-end məhsulları üzərində işləyir, belə ki, bunu nə bilir. Birlikdə biz də bir şeylər etdik. Məsələn, keçən il biz bir online oyun inkişaf studiya olan Gimblium çalışmışdır. Bu sinif üçün son layihə idi, və o vaxtdan bəri biz Harvard Sinif etdik olan Harvard gəzən və alış-veriş kursları üçün online çərçivəsində edir. Biz haqqinda üçün bu ideya ilə başlamaq olacaq. Biz Facebook etmək niyyətindədir, lakin pişiklər üçün edirik. Siz, həqiqətən, bu web etmək əvvəl, bu yaxşı deyil, çünki bu web etmək deyil, lakin biz çərçivə kimi istifadə edəcəyik və biz bu fikir almaq necə prosesi vasitəsilə getmək və biz istifadə edə bilərsiniz bir real veb çevirmək. Biz səhifəsinə bax aşağı qıraraq başlamaq lazımdır. , Siz CS50 bunu etdik kimi Bu veb getmək ki, faktiki komponentləri nə haqqında düşünmək istəyirəm. Əsasən yalnız sort mücərrəd bir anlayış olan bir fikir onu dönüş Siz edə bilər ki, real, maddi şey daxil. Biz bəzi sualların başlayın. Bu veb nədir? Niyə biz bunu edirik? Nə üçün istifadə edilə gedir? Şey ki, sort. Facebook Cat halda, biz əsasən bir-biri ilə cats sosial şəbəkə imkan verir ki, bir web istəyirəm. Fikir onlar bir-birinin divarları göndərə bilər ki, olan, onlar şərh, şey ki, sort edə bilərsiniz. Biz funksional komponentləri minir harada ki var. Biz indi çərçivəsində bu cür var - biz istifadəçi profilleri var, biz şərh var və biz göndərə bilər. Yəqin ki, bir gün biz sevir və şey ki, sort influent lazımdır. Və biz növ daxil gedən bu xüsusiyyətləri prioritet istəyirəm Biz tamam, hər kəs bir profil var ki, həqiqətən vacibdir, kimi demək istəyirəm və hər kəs bir-birinin divarlarında göndərə bilər. Ki, orta, şərh gözəl olardı. Bəlkə sonra biz sevir influent lazımdır. Belə ki, sizin layihə üçün fundamental nə bir fikir var istəyirəm və sonra tətbiq edilə bilər ki, bir daha ümumi xüsusiyyət sort budur. Siz sort nəzərə xüsusi bir siyahısı var istəyirəm, lakin siz başlamaq ki, layihə ilə bitirmək ki, layihə olacaq deyil. Başqa sözlə, hər şeyi, siz site inkişaf etdiyiniz zaman dəyişdirmək üçün gedir və siz ki, otağı tərk etmək istəyirsiniz. Mən strukturu haqqında bir az danışmaq olacaq olan Ben üzərində çevirmək lazımdır. [Ben] Mən web inkişafı daha texniki tərəfi haqqında söhbət etmək gedirəm. Yalnız ilk bəzi əsasları üzərində getmək edək. Bir web app edirik zaman, Siz var olacaq ki, əsas bölümüdür Siz klient tərəfində gedən bəzi stuff olacaq - ki, siz browser etdiyiniz kodu saytdan edir və JavaScript, HTML, CSS stuff. Bu klient tərəfində bütün var. Siz server tərəfində çalışır ki, başqa bir kod olacaq olan insanlar sizə göndərmək bütün məlumatların tutar, kimi nə, stuff vermək olan qərar. Siz uşaqlar bütün söhbət etdiyiniz nə ilə tanış ki, bu yalnız bir terminologiya edir. Bölgüsü kənarda baxımından web app düşünmək yaxşı ayrı komponentləri bir neçə. Siz web inkişaf edirik zaman həmişə etməyə çalışırıq lazımdır ki, hər bir mürəkkəbliyi azaltmaq üçün. Daha kompleks sizin kodu bugs etmək var daha çox şans, daha sonra dəyişdirmək üçün. Belə ki, bəzi fərqli funksional sahələri daxil app qıra bilər, əgər olacaq - və cross-sahəsi rabitə məbləği cür azaltmaq bilər - ki, siz hataları azaldılması baxımından uzun müddət bir çox kömək edəcək. Konkret olaraq, adətən insanlar bir web app up bölmək - bu artıq buzz sözləri cür, lakin onlar hələ də faydalı istəyirik. Siz insanlar modelləri, fikir, və nəzarətçiləri haqqında danışmaq eşitmişəm bilər. Modellər sizin app ilə məşğul gedir ki, faktiki məlumatlar. Məsələn, pişik Facebook, sizin modelləri olacaq - sizin kimi ismarıc üçün bir model ki, kimi istifadəçi profilleri, heyəti üçün bir model var ediyorum. Sizin views sizin istifadəçilər üçün məlumat təqdim necə. 1 bir post baxaraq üçün görünüşü və bütün şərh ola bilər və bütün ismarışları bir siyahısı var ki, divar üçün müxtəlif görünüşü siz yönəldiləcək və news feed üçün müxtəlif görünüşü ki, - kimi stuff. Insanlar ismarıc göndər Nəhayət, əsasən olan nəzarətçiləri və sizin geri sonuna sistemi yenilikləri etmək Siz counters bir dəstə arttırmayı, və nə. O sizin nəzarətçiləri var. Mən modelləri haqqında daha çox söhbət etmək gedirəm. Views texniki çətin deyil və bu məsələ onların layihələndirilməsi ilə daha çox Nəzarətçiləri siz dizayn etdiyiniz nə üçün xüsusi olacaq. Amma istifadə edə bilərsiniz bəzi olduqca ümumi üsulları var Mən çox faydalı hesab edirəm ki, işləmək üçün modelləri gözəl və asan etmək. Bu, əsasən gözəl bir şəkildə web apps data ilə məşğul necə olacaq. Modelləri ilə əsas məsələlər Onlar müştəri və server yaşamaq və anlamaq lazımdır ki, a) necə onları almaq üçün - bütün müvafiq olanları - müştəriyə server, və b) senkronize saxlamaq üçün necə. Sizin users bəzi yenilikləri etmək istəyirəm edir. Onlar yeni ismarışları etmək istəyirəm olacaq. Onlar hoşlandığı varsa şeyi və stuff kimi istəyirəm olacaq. Həmin modelləri ilə məşğul olan əsas texniki problemlər var. Özünüzü soruşmaq istəyirəm olacaq ki, ilk şey hansı məlumatları bu model gedir və sorğu biz nə cür etmək istəyirəm gedir - ki, necə biz modelləri baxmaq üçün gedir? Sizin Cat Facebook məsələn, Sizin post, onunla bağlı bir müəllif var gedir bəzi divar post mətn və divar yazılan bir alan. Və sonra müxtəlif yollarla bir dəstə ki, sorğu edə bilərsiniz. Siz hansı yazı yazdı kim tərəfindən ona baxmaq istəyirəm bəlkə onlar dərc edildiyi tarixdən tərəfindən, ixtiyarınızda olan almış tərəfindən. Tarix bunu olacaq əgər Lakin, sonra sizin ismarıca başqa sahə əlavə etmək bu, həqiqətən dərc edilib zaman. Bu 2 amillər - Siz onu görmək istəyirəm necə istifadə etmək istədiyiniz və nə data - Onlar bir-birinə asılıdır, çünki ilk onlar haqqında düşünmək lazımdır, və daha sonra onları əlavə etmək üçün daha çətin olacaq. Digər mülahizələr var. Siz server modelləri ilə məşğul necə haqqında düşünür istəyirsinizsə zaman nə baxmaq istəyirəm - siz əsasən mümkün server kimi sadə etmək istəyirəm. Klient tərəfində stuff bunu ümumiyyətlə siz müştəri sırf bunu edə bilərsiniz, əgər daha sürətli şəbəkə sorğu hər hansı etmədən. Fikri siz müştəri kimi sorğuları kimi bir çox etmək. Ki, ilə yalnız problem ki, siz başında sizin data bütün tələb əgər sonra yüklemek üçün uzun vaxt olacaq. Belə ki, fikir müştəri kifayət qədər məlumat olan arasında bir xoşbəxt orta tətil edir orada sizin işin ən lakin yalnız bir dəfə hər şeyi alma bilməz ki, Siz əvvəlində həqiqətən yavaş yük dəfə almaq ki,. Məsələn, pişik data yəqin ki, son divar ismarıc bir dəstə almaq istəyirəm. Ki, bir neçə il geri getmək bilər, çünki onlara bütün almaq istəyirəm deyil. Amma bir zamanda onlara bir almaq istəmirəm ki, şəbəkə yerüstü bir çox tətbiq çünki. Bu olduqca çətin tez-tez var - bir verilənlər bazası çalışan bir dəfə - siz bu nə məlumatları dəyişdirmək üçün tez-tez kifayət qədər çətindir - ki, yeni bir verilənlər bazası sütun və ya bir şey əlavə - belə bir yaxşı strategiya yalnız bir mətn damcı sizin bir çox veri saxlamaq üçün əslində - bir JSON damcı - JSON JavaScript Obyekt Notation olan - Sonra yeni xassələri əlavə edə bilərsiniz, çünki faydalı ki, səbəbi Sizin bazası dəyişmədən bu JSON blobs bütün. Ki, yalnız İşin mənfi tərəfi odur ki, sahələrində bir dəstə varsa daha sonra əlavə edib ki, - ki, JSON damcı gizli kimi - onda bazası daxilində onlara sorğu etmək çətindir. Məsələn, daha sonra əgər - Siz post model idi əgər biz əvvəllər müzakirə yalnız müəllif, alıcının və mətn ilə - siz də sonra bir tarix sahəsində əlavə etmək istəyirdi sonra JSON damcı və bilər Siz bazası dəyişdirmək olmazdı. Siz yalnız mətn sahələrində bütün tarixləri əlavə edə bilər. Və sonra, klient tərəfində o baxmaq edə bilər ancaq server tərəfində onlara sorğu edə bilməz ki, mətn daxilində gizli, çünki. Haqqında düşünmək istəyirəm ki, başqa məsələ müştəri və server ünsiyyət gedir necə. Siz adətən mümkün qədər sadə kimi bu saxlamaq istəyirəm. Siz yalnız bir get-me-Bu data tələbi kimi ola bilər bir şey-a-yeni-obyekt yaratmaq, və bir yeniləmə bir-köhnə obyekt sorğu. Və bu bütün server müxtəlif URL'leri ola ki, olardı - browser ki, - bu bütün AJAX sorğu istifadə edə bilərsiniz və almaq və ya post data ya. Yenə bizim Cat Facebook misal üçün, Siz fərdi post almaq üçün URL ola bilər, və yeni bir divar post yaratmaq üçün bir URL var ediyorum və bəlkə kimi profile picture, stuff yüklemek üçün bir URL. Ancaq yenə də, siz saxlamaq yoxdur ki, məlumatların ən əvvəlcədən almaq var şəbəkə sorğuların edilməsi. Buna görə, siz bir yazı üçün fərdi get sorğu etmək istəyirəm bilər əvəzinə yalnız bütün divar üçün 1 get sorğu istəyirəm. Və sonra, çünki bir balans çalışdığınız əgər - bu da Sizin tətbiqi asılı gedir. Çünki insanlar yalnız 10 və ya 20 divar ismarışlarını var ki, gözləyirik əgər ki, gözəl olacaq. Əgər onlar minlərlə olacaq bekliyorsanız əgər lakin sonra tələb, çox uzun edəcək və belə bir almaq-bütün ismarıcları-ci ildən parametri əlavə edə bilərsiniz. Bütün bunlar yəqin ki, JSON veri senkronize istəyirəm olacaq - JavaScript Obyekt Notation. Pretty çox hər dil çox yaxşı JSON ilə məşğul olur. JQuery sizin üçün sabit iş bütün edəcəyik ki, bu gözəl getJSON funksiyası var. Və PHP çox gözəl JSON rabitə funksiyaları da var. Belə ki, yəqin ki, geri və irəli sizin modelləri göndərmək üçün ən yaxşı format var. Biz bu günə qədər haqqında söhbət etdik nə bir nümunə kimi, burada Cat Facebook tətbiqi üçün nümunə axını var. Bu brauzerinizin baza veb URL tələb ilə off başlayır. Bu server yəqin ki, statik HTML və bəzi JavaScript və CSS üzərində göndərmək olardı. Bu server hər hansı bir göstərilməsi etmək üçün adətən yaxşı. Siz yəqin ki, istəmirəm - nə server orada etmir divar ismarıc siyahısı aşağı gedir və hər biri üçün bir HTML yaradan və üzərində göndərilməsi. Çünki əks halda bu klient tərəfində bunu adətən yaxşı Əgər bir şey yenidən çəkmək istəyirəm hər dəfə, bir server tələb etmək lazımdır. Və çox tez hava bir çox verir. Gəmi statik HTML endirən yalnız adətən ən yaxşı və sonra JavaScript və CSS klient tərəfində göstərilməsi edəcəyik. Tezliklə stuff gəlir kimi, sonra ola bilər - JavaScript - Siz divar data üçün sorğu edə bilər və kimi stuff ki, sonra server əsasən yalnız verilənlər bazası queries edir və icazələrin yoxlanılması. Yalnız mühüm şey digər istifadəçilər divar ismarışlarını göndərmək bilməz ki, Siz görmək üçün icazə deyilik. Bu əsasən bazasında bir çox nazik daxil qat ola bilər, və sonra bütün məlumatları göstərən - fikir və məhsullarının bütün - Bir post və ya bir şey etmək istəyirəm o sonra brauzerinizin baş bilər, və Siz yalnız başqa sorğu göndərin. Bu üst edə bilərsiniz, bəzi fancy stuff də var. Daha konkret texniki məlumat baxımından, düz JavaScript inkişaf bir az ağrılı ola bilər, belə ki, bir çox kömək edəcək ki, bəzi kitabxanalar və alətlər var. Mən sizə bütün yəqin ki, HTML göstərilməsi etməkdən edir jQuery haqqında eşitdim edirəm və manipulyasiya çox asan - və solması üçün fancy funksiyaları çox var, və hareketli animasiyalar edir. Underscore.js adlanan bu kitabxana da var. Bu faydalı kommunal funksiyaları bir çox, siz JavaScript var gözləmək olardı ki, stuff var həqiqətən Doesn t ki, - bir sıra shuffling kimi şeylər, siyahıdan dublikatları aradan qaldırılması, və ya siyahıları siyahısını düzləndirilməsi. Bu yalnız kiçik kodu nümunəsidir. Vurğulamaq Siz bütün vaxt isterdim ki, bu gözəl funksiyaları bir ton var. Və sonra mən vaxt bir az sərf etmək istəyirəm ki, 1 daha kitabxana var Backbone həqiqətən klient tərəfində modelləri ilə məşğul kömək edir, çünki Backbone.js adlı və səbəb ola bilər ki, qarışıqlıq bir çox. Backbone siz model və kolleksiyaları bu anlayış verir JavaScript dəqiq JavaScript obyektləri kimi əsasən olan JavaScript seriallarda lakin onlar onların xassələri dəyişdirmək zaman tədbirlər var. Bir düyməsinə tıklayan və ya bir şey aldığında Just JavaScript kimi, bir hadisə ola bilər Bu Backbone modelləri və Backbone kolleksiyaları kimi şeylər nəşr edəcək ki, onlar dəyişir zaman. Ki, yalnız burada kodu bu parçası kimi bir şey yaza bilərsiniz deməkdir - siz bütün divar yenidən ismarışları array bir şey əlavə zaman bu, deyir. Likes bir Post nömrəsi dəyişir və bu, deyərdim Əgər kimsə öz vəzifəsindən xoşuma gəldi ki, istifadəçi bildirmek. Və ya bir yazının hər hansı bir xüsusiyyət post yenidən dəyişir. Kimi Stuff siz mürəkkəb ton saxlamaq, çünki başqa cür olacaq Bu kimi bəzi Framework dəyişdirmək sizin kodu sonra hər zaman yoxdur, əgər bir yazı haqqında bir şey, bütün göstərməyə funksiyaları zəng özünüzü yadda istədiyiniz və kimi stuff, və baş ki, yeni bir şey əlavə etmək istəyirdi Bir post redaktə hər zaman sizin hər yerindən vasitəsilə getmək üçün var ediyorum Bir post redaktə və yeni bir şey əlavə edir ki, kodu. Bu kimi bir çərçivə arasında-qat rabitə bir çox aradan qaldırılması ki, kodu mürəkkəb və saxlamaq çətin edir. Həmçinin views haqqında bir az var. Onlar texniki cəhətdən çox çətin deyilik, çünki Billy bu ən tərk gedirəm. Views üçün jQuery istifadə edin. Bu, praktiki olaraq bu nöqtədə bir zərurət kimi. Bu, sadəcə hər şey çox asan edir. Kitabxanaların bir çox var. Siz istifadəçi interfeysi elementləri mürəkkəb varsa, Siz avtomatik tamamlama şey istəyirəm və ya xülya multi-seçiciler biri kimi, əgər - bu kimi bir şey istəyirsinizsə, siz yəqin ki, yalnız ətrafında axtarmaq lazımdır və siz istədiyiniz nə edəcək ki, yaxşı kitabxana tapa bilərsiniz. Billy fikir həqiqətən çətin hissələri haqqında daha çox izah edəcək. Həmçinin, bir tərəfdən qeyd kimi, Backbone views ünsiyyət edilməsi üçün bəzi funksionallıq var gözəl modelləri ilə - həqiqətən, bu kitabxanaların bütün sənədlərin baxmaq. Just docs baxmaq. Onlar çox yaxşı yazılı və izləmək asan edirik. Əgər problem varsa, Ümumiyyətlə, siz olduqca çox yalnız Google bilərsiniz. Istifadə insanların bir çox var. Mən bu final qeyd kimi hesab edirəm. Siz edə bilərsiniz ki, bəzi daha inkişaf etmiş şeylər də var Siz web app əlavə zəhmli etmək arıyorsanız. Siz edə bilərsiniz - yeni HTML5 dəqiqləşdirilməsi siz edə bilərsiniz xülya çox şey var. Yerli storage - Siz browser məlumatları saxlaya bilərsiniz olan - daha geri getmək və hər şey üçün server diqqətlə oxumaq üçün olan çox, Siz müştəri bəzi saxlaya bilərsiniz ki, hətta insanların imkan verir - bəzi hallarda hətta web offline istifadə edək. Şəbəkə rabitə müxtəlif növ olan WebSockets deyilən şey var əvəzinə yalnız bir sorğu etmək, siz cavab almaq və siz tamamlayın, Siz server keçid açıq saxlamaq və siz kimi şeylər edə bilərsiniz real-time yenilikləri. Belə ki, bir chat app etmək üçün çalışırıq, əgər, siz WebSockets istifadə edə bilər Siz tələb saxlamaq deyil ki geri və irəli ünsiyyət, "Oh, server, hər kəs mənə bir chat göndərmək idi?" hər 10 saniyə və ya bir şey. Bu kimi baxmaq edə bilər bir maraqlı HTML5 xüsusiyyəti də var Səhifənin URL heç həqiqətən yeniden olmadan dəyişir. Siz geri istifadə və şəbəkə sorğuların dəstə etmədən düymələri irəli bilər. Kimi Stuff Bu sürətli edilməsi baxımından həqiqətən faydalı deyil, həm də olmalıdır web app kimi çalışır. CoffeeScript deyilən şey də var. CoffeeScript həqiqətən ki, JavaScript aşağı tərtib fərqli bir dilidir. Siz CoffeeScript bütün kodu yazmaq olardı, və sonra bu compiler çalıştırmak və sizin web daxil edə bilərsiniz ki, bir JavaScript faylı spits. Bu bir çox xilas olur, çünki CoffeeScript gözəl ki səbəb olur bərabərdir bərabərdir harada JavaScript var ki, qəribə hallar, və bərabər fərqli şeylər, və ya kimi bərabərdir - Bu seriallarda və funksiyaları ilə məşğul olmaq üçün gözəl sintaksis var. Bu, bütün meydanların siyahısını çıxaran CoffeeScript bir az parçasını edir 10 ^ 2 sırayla 2 ^ 1 üçün. Gördüyünüz kimi, CoffeeScript tez-tez 1 line ifadə verir JavaScript 5 xətləri almaq nə. Hər şey daha asan edə bilərsiniz. Bu ilk öyrənmək üçün yeni sintaksis bir az var, ancaq uzun vadede daha çox məhsuldar edəcək. Siz həmçinin PHP çox server digər dillərdə istifadə edə bilərsiniz - Ruby, Python, dil və ya Node.js adlı hətta bir layihə var ki, siz server JavaScript istifadə imkan verir. Şəxsən, mən, həqiqətən, həqiqətən, PHP nifrət. Mən yalnız bu iş zövq yoxdur. Siz də, bir dil bir dəhşətli cluge hesab edirəm ki, sonra əvəzinə bu bir istifadə edə bilərsiniz. Ümumiyyətlə, siz bir şey etmək istəyirəm və əgər həqiqətən, siz bunu necə bilmirəm, yalnız Internet axtarış. Ton və xüsusilə resurslarının ton var - StackOverflow böyük biridir. Bu proqramçılar bir-birinə sual bu haqqinda var. Siz CS50 problem dəstləri sorun qarşılaşdıqda, əgər siz onu daxil ola bilər. Və Siz istədiyiniz olduqca çox bir şey etmək üçün kitabxana ton var. Əgər bir şey istəyirsinizsə, siz bunu necə bilmirəm, bu mümkün deyil ki, güman etmirəm. Just ətrafında baxmaq və bəzi yaxşı resursları tapa bilərsiniz. Bir general kimi bükmək, əsas takeaways şeyə sadə saxlamaq var. Daha mürəkkəb sizin kodu əvvəlində və daha çox cəhd və xülya məhsulları, artıq bu, həqiqətən funksional bir şey almaq olacaq və daha sonra dəyişdirmək olacaq. Belə ki, ilk şeyi lal, asan yol yoxdur. Ki, ilə birlikdə getmək üçün, Köhnə kodunuzu atmaq və ya bir çox o qədər təmizlənməsi qorxuram olmayın. Ümumiyyətlə, siz həqiqətən bir şey iş var bir dəfə, Siz başlayan mərhələdə hələ olduğunuzda daha düşünmək üçün çox asandır necə Mən bütün birlikdə bu qoymaq yoxdur. Çalışır ki, dumbest mümkün dizayn etmək üçün ən yaxşı və sonra iteratively hər şeyi doğru ilk dəfə almaq üçün çalışırıq çox onun təkmilləşdirilməsi. Müştəri-server bölgüsü baxımından, cəhd və çox sadə server saxlamaq - yalnız bir verilənlər bazası və bəzi identifikasiyası və orada hər hansı bir ağır iş yoxdur. Brauzerinizin müştəri tərəfində sizin mürəkkəb məhsullarının bütün etməyin JavaScript kimi çox bilərsiniz kimi. Həyat daha yaxşı etmək kitabxanalar üçün ətrafında baxmaq. Başqası yazdı o kodu istifadə etmək həmişə yaxşı Əgər - və özünüz yazmaq üçün. Stuff bir çox İnternet var. Google ən yaxşı dostudur. Google proqramçı ən yaxşı dostudur. Bəli, mütləq heyəti üçün ətrafında baxmaq qorxmayın. Bütün hüquqlar. Və artıq Billy üçün. [Billy] Əslində, bəzi dizayn heyəti ilə başlamaq əvvəl, Hər kəs o danışdıq ki, bir şey haqqında Ben hansı bir sualınız var? OK, yaxşı. Yenə bir şey aydın deyil, əgər bizə bildirin Isterseniz və ya bizə bir az daha çox bir şey üzərində getmək üçün. Mən bir az geri addım və dizayn daha fundamental hissələri haqqında danışmaq üçün gedirəm. Bağışlayın, model nəzarətçi view sistemi - Ben adlı model qeyd olan texniki aspekti sort, mən xüsusi Baxışların baxmaq gedirəm, və mən gözəl görünür ki, bir görünüşü dizayn istədiyiniz necə başlamaq üçün gedirəm. Burada bizim Cat Facebook üçün, həqiqətən, əsas şablon növü var. Mən müasir UI dizayn bəzi əsasları var aldığınız dəyər ki,. Siz bütün səhifə üzərində ağ kosmik bir çox var bildiriş bilər, şeylər üçün otaq çox. Bir page şeyi squash kimi hiss etməyin. Siz açıq otaq çox tərk etmək istəyirəm, siz demək olar ki, hər hansı bir müasir veb getmək əgər Siz hər yerdə ağ var görəcəksiniz. Gözləmək olmaz yerlərdə ağ var. Bu rəng palitrası var, və bu ilin əvvəlində müdrik Sizinlə işləmək və inkişaf etdirmək olacaq ki, bir rəng palitrası seçin. Siz həmçinin - bir yazı tipinde seçmək üçün kömək edir ki, yol sort ilə çalışırıq dizayn bu konkret əsasları. Siz növü var, sizin rənglər var, və sonra cür bilərsiniz kimi lazım başqa hər şey uyğun. Dediyim kimi, sizin rəng sxemi ilə sizin rəng sxemi bolder rənglər istifadə etmək sparingly. Mövzular gözəl edir. Buttons həqiqətən böyük, çığıran rəng gözəl edir. Amma, ümumiyyətlə, hər yerdə rəng var ki, bir web varsa, bütün üz sizin ixtiyarınızdadır, yalnız cluttered görünür və bu heç bir yaxşı. Siz, ümumiyyətlə, yüngül rəng istifadə etmək istəyirik. , Yenə olduqca ardıcıl rəng sxemi seçmək üçün cəhd edin. Siz rəng çox bu kiçik sıçrantı ola bilər - ki, olduqca gözəl baxmaq edə bilər, lakin olduqca sparingly istifadə etmək istəyirsinizsə. Dediyim kimi, siz minimal olmaq istəyirəm. Az demək olar ki, həmişə çoxdur. Əgər bir şey keçirmək və ya edə bilmirsinizsə bir şey göstərmək, və cür emin ismarıcları var olması etdiyiniz - yəqin ki, siz onu tərk off ən yaxşı edirik. Siz həmişə daha sonra əlavə edə bilərsiniz. Bəli, hər şeyi sadə saxlamaq. Amma ən əsası, siz çox dizayn hesab etmək istəyirəm. Siz bir site zaman, siz olacaq ki, baş var ki, düşünmürəm müəyyən bir şəkildə site, və məhz bu kimi baxmaq olacaq. Bu üst mavi mövzu və mavi yan bar var olacaq və sonra sarı sub-header şey. Siz birdən çox şablon etmək istəyirəm. Siz edə bilərsiniz - siz Photo Shop ilə yaxşı edirsinizsə, siz sort ki, açmaq və bilərsiniz siz baxmaq kimi bir web dizayn. Əgər yalnız qələm və kağız istifadə edə bilərsiniz, lakin çox dizayn up danışıq. Siz əsasən müxtəlif dizayn çox var olduğu bir qurmaq istəyirəm bir iş başa əgər, sonra böyük deyil. Bir uğursuz başa, onda siz həmişə çevirmək başqa biri var. Siz mecbur olunmalıdır kimi, ümumiyyətlə, hiss etmir nə dizayn ilkin qərar. Designs çox dəyişən və model əhəmiyyəti hissəsi nəzarətçi view sistemi və həyata istədiyiniz müxtəlif views dəyişdirmək bilər. Siz data bir yol sway, və sonra ki, yaxşı iş deyil ki, həqiqətən, oh, qərar qəbul edə bilər. Mən bu cür çox mürəkkəb hesab və ya həqiqətən iş deyil ki, burada bir hissəsi var mən yalnız tamamilə tamamilə yeni bir bu görünüşü və mübadilə tərk gedirəm. Biz hələ də köhnə modellər və köhnə nəzarətçiləri istifadə edə bilərsiniz. Biz əvvəl kimi server və müştəri hər şeyi edə bilər. Amma nümayiş kimi məlumatların faktiki dalğa az fərqli olacaq. Qədər həqiqətən istədiyiniz dizayn həyata, Bir neçə dizayn kağız və ya Photo Shop və ya hər hansı həyata sketched bir dəfə, sizin üçün edilir ki, alətlər bir sıra var. Siz çox tanış olduğunuz ilk HTML, PHP, və ya hər hansı Siz yalnız web statik pages kod istifadə etdiyiniz dil. Siz növ bu tags verir HTML ilə bir çox çalışmış Siz daxil şeyi qoymaq bilər, və əsasən bu content təşkil bir yoldur ki,. Məsələn, siz orada mövzu var, belə ki, bir mövzu tag olacaq və yəqin ki, başqa tag olacaq olan bu daxilində bəzi mətn var olacaq. Sonra bir neçə müxtəlif links ilə bəlkə bir sidebar var, və o bütün ayrı-ayrı tags olacaq. Belə ki, onun qəlbində əsasən HTML page up ayırıcı bir yoldur necə sonda onu format etmək istəyirəm. Belə ki, yenə əvvəl ki, gördük. Siz indi bu iş ilə olduqca rahat olduğunuzu inşallah son pset etdik ki, verilmiş, belə ki, heç bir problem olmalıdır. Sonra əsasən dizayn statik aspektləri bütün emal CSS. Bu rəng bütün müxtəlif elementləri yerləşdirilməsi bütün idarə ki, onlar bir-biri ilə əlaqədar getmək harada, necə böyük onlar, siz ki, positionings müxtəlif növ - Siz aşağıya fırladın zaman onlar qalmaq ki, digər sözlə, siz hər şeyi, sabit ola bilər və ya digər elementləri nisbətən şeylər ola bilər. Stuff ki, sort bütün CSS edir. Bundan əlavə, müxtəlif bəzək edə bilərsiniz, Siz mətn rəng ola bilər, mətn effektləri, o cür şeylərlə bütün. Ben bu keçən həftə sonu həqiqətən yaxşı seminar verdi, Siz CSS ilə bir xülya şeyler planlaşdırırıq əgər mən mütləq kontrol. CSS3 həqiqətən CSS yeni versiyası və bu, həqiqətən, gözəl şeyi bütün növ edə bilərsiniz. Bu künclərinə edə bilərsiniz, siz gözəl, dairəvi guşələrindən ola bilər, siz məhsullarının bütün növ edə bilərsiniz Sizin veb daha müasir və fancy baxmaq etmək. Növbəti alət, JavaScript və Ben haqqında bir az söhbət jQuery amma bir az uzaq almaq lazımdır. JavaScript, siz mühazirə onu onunla bir az işləyib, və ya ən azı gördüm kimi, cür dinamik HTML stuff bunu bir yoldur. HTML bir dəfə siz onu dəyişdirə bilməz, belə ki, HTML, bildiyiniz kimi, statik deyil. Amma JavaScript, bəzi yollarla, HTML dəyişdirmək etmək üçün bir yoldur. Beləliklə, siz bunu edə bilər ki, böyük, lakin JavaScript həqiqətən ilə işləmək üçün bir ağrı. Bu, hətta sadə şeyə belə uzun və küt və JavaScript xətləri çox tələb edir. Belə ki, jQuery əsasən ki, bütün asanlaşdırır JavaScript kitabxana deyil. Siz sol, gələn bir kvadrat qutu etmək istəyirsinizsə Bu, tamam, deyir alacağını JavaScript, ortada var ki və saytın daxil fade - Mən yüz xətləri etmək, bilmirəm, və bu ağrı ola bilər və siz web proqramlaşdırma haqqında hər şeyi nifrət çıxmaq. JQuery əsasən belə element-dot-fade-in, və ya bir şey var. Siz sərin animasiya bütün növ bunu bildirin, belə ki, çox sadə funksiyaları və şey bu cür. Bu 2 üçün həqiqətən yaxşı olan digər şey yalnız dinamik şeylər edir saytına. Belə ki, deyil, yalnız HTML səhifə olan çox - həqiqətən bəzi data göstərir, lakin hansı bir şey - JavaScript və jQuery siz vurun ki, düymələri var imkan, və siz elementləri və yenidən sifariş onları sürükleyin və onlara sort və yeni elementləri ola bilər əlavə və ya çıxarıla. Siz əlavə et-sil edə bilərsiniz, şey ki, sort. Belə ki, jQuery sərin şeyi ton edir. Və Vipul həqiqətən 5-saat, mən inanıram ki, bu gün bir seminar verir, ki, uzun ətrafında qalmaq bilər, belə ki, ki - 5 və ya 4? Dörd. Üzr istəyirik. Bu hüququ sonra, həqiqətən, belə ki, tövsiyə edirəm Siz əgər bunun üçün ətrafında yapışdırılması. JQuery super, super faydalı və siz həqiqətən gözəl şeyi çox edə bilərsiniz olduqca çox hər hansı bir web inkişaf layihə üçün. İndi bir fərq növ daxil almaq üçün gedirəm. Mən istifadəçi interfeysi haqqında əsasən söhbət etdik. User interface saytda yalnız dizayn edir. Lakin istifadəçi təcrübəsi olan sort bir anlayış var. Iki çox fərqli. Interface mütləq təcrübə hissəsidir. Bir site getmək zaman digər sözlə, siz interface baxmaq. Ki, siz site yaşamağa necə hissəsi. Lakin istifadəçi təcrübəsi daha çoxdur. İstifadəçi təcrübə istifadəçi Sizin sayta olur ki, təəssürat nə edir. Belə ki, açıq-aydın, interface ki, bir hissəsidir. Və bu, mütləq zəruri hissəsidir, lakin kifayət qədər deyil. Siz gözəl bir interface var, başqa sözlə, və bu, olduqca və rəngarəng və bütün var, ki, böyük var, lakin istifadəçi saytınıza gedir əgər, olduqca layout görür və səhv edir hər şey, bir şey necə heç bir fikir var, sonra açıq-aydın siz həqiqətən etdik yoxsul haqqinda. Ki, istifadəçi experience girer növ var Mən UX dizayn haqqında bir az danışmaq üçün gedirəm - UX istifadəçi experience üçün qısa - və siz yaxşı bir istifadəçi experience əmin edə bilər necə cür. Birinci nöqtə bir istifadəçi bir şey edə bilərsiniz bir web dizayn bilər ki, ki, istifadəçi bəlkə istəyir. Amma istifadəçi həmin şeyə necə anlamaq bilməz, əgər - başqa sözlə, onlar sizin site getmək zaman istifadəçi yaxşı bir fikir yoxdur, əgər, Mən profil yeniləmə istəyirsinizsə "Oh, sonra mən göndərmək istəyirsinizsə, bu düyməsini basın, və ya kiminsə divar, sonra divar getmək və bir az qutusuna basın. " Istifadəçi ki, bilmir, onda siz səmərəli həqiqətən var düzgün funksionallığı həyata keçirilir. Bir funksionallığı həyata Part istifadəçilər həqiqətən istifadə edə bilərlər ki,. Bir site edə bilər, və bütün növ edə bilərsiniz - və bu sinir bozucu ola bilər gözəl şeylər, lakin sonra siz insanlar test və bu edə bilməz ", deyə lazımdır. , Nə üçün? Bunu edə bilməz "və onlara geri demək lazımdır "Bəli, bu. Siz bu qaranlıq dair 7-ci açılan menudan daxil ola bilər yalnız sağ alt küncündə "və ya bir şey bir keçid aşkar səhifə. Aydındır ki, siz ki, istəmirəm. Siz, onlar bunu ehtimal etdiyiniz nə istifadəçilər üçün aydın olsun və bu sadə və onlar üçün intuitiv olmalıdır. Siz cəhd etmək istəyirəm ki, başqa bir şey kimsə saytınıza getmək olacaq halda, və 9 10 dəfə hərəkət A, və 1 10 dəfə hərəkət B etmək, yəqin ki, fəaliyyət A. öz təcrübə diqqət istəyirəm Başqa sözlə, siz çox aydın necə A. gələni etmək istəyirəm A olmalıdır ön və mərkəzi - görmək, site getmək; oh, bu hüququ var. B Halbuki açıq-aydın aydın olmaq istəyirəm, lakin bir az daha onu tərk edə bilər fonunda. David, mühazirə, bu yaxşı bir misal verir olan Boston T sistemidir. Siz Boston T getmək və bir bilet almaq istədiyiniz zaman, siz həqiqətən bir bilet əldə edə bilərsiniz əvvəl 5 menyularda almaq lazımdır Bu metro gəzmək üçün lazım nə qədər olan bir $ 2, $ 2.50 dəyəri, üçün bir istiqamətdə. Ki, bir problem var, çünki metro binicilik olan insanların çoxu yəqin ki, yalnız, bir yerə getmək, bilet almaq, hemen almaq istəyirəm. Onlar müxtəlif menyular çox yolu ilə getmək lazımdır ki, hissi etmir orada almaq üçün. A yaxşı user experience ilk səhifə tez düyməsinə olacaq yalnız 'bir yol bilet almaq ", deyir və standart bütün qoymaq olardı default dəyərlər və sonra kimsə ki, daha fərqli bir bilet almaq istəyirsə, onlar hələ də, əlbəttə, seçimi var, lakin sizin üçün optimize etdik həqiqətən vacib olan ümumi-istifadə halda. Siz sağ, Facebook bu nümunələri görmək olar? Facebook getmək və bir status yazmaq istəyirsinizsə, Siz tez-tez istədiyiniz nə olan sağ üst var. Kimi tezliklə səhifəyə daxil olaraq, ən ümumi şeyi edə bilər ki, Siz istədiyiniz. Sizin kimi bir az daha mürəkkəb şeyi etmək istəyirsinizsə, Mən dost divar getmək və bu barədə bir şəkil göndərmək istəyirsiniz - Mən tez-tez etmək istəyirəm, lakin tez-tez statusu yenilikləri poçt kimi lazımdır - ki halda, mən, onların profil basın, üst qutusuna onların adını yazın Mən öz profili kazanılmış sonra, sonra, hələ orada sağ üst var. Yenə ən ümumi-istifadə halları üçün prioritet optimize etdik. Digər mühüm şey tez-tez insanlar sort bu ətrafında almaq üçün çalışacağıq ki, tamam deyərək, mən site etdik və insanlar confusing tapmaq, ki, sağ, bir problem var? Aydındır ki, mən insanlar mənim site məzmunu ilə səhv etmək istəmirəm. Amma həll etmək üçün yol, bir şey söyləyərək açılır mövcut deyil hey, mən necə bu saytda istifadə etmək üçün sizə öyrətmək üçün gedirəm. Addım 1 - bu düyməni basın. Addım 2 - burada getmək. Əlbəttə, bunun ətrafında bir yol var - siz nə üçün insanların demək olar ki, bir yol var, ancaq bu həqiqətən optimal yolu. Mən bir web getmək və birdən-birə mənə izah edir ki, bu tutorial ilə bombalanmaq alıram varsa nə getmək və bütün üçün nə etmək ki, mənim üçün əyləncə deyil. Bu, mənim üçün yaxşı bir təcrübə deyil. Bu ağrı növü var. Mən yalnız stuff bunu başlamaq istəyirəm. İnsanlar, onların informasiya qutusu həyata bağlamaq üçün gedir və ya tutorial çıxmaq, nə bilirik, sonra şikayət deyil, çünki Əgər siz onları yoxdur nə söylədim. Bu həll yolu tutorial və ya istiqamətləri hər cür verərək deyil - kimi bir şey. Kimi çox siz qarşısını almaq kimi, həqiqətən, nə istifadəçi göstərmək istəyirik yalnız veb salınan necə təbiəti. Başqa sözlə, mən giriş olmadan Facebook getmək əgər, Mən əsas səhifə görmək ki, ilk şey - bir az giriş qutusu var. Belə ki, duh. Mən sağ var daxil lazımdır. Halbuki, mən Facebook getdi və mən altındakı bir az link basın əgər 'daxil' dedi və saytın qalan şəkil və ya bir şey yalnız bir növ idi ki, Mən, həqiqətən, doğru, nə bilmirəm ki? Mən səhv olardı. Belə ki, orada getmək və daxil düyməsini basın mənə deyə bilər və ya düyməsinə günlük Mən bunu görmək gidiyorum harada üst sağ ola bilər. Siz həmişə nə istifadəçi göstərən olmaq istəyirəm, və özü səhifə xas olmalıdır. Siz dizayn haqqında düşünür və müxtəlif yollarla up rişxəndli etdiyiniz zaman site ifadə, həqiqətən, istifadəçilər üçün gedir nə haqqında düşünmək istəyirəm Siz nə onlara göstərmək olar necə etdiyini və olunacaq. Son bir şey test həqiqətən, həqiqətən vacibdir. Bir dost almaq, hətta bilmirəm kimsə almaq - bu kimsə almaq üçün böyük deyil - site istifadə etmək üçün əvvəl site görməmişəm kim. Saat saytda iş olduğunuz, çünki siz staring olduğunuz, və açıq-aydın siz test olacaq dəqiq nə bunu bilmək sizə və siz bilirsiniz ki, iş etdik ki, hər şeyi. Amma başqasının yanaşı, gəlir və daha əvvəl heç istifadə ki, site istifadə əgər, siz heç bir əvvəlki bilik olan kimsə var, çünki ki, unikal təcrübə Site ona gedən, onlar səmərəli üçün nə heç bir fikrim davam edirik və ya istifadə halları nə cür onlar üçün mövcuddur. Ki, böyük. Onlar mahiyyətcə bir ağıl üçün bir boş bir şəxs istəyirik, çünki ki, unikal var. Bir şey confusing və ya aydın deyil əgər siz deyə bilərsiniz. Onlar sizin site istifadəçi təcrübəsi dəqiq nə bir fikir verə bilər. Mən sizi təşviq belə ki, mütləq ki, özünüzü demək üçün çox ağır ola bilər sizin layihələrin inkişaf etdiyiniz kimi - siz web-based layihələr edirik, əgər - kimi erkən funksional demo bir növ var kimi saytda istifadə edərək insanlar üçün. İndi mən bir web inkişaf layihə idarə necə haqqında bir az danışmaq üçün gedirəm. Biz, texniki geri sonuna yan bunu necə üzərində getdi sonra Siz həqiqətən yaxşı site dizayn edə bilərsiniz necə, Siz özünüz iş lakin əgər ki, böyük deyil - Siz özünüz çalışırıq, hətta bir komanda çalışırıq, xüsusilə də əgər, Layihənin idarə olunması bir böyük məsələ olur. Siz sort ildən müxtəlif formalarda layihənin idarə olunması haqqında eşitdim ibtidai məktəb qrup işləri izah edildi. Siz ki, bütün, ünsiyyət, əməkdaşlıq var. Yəni bütün hələ də burada aiddir, lakin bəzi unikal hallar var siz xəbərdar olmaq istəyirəm, və siz də idarə əmin etmək istəyirəm ki, kompüter elm. Mən sizə daxil olacaq ki, komanda haqqında ilk bir az danışmaq lazımdır Bu iş üçün bir sıra doğru ölçüsü seçmək üçün çox vacibdir, və son layihə Mən seçmək üçün seçim var 1 və 4 adam doğru Ben əgər. Siz yalnız insanların sayı seçilməsi deyil əmin etmək istəyirəm Əgər onlar sizin dost istəyirik, çünki ilə işləmək istəyirəm. Siz yaxşı bir ölçüsü var ki, bir komanda seçin və ki, iş aparılır almaq istəyirəm. Az adamın qarşı daha çox olan bir ticarət off var. Daha çox insanlar varsa, açıq-aydın daha çox iş edilə bilər insanların çox, çox kodu, ideyalar çox var, çünki və bütün böyük deyil. Lakin bu da bir çox idarə və bir çox daha çox ünsiyyət tələb edir. Başqa sözlə, eyni layihə üzərində çalışan 4 adam varsa və onlar bütün daha az və ya onlar ehtiyac bütün növ bilmək, eyni kodu redaktə edirik nə olacaq belə ki, tələb edir - Bəzi yeni funksiya əlavə əgər siz sort insanlar demək lazımdır - Ben bu əlavə, Mən bu şəkildə bu dəyişən alıram - Siz, həqiqətən, dərin məhsulları daxil, xüsusilə də əgər əslində site necə təsir edir ki, modelləri və nəzarətçiləri kimi. Bütün komanda, bunun fərqində olmalıdır belə ki, siz çətin olacaq ki, çox böyük bir komanda seçilməsi deyilik etmək lazımdır rabitə etmək. Siz həmçinin fikrində deyilik ki, kiçik kifayət qədər komanda seçmək istəmirəm yalnız siz çünki ünsiyyət etmək. Hesab başqa bir şey insanların bacarıqları var harada balans edir. Siz bütün həqiqətən yaxşı proqramçılar əgər bu böyük. Bütün geri sonuna nəfər istəyirsinizsə Lakin, sonra site çox yaxşı baxmaq niyyətində deyil Bu böyük bazası var və bu, super-sürətli axtarış sorğu çünki - böyük olan - ancaq siz getmək zaman, ilə 1990-cı site kimi qırmızı və mavi hər yerdə və heç bir yaxşı, ya da var. I növ daha deyiləm çünki Ben və mən bir komanda kimi çalışır çox gözəl olduğunu fark ön sonunda, biz həm orta sonunda qarşılıqlı və Ben geri sonuna məhsulları ilə həqiqətən yaxşı Biz hər hansı bir site dizayn və əsasən deşik bilər, çünki, belə ki, həqiqətən yaxşı işləyir dolu lazımdır ki, saytda və ya bizə biri və ya bəlkə həm də doldurula bilər. Siz komanda heç bir deşik var əmin etmək istəyirəm. Üst-üstə bir az var, əgər OK. Başqa sözlə, siz də geri sonunda yaxşı ki, 2 nəfər varsa, Onlar problemləri ilə bir-birinə kömək edə bilər, çünki ki, yaxşı ola bilər onlar malik olan. Siz yalnız müəyyən bir şey üçün cavabdeh olan 1 adam var, əgər bir problem ola bilər və onlar bir problem daxil, belə ki, üst-üstə bir az var istəyirəm lakin ən əsası mümkün deşiklərin bütün dolu əmin etmək istəyirəm. Son şey - və bu aydın olmalıdır, lakin tez-tez deyil. Siz, həqiqətən, fun olan istəyirik. CS50 bu final layihənin point və ümumi web inkişaf tez-tez point bunu lazımdır, çünki yalnız bir iş deyil. Siz, həqiqətən, əyləncə olan istəyirəm, və siz bir şey edilməsi istəyirəm ki, işləmək üçün motivasiya edir. Nə edirik oturub işləmək üçün bir ağrı, əgər onda siz doğru layihə seçilməsi deyilik. Siz maraqlı tapmaq bir şey seçmək istəyirəm həqiqətən nəticə görmək istəyirik haqqında yeni bir fikir almaq zaman, həyəcanlı istəyirik belə layihələrin bütün növ Mən əminəm ki, orada var - nə edə bilər bir şey siz tapa bilərsiniz - hər kəs, həqiqətən, onlara intriqa ki, bir şey var onlar bir web-based layihə edirik, əgər. İndi bir daha demək lazımdır. Sizin layihə bir ağrı kimi görünür və siz bu iş üçün istəmirsinizsə, bir layihə seçə. Həqiqətən ruhlandırır ki, bir şey seçin. Ben iteration bir az bu anlayış qeyd və mən artıq bir az getmək istəyirəm. Bu funksional bir şey əldə yerləşir spurts işləmək üçün həqiqətən vacibdir. A, B, və C nə olacaq ki, bir haqqinda üçün bu plan, əgər böyük ola bilər, və nəticədə orada almaq lazımdır. Amma siz bu iş və bunun üzərində çalışırıq bu mərhələdə stuck edirsinizsə, lakin heç bir şey həyata əldə edir. Siz görmək üçün bir şey və bir maddi, funksional şey yoxdur. Siz, həqiqətən, bəzən bir ağrı cür görünür kimi çox istəyirəm nə bir iş və çalışan, sabit ən azı, belə ki, sonra sort onu cap istədiyiniz bütün xüsusiyyətləri yoxdur, hətta əgər versiyası. Və bəlkə siz həqiqətən əlavə etmək istəyirəm, lakin siz yalnız bilməz ki, bəzi xüsusiyyətləri var Bir funksional baxımdan bu site almaq istəyirəm, çünki. Və siz cür bütün inkişaf prosesi kimi baxmaq olsun. Və ya mahiyyətcə heç bir şey ilə başlamaq - Siz haradasa funksional başlamaq istəyirəm - ancaq bir yerdə çox əsas və funksional almaq istəyirəm. Və sonra, jump bir növ etmək və yenidən bir yerdə funksional almaq. Siz yavaş-yavaş qurmaq lazımdır, və bu başqa daha bir az yavaş getmək bilər lakin uzunmüddətli perspektivdə siz daim bu orta torpaq mərhələsində vurulmuş edirsinizsə harada həqiqətən iş bir şey yoxdur, bu, həqiqətən böyük məyusluq ola bilər Siz həmişə iş əldə etmək üçün belə yaxın istəyirik, çünki layihə üzərində işləmək üçün, və bu, həqiqətən iş heç oldu. Bu funksional spurts ilə işləmək istəyirik, və siz də hər bir sonra bəzi əks etmək istəyirəm. Başqa sözlə, siz site artıq iş olduğu bir nöqtədə deyilik dəfə - bu, istədiyiniz hər şey deyil, lakin bu bəzi şeylər edir - Sizcə istəyirəm, tamam, mən bunu müəyyən edən məqsədə nail bu sayt? Başqa sözlə, saytda X etmək niyyətindədir, mən X istiqamətində iş nə edir? Mən orada istəyirdi ki, funksiyaları bütün var? Və üstəlik, mən istəyirəm ki, ümumi məqsədə xidmət edir? Siz site fərqli bir istiqamətdə veer başlayır ki, tapmaq istəyirsinizsə və ya bəlkə hər şeyi yalnız cür həyata iş deyil, bu dişli bir az keçmək üçün vaxt ola bilər. Başqa sözlə, bu, nəzərə dəyər - Lazım fikir atma dəyər və nəzərə Mən, həqiqətən, mən olmaq istəyirəm nə qarşı çalışıram. Mən ki, mənim növbəti nöqtə inanıram. Fikir tərk etmək Qorxma. Bir xüsusiyyət iş saat çox sərf Məhz və nəhayət bu iş olub, lakin bu, həqiqətən, belə yaxşı getmir - bu faydalı deyil və ya istifadəçilərin istifadə sorun kimi - şey ki, sort - üz atmaq qorxmayın. Bu onu iş çox vaxt sərf etdik ki, sucks, lakin sonda siz cür bu ədəd birlikdə qoymaq ki, bir site istəmirəm ki, iş sort lakin yaxşı xidmət deyil. Həmçinin, yeni ideyalar əhatə qorxmayın. Kimsə yanaşı, gəlir və hey ki, site, həqiqətən, sərin görünür, ancaq deyir əgər bu da bu idi əgər daha böyük ola bilməz? Ki niyyətindəyik və deyil ki, bir şey deyil ki, bir şey yalnız çünki sizin specs, siz müəyyən deyil ki, bir şey, onu almaq və sonra ilə işləmək üçün qorxmayın. Siz inkişaf kurs ərzində çalışır ki, tez-tez fikir Çünki saytın həqiqətən cool xüsusiyyətləri olan qədər başa. Mən bu əvvəl bildirib etdik. Mən bir daha demək lazımdır. Test super, super faydalı. Daxil olun və neler görmek üçün əvvəl site görməmişəm insanlar almaq üçün cəhd edin onlar site və istifadəçi təcrübəsi faydalı test edə bilər yalnız, çünki, lakin onlar da siz bilməz ki yollarla funksionallığı test edə bilərsiniz. Siz müəyyən bir şey yoxdur ki, bəzi xüsusiyyət etmək əgər və siz ki, böyük doğru eyni şey hər bir zaman nə olacaq bilirik. Amma tez-tez bir istifadəçi qüdrəti künc hallarda hesab üçün ağır ola bilər Siz müəyyən çünki dəqiq - Siz gözləyirik deyil ki, bir şey yazın xüsusiyyətləri özünüzü. Belə ki, kimsə site istifadə etmək necə heç bir fikrim var kim gəlmək üçün və yalnız onlar edə bilər nə yolları onu pozmaq üçün həqiqətən faydalı siz, çünki iş sizin saytda nə tamamilə fərqli bir baxımdan bir fikir almaq və təmir nə lazımdır. Son, I, bəzi ümumi yaxşı təcrübələri haqqında danışmaq üçün gedirəm və siz CS50 bu bir çox gördüm, lakin onlar da, həqiqətən, həqiqətən bir layihə qəbulu tətbiq. Bir şərh edir. Bir böyük komanda çalışırıq, əgər həmişə, xüsusilə kodu şərh. Bu kimsə yazılı ki, yalnız kodu bir nəhəng blok var, belə ki, annoying ola bilər və bəlkə, bəlkə bu deyil, işləyir, lakin siz nə heç bir fikrim yoxdur belə ki, bu orada və ya olmalıdır və ya faydalı və ya olub heç bir fikrim yoxdur Başqa bir şey bu iş əgər və bu çalışırıq ki, hətta mümkün Eyni şey, belə ki, yalnız sizin həmyaşıdları diqqətli olmaq çox, çox ehtiyatlı olun və yazma kodu yaxşı sənədləşdirilmiş ki. Artırmaq üçün sizə əgər istədiyim bütün şey etmək kimi Siz uzaq getmək yoxdur bir counter Mən bu counter 1 əlavə edirəm, deyir ki, bir şərh yoxdur. Bu ətraflı olmalıdır, deyil, siz heç yazılı etdiyiniz hər hansı bir funksiyası siz ki, funksiyası tam nə bəzi sənədləri olmalıdır onun giriş nə, və geri nə. Siz site digər insanların komponentləri istifadə edə bilərsiniz Bu yolla və siz böyük bir şey qurulması istiqamətində işləyə bilər. Digər mühüm şey müntəzəm təmiz-up etmək istəyirəm. Kodu messy olur. Sizin kodu yalnız tamamilə okunmaz və nəhəng mess əgər pis hiss etməyin. Həmişə web inkişaf baş verir. Siz köhnə aradan qaldırılması, yeni funksiyalar əlavə edirik. Stuff olmamalıdır ki, orada olacaq. Ki, gözəl, lakin siz müntəzəm ilə məşğul əmin etmək istəyirəm. Siz yalnız bir şey tapa bilməz bu nöqtəyə yaratmaq imkan istəmirəm kodunu, və siz bir şey nə heç bir fikrim yoxdur. Ki, HTML ilə işi var. Bəzən, bir şey ola bilməz ki, obyektləri ilə çıxacağıq və o xilas etmək lazımdır. CSS, siz artıq var ki, elementləri istinad edilə bilər belə ki, kodu qurtarmaq istəyirəm. JavaScript, HTML bir şey xaric ola bilər. Belə ki, olduqca şeyi edərək, siz həmişə təmizlənməsi əmin etmək istəyirəm Siz müntəzəm əsasında çox bilərsiniz kimi. Mən düşünmürəm ki, başqa bir həqiqətən faydalı bir şey CS50 çox qeyd olunur lakin version nəzarət nəzərə almaq lazımdır. Siz əsasən bütün tərəqqi takip saxlanılması etdiyiniz zaman version nəzarət fikir Sizin sayta doğru etdik və hər hansı bir anda siz həyata əgər, oh, bu iş Bir müddət əvvəl, lakin bu bir daha iş deyil, siz əvvəlki versiyasını geri bilərsiniz və sonra və şey ki, sort ildən dəyişib nə görmək. Bunu etmək üçün əsas yol Git ilə, və Git sisteminin bütün bu cür ki, Mən Tommy MacWilliam son il haqqında seminar verdi inanıram. 2011 üçün CS50 seminarlar getmək varsa, siz onun seminar bilərsiniz. Jump ideyası mütəmadi siz bu öhdəlikləri edirik ki əsasən site indi olduqca sabit versiyası var deyərək yolları olan belə Mən bu qədər qablaşdırma və bir server üçün üz göndərilməsi, sonra server bilərsiniz alıram və kodu bütün əvvəlki versiyasını baxmaq və davam necə görmək və yaxşı məhsullarının bütün sort. Belə ki, əsasən var. Qədər web inkişaf kimi, biz ətrafında qalmaq və hər hansı bir cavab memnun suallar qədər təqdimat kimi. Ki, var. Thanks. >> [Ben] Thanks. [Alqış] [Billy] qərargah, hər kəs biz əhatə etdik ki, şey haqqında hər hansı bir sualınız var və ya biz ümid ki, əhatə etdik ki, hər şeyi biz əhatə istədiyiniz? Biz o cavab xoşbəxt olarıq. Hər kəs? [Tamaşaçı üzvü] Ruby istifadə və ya Python istifadə lehte ve eksiklikleri hansılardır? [Ben] Sual Ruby və ya Python istifadə lehte ve eksiklikleri nə idi əvəzinə PHP kimi. Lehte Ruby və Python PHP daha yaxşı languages ​​ki. Ən azı mənim fikrimcə, və mən də digər insanların fikir bir çox düşünürəm. Onlar mürəkkəb stuff bunu üçün daha çox nəzərdə edilmişdir və həqiqətən tez web pages birlikdə whacking az dinamik məzmun bir az. Bu eksiklikleri bir az var ki - bir öyrənmə curve daha çox var onlara qurmaq üçün. Ki, PHP kimi, yalnız bir HTML faylı ola bilər və siz az-çox yazmaq deyil, sual işarəsi, və sonra bir kod yazmaq, sonra sual işarəsi yazmaq, daha-daha, və sonra siz tamamlayın. Ruby və ya Python kimi digər dillərdə Siz ilkin site çalışan almaq üçün bir az daha çox iş vasitəsilə getmək üçün var. Də var - ən azı bu halda olmaq üçün istifadə - Daha çox sənədlər var ki, PHP üçün istifadə daha çox insan var, çünki. Hesab edirəm ki, artıq məsələ kimi çox deyil düşünürəm. Rails haqqında Ruby kimi məhsulları üçün çox yaxşı sənədlər əlbəttə var və ya Python üçün Django bərabərdir. PHP hər kəs illər üçün istifadə edilmişdir ki, bir, siz bu işləri necə. Ruby və Python bir az daha az yetkin var. [Tamaşaçı üzvü] öyrənmək və ya almaq üçün onlardan birini seçə olsaydı, hansı istərdiniz? Sözün düzü, mən ki, şəxs asılıdır edirəm. Üzgünüm. Sual kimsə öyrənmək üçün seçin olan idi? Mən Python şəxsən gözəl tapa bilərsiniz. Mən Python və Django mənim ilk web dev Layihə etdi - insanların bir çox var. Də Rails haqqında Ruby kimi insanlar bir çox var. Rails haqqında Ruby bilən yəqin ki, daha insanlar. Sözün düzü, mən yalnız siz ətrafında insanlar nə ilə getmək olardı siz sual adam var ki. Sual idi - paylaşılan servers bu cür ağır Python işləmək üçün? Ki, hosting asılıdır. Python stuff yazmaq ki, web host bir sıra var. WebFaction sağ, edir? WebFaction Billy və mən bəzi layihələr üçün istifadə ki biridir. Onlar, həqiqətən, böyük istəyirik. Onlar ən dillərdə dəstək. Amma bu PHP daha geniş dəstəklənir ki, doğrudur. Yalnız PHP ki, bir web host vurulmuş edirsinizsə Belə ki, PHP istifadə etmək yaxşı bir səbəb var. [Tamaşaçı üzvü] Mən yalnız bəzi verilənlər bazası sorğu üçün necə öyrənmək nəzərə almışdır, və mən SQL bütün yer üzərində olduğunu bilirik, lakin mən bu yaxınlarda məruz oldu - və onu işarə etdi. Siz JSON və genişletilebilir verilənlər bazası görürük. Mənim SQL bütün yer üzərində hələ. Necə ki, baş görürsünüz? Daha çox genişletilebilir (Işitilemez) üçün artan tendensiya olacaq? Sual idi - mən qeyri-SQL verilənlər bazası tendensiyası var olacaq düşünürsünüz. Məsələn, MongoDB kimi. Mən ki, mütləq doğru olduğunu düşünürəm. Mənim məsləhət əsasən MySQL yalnız, çünki burada MySQL bağlı idi sənaye standart. Şəxsən mən çox MongoDB kimi Şema yoxdur ki, verilənlər bazası üstünlük Siz məsələsini yoxdur, oh, mən bir sütun əlavə etmək lazımdır. Vay mən nə etməliyəm kimi, mənə? Bu MySQL ki, bunu etmək çox çətindir, lakin siz Mongo kimi bir şey var zaman Bu çox gözəl var. Mongo haqqında digər gözəl şey sizin qeydlər həqiqətən JavaScript obyektlərin olmasıdır. Bu verilənlər bazası satır etmək lazım dönüşüm addım heç bir sort var və JavaScript obyekt onları çevirmək və sonra tel üzərində onlara göndərin. Mən belə stuff gələcəkdə sürətli web inkişafı üçün çox faydalı olacaq edirəm. [Billy] Mən yalnız bir ümumi nöqtəsi olan əlavə edəcək bir şey deyil ki, Siz müzakirə etdik dillərinin bütün öyrəndim olmalıdır kimi hiss etmirəm bizim seminar. Aydındır ki, point, siz orada nə bir fikir vermək üçün Biz qeyd etdiyiniz hər hansı bir maraqlı edirsinizsə və siz onları Google bilər və onlara oxumaq. Mən dediyim kimi, dəqiq bu şeylər ilə məşğul ki, bir neçə seminar var. Mən yəqin ki, nəzərə almaq qeyd deyil ki, hətta daha seminarlar var bu stuff həmçinin. Fikri siz bir şey iş üçün istəyirsinizsə, burada sizin ixtiyarınızdadır alətlər var ki. Bu tools dəqiq nə həqiqətən əmin değilseniz overwhelmed hiss etməyin, lakin onlar orada və onlara geniş istifadə edə bilər ki, istəyirik ki, bilirik Google tərəfindən. [Tamaşaçı üzvü] hansı şeyi Sizin veb etmək üçün nə etmək lazımdır Mobil cihazlar yaxşı görünür? [Billy] Mobil cihazlar bir az çətindir. Siz müraciət edə bilər 2 yol var. Ilk yol həqiqətən bir mobil web var. Başqa sözlə, siz əvvəlində aşkar bir növ çıxış Brauzer deyir ya sizin web sorğu edilməsi zaman Bu görünüşü qayıtmaq - masa üstü və ya laptop brauzerlər üçün keçirmək olacaq - və mobil cihazlar üçün bu digər görünüşü. Yəni views olduqca çox svop bilər ki, həqiqətən gözəl bir yerdir var iki out və mobil cihazlar həqiqətən gözəl işləyir ki, bir interfeys var və browser cihazlarda qəşəng işləyir ki, tamamilə fərqli bir var. Ki, problem bu kodlaşdırma deməkdir, çünki bu, uzun zaman alır bir tamamilə müxtəlif interface. Siz bunu edə bilər ki, digər yoldur - müasir telefonlar bir çox web keçirmək və bir browser kimi onları göstərməyə çalışacağıq və onlar əllərindən gələni. Siz tipli istifadə etdiyiniz jQuery JavaScript məbləği işıq qalmaq üçün cəhd edə bilərsiniz olan şeyi yanlış bir az getmək bilər olmağa çalışır. Bu ki, çox vaxt yoxdur, əgər siz istifadə ki, yol sort edir. Bir mobil interfeys üzərində işləmək üçün vaxt varsa, təbii ki ən yaxşı seçim var. Mən ümumiyyətlə CS50 layihələr üçün, siz bir və ya digər seçmək istəyirəm olacaq edirəm. Başqa sözlə, bir mobil app etmək istəyirəm və ya bir masa üstü web etmək istəyirəm. Ki, ilə getmək harada və sort müəyyən edir. Daha sonra onu genişləndirmək istəyirsinizsə, yəqin ki, sizin ən yaxşı şey deyil digər başqa interface etmək. Mən WordPress-based sites inkişaf təcrübəsi bir az var. Mən biraz üçün WordPress bir şəxsi veb keçirilib. Çərçivəsində bu növ gözəl kimi çox əsas şey ola bilər. Oftentimes yalnız baxmayaraq Customizability məsələləri bir çox daxil run lazımdır. Siz bir şey müəyyən bir yol baxmaq və ya müəyyən bir yol ola üçün lazımdır sistemi daxil sabit simli, çünki və yalnız bilməz Bu bir problem bir qədər ola bilər şeylər var necə. Sonra mən cür yerdən saytlar ilə işləmək üçün daha çox meylli olduğunuz. Blog bazaları və bir çərçivə yaratmaq üçün həqiqətən ki, çətin deyil şey ki, sort kimi şeylər üçün. Həqiqətən, vaxt uzanırdı edirsinizsə, siz əlbəttə WordPress kimi bir şey istifadə edə bilərsiniz və ya bir blog üçün bir şey ki, sort. Şeyi növ ki, blog mağaza və nə deyil həqiqətən çətin ki, kifayət qədər Siz şeyi bu cür hər hansı daxil çalışan əgər, yalnız yaxşı yəqin ki, istəyirik bir ev versiyası. Mən bu barədə var, belə thanks yenə gəlir üçün. Biz, həqiqətən, sizin uşaqlar söhbət həzz və bəzi stuff öyrəndim ki, ümid edirik. [Ben] Biz danışmaq memnun - biz getmək lazımdır, lakin biz daha xaricində danışmaq memnun Başqa bir sualınız varsa. Thanks yenidən. [Alqış] [CS50.TV]