[Powered by Google Translate] [संगोष्ठी] [वेब विकास: विचार से कार्यान्वयन करने के लिए] [बेन कुहन] [बिली Janitsch] [हार्वर्ड विश्वविद्यालय] [यह CS50 है] [CS50.TV] [बिली] हाय, मैं बिली हूँ और इस बेन है. >> [बेन] हाय. हम आज वेब विकास के बारे में बात करने जा रहे हैं. [Webdev] [बिली Janitsch और बेन कुहन] पहले हमारे बारे में थोड़ा. बेन वापस अंत आदमी की तरह है. उन्होंने कहा कि चीजें काम में आता है. और फिर मैं जाकर उन्हें सुंदर बनाने. मैं, सामान की अधिक सामने के अंत लेआउट डिजाइन प्रकार के साथ काफी हद तक शामिल कर रहा हूँ और बेन, दूसरे हाथ पर, उन्होंने कहा कि वह वापस अंत सामान पर काम करता है तो क्या कर रहा है जानता है. एक साथ हम कुछ चीजों को बनाया है. उदाहरण के लिए, पिछले साल हम एक ऑनलाइन खेल के विकास स्टूडियो है जो Gimblium पर काम किया. उस वर्ग के लिए हमारे अंतिम परियोजना था, और तब से हम हार्वर्ड क्लास बनाया है जो हार्वर्ड में ब्राउज़िंग और खरीदारी के पाठ्यक्रमों के लिए एक ऑनलाइन ढांचा है. हम हमारी वेबसाइट के लिए इस विचार के साथ शुरू करने जा रहे हैं. हम फेसबुक करने जा रही है, लेकिन बिल्लियों के लिए कर रहे हैं. आप वास्तव में इस वेबसाइट को करने से पहले, यह अच्छा नहीं है क्योंकि इस वेबसाइट बनाना नहीं है, लेकिन हम एक ढांचे के रूप में इस्तेमाल करेंगे और हम इस विचार ले कैसे की प्रक्रिया के माध्यम से जाना और हम उपयोग कर सकते हैं एक असली वेबसाइट में बदल जाते हैं. हम नीचे वेबसाइट तोड़ने से शुरू करेंगे. , आप CS50 में कर दिया गया है जैसे आप इस वेबसाइट में जाना कि वास्तविक घटकों क्या कर रहे हैं के बारे में सोचना चाहिए. असल में बस की तरह एक अमूर्त अवधारणा है जो एक विचार से यह मोड़ आप कर सकता है कि एक असली, ठोस बात में. हम कुछ सवाल पूछ रही द्वारा शुरू करते हैं. इस वेबसाइट क्या है? हम यह क्यों कर रहे हैं? क्या इसके लिए इस्तेमाल किया जा रहा है? बात का उस तरह. फेसबुक बिल्ली के मामले में, हम मूल रूप से एक दूसरे के साथ बिल्लियों सामाजिक नेटवर्क की सुविधा देता है कि एक वेबसाइट चाहते हैं. विचार है कि वे एक दूसरे की दीवारों पर पोस्ट कर सकते हैं जा रहा है कि, वे टिप्पणियां, उस चीज़ की तरह कर सकते हैं. हम कार्यात्मक घटकों में आ गए और वह है जहाँ. हम अब के ढांचे के इस तरह है - हम उपयोगकर्ता प्रोफाइल है, हम टिप्पणी है, और हम पोस्ट कर सकते हैं. शायद किसी दिन हम पसंद और उस चीज़ की तरह बहने देंगे. और हम किस तरह के अंदर जा रहा है कि इन सुविधाओं को प्राथमिकता करना चाहते हैं हम ठीक है, यह हर किसी के लिए एक प्रोफ़ाइल है कि वास्तव में महत्वपूर्ण है, जैसे कहना चाहते हैं और है कि हर कोई एक दूसरे की दीवारों पर पोस्ट कर सकते हैं. उस के लिए माध्यमिक, टिप्पणियों के लिए अच्छा होगा. हो सकता है कि बाद में हम पसंद influent करेंगे. तो, आप अपनी परियोजना के लिए मौलिक है की एक विचार है चाहता हूँ और बाद में लागू किया जा सकता है कि एक अधिक सामान्य सुविधा की तरह क्या है. आप की तरह मन में एक विशिष्ट सूची है चाहता हूँ, लेकिन आप के साथ शुरू है कि परियोजना के लिए आप के साथ खत्म परियोजना है कि होने वाला नहीं है. दूसरे शब्दों में, बातें, आप साइट विकसित कर रहे हैं, जबकि बदलने जा रहे हैं और आप उस के लिए जगह छोड़ने के लिए चाहते हैं. मैं संरचना के बारे में कुछ बात करने जा रहा है जो बेन को सौंप देंगे. [बेन] मैं वेब विकास के अधिक तकनीकी पक्ष के बारे में बात करने जा रहा हूँ. चलो बस पहले कुछ बुनियादी बातों पर चलते हैं. आप एक वेब अनुप्रयोग कर रहे हैं, आपके पास करने के लिए जा रहे हैं कि मुख्य विभाजन है आप ग्राहक पक्ष में चल रही कुछ सामान है जा रहे हैं - वह यह है कि आप ब्राउज़र हो कि कोड साइट से लेता है और जावास्क्रिप्ट, एचटीएमएल, सीएसएस सामान. यही कारण है कि ग्राहक पक्ष पर सब है. आप सर्वर साइड पर चलता है कि अन्य कोड के लिए जा रहे हैं जो लोग आप के लिए भेज कि सभी डेटा का ट्रैक रखता है, कि क्या पसंद है, सामान देने के लिए जो फैसला करता है. तुम लोग सब के बारे में हम बात कर रहे हैं के साथ परिचित हैं तो यह सिर्फ कुछ शब्दावली है. कि विभाजन से परे यह करने के मामले में अपने वेब अनुप्रयोग के बारे में सोचना अच्छा है अलग घटकों के एक जोड़े. आप वेब विकास कर रहे हैं जब आप हमेशा ऐसा करने की कोशिश की जानी चाहिए कि चीजों में से एक जटिलता को कम करने के लिए है. अधिक जटिल अपने कोड कीड़े बनाने के लिए वहाँ है और मौका है, मुश्किल यह बाद में बदल रहा है. तो, अगर आप कुछ अलग कार्य क्षेत्रों में अपने अनुप्रयोग को तोड़ सकता है अगर कि - होगा और आप पार क्षेत्र संचार की राशि की तरह कम कर सकते हैं - कि तुम कीड़े कम करने के मामले में लंबे समय में एक बहुत मदद मिलेगी. ठोस हो, आम तौर पर लोगों में एक वेब अनुप्रयोग को विभाजित - अब ये चर्चा शब्दों की तरह कर रहे हैं, लेकिन वे अभी भी उपयोगी हो. आप लोगों मॉडल, दृश्य, और नियंत्रकों के बारे में बात करते सुना सकता है. मॉडल अपने अनुप्रयोग के साथ सौदा करने जा रहा है कि वास्तविक आंकड़े हैं. उदाहरण के लिए, अपनी बिल्ली फेसबुक में, अपने मॉडल होगा - आप जैसे पदों के लिए एक मॉडल, और इस तरह से उपयोगकर्ता प्रोफाइल, सामान के लिए एक मॉडल होगा. आपके विचार आपको अपने उपयोगकर्ताओं को उस डेटा को कैसे प्रस्तुत करते हैं. आप 1 एक भी पोस्ट को देख के लिए देख सकते हैं और सभी टिप्पणियाँ हो सकता है और सभी पदों की एक सूची है कि अपनी दीवार के लिए एक अलग दृष्टिकोण आप के लिए निर्देशित किया, और अपने समाचार फ़ीड के लिए एक अलग दृष्टिकोण कर रहे हैं कि - ऐसा सामान. लोगों को आप पोस्ट भेजने अंत में, जब आप मूल रूप से कर रहे हैं जो नियंत्रकों और अगर आप अपनी पीठ के अंत सिस्टम को अपडेट करना आप काउंटरों का एक गुच्छा वेतन वृद्धि, और जो भी हो. वे अपने नियंत्रकों हैं. मैं मॉडल के बारे में ज्यादातर बात करने जा रहा हूँ. दर्शनों तकनीकी रूप से मुश्किल नहीं कर रहे हैं और इस मुद्दे को उन्हें डिजाइनिंग के साथ अधिक है नियंत्रकों आप डिजाइन कर रहे हैं जो कुछ भी करने के लिए विशिष्ट होने जा रहे हैं. लेकिन आप उपयोग कर सकते हैं कुछ बहुत सामान्य तकनीकों हैं मैं बहुत मददगार रहे हैं लगता है कि साथ काम करने के लिए अपने मॉडल अच्छा और आसान बनाने के लिए. यह ज्यादातर एक अच्छी तरह से अपने वेब क्षुधा डेटा के साथ सौदा करने के बारे में होने जा रहा है. मॉडलों के साथ मुख्य मुद्दों वे ग्राहक और सर्वर पर रहते हैं और आप यह पता लगाने की है कि कर रहे हैं एक) कैसे उन्हें पाने के लिए - सभी प्रासंगिक हैं - ग्राहक के लिए सर्वर से, और बी) सिंक में रखने के लिए उन्हें कैसे. आपकी उपयोगकर्ताओं को कुछ अद्यतन बनाने के लिए चाहते करने जा रहे हैं. वे नए पदों बनाने के लिए चाहते करने जा रहे हैं. वे तुम्हें पसंद करता है, तो चीजें और सामान की तरह करना चाहते करने जा रहे हैं. उन मॉडलों के साथ काम कर के मुख्य तकनीकी चुनौतियां हैं. तुम अपने आप से पूछना चाहता हूँ जा रहे हैं कि पहली बात यह है किस प्रकार का डेटा इस मॉडल में चला जाता है और प्रश्नों की किस तरह हम क्या करना चाहते करने जा रहे हैं - वह यह है कि हम कैसे मॉडल को देखने के लिए जा रहे हैं? अपनी बिल्ली फेसबुक उदाहरण के लिए, अपनी पोस्ट, इसके साथ जुड़े एक लेखक होने वाला है कुछ दीवार के बाद पाठ, और दीवार पद के एक प्राप्तकर्ता. और फिर आप अलग तरीके का एक गुच्छा में उस क्वेरी के लिए चाहते हो सकता है. तुम, जो पोस्ट लिखी है जो द्वारा इसे देखना चाहेगा शायद वे तैनात थे तिथि के अनुसार, पोस्ट जो जो प्राप्त द्वारा. आप की तारीख से ऐसा करने जा रहे हैं, तो आप अपने संदेश का एक और क्षेत्र को जोड़ने के लिए है यह वास्तव में पोस्ट किया गया था की जब. इन 2 कारक - क्या आप यह देखना चाहते हैं कि कैसे उपयोग करना चाहते हैं और क्या डेटा - वे एक दूसरे पर निर्भर करते हैं, क्योंकि आप पहली बार उनके बारे में सोचना चाहिए, और यह बाद में उन्हें जोड़ने के लिए और अधिक कठिन होने जा रहा है. कुछ अन्य विचार कर रहे हैं. आप सर्वर पर मॉडलों के साथ निपटने के तरीके के बारे में सोच रहे हैं क्या आप को देखने के लिए चाहते है - आप मूल रूप से संभव के रूप में सर्वर के रूप में सरल बनाना चाहते हैं. ग्राहक पक्ष पर सामान कर आम तौर पर आप ग्राहक पर विशुद्ध रूप से यह कर सकते हैं ज्यादा तेजी से होता है नेटवर्क अनुरोध के किसी भी प्रकार के कर के बिना. विचार है कि आप ग्राहक पर कर सकते हैं के रूप में प्रश्नों के रूप में कई करने के लिए है. उस के साथ ही समस्या है कि आप शुरुआत में अपने डेटा के सभी से अनुरोध है अगर तब कि लोड करने के लिए एक लंबा समय लग जा रहा है. तो, विचार ग्राहक पर पर्याप्त डेटा होने के बीच एक खुश माध्यम हड़ताल करने के लिए है आप वहां अपने काम की सबसे अधिक है, लेकिन सिर्फ एक ही बार में सब कुछ दिलकश नहीं कर सकते हैं कि आप शुरुआत में वास्तव में धीमी गति से लोड बार मिल सकें. उदाहरण के लिए, अपनी बिल्ली डेटा के लिए आप शायद हाल दीवार पदों का एक गुच्छा लाने के लिए चाहते हो जाएगा. कि कुछ साल वापस जा सकते हैं क्योंकि आप उन सभी को लाने के लिए नहीं करना चाहती. लेकिन अगर आप एक समय में उन्हें एक लाने के लिए नहीं करना चाहती नेटवर्क है कि भूमि के ऊपर का एक बहुत लागू होगा क्योंकि. यह काफी कठिन अक्सर है - आप एक डेटाबेस चल रहा है एक बार - यह आप इसे में क्या डेटा को बदलने के लिए अक्सर काफी मुश्किल है - वह यह है कि एक नया डेटाबेस स्तंभ या कुछ जोड़ - इसलिए एक अच्छी रणनीति सिर्फ एक पाठ बूँद में अपने डेटा का एक बहुत रखने के लिए वास्तव में है - एक JSON बूँद - JSON जावास्क्रिप्ट वस्तु संकेतन जा रहा है - फिर आप नए गुण जोड़ सकते हैं क्योंकि उपयोगी है कि कारण है अपने डेटाबेस में बदलाव के बिना इन JSON चारों के सभी के लिए. उस के लिए केवल नकारात्मक है कि आप क्षेत्रों का एक गुच्छा है अगर आप बाद में कहा कि - कि JSON बूँद में छिपा तरह - तो यह डेटाबेस के अंदर उन्हें क्वेरी करने के लिए कठिन है. उदाहरण के लिए, यदि आप बाद में अगर - आप अपनी पोस्ट मॉडल था अगर हम पहले भी चर्चा है कि सिर्फ लेखक, प्राप्तकर्ता और पाठ के साथ - तुम भी आप बाद में एक दिनांक फ़ील्ड जोड़ना चाहते थे तो एक JSON बूँद है और कर सकता है आप अपने डेटाबेस को बदलने के लिए नहीं होता. तुम सिर्फ पाठ क्षेत्रों के सभी के लिए तारीखों जोड़ सकता है. और फिर तुम, ग्राहक पक्ष पर उन को देखने में सक्षम हो जाएगा लेकिन आप सर्वर साइड पर उन्हें क्वेरी करने में सक्षम नहीं होगा यह है कि पाठ के अंदर छिपा हुआ है क्योंकि. आप के बारे में सोचना चाहिए कि अन्य मुद्दे अपने ग्राहक और अपने सर्वर से संवाद करने के लिए जा रहे हैं. आप आम तौर पर संभव के रूप में सरल रूप में यह रखना चाहते हैं. तुम बस, एक मिल मुझे इस डेटा अनुरोध की तरह हो सकता है एक बात एक नई वस्तु बनाने, और एक अद्यतन-एक पुरानी वस्तु अनुरोध. और ये सब एक सर्वर पर अलग अलग यूआरएल हो कि आप चाहते हैं - ब्राउज़र होगा कि - आप इन सब के लिए AJAX अनुरोध का उपयोग कर सकते हैं और प्राप्त या पोस्ट डेटा या तो. फिर, हमारी बिल्ली फेसबुक उदाहरण के लिए, आप एक व्यक्ति के पद प्राप्त करने के लिए कि यूआरएल हो सकता था, और आप एक नई दीवार पोस्ट बनाने के लिए एक यूआरएल होगा और हो सकता है कि तरह अपने प्रोफ़ाइल तस्वीर, सामान अपलोड करने के लिए एक यूआरएल. लेकिन फिर से, कि तुम रखने की जरूरत नहीं है कि आपके डेटा की सबसे पहले लाने के लिए है नेटवर्क अनुरोध कर रही है. कि कारण के लिए, आप एक ही पद के लिए कि व्यक्तिगत अनुरोध प्राप्त नहीं करना चाहता हो सकता है और इसके बजाय आप बस पूरी दीवार के लिए 1 अनुरोध प्राप्त करना चाहते थे. और फिर तुम क्योंकि एक संतुलन कायम करने की कोशिश कर रहे हैं - यह भी आपके आवेदन पर निर्भर रहा है. क्योंकि आप लोग केवल 10 या 20 दीवार पदों है कि उम्मीद कर रहे हैं वह ठीक हो जाएगा. आप वे हजारों होगा उम्मीद कर रहे हैं लेकिन फिर उस अनुरोध को भी लंबे समय ले जाएगा और इसलिए आप एक पाने के लिए सब के पदों के बाद पैरामीटर जोड़ने के लिए चाहते हो सकता है. इन सभी के लिए आप शायद JSON में अपने डेटा सिंक करने के लिए चाहते करने जा रहे हैं - जावास्क्रिप्ट वस्तु संकेतन. बहुत ज्यादा हर भाषा बहुत अच्छी तरह से JSON के साथ संबंधित है. JQuery आप के लिए कड़ी मेहनत के सब करना होगा कि यह अच्छा getJSON समारोह है. और पीएचपी पर बहुत अच्छा JSON संचार कार्यों भी नहीं है. तो, कि शायद आगे और पीछे अपने मॉडल को भेजने के लिए सबसे अच्छा स्वरूप है. हम अब तक के बारे में बात की है की एक उदाहरण के रूप में, यहाँ अपनी बिल्ली Facebook आवेदन के लिए एक उदाहरण के प्रवाह है. यह आपके ब्राउजर बेस वेबसाइट यूआरएल का अनुरोध के साथ बंद शुरू होता है. सर्वर शायद स्थिर HTML और कुछ जावास्क्रिप्ट और सीएसएस के ऊपर भेजना होगा. यह सर्वर पर किसी भी प्रतिपादन करना नहीं आमतौर पर सबसे अच्छा है. आप शायद नहीं करना चाहते हैं - क्या सर्वर वहाँ नहीं कर रही है दीवार पदों की सूची नीचे जा रहा है और हर एक के लिए कुछ HTML पैदा करने और उस पर भेजने. क्योंकि अन्यथा यह ग्राहक पक्ष पर ऐसा करने के लिए आमतौर पर सबसे अच्छा है आप कुछ फिर से आकर्षित करने के लिए चाहते हैं हर बार, आप एक सर्वर अनुरोध बनाने के लिए है. और वह बहुत जल्दी आप भूमि के ऊपर का एक बहुत कुछ देता है. जहाज स्थिर HTML नीचे भेजता है अभी तक यह आमतौर पर सबसे अच्छा है और फिर जावास्क्रिप्ट और सीएसएस ग्राहक पक्ष पर प्रतिपादन करना होगा. जैसे ही उस सामान में आता है, तो तुम हो सकता है - जावास्क्रिप्ट में - तुम दीवार डेटा के लिए अनुरोध कर सकते हैं और इस तरह से सामान, और उसके बाद सर्वर मूल रूप से बस डेटाबेस प्रश्नों कर रही है और अनुमतियाँ जाँच. केवल महत्वपूर्ण बात यह है कि कुछ अन्य उपयोगकर्ताओं दीवार पदों पर नहीं भेज सकते हैं आप को देखने के लिए अनुमति नहीं कर रहे हैं. यह मूल रूप से अपने डेटाबेस के लिए एक बहुत पतली का उपयोग परत हो सकता है, और उसके बाद के सभी डेटा दिखा - दृश्य और सामान के सब - आप एक के बाद या कुछ और करना चाहते हैं उन तो अपने ब्राउज़र में हो सकते हैं, और आप बस एक अनुरोध भेजें. आप इस के शीर्ष पर हो सकता है कुछ फैंसी सामान भी है. अधिक विशिष्ट तकनीकी जानकारी के संदर्भ में, सादे जावास्क्रिप्ट में विकसित करने के लिए थोड़ा सा दर्द हो सकता है, तो उस के साथ आप एक बहुत मदद मिलेगी कि कुछ पुस्तकालयों और उपकरण हैं. मैं आप सब शायद एचटीएमएल प्रतिपादन कर रही है, जो बनाता jQuery के बारे में सुना है और हेरफेर के एक बहुत आसान - में और बाहर fading के लिए फैंसी कार्यों के बहुत सारे हैं, और व्यवसायिक एनिमेशन कर. Underscore.js नामक इस पुस्तकालय भी है. यह उपयोगी उपयोगिता कार्यों का एक बहुत कुछ है, आप जावास्क्रिप्ट की उम्मीद करेंगे कि सामान है यह वास्तव में doesn't कि - एक सरणी फेरबदल की तरह बातें, सूची से डुप्लिकेट को हटाने, या सूचियों की एक सूची सपाट. यह सिर्फ एक छोटा सा कोड नमूना है. अंडरस्कोर क्या आप हर समय होता इच्छा है कि ये अच्छा कार्यों का एक बहुत कुछ किया है. और फिर मैं पर समय का एक छोटा सा खर्च करना चाहते हैं 1 और पुस्तकालय नहीं है बैकबोन वास्तव में आप ग्राहक पक्ष पर मॉडल के साथ सौदा करने में मदद करता है क्योंकि Backbone.js बुलाया और यह हो सकता है कि भ्रम की स्थिति बहुत. बैकबोन आप मॉडल और संग्रह की इस अवधारणा देता है जावास्क्रिप्ट में बिल्कुल जावास्क्रिप्ट वस्तुओं की तरह मूल रूप से कर रहे हैं जो जावास्क्रिप्ट सरणियों में लेकिन वे आप उनके गुणों में परिवर्तन जब घटना. एक बटन क्लिक किया है या कुछ और हो जाता है जब सिर्फ जावास्क्रिप्ट में की तरह, आप एक घटना हो सकती है इन बैकबोन मॉडल और रीढ़ संग्रह की तरह बातें प्रसारित होगा कि जब वे बदल जाते. यही कारण है कि आप बस यहाँ कोड का यह टुकड़ा की तरह कुछ लिख सकते हैं इसका मतलब है कि - क्या आप पूरी दीवार redraw पदों सरणी के लिए कुछ भी जोड़ने जब भी यह कहते हैं. पसंद की एक पोस्ट की संख्या में परिवर्तन और जब भी यह कहना होगा आप किसी को अपने पोस्ट पसंद आया कि उपयोगकर्ता को सूचित करें. या एक के बाद से किसी भी संपत्ति आप पोस्ट redraw परिवर्तन जब भी. इस तरह से सामान आप जटिलता के टन बचा क्योंकि अन्यथा होगा आप इस तरह से कुछ रूपरेखा आप बदल कि अपने कोड में तो हर समय नहीं है अगर एक पोस्ट के बारे में कुछ भी, आप सभी प्रस्तुत करना कार्य कॉल करने के लिए अपने आप को याद करने के लिए होगा और इस तरह से सामान, और आप हुआ कि कुछ नया जोड़ना चाहते थे आप एक के बाद संशोधित हर बार जब आप अपने में हर जगह के माध्यम से जाना होगा आप एक के बाद संशोधित और कहा कि नई बात जोड़ते हैं कोड. इस तरह एक रूपरेखा है कि दोनों के बीच परत संचार का एक बहुत हटा देगा कि अपने कोड जटिल और बनाए रखने के लिए कठिन बना देता है. यह भी देखा गया बारे में एक छोटा सा है. वे तकनीकी रूप से बहुत मुश्किल नहीं कर रहे हैं क्योंकि मैं बिली को इस का सबसे छोड़ने के लिए जा रहा हूँ. अपने विचारों के लिए jQuery का उपयोग. यह व्यावहारिक रूप से इस बिंदु पर एक जरूरत की तरह है. यह बस सब कुछ इतना आसान बना देता है. पुस्तकालयों की एक बहुत हैं. आप उपयोगकर्ता इंटरफ़ेस तत्वों जटिल है, तो आप एक स्वत: पूर्ण बात करना चाहते हैं या उन फैंसी बहु चयनकर्ताओं में से एक की तरह है - आप ऐसा कुछ करना चाहते हैं, तो आप शायद बस के चारों ओर खोज करना चाहिए और तुम तुम क्या चाहते हो जाएगा कि एक अच्छा पुस्तकालय मिल सकता है. बिली विचारों की वास्तव में मुश्किल भागों के बारे में अधिक समझा जाएगा. इसके अलावा, एक तरफ ध्यान दें के रूप में, रीढ़ की हड्डी विचारों से संवाद बनाने के लिए कुछ कार्यक्षमता है अच्छी तरह से मॉडल के साथ - वास्तव में, इन पुस्तकालयों के सभी के लिए दस्तावेज पर दिखेगा. बस डॉक्स पर देखने के लिए. वे बहुत अच्छी तरह से लिखा और आसानी से पालन कर रहे हैं. अगर आप समस्या है सामान्य में, तुम बहुत ज्यादा सिर्फ गूगल कर सकते हैं. उन का उपयोग कर लोगों की एक बहुत हैं. मैं इस एक अंतिम ध्यान दें के रूप में है. आप कर सकते हैं कि कुछ और अधिक उन्नत बातें भी कर रहे हैं यदि आप अपने वेब एप्लिकेशन को अतिरिक्त भयानक बनाने के लिए देख रहे हैं. आप क्या कर सकते हैं - नए एचटीएमएल 5 विनिर्देश आप कर सकते हैं फैंसी चीजों की एक बहुत कुछ है. स्थानीय भंडारण - आप ब्राउज़र में डेटा स्टोर कर सकते है जो - बल्कि वापस जाने के लिए और सब कुछ के लिए सर्वर ख़याल होने से, आप क्लाइंट पर इसके बारे में कुछ रख सकते हैं और वह भी लोगों की सुविधा देता है - कुछ मामलों में तो यह और भी आप वेबपेज ऑफ़लाइन उपयोग करने दे सकते हैं. नेटवर्क संचार की एक अलग तरह की हैं जो websockets बुलाया बात नहीं है जहां के बजाय सिर्फ तुम एक अनुरोध करना, आप जवाब मिलता है और आप कर रहे हैं, आप सर्वर से कनेक्शन खोलने रखने और इसलिए आप की तरह बातें कर सकते हैं वास्तविक समय अद्यतन. तो, आप एक चैट app बनाने की कोशिश कर रहे थे, तो आप websockets इस्तेमाल कर सकते हैं आप अनुरोध कर रखने के लिए नहीं होता है, ताकि आगे और पीछे से संवाद करने के लिए, "ओह, सर्वर, किसी ने मुझे एक चैट भेज दिया?" हर 10 सेकंड या कुछ और. आप ऐसा लग सकता है, जहां एक दिलचस्प एचटीएमएल 5 फीचर भी है पेज का यूआरएल कभी वास्तव में इसे फिर से लोड करने के लिए बिना बदल रहा है. आप वापस उपयोग और नेटवर्क अनुरोधों का एक गुच्छा कर बिना बटन आगे कर सकते हैं. इस तरह से सामान यह तेजी से बनाने के मामले में वास्तव में उपयोगी है, लेकिन यह भी होना चाहिए एक वेब अनुप्रयोग की तरह काम करते हैं. CoffeeScript बुलाया बात भी नहीं है. CoffeeScript वास्तव में, कि जावास्क्रिप्ट के लिए नीचे संकलित, एक अलग भाषा है. , आप CoffeeScript में सभी अपने कोड लिखना होगा, और उसके बाद आप इस संकलक चलाने और इसे आप अपने वेबपेज में शामिल कर सकते हैं कि एक जावास्क्रिप्ट फ़ाइल बाहर spits. यह एक बहुत से छुटकारा हो जाता है क्योंकि CoffeeScript अच्छा है कि कारण है के बराबर होती है, जहां जावास्क्रिप्ट है कि अजीब मामलों, और बराबरी अलग बातें करते हैं, या पसंद के बराबर होती है - यह सरणियों और कार्यों से निपटने के लिए अच्छे वाक्य रचना है. यह सभी वर्गों की एक सूची है कि उत्पादन CoffeeScript का एक छोटा सा टुकड़ा है 10 ^ 2 उल्टे क्रम में 2 ^ 1 से. आप देख सकते हैं, CoffeeScript अक्सर आप 1 लाइन में व्यक्त की सुविधा देता है जावास्क्रिप्ट का 5 लाइनों क्या ले जाएगा. यह बातें एक बहुत आसान बना सकते हैं. यह पहली बार में जानने के लिए नए वाक्य रचना का एक छोटा सा है, लेकिन यह निश्चित रूप से आप लंबे समय में अधिक उत्पादक कर देगा. तुम भी PHP से सर्वर पर अन्य भाषाओं का उपयोग कर सकते हैं - रूबी, पायथन, जैसी भाषाओं या node.js कहा जाता है, यहां तक ​​कि एक परियोजना नहीं है कि आप सर्वर पर JavaScript का उपयोग करने देगा. निजी तौर पर, मैं वास्तव में, वास्तव में PHP से नफरत है. मैं बस के साथ काम करने का आनंद नहीं है. तुम भी है, यह एक भाषा के एक भयानक cluge है कि लगता है, तो आप के बजाय इनमें से किसी एक का उपयोग कर सकते हैं. सामान्य तौर पर, आप कुछ करना चाहते हैं और अगर आप वास्तव में आप ऐसा होता नहीं जानता कि कैसे, बस इंटरनेट खोज. टन और विशेष रूप से पर संसाधनों के टन कर रहे हैं - StackOverflow एक महान एक है. यह प्रोग्रामर एक दूसरे सवाल पूछने जहां इस वेबसाइट है. आप CS50 समस्या सेट पर परेशान कर रहे थे, तो आप इसे में चला गया हो सकता है. और अगर तुम चाहते हो जाएगा बहुत ज्यादा कुछ भी करने के लिए पुस्तकालयों के टन कर रहे हैं. आप कुछ करना चाहते हैं और अगर आप इसे कैसे करना है पता नहीं है, यह असंभव है कि मान नहीं है. बस के चारों ओर देखो और आप कुछ अच्छे संसाधन मिल सकता है. एक सामान्य रूप में लपेट, मुख्य takeaways बातें सरल रखने के हैं. अधिक जटिल अपने कोड शुरुआत में है और अधिक आप कोशिश करते हैं और फैंसी सामान करना, अब यह वास्तव में कार्यात्मक कुछ पाने के लिए ले जाएगा और यह कठिन बाद में परिवर्तित करने के लिए किया जाएगा. तो, पहली बातें गूंगा, आसान तरीके से करते हैं. उस के साथ साथ चलते हैं, पुराने कोड दूर फेंक या एक बहुत यह सफाई का डर नहीं है. सामान्य में, आप वास्तव में कुछ काम कर लेते हैं, यह आप शुरुआत चरणों में अब भी कर रहे हैं जब से के बारे में सोचने के लिए बहुत आसान है मैं कैसे यह सब एक साथ रखा है. यह काम करता है कि बेवकूफ संभव डिजाइन बनाने के लिए सबसे अच्छा है और फिर iteratively सब कुछ सही पहली बार प्राप्त करने की कोशिश की तुलना में यह सुधार होगा. क्लाइंट सर्वर विभाजन के संदर्भ में, कोशिश करते हैं और बहुत सरल अपने सर्वर रखने के लिए - सिर्फ एक डेटाबेस और कुछ प्रमाणीकरण और वहाँ किसी भी मुश्किल काम नहीं करते. ब्राउज़र में ग्राहक पक्ष पर अपनी जटिल सामग्री के सभी करते जावास्क्रिप्ट में के रूप में आप जितना कर सकते. अपने जीवन को बेहतर बनाने कि पुस्तकालयों के लिए चारों ओर देखो. किसी और ने लिखा है कि कोड का उपयोग करने के लिए हमेशा बेहतर आप अगर - और नहीं यह अपने आप को लिखने के लिए. सामान का एक बहुत इंटरनेट पर नहीं है. गूगल अपने सबसे अच्छे दोस्त है. गूगल प्रोग्रामर का सबसे अच्छा दोस्त है. हाँ, निश्चित रूप से सामान के लिए चारों ओर देखने के लिए डर नहीं है. ठीक है. और अधिक से अधिक बिली लिए. [बिली] असल में, मैं कुछ डिजाइन सामान के साथ शुरू करने से पहले, किसी को वह किस बारे में बात की है कि कुछ के बारे में बेन के लिए किसी भी सवाल है? ठीक है, अच्छा है. फिर, कुछ भी स्पष्ट नहीं है अगर हमें पता है यदि आप चाहते हैं या हमें थोड़ा और अधिक कुछ खत्म हो जाने के लिए. मैं थोड़ा वापस कदम और डिजाइन के अधिक मौलिक भागों के बारे में बात करने जा रहा हूँ. क्षमा करें, मॉडल नियंत्रक देखने प्रणाली - बेन बुलाया मॉडल उल्लेख जो तकनीकी पहलू की तरह है, इसलिए मैं विशेष रूप से दृश्य को देखने के लिए जा रहा हूँ, और मैं आपको अच्छा लग रहा है कि एक दृश्य डिज़ाइन चाहते हैं कि कैसे के साथ शुरू करने जा रहा हूँ. यहाँ हमारी बिल्ली फेसबुक के लिए एक बहुत ही बुनियादी टेम्पलेट की तरह है. मैं आधुनिक यूआई डिजाइन में कुछ बुनियादी बातों को लगता है कि वहाँ उठा लायक हैं. आप सभी पेज पर सफेद अंतरिक्ष के एक बहुत कुछ है नोटिस कर सकते हैं, बातों के लिए कमरे के पास बहुत. आप एक पृष्ठ में बातें स्क्वैश की तरह नहीं लग रहा है. आप खुले कमरे के बहुत सारे छोड़ना चाहते हैं, और आप लगभग किसी भी आधुनिक वेबसाइट पर जाकर अगर आप हर जगह सफेद वहाँ देखेंगे. आप उम्मीद नहीं की होगी स्थानों में सफेद नहीं है. आप इस रंग पैलेट है, और यह शुरुआत में बुद्धिमान है आप के साथ काम करने और विकसित करने के लिए जा रहे हैं कि एक रंग पैलेट चुनने के लिए. तुम भी - यह एक टाइपफेस का चयन करने में मदद करता है, और इस तरह से आप की तरह साथ काम कर रहे हैं डिजाइन के इन ठोस बुनियादी बातों. आप अपने प्रकार है, आप अपने रंग है, और फिर आप की तरह कर सकते हैं जरूरत के रूप में सब कुछ फिट. जैसा कि मैंने कहा तो, अपने रंग योजना के साथ आप अपने रंग योजना का बिंदास रंगों का उपयोग करना चाहते हैं संयम से. शीर्ष लेख अच्छा कर रहे हैं. बटन वास्तव में बड़े, आकर्षक रंग के लिए अच्छा है. लेकिन सामान्य तौर पर, आप हर जगह रंग है कि एक वेबसाइट है, सभी चेहरे में घूर है, यह सिर्फ बरबाद लग रहा है, और यह अच्छा नहीं है. आप आम तौर पर हल्के रंग का उपयोग करना चाहते हैं. , फिर से, एक सुंदर सुसंगत रंग योजना लेने की कोशिश करें. आप रंग के बहुत सारे के इन छोटे बौछार हो सकता है - कि बहुत अच्छा लग सकता है, लेकिन आप बहुत संयम से उन्हें प्रयोग करना चाहते हैं. जैसा कि मैंने कहा, आप कम से कम होना चाहते हैं. कम लगभग हमेशा अधिक है. आप कुछ या प्रदर्शित नहीं कर सकते, तो कुछ प्रदर्शित, और आप की तरह अनिश्चित यह डिफ़ॉल्ट रूप से होना चाहिये रहे हैं - शायद आप इसे बाहर छोड़ने से अच्छा कर रहे हैं. आप इसे बाद में जोड़ सकते हैं. हाँ, चीजों को सरल रखने. लेकिन सबसे महत्वपूर्ण बात, आप कई डिजाइन पर विचार करना चाहते. आप एक साइट बनाने हैं, तो आप जा रहे हैं कि आपके दिमाग में यह है कि लगता है कि नहीं एक निश्चित तरीके से साइट बनाने, और यह वास्तव में इस तरह लग रहा है. यह शीर्ष पर नीले शीर्ष लेख और नीले साइड बार किया जा रहा है और फिर पीला उप हेडर बात. आप कई टेम्पलेट्स बनाना चाहते हैं. आप कर सकते हैं - या तो आप फोटो शॉप के साथ अच्छा कर रहे हैं, तो आप एक तरह से है कि खोलने के लिए और कर सकते हैं आपको यह देखने के लिए पसंद के रूप में एक वेबसाइट डिजाइन. यदि नहीं, तो आप सिर्फ कलम और कागज का उपयोग कर सकते हैं, लेकिन कई डिजाइन खरोंच. तुम, बुनियादी तौर पर आप अलग अलग डिजाइनों के बहुत सारे हैं, जहां एक की स्थापना की है चाहता हूँ एक काम समाप्त होता है, तो यह बहुत अच्छा है. एक असफल समाप्त होता है, तो आप हमेशा के लिए बारी करने के लिए एक और एक है. आप विवश किया जाना चाहिए की तरह सामान्य में, नहीं लग रहा है जो कुछ भी डिजाइन करने के लिए आप शुरू के बारे में फैसला. डिजाइन बहुत चर रहे हैं, और मॉडल के महत्व का हिस्सा नियंत्रक देखने प्रणाली आप में और बाहर आप चाहते हैं अलग अलग विचार स्वैप कर सकते हैं. आप डेटा एक तरह से बोलबाला है, और फिर कि अच्छी तरह से काम नहीं करता है, वास्तव में, ओह, तय कर सकते हैं. , मैं यह एक तरह से बहुत जटिल लगता है या वास्तव में काम नहीं कर रहा है कि यहां एक हिस्सा है इसलिए मैं अभी पूरी तरह से पूरी तरह से एक नया एक में इस दृश्य और स्वैप का परित्याग करने के लिए जा रहा हूँ. हम अभी भी पुराने मॉडल और पुराने नियंत्रकों का उपयोग कर सकते हैं. हम पहले के रूप में होगा सर्वर और ग्राहक पर सब कुछ कर सकते हैं. लेकिन प्रदर्शित रूप में डेटा की वास्तविक लहर थोड़ा अलग होने जा रहा है. जहाँ तक के रूप में वास्तव में आप चाहते हैं डिजाइन को लागू करने, आप कुछ डिजाइन कागज पर या फोटो शॉप या जो कुछ पर बाहर sketched है एक बार, आप के लिए उपलब्ध बना रहे हैं कि उपकरणों का एक नंबर रहे हैं. आप जिसके साथ बहुत परिचित हो पहले अपने एचटीएमएल, पीएचपी, या जो कुछ भी है आप बस अपनी वेबसाइट पर स्थैतिक पृष्ठों के लिए कोड का उपयोग कर रहे हैं भाषा. आप की तरह आप इन टैग देता है जो HTML के साथ एक बहुत काम किया है आप में चीजों को रख सकते हैं, और असल में यह अपनी सामग्री के आयोजन का एक तरीका है कि. उदाहरण के लिए, तुम वहाँ शीर्षक है, तो आप एक हैडर टैग किया जा रहे हैं और यह शायद एक और टैग में होने जा रहा है जो इसके अंदर कुछ पाठ किया जा रहा है. तो फिर तुम कुछ अलग लिंक के साथ शायद एक साइडबार है, और उन सब अलग टैग में होने जा रहे हैं. तो, उसके दिल में मूल रूप से एचटीएमएल पेज को विभाजित करने का एक तरीका है कि कैसे आप अंततः यह प्रारूप करने के लिए चाहते हैं. तो फिर, तुम से पहले देखा है. अब आप यह काम करने के साथ साथ बहुत आराम कर रहे हैं आप उम्मीद है कि पिछले pset किया है कि दिए गए, इसलिए कि कोई समस्या नहीं होनी चाहिए. तो आप मूल रूप से डिजाइन स्थिर पहलुओं के सभी संभालती है जो सीएसएस है. यह रंग के सभी, विभिन्न तत्वों की स्थिति के सभी संभाल होगा, वे एक दूसरे के लिए सम्मान के साथ चलते हैं, जहां कितना बड़ा वे, तुम होगा कि positionings के विभिन्न प्रकार के होते हैं - आप नीचे स्क्रॉल जब वे रहने के लिए इतना है कि दूसरे शब्दों में, आप चीजों को, तय कर दी है सकते हैं या आप अन्य तत्वों के सापेक्ष बातें हो सकता है. सामान की तरह के सभी सीएसएस में है. इसके अलावा, आप विभिन्न सजावट कर सकते हैं, आप पाठ रंग हो सकते हैं, पाठ प्रभाव, सामान की तरह सब के सब. बेन यह पिछले सप्ताह के अंत में एक बहुत अच्छा संगोष्ठी दिया, आप सीएसएस के साथ कुछ फैंसी बातें कर रही हो की योजना है और इसलिए मैं निश्चित रूप से लगता है कि बाहर की जाँच करेगा. CSS3 वास्तव में सीएसएस के नवीनतम संस्करण है, और यह वास्तव में अच्छी बातें की सभी प्रकार कर सकते हैं. यह ढ़ाल कर सकते हैं, आप अच्छा, गोल कोनों हो सकता है, आप सामग्री के सभी प्रकार के कर सकते हैं अपनी वेबसाइट और अधिक आधुनिक और फैंसी देखो बनाने के लिए. अगले उपकरण, जावास्क्रिप्ट और बेन के बारे में थोड़ा बात की जो jQuery है लेकिन मैं में एक छोटे से दूर ले आता हूँ. जावास्क्रिप्ट, आप व्याख्यान में यह इसके साथ एक छोटा सा काम किया है, या कम से कम देखा है, एक तरह से गतिशील रूप से HTML में सामान करने का एक तरीका है. आप HTML है एक बार आप इसे संशोधित नहीं कर सकते तो एचटीएमएल, आप जानते हैं,, स्थिर है. लेकिन जावास्क्रिप्ट, कुछ मायनों में, एचटीएमएल संशोधित करने के लिए सक्षम होने के लिए एक रास्ता है. तो आप ऐसा कर सकते हैं, और यह बहुत अच्छा है, लेकिन जावास्क्रिप्ट वास्तव में साथ काम करने के लिए एक दर्द है. यह भी सरल बातें करने के लिए इतनी लंबी और कुंठित है और जावास्क्रिप्ट की लाइनों की बहुत आवश्यकता है. तो, jQuery मूल रूप से इस बात का सभी को सरल जावास्क्रिप्ट के लिए एक पुस्तकालय है. आप बाएं से आते एक चौकोर बॉक्स है चाहता हूँ अगर यह ठीक है, कहते हैं इसे ले जाएगा कि जावास्क्रिप्ट में, बीच में है कि इतना और पेज में फीका - , मैं एक सौ लाइनों करना है, पता नहीं है, और यह एक दर्द होगा और आप यह वेब प्रोग्रामिंग के बारे में सब कुछ नफरत से बाहर आ गए. JQuery आप मूल रूप से लगता है कि जैसे तत्व डॉट फीका में, या कुछ और है. आप शांत एनिमेशन के सभी प्रकार के कर दूँगी कि तो, बहुत, बहुत सरल कार्य और उस तरह की बात. इन 2 के लिए वास्तव में अच्छा कर रहे हैं कि दूसरी बात सिर्फ गतिशील बातें कर रही है वेबसाइट के साथ. तो, न कि सिर्फ अपने HTML पृष्ठ होने से - वास्तव में नहीं कुछ डेटा प्रदर्शित करता है, लेकिन जो करता है कुछ भी करने - जावास्क्रिप्ट और jQuery आप आप पर क्लिक कर सकते हैं कि बटन दूँगी, और आप तत्वों और फिर से आदेश उन्हें खींच और उन्हें तरह, और नए तत्व हो सकता है जोड़ा या हटाया. आप जोड़ने नष्ट कर सकते हैं, उस चीज़ की तरह. तो, jQuery ठंडी चीजों की टन करता है. और विपुल वास्तव में 5 बजे, मेरा मानना ​​है कि, आज उस पर एक संगोष्ठी दे रहा है, आपको लगता है कि लंबे समय के लिए चारों ओर छड़ी कर सकते हैं, इसलिए यदि वह होगा - 5 या 4? चार. माफ़ कीजिए. यह सही है इस के बाद वास्तव में है, इसलिए मैं सुझा होगा आप कर सकते हैं अगर इसके लिए चारों ओर चिपके हुए. JQuery सुपर, सुपर उपयोगी है, और तुम सच में इसके साथ अच्छा बहुत सी बातें करने के लिए सक्षम हो जाएगा बहुत ज़्यादा किसी भी वेब विकास परियोजना के लिए. अब मैं एक अंतर की तरह में शामिल होने के लिए जा रहा हूँ. मैं यूजर इंटरफेस के बारे में मूल रूप से बात कर रहा है. यूजर इंटरफेस साइट का सिर्फ डिजाइन है. लेकिन उपयोगकर्ता अनुभव है जो की तरह एक और अवधारणा नहीं है. दोनों बहुत अलग हैं. इंटरफ़ेस निश्चित रूप से अनुभव का हिस्सा है. आप एक साइट पर जाना जब दूसरे शब्दों में, आप अंतरफलक पर दिखेगा. यही कारण है कि आप साइट अनुभव कैसे का हिस्सा है. लेकिन उपयोगकर्ता अनुभव है कि अधिक से अधिक है. प्रयोक्ता अनुभव उपयोगकर्ता अपनी साइट से हो जाता है कि इस धारणा है के बारे में क्या है. तो, जाहिर है, इंटरफ़ेस है कि का एक हिस्सा है. और यह निश्चित रूप से एक जरूरी हिस्सा है, लेकिन यह पर्याप्त नहीं है. आप एक अच्छा इंटरफ़ेस है अगर दूसरे शब्दों में,, और यह सुंदर और रंगीन और यह सब कुछ है, यह बहुत अच्छा है, लेकिन उपयोगकर्ता अपनी साइट के लिए चला जाता है, तो एक सुंदर लेआउट देखता है और इसे से उलझन में है सब कुछ, कुछ भी करने के लिए कैसे पता नहीं है, तो जाहिर है आप एक बहुत बनाया है गरीब वेबसाइट. यही कारण है कि उपयोगकर्ता अनुभव में आता है, जहां की तरह है मैं UX डिजाइन के बारे में कुछ बात करने जा रहा हूँ - UX उपयोगकर्ता अनुभव के लिए कम है - और क्या आप एक अच्छा उपयोगकर्ता अनुभव है कि सुनिश्चित कर सकते हैं कि कैसे की तरह. पहला बिंदु एक उपयोगकर्ता कुछ भी कर सकते हैं, जहां आप एक वेबसाइट डिजाइन कर सकते हैं कि है कि कि उपयोगकर्ता संभवतः चाहता है. लेकिन उपयोगकर्ता उन चीजों को कैसे करना है पता नहीं कर सकते हैं - दूसरे शब्दों में, वे अपनी साइट पर जाने के लिए जब उपयोगकर्ता एक अच्छा विचार नहीं है, तो मैं अपने प्रोफ़ाइल का अद्यतन करना चाहते हैं "ओह, तो मैं मैं पर पोस्ट करना चाहते हैं तो इस बटन पर क्लिक करें, या किसी की दीवार, तो मैं अपनी दीवार के पास जाओ और एक छोटे से बॉक्स पर क्लिक करें. " उपयोगकर्ता पता है कि नहीं करता है, तो आप को प्रभावी ढंग से नहीं वास्तव में है सही ढंग से कि कार्यक्षमता लागू किया है. एक कार्यक्षमता को लागू करने के भाग उपयोगकर्ताओं को वास्तव में इसका इस्तेमाल करने में सक्षम हैं. आप एक साइट बना सकता है, और यह सभी प्रकार के कर सकते हैं - और यह निराशा होती जा सकता है अद्भुत बातें, लेकिन फिर आप लोग इसे परीक्षण और यह ऐसा नहीं कर सकते ", कहना होगा. , क्यों यह? ऐसा नहीं कर सकते "और आप उन्हें वापस कहूँगा "ठीक है, यह. आप सिर्फ इस अस्पष्ट पर 7 वीं ड्रॉप डाउन मेनू में जाने के लिए हो सकता है केवल दाहिने हाथ कोने "या कुछ और पर एक लिंक से पाया जाता है कि पेज. जाहिर है, आप ऐसा नहीं करना चाहता. तुम्हें पता है, यह है कि वे क्या करना चाहिए रहे क्या आपके उपयोगकर्ताओं के लिए स्पष्ट होना चाहता हूँ और यह सरल और उनके लिए सहज ज्ञान युक्त होना चाहिए. तुम क्या करने की कोशिश करना चाहता हूँ और बात है कि किसी को अपनी साइट पर जाने के लिए जा रहा है, तो है और 10 में से 9 बार कार्रवाई एक करते हैं, और 1 से 10 के बाहर कई बार कार्रवाई बी कर, आप शायद कार्रवाई ए पर उनके अनुभव ध्यान केंद्रित करना चाहते हैं दूसरे शब्दों में, आप यह बहुत, बहुत स्पष्ट कैसे ए पास करने के लिए करना चाहते हैं एक होना चाहिए सामने और केन्द्र - यह देखते हैं, साइट पर जाना, ओह, यह सही नहीं है. बी जबकि जाहिर है आप स्पष्ट होना चाहता हूँ, लेकिन आप थोड़ा और अधिक इसे छोड़ सकते हैं पृष्ठभूमि में. दाऊद, व्याख्यान में इस बात का एक अच्छा उदाहरण देता है जो बोस्टन टी सिस्टम है. आप बोस्टन टी के लिए जा सकते हैं और आप एक टिकट खरीदना चाहते हैं, क्या आप वास्तव में एक टिकट खरीद सकते हैं 5 से मेनू में जाना है यह मेट्रो की सवारी करने में कितनी है जो एक $ 2, $ 2.50 मूल्य, के लिए एक दिशा में. यह एक समस्या है क्योंकि मेट्रो की सवारी कर रहे हैं, जो ज्यादातर लोगों शायद बस, एक ही स्थान पर जाने के लिए अपने टिकट खरीदते हैं, सही दूर पर प्राप्त करना चाहते हैं. यह वे अलग मेनू के बहुत सारे के माध्यम से जाने के लिए है कि समझ में नहीं पड़ता वहाँ पाने के लिए. एक बेहतर प्रयोक्ता अनुभव प्रथम पृष्ठ पर एक त्वरित बटन होगा कि सिर्फ ', एक तरह से टिकट खरीदने' कहते हैं, और कहा कि मानक के सभी में रखा जाएगा मूलभूत मान, और उसके बाद किसी ने उस से एक अलग टिकट खरीदने के लिए चाहता है, वे अभी भी, ज़ाहिर है, करने का विकल्प है, लेकिन आप के लिए अनुकूलित किया है वास्तव में महत्वपूर्ण है जो आम उपयोग के मामले. तुम सही, फेसबुक पर इस बात का उदाहरण देख सकते हैं? आप फेसबुक पर जाओ और तुम एक स्थिति पोस्ट करना चाहते हैं, यह आप अक्सर क्या करना चाहते है जो सही शीर्ष पर है. जैसे ही आप पृष्ठ में प्रवेश के रूप में, आप सबसे आम बातें कर सकते हैं आप क्या करना चाहते हैं. आप की तरह थोड़ा और अधिक जटिल बातें करना चाहते हैं, मैं अपने दोस्त के दीवार के पास जाना है और उस पर एक तस्वीर पोस्ट करना चाहते हैं का कहना है - मैं अक्सर करना चाहता हूँ, लेकिन नहीं के रूप में अक्सर स्थिति अद्यतन पोस्टिंग के रूप में लेंगे जो - इसलिए उस मामले में, मैं अपने प्रोफ़ाइल पर क्लिक करें, शीर्ष पर बॉक्स में उनके नाम लिखें मैं उनके प्रोफाइल को मिल गया है और फिर एक बार, फिर भी, यह वहाँ सही शीर्ष पर है. फिर, मैं सबसे आम उपयोग के मामलों के लिए प्राथमिकता में अनुकूलन किया है. एक अन्य महत्वपूर्ण बात यह है कि अक्सर लोगों की तरह इस के आसपास पाने के लिए कोशिश करेंगे कि है द्वारा ठीक है, कह रही है, इसलिए मैं इस साइट बनाया है और लोगों को यह भ्रामक पा रहे हैं, और कहा कि ठीक है, एक समस्या है? जाहिर है, मैं लोगों को अपने साइट की सामग्री से भ्रमित नहीं करना चाहती. लेकिन यह है कि हल करने के लिए जिस तरह से, कुछ कह पॉप अप करने के लिए नहीं है अरे, मैं कैसे इस साइट का उपयोग करने के लिए तुम्हें सिखाने के लिए जा रहा हूँ. चरण 1 - इस बटन पर क्लिक करें. चरण 2 - यहाँ जाओ. यकीन है, कि यह चारों ओर एक रास्ता है - यह तुम क्या करने के लिए लोगों को बता सकते हैं कि एक रास्ता है, लेकिन यह बात है वास्तव में नहीं इष्टतम तरीका है. मैं एक वेबसाइट पर जाकर अचानक मैं मुझे बता रहा है कि इस ट्यूटोरियल के साथ बमबारी कर रहा हूँ क्या कहाँ जाना है और यह सब कुछ करने के लिए करते हैं और करने के लिए, मेरे लिए यह मजाक नहीं है. यह मेरे लिए एक अच्छा अनुभव नहीं है. यह एक दर्द की तरह है. मैं सिर्फ सामान कर रही शुरू करना चाहते हैं. लोग, उनके संवाद बॉक्स के बाहर बंद करने के लिए जा रहे हैं या ट्यूटोरियल से बाहर निकलना, पता है क्या करना है, और फिर शिकायत नहीं है क्योंकि आप उन्हें करना क्या नहीं बताया है. इस को हल करने के लिए जिस तरह से ट्यूटोरियल या निर्देशों की किसी भी तरह देकर नहीं है - ऐसा कुछ. जितना आप इसे से बचने कर सकते हैं, जैसा कि आप वास्तव में क्या करने के लिए उपयोगकर्ता दिखाना चाहते हैं बस वेबसाइट से बाहर रखा जाता है की प्रकृति से. दूसरे शब्दों में, मैं में प्रवेश करने के बिना फेसबुक पर जाना है, मैं मुख्य पृष्ठ पर देख पहली बात है कि - यह एक छोटे से प्रवेश बॉक्स है. तो, ओह. मैं यह अभी भी वहीं है अंदर प्रवेश करने के लिए है. जबकि, मैं फेसबुक पर चला गया और मैं नीचे एक छोटी सी लिंक पर क्लिक करने के लिए किया था 'में लॉग इन' कहा और पेज के बाकी तस्वीर या कुछ और के बस किसी तरह का था कि, मैं वास्तव में सही, क्या करना है पता नहीं होगा? मैं उलझन में किया जाएगा. इसलिए, यह, वहाँ जाकर के लिए लॉग इन करने के लिए बटन क्लिक करने के लिए मुझे बता सकता है या बटन में प्रवेश मैं यह देखने के लिए जा रहा हूँ, जहाँ शीर्ष पर सही हो सकता है. तुम हमेशा के लिए करना क्या उपयोगकर्ता दिखा होना चाहता हूँ, और उस पृष्ठ अपने आप में निहित होना चाहिए. आप डिजाइन के बारे में सोच रहे हैं और विभिन्न तरीकों को मजाक कर रहे हों अपनी साइट को व्यक्त करने, आप वास्तव में उपयोगकर्ताओं के लिए जा रहे हैं के बारे में सोचना चाहिए तुम क्या करने के लिए उन्हें दिखा सकते हैं कैसे कर रही है और हो. एक अंतिम बात का परीक्षण वास्तव में, वास्तव में महत्वपूर्ण है. एक मित्र को मिलता है, आप भी नहीं जानते कि किसी को मिलता है - यह किसी को पाने के लिए महान है - साइट का उपयोग करने से पहले साइट को कभी नहीं देखा है जो. तुम घंटे के लिए साइट पर काम कर रहा है, क्योंकि आप इसे घूर रहा है, और तुम जाहिर है आप का परीक्षण करने जा रहे हैं कि क्या वास्तव में ऐसा करने के लिए पता आप पर और आप काम पता है कि काम कर रहा है कि चीजें. लेकिन किसी और के साथ आता है और पहले कभी इसका इस्तेमाल नहीं किया गया है कि साइट का उपयोग करता है, आप कोई पूर्व ज्ञान कोई है जो है क्योंकि वह एक अनूठा अनुभव है साइट में जाने, ताकि वे प्रभावी रूप से है करने के लिए क्या करने के लिए पता नहीं क्या जा रहे हैं की या उपयोग के मामलों की किस तरह उनके लिए मौजूद हैं. यह बहुत अच्छा है. वे अनिवार्य रूप से एक मन के लिए एक खाली साथ एक व्यक्ति रहे हैं क्योंकि कि अद्वितीय है. कुछ भ्रामक या स्पष्ट नहीं है अगर वे आपको बता सकते हैं. वे आप अपनी साइट के उपयोगकर्ता अनुभव है ठीक है की एक विचार दे सकते हैं. यह मैं आपको प्रोत्साहित करेगा तो निश्चित रूप से, कि अपने आप को बताने के लिए बहुत मुश्किल हो सकता है आप अपनी परियोजनाओं को विकसित कर रहे हैं - आप वेब आधारित परियोजनाओं कर रहे हैं - के रूप में जल्दी आप कार्यात्मक डेमो किसी तरह का है के रूप में साइट का उपयोग लोगों को मिलता है. अब मैं एक वेब विकास परियोजना प्रबंधन करने के बारे में थोड़ा बहुत बात करने जा रहा हूँ. हम, आप तकनीकी पीठ के अंत की ओर कैसे कर सकते हैं के ऊपर चला गया है आप एक बहुत अच्छी साइट डिजाइन कर सकते हैं, तुम अपने आप से काम कर रहा है, लेकिन कर रहे हैं और यह बहुत अच्छा है - तुम अपने आप से काम कर रहे हैं और अगर आप एक टीम पर काम कर रहे हैं, खासकर अगर परियोजना प्रबंधन एक बड़ा मुद्दा बन जाता है. आप की तरह के बाद से विभिन्न रूपों में परियोजना प्रबंधन के बारे में सुना है प्राथमिक विद्यालय आप समूह में काम करने को कहा गया था जब. आप यह सब, संवाद, सहयोग करने के लिए है. यही सब अभी भी यहाँ लागू होता है, लेकिन साथ कुछ विशिष्ट परिस्थितियों रहे हैं आप के बारे में पता होना चाहता हूँ, और क्या आप अच्छी तरह से संभाल बनाना चाहते कि कंप्यूटर विज्ञान. मैं तुम्हें अंदर हो जाएगा कि टीम के बारे में पहले एक छोटा सा बात करेंगे इस पर काम करने के लिए एक टीम का सही आकार लेने के लिए बहुत महत्वपूर्ण है, और अपने अंतिम परियोजना में मैं आपको चुनने का विकल्प है लगता है 1 और 4 के बीच लोग अगर मैं सही हूँ. आप सिर्फ लोगों की संख्या को चुनने नहीं कर रहे हैं कि यह सुनिश्चित करना चाहते हैं आप वे अपने दोस्त हैं क्योंकि के साथ काम करना चाहते हैं. आप एक अच्छा आकार है कि एक टीम चुनने के लिए और कहा कि काम मिल जाएगा चाहते हैं. कम लोगों की तुलना में अधिक लोगों के होने में एक व्यापार बंद है. आप और अधिक लोगों को है, तो जाहिर है कि अधिक काम किया जा सकता है आप लोगों के बहुत सारे, कोड के बहुत सारे विचारों की बहुत सारी है, क्योंकि और वह सब बहुत अच्छा है. लेकिन यह भी एक बहुत अधिक प्रबंधन और एक बहुत अधिक संचार की आवश्यकता है. दूसरे शब्दों में, यदि आप एक ही परियोजना पर काम कर 4 लोगों की है और वे सब कम या ज्यादा है कि वे जरूरत के सभी तरह पता है, एक ही कोड संपादन कर रहे हैं क्या हो रहा है तो यह आवश्यक है कि आप - आप कुछ नए कार्य जोड़ने अगर आप की तरह लोगों को बताने के लिए है - मैं कर रहा हूँ इस जोड़ने, मैं इस तरह से यह बदल रहा हूँ - तुम वास्तव में गहरी सामान में मिलता है, खासकर अगर वास्तव में साइट कैसे काम करता है को प्रभावित करने के लिए जा रहे हैं कि मॉडल और नियंत्रकों की तरह. पूरी टीम, इसके बारे में पता करने की जरूरत है ताकि आप सुनिश्चित करें कि आप कठिन होने जा रहा है कि बहुत बड़ा एक टीम को चुनने नहीं कर रहे हैं बनाने की जरूरत कि संचार करने के लिए. आप यह भी नहीं जा रहे हैं कि एक छोटे से पर्याप्त टीम का चयन नहीं करना चाहती यह सिर्फ आप पर है क्योंकि संवाद करने में सक्षम हो. विचार करने के लिए एक और बात लोगों के कौशल कर रहे हैं, जहां का संतुलन है. तुम सब वास्तव में अच्छा प्रोग्रामर हैं, तो यह बहुत अच्छी बात है. आप सभी पीछे के अंत लोग कर रहे हैं, तो आपकी साइट बहुत अच्छा नहीं लग रहा है आप इस महान डेटाबेस है, और यह सुपर फास्ट खोज प्रश्नों करता है क्योंकि - जो महान है - लेकिन आप इसे करने के लिए जाना है, इसके साथ एक है 1990 साइट की तरह लाल और नीले रंग हर जगह है, और यह अच्छा नहीं है या तो है. मैं एक तरह से अधिक रहा हूँ क्योंकि बेन और मैं एक टीम के रूप में काम कर बहुत अच्छा कर रहे हैं कि सूचना सामने अंत में, हम दोनों मध्यम अंत में बातचीत, और बेन वापस अंत सामान के साथ वास्तव में अच्छा है हम किसी भी साइट के डिजाइन और मूल रूप से छेद कर सकते हैं क्योंकि इतनी है कि वास्तव में अच्छी तरह से काम करता है भरे जाने की जरूरत है कि उस साइट में हम में से या तो एक, या शायद दोनों से भरा जा सकता है. आप अपनी टीम में कोई छेद कर रहे हैं कि यह सुनिश्चित करना चाहते हैं. ओवरलैप का एक सा है, तो यह ठीक है. दूसरे शब्दों में, तुम दोनों पीछे के अंत के साथ अच्छा कर रहे हैं कि 2 लोगों की है, वे समस्याओं के साथ एक दूसरे की मदद कर सकते हैं क्योंकि वह भी अच्छा हो सकता है वे कर रहे हैं. आप केवल एक निश्चित बात के लिए कौन जिम्मेदार है 1 व्यक्ति है, तो यह एक समस्या हो सकती है और वे एक समस्या में चला, तो आप ओवरलैप का एक छोटा सा करना चाहते हैं लेकिन तुम सबसे महत्वपूर्ण बात यह संभव छेद के सभी भर रहे हैं बनाना चाहते. आखिरी बात यह है - और यह स्पष्ट किया जाना चाहिए, लेकिन यह अक्सर नहीं है. तुम सच में मज़ा आ रहा है होना चाहता हूँ. CS50 में यह अंतिम परियोजना के बिंदु और सामान्य रूप में वेब विकास के अक्सर बिंदु यह कर की जरूरत है क्योंकि सिर्फ एक काम करने के लिए नहीं है. तुम सच में मज़ा आ रहा है होना चाहता हूँ, और तुम कुछ बना रहना चाहता हूँ कि इस पर काम करने के लिए आपको प्रेरित कर रहा है. जो कुछ भी आप कर रहे हैं, बैठ जाओ और पर काम करने के लिए एक दर्द है, तो तो आप सही परियोजना को चुन रहे हैं. तुम्हें पता है, जो आपको दिलचस्प है कि कुछ चुनना चाहते हैं क्या तुम सच में परिणाम देखना चाहते हैं आप के बारे में एक नया विचार मिलता है जब, आप उत्साहित कर रहे हैं तो परियोजनाओं के सभी प्रकार मुझे यकीन है कि वहाँ नहीं है - आप कुछ कर सकता आप पा सकते हैं - हर कोई सच में उन्हें साज़िश होगा कि कुछ है वे एक वेब आधारित परियोजना कर रहे हैं. मैं अभी इसे फिर से कहूँगा. अपनी परियोजना के लिए एक दर्द की तरह लगता है और आप इस पर काम नहीं करना चाहते हैं, एक अन्य परियोजना के लिए चुनते हैं. वास्तव में आप को प्रेरित करती है कि कुछ चुनें. बेन चलना एक बिट की इस अवधारणा का उल्लेख किया है, और मैं इस पर एक बिट जाना चाहता हूँ. यह तुम कार्यात्मक कुछ प्राप्त जहां spurts में काम करने के लिए वास्तव में महत्वपूर्ण है. आप ए, बी, और सी में क्या करने जा रहा है कि एक वेबसाइट के लिए इस योजना है, तो यह बहुत अच्छा हो सकता है और अंत में यह वहाँ मिल जाएगा. लेकिन अगर आप इस पर काम कर रहा है और उस पर काम कर रहे हैं, जहां इस चरण में फंस रहे हैं, लेकिन कुछ भी नहीं किया हो रही है. आप को देखने के लिए कुछ भी और एक ठोस, कार्यात्मक बात नहीं है. आप वास्तव में इसे करने के लिए कभी कभी एक दर्द की तरह लगता है जितना क्या करना चाहते हैं कुछ पर काम करते हैं और यह चल रहा है, एक स्थिर पर कम से कम इतना है कि तब की तरह इसे बंद टोपी यह आप चाहते हैं सभी सुविधाओं के लिए नहीं है, भले ही संस्करण. और हो सकता है कि आप वास्तव में जोड़ना चाहते हैं लेकिन आप अभी नहीं कर सकता है कि कुछ विशेषताएं हैं आप एक कार्यात्मक बिंदु इस साइट पाने के लिए चाहते हैं. और तो आप एक तरह से पूरे विकास प्रक्रिया की तरह है कि देखो करना चाहते हैं. या अनिवार्य रूप से कुछ भी नहीं के साथ शुरू - तुम कहीं कार्यात्मक शुरू करना चाहता हूँ - लेकिन तुम कहीं बहुत बुनियादी और कार्यात्मक प्राप्त करना चाहते हैं. और फिर, कूदने का एक तरह से बनाने के लिए और फिर कहीं कार्यात्मक मिलता है. आप धीरे धीरे ऊपर का निर्माण करेंगे, और यह इसे अन्यथा होगा की तुलना में थोड़ी धीमी जाना हो सकता है लेकिन लंबे समय में आप लगातार इस बीच जमीन चरण में फंस रहे हैं, जहां आप वास्तव में काम कुछ भी नहीं है, यह एक बहुत बड़ी निराशा हो सकता है आप हमेशा यह काम कर रही करने के लिए इतने करीब हैं क्योंकि अपनी परियोजना पर काम करने के लिए, और यह वास्तव में काम कभी नहीं रहा है. आप इन कार्यात्मक spurts में काम करना चाहते हैं, और आप भी हर एक के बाद कुछ प्रतिबिंब करना चाहते हैं. दूसरे शब्दों में, आप साइट अब काम कर रहा है, जहां एक बिंदु पर कर रहे हैं एक बार - यह आप की तरह सब कुछ नहीं है लेकिन यह कुछ बातें करता है - आपको लगता है कि करना चाहते हैं, ठीक है, मैं बाहर सेट करना है कि लक्ष्य को पूरा करने के लिए इस साइट है? दूसरे शब्दों में, साइट एक्स क्या करने जा रहा है, तो मैं एक्स की दिशा में काम कर रहा है क्या है? मैं वहाँ चाहते थे कि functionalities के सभी कर रहे हैं? और इसके अलावा, यह मैं चाहता हूँ कि समग्र उद्देश्य की सेवा कर रहा है? आप अपनी साइट पर एक अलग दिशा में मुड़ शुरू कर रहा है कि पता लगा रहे हैं या शायद चीजों की बस तरह से काम नहीं कर रहे हैं, यह तैयारी की है एक छोटा सा बदलाव करने का समय हो सकता है. दूसरे शब्दों में, यह विचार करने लायक है - यदि आवश्यक हो तो यह विचारों को बाहर फेंकने लायक है और विचार है कि मैं वास्तव में मैं क्या बनना चाहते दिशा में काम कर रहा हूँ. मुझे लगता है कि मेरे अगले बिंदु है विश्वास. विचारों का परित्याग करने के लिए डरो मत. आप एक सुविधा पर काम के घंटे बहुत खर्च सिर्फ इसलिए कि और अंत में यह काम कर रहा है, लेकिन यह वास्तव में इतनी अच्छी तरह से नहीं जा रहा है - यह है कि उपयोगी नहीं है या उपयोगकर्ताओं को यह उपयोग कर परेशानी हो रही है जैसे - बात का है कि तरह - इसे दूर फेंक करने के लिए डर नहीं है. यह आप इस पर काम कर समय की एक बहुत खर्च कर दिया है कि बेकार है, लेकिन अंत में आप किस तरह के इन टुकड़ों से एक साथ रखा है कि एक साइट नहीं चाहते हैं कि काम के आधार पर क्रमबद्ध लेकिन है कि अच्छी तरह से सेवा नहीं कर रहे हैं. इसके अलावा, नए विचारों को गले लगाने के लिए डर नहीं है. किसी के साथ आता है और अरे, उस साइट वास्तव में अच्छा है लेकिन लग रहा है, कहते हैं यह भी यह किया है, तो यह और भी अच्छा नहीं होगा? कि आप चाहते हैं और में नहीं है कि कुछ नहीं था कि कुछ है सिर्फ इसलिए कि आपके चश्मा, तुम क्या करने बाहर सेट नहीं किया है कि कुछ, इस पर ले और फिर उसके साथ काम करने के लिए डर नहीं है. आप विकास के पाठ्यक्रम में साथ चलने वाले अक्सर विचारों की वजह वेबसाइट की वास्तव में शांत सुविधाओं अंत जा रहा है. मैं पहले यह बात कही है. मैं इसे फिर से कहूँगा. परीक्षक सुपर रहे हैं, सुपर उपयोगी. पर लॉग ऑन करें और क्या हो रहा है यह देखने के लिए पहले साइट कभी नहीं देखा है, जो लोगों को प्राप्त करने की कोशिश वे साइट और उपयोगकर्ता अनुभव की उपयोगिता का परीक्षण कर सकते हैं क्योंकि न केवल, लेकिन उन्होंने यह भी है कि आप नहीं कर सकते हैं तरीके में कार्यक्षमता का परीक्षण कर सकते हैं. आप एक निश्चित बात करता है कि कुछ सुविधा करते हैं और आप यह है कि बहुत अच्छी बात है, कि सही ढंग से एक ही बात हर बार ऐसा करने के लिए जा रहा है. लेकिन यह अक्सर जहां एक उपयोगकर्ता हो सकता है कोने मामलों के लिए खाते में करने के लिए मुश्किल हो सकता है आप परिभाषित क्योंकि ठीक - आप उम्मीद कर रहे थे कि कुछ लिखें सुविधाओं अपने आप को. तो, किसी साइट का उपयोग कैसे पता नहीं है जो पर आने के लिए और सिर्फ वे क्या कर सकते हैं जो कुछ मायनों में इसे तोड़ने के लिए वास्तव में उपयोगी है क्योंकि आप काम कर रहा है अपनी साइट पर है की एक पूरी तरह से अलग नजरिए से एक विचार मिलता है और मरम्मत की जरूरत है क्या. पिछले है, मैं कुछ सामान्य अच्छे व्यवहार के बारे में बात करने जा रहा हूँ और आप CS50 में इनमें से एक बहुत कुछ देखा है, लेकिन वे भी वास्तव में, वास्तव में एक परियोजना की स्थापना में लागू होते हैं. एक कमेन्ट है. आप एक बड़ी टीम पर काम कर रहे हैं हमेशा विशेष रूप से अपने कोड टिप्पणी. यह किसी को लिखा है कि सिर्फ कोड की एक विशाल ब्लॉक को इतना परेशान किया जा सकता है और हो सकता है, यह शायद यह नहीं है, काम करता है, लेकिन आप यह क्या है पता नहीं है तो आप यह है कि यह वहाँ या नहीं होना चाहिए या उपयोगी है या नहीं पता नहीं है आप कुछ और पर काम कर रहे हैं और यह आप पर काम कर रहे हैं कि यह भी संभव है एक ही बात है, तो बस अपने साथियों के विचारशील होने के लिए बहुत, बहुत सावधान रहना और कोड लिखने अच्छी तरह से प्रलेखित है कि. आप वेतन वृद्धि अगर पसंद है, जहां पूरी बात कर के रूप में आप इतनी दूर जाने की जरूरत नहीं है एक काउंटर मैं इस काउंटर करने के लिए 1 जोड़ रहा हूँ, कहते हैं कि एक टिप्पणी है. ऐसा लगता है कि विस्तृत होने की जरूरत नहीं है, लेकिन आप कभी भी लिख रहे हैं कि किसी भी समारोह के लिए तुम, कि समारोह वास्तव में क्या करता है की कुछ दस्तावेज होना चाहिए इसकी जानकारी है क्या, और यह वापस आ जाना चाहिए क्या. आप साइट के अन्य लोगों के घटकों का उपयोग कर सकते हैं और आप कुछ बड़ा निर्माण की दिशा में काम कर सकते हैं. एक अन्य महत्वपूर्ण बात यह है कि आप नियमित रूप से साफ अप करना चाहते है. कोड गंदा हो जाता है. अपने कोड अभी पूरी तरह से अस्पष्ट और एक विशाल गड़बड़ है अगर बुरा मत मानना. वह हमेशा वेब विकास में होता है. आप पुराने लोगों को हटाने, नई सुविधाओं को जोड़ रहे हैं. सामान नहीं होना चाहिए कि वहाँ होने जा रहा है. यह ठीक है, लेकिन यदि आप नियमित रूप से उस के साथ सौदा करने के लिए बनाना चाहते. आप बस कुछ भी नहीं मिल सकता है, जहां यह बिंदु तक का निर्माण नहीं करना चाहती अपने कोड में, और आप कुछ भी करता है पता नहीं है. यही कारण है कि HTML के साथ मामला है. कभी कभी आप कुछ भी शामिल नहीं है कि वस्तुओं के साथ समाप्त होगा और आप उन लोगों से छुटकारा पाने के लिए चाहता हूँ. सीएसएस में, आप अब और नहीं कर रहे हैं कि तत्वों की बात कर किया जा सकता है तो आप उस कोड से छुटकारा पाने के लिए चाहते हैं. जावास्क्रिप्ट में, आप HTML से कुछ को हटा दिया गया हो सकता है. तो, तुम बहुत बातें कर रही है, आप हमेशा की सफाई कर रहे हैं कि यह सुनिश्चित करना चाहते हैं आप एक नियमित आधार पर कर सकते हैं जितना. मुझे नहीं लगता कि एक और सच में उपयोगी बात CS50 में बहुत ज्यादा उल्लिखित है लेकिन यह है संस्करण नियंत्रण में हो रही लायक है. आप मूल रूप से सभी प्रगति का ट्रैक रख रहे हैं जब संस्करण नियंत्रण का विचार है आप अपनी साइट की ओर कर दिया है और किसी भी बिंदु पर अगर आपको पता है, ओह, यह काम कर रहा था कुछ समय पहले, लेकिन यह किसी भी अधिक काम नहीं कर रहा है, तो आप पिछले संस्करणों के लिए वापस जा सकते हैं और तो और बात का है कि तरह से बदल गया है क्या देखते हैं. ऐसा करने के लिए प्राथमिक रास्ता Git के साथ है, और Git सिस्टम की इस पूरी तरह है कि मैं टॉमी MacWilliam पिछले साल के बारे में एक संगोष्ठी दिया विश्वास करते हैं. आप 2011 के लिए CS50 सेमिनार में जाना है, तो आप उस पर अपने संगोष्ठी को देख सकते हैं. Git के विचार नियमित अंतराल पर आप इन प्रतिबद्धताओं बना रहे हैं कि मूल रूप से है साइट अभी एक सुंदर स्थिर संस्करण में कह के तरीके हैं जो इतना मैं इसे पैकेजिंग और एक सर्वर से यह दूर भेजने, और तब आप उस सर्वर पर जा सकते हैं रहा हूँ और अपने कोड के सभी पिछले संस्करणों को देखो और यह प्रगति की है देखने के लिए कैसे और अच्छी चीजें के सभी कि तरह. तो, कि असल में यह है. जहां तक ​​वेब विकास के रूप में, हम चारों ओर लकड़ी और किसी भी जवाब देने के लिए खुश हैं सवाल जहां तक ​​हमारे प्रस्तुति के रूप में. बस. धन्यवाद. >> [बेन] धन्यवाद. [वाहवाही] [बिली] स्टाफ, किसी को भी हम ही बता चुका हूँ कि चीजों के बारे में किसी भी सवाल है या हम वे उम्मीद कर रहे थे कि कवर नहीं किया है कि चीजों को हम कवर चाहते हैं? हम उन जवाब देने में खुशी होगी. कोई है? [दर्शकों के सदस्य] रूबी का उपयोग कर या पायथन का उपयोग कर के पेशेवरों और विपक्ष क्या हैं? [बेन] प्रश्न रूबी या पायथन का उपयोग कर के पेशेवरों और विपक्ष क्या कर रहे हैं, था के बजाय PHP की तरह. पेशेवरों रूबी और अजगर PHP से ज्यादा बेहतर भाषाएं हैं कि कर रहे हैं. कम से कम मेरी राय में, और मैं भी अन्य लोगों की राय का एक बहुत में लगता है. वे जटिल सामान करने के लिए और अधिक डिजाइन किए गए थे और सच के साथ जल्दी से वेब पृष्ठों को एक साथ पिटाई के लिए कम गतिशील सामग्री का एक छोटा सा. विपक्ष का एक छोटा सा है कि वहाँ हैं - एक सीखने की अवस्था के और भी है उन्हें स्थापित करने के लिए. यही है, PHP में तरह, आप बस एक HTML फ़ाइल हो सकता है और आप कम से लिखना है, प्रश्न चिह्न, और उसके बाद आप कुछ कोड लिखने, और फिर आप प्रश्न चिह्न लिखना, अधिक से अधिक, और उसके बाद आप कर रहे हैं. रूबी या अजगर की तरह अन्य भाषाओं में आप आरंभिक साइट चलाने के लिए थोड़ा और अधिक काम के माध्यम से जाना है. वहाँ भी है - कम से कम यह मामला हुआ करता था - और प्रलेखन है कि वहाँ PHP के लिए उपलब्ध यह प्रयोग कर अधिक लोग हैं, सिर्फ इसलिए. मुझे लगता है कि अब और एक मुद्दे के रूप में ज्यादा नहीं है. पटरियों पर रूबी की तरह सामान के लिए बहुत अच्छा प्रलेखन वहाँ निश्चित रूप से या पायथन के लिए Django के बराबर है. PHP हर किसी के वर्षों के लिए इस्तेमाल कर रहा है कि एक है, और आप यह कैसे काम करता है. रूबी और पायथन थोड़ा कम परिपक्व हो रहे हैं. [दर्शकों के सदस्य] आप को जानने या लेने के लिए उनमें से एक के बीच चयन करने के लिए थे, आपको जो पसंद करेंगे? ईमानदारी से, मैं उस व्यक्ति पर निर्भर करता है. मैं माफी चाहता हूँ. सवाल किसी को जानने के लिए आप चुनना होगा जो था? मैं अजगर व्यक्तिगत रूप से सबसे अच्छा लगता है. मैं पायथन और Django में मेरी पहली वेब देव परियोजना था - जो लोगों की एक बहुत हैं. भी पटरियों पर रूबी की तरह है जो लोगों की एक बहुत हैं. रूबी पटरियों पर जो जानते हैं कि शायद और अधिक लोगों को. ईमानदारी से, मैं सिर्फ अपने आसपास के लोगों को पता है जो कुछ के साथ जाना होगा आप सवाल पूछने के लिए लोगों को इतनी है कि. सवाल था - शेयर्ड सर्वर पर यह मुश्किल की तरह अजगर पर काम करने के लिए है? यही कारण है कि अपने होस्टिंग पर निर्भर करता है. अजगर सामान के बाद होगा कि वेब मेजबानों के एक नंबर रहे हैं. WebFaction सही नहीं है कि,? WebFaction बिली और मैं कुछ परियोजनाओं के लिए इस्तेमाल किया है कि एक है. वे वास्तव में बहुत अच्छा कर रहे हैं. वे सबसे अधिक भाषाओं का समर्थन है. लेकिन यह PHP और अधिक व्यापक रूप से समर्थित है यह सच है. आप केवल PHP करता है कि एक वेब होस्ट पर अटक कर रहे हैं, तो, कि PHP का उपयोग करने के लिए एक अच्छा कारण है. [दर्शकों के सदस्य] मैं बस कुछ डेटाबेस क्वेरी करने के लिए सीखने में मिला है, और मैं अपने एसक्यूएल सभी जगह है, लेकिन मैं हाल ही में उजागर करने के लिए मिला - और आपको यह बताया. आप JSON और विस्तार योग्य डेटाबेस देखते हैं. मेरा एसक्यूएल सभी जगह पर अब भी है. आप कैसे है कि ऐसा होने जा रहा है? वहाँ अधिक विस्तार योग्य (अश्रव्य) के लिए एक बढ़ती प्रवृत्ति होने जा रहा है? सवाल था - मैं गैर SQL डेटाबेस की दिशा में एक प्रवृत्ति होने जा रहा है लगता है. उदाहरण के लिए, MongoDB तरह. मुझे लगता है कि निश्चित रूप से सच है. मेरी सलाह ज्यादातर MySQL है ही क्योंकि यहां mysql-संबंधित था उद्योग मानक. निजी तौर पर, मैं बहुत MongoDB तरह schemos नहीं है कि डेटाबेस पसंद करते हैं आप का मुद्दा नहीं है, जहां, ओह, मैं एक और स्तंभ जोड़ने की जरूरत है. हाय मैं जो कुछ भी करते हैं, जैसे मुझे है? यह MySQL पर ऐसा करने के लिए बहुत मुश्किल है, लेकिन आप मोंगो की तरह कुछ है जब यह बहुत अच्छा है. मोंगो के बारे में अन्य अच्छी बात यह है कि अपने रिकॉर्ड वास्तव में जावास्क्रिप्ट वस्तुओं रहे हैं. आप इन डेटाबेस पंक्तियों लेने की जरूरत है, जहां रूपांतरण कदम का कोई प्रकार नहीं है और एक जावास्क्रिप्ट वस्तु में बदल जाते हैं और फिर तार पर भेजते हैं. मैं इस तरह से सामान भविष्य में तेजी से वेब विकास के लिए बहुत, बहुत उपयोगी होने जा रहा है लगता है. [बिली] मैं सिर्फ एक सामान्य बात है जो जोड़ होता है कि आप हम पर चर्चा की है भाषाओं के सभी सीखा जाना चाहिए की तरह नहीं लग रहा है हमारे संगोष्ठी से. जाहिर बात है, तुम बाहर क्या है की एक विचार देने के लिए है आप हम उल्लेख किया है कि चीजों में से किसी के द्वारा intrigued रहे हैं और आप उन्हें गूगल कर सकते हैं और उन पर पढ़ें. मैंने उल्लेख किया है और, जैसा कि इन्हीं बातों के साथ सौदा है कि कुछ सेमिनार कर रहे हैं. मुझे लगता है कि शायद में मिलता है उल्लेख नहीं किया है कि और भी अधिक सेमिनार कर रहे हैं इस सामान के रूप में अच्छी तरह से. विचार है कि आप कुछ पर काम करना चाहते हैं, तो यहाँ अपने निपटान में उपकरणों रहे हैं. आप इन उपकरणों वास्तव में कर क्या सच में यकीन नहीं कर रहे हैं अभिभूत महसूस मत करो, लेकिन वे वहाँ बाहर हैं और आप उनमें से व्यापक उपयोग कर सकते हैं कर रहे हैं कि पता गूगल द्वारा. [दर्शकों के सदस्य] चीज़ें किस तरह आप सुनिश्चित करें कि आपके वेबसाइट बनाने के लिए क्या करने की जरूरत है मोबाइल उपकरणों पर अच्छा लग रहा है? [बिली] मोबाइल उपकरणों के लिए एक छोटी सी मेहनत कर रहे हैं. आप यह रुख कर सकते हैं 2 रास्ते हैं. पहला तरीका है कि आप वास्तव में एक मोबाइल वेबसाइट है. दूसरे शब्दों में, आप शुरुआत में पता लगाने के लिए किसी प्रकार का प्रदर्शन ब्राउज़र कहते हैं जो या तो अपनी वेबसाइट के लिए अनुरोध कर रही है जब इस दृश्य में लौटने - डेस्कटॉप या लैपटॉप ब्राउज़रों के लिए विचार किया जाएगा जो - और मोबाइल उपकरणों के लिए यह दूसरी देखें. विचार है कि आप बहुत ज्यादा स्वैप कर सकते हैं कि वास्तव में अच्छा कर रहे हैं, जहां एक जगह है दो बाहर और मोबाइल उपकरणों पर वास्तव में अच्छी तरह से काम करता है कि एक अंतरफलक है और ब्राउज़र उपकरणों पर अच्छी तरह से काम करता है कि एक पूरी तरह से अलग से एक है. उस के साथ समस्या यह कोडिंग का मतलब है क्योंकि यह एक लंबा समय लगता है एक पूरी तरह से अलग इंटरफेस. आप यह कर सकते हैं कि अन्य तरीका है - आधुनिक फोन का एक बहुत, वेबसाइटों को प्रदर्शित करने और एक ब्राउज़र के रूप में होगा उन्हें प्रस्तुत करने की कोशिश करेंगे और वे अपना सर्वश्रेष्ठ करने. आप किस तरह का आप उपयोग कर रहे jQuery जावास्क्रिप्ट की राशि पर प्रकाश रहने की कोशिश कर सकते हैं जो बातें गलत थोड़ा सा कहाँ जा सकते हो जाता है. यह आपको ज्यादा समय नहीं है तो आप का उपयोग करना चाहिए कि जिस तरह की तरह है. आप एक मोबाइल इंटरफेस पर काम करने के लिए समय है, तो जाहिर है कि आपका सबसे अच्छा विकल्प है. मैं आम तौर पर CS50 परियोजनाओं के लिए, आप एक या एक से दूसरे का चयन करना चाहते करने जा रहे हैं. दूसरे शब्दों में, यदि आप एक मोबाइल एप्लिकेशन बनाने के लिए चाहते हैं या आप एक डेस्कटॉप वेबसाइट बनाना चाहते हैं. तुम उस के साथ जाना और कहा कि जहां की तरह निर्धारित करता है. आप बाद में इसे बाहर का विस्तार करना चाहते हैं लेकिन, शायद तुम्हारा सबसे अच्छा शर्त है अन्य के लिए एक और इंटरफेस बनाने के लिए. मैं वर्डप्रेस आधारित साइटों के विकास में अनुभव का एक छोटा सा है. मैं थोड़ी देर के लिए वर्डप्रेस पर एक निजी वेबसाइट की मेजबानी की. चौखटे के उन प्रकार अच्छा बस के रूप में बहुत बुनियादी बातें हो सकती है. आमतौर पर आप सिर्फ हालांकि customizability मुद्दों का एक बहुत में भाग लेंगे. आप कुछ एक निश्चित तरीके से देखने या एक निश्चित तरीका होना है चाहता हूँ यह प्रणाली में कठिन वायर्ड है क्योंकि और तुम अभी नहीं कर सकता कि यह आपको एक समस्या का एक सा हो सकता है जो बातें करना है कि कैसे है. तब से मैं एक तरह से जमीन से ऊपर साइटों के साथ काम करने के इच्छुक गया है. ब्लॉग डेटाबेस और यह एक रूपरेखा बनाने के लिए सच है कि मुश्किल नहीं है बात का है कि तरह तरह चीजों के लिए. आप वास्तव में समय के लिए बढ़ाया जाए, तो आप बेशक वर्डप्रेस की तरह कुछ का उपयोग कर सकते हैं या एक ब्लॉग के लिए बात की है कि तरह. चीजों की तरह है कि ब्लॉग की दुकान और कर रहे हैं वास्तव में नहीं काफी मुश्किल है कि आप चीजों के उन प्रकार के किसी भी में चला रहे हैं, तो आप सिर्फ शायद सबसे अच्छा कर रहे हैं एक घर में संस्करण बनाने. मुझे लगता है कि इसके बारे में सोचते हैं, तो एक बार फिर धन्यवाद आने के लिए. हम सच में तुम लोगों से बात कर मज़ा आया और आप कुछ सामान सीखा है कि उम्मीद है. [बेन] हम बात करने के लिए खुश हैं - हमें जाना है लेकिन हम अधिक बाहर बात करने के लिए खुश हैं आप एक और सवाल है. एक बार फिर धन्यवाद. [वाहवाही] [CS50.TV]