2009-02-05 14 views
7

मैंने अपने अधिकांश करियर के लिए सिंगल थ्रेडेड बिजनेस लॉजिक/बैक-एंड प्रोग्रामिंग पर काम किया है। अब मैं वेब प्रोग्रामिंग सीखना चाहता हूं लेकिन यह जानना चाहता हूं कि वेब प्रोग्रामिंग गैर-जीयूआई प्रोग्रामिंग से अलग कैसे है (उदा। एपीआई या फाइल प्रोसेसिंग एप्लिकेशन लिखना)। मैं जीयूआई डिजाइन पहलुओं के बारे में बात नहीं कर रहा हूं (किसी ने पहले ही उस प्रश्न here से पूछा है) लेकिन प्रोग्रामिंग जटिलता के बारे में अधिक जानकारी।वेब प्रोग्रामिंग बैक-एंड प्रोग्रामिंग से अलग कैसे है?

कुछ अवसरों पर जब मैंने वेब एप्लिकेशन पर काम किया है, तो मुझे लगा कि वेब अनुप्रयोग अपेक्षाकृत अधिक गैर-निर्धारिती और अप्रत्याशित हैं (उदाहरण के लिए, घटना संचालित, वेब अनुप्रयोगों के बहु-थ्रेडेड मॉडल के कारण, वहां हैं कई क्रमिकताओं और घटनाओं और कार्यों के संयोजनों को ध्यान में रखना आवश्यक है)।

आप क्या कहेंगे वेब प्रोग्रामिंग की कुछ बुनियादी विशेषताएं जो गैर-जीयूआई अनुप्रयोगों से अलग बनाती हैं? वेब अनुप्रयोगों पर काम करते समय बैक-एंड डेवलपर क्या कर सकता है?

संपादित बैक-एंड प्रोग्रामिंग की मेरी परिभाषा, एक API या एक फ़ाइल प्रसंस्करण बैच अनुप्रयोग है कि एक बड़े डेटा फ़ाइल को पार्स करता है जैसे गैर जीयूआई अनुप्रयोगों का मतलब रिकॉर्ड पढ़ता है, डेटा पर नंबर क्रंचिंग गणना का एक बहुत करता है और परिणामों को किसी अन्य फ़ाइल या डेटाबेस में बाहर निकाल दें। Anothe उदाहरण दिनांक और समय उपयोगिता की एक पुस्तकालय हो सकता है।

+0

मुझे "बैक-एंड प्रोग्रामिंग" के साथ आपके संबंध को समझ में नहीं आता है। क्या आप "डेस्कटॉप" और "वेब" विकास को अलग करने की कोशिश कर रहे हैं? –

+0

नहीं। मैं "गैर-जीयूआई प्रोग्रामिंग" और "वेब प्रोग्रामिंग" के बीच अंतर करने की कोशिश कर रहा हूं। संपादित करें देखें। – Rahul

+0

@ राहुल, क्या आप कंसोल अनुप्रयोगों को "बैक एंड" मानेंगे क्योंकि उनके पास जीयूआई नहीं है? –

उत्तर

8

वेब अनुप्रयोग आमतौर पर एकल थ्रेडेड अनुप्रयोगों की तरह महसूस करते हैं, जैसे आप - एप्लिकेशन डेवलपर - शायद ही कभी अपने स्वयं के धागे बनाते हैं। यदि कुछ भी है, तो यह वास्तव में बहुत आसान है, क्योंकि वेब लेनदेन की स्टेटलेस प्रकृति का मतलब है कि आपको डेटाबेस से प्रत्येक बार पृष्ठ के लिए डेटा लोड करना होगा। इसलिए, आपको समेकन के बारे में चिंता करने की ज़रूरत नहीं है, क्योंकि 'जो कुछ भी है' आमतौर पर पर्याप्त है।

वेब विकास के साथ सबसे बड़ी समस्या पृष्ठभूमि के सभी ज्ञान है जो आपको समय के साथ जमा करना है। आप वेब पेज कैसे डालते हैं? आप सीएसएस के साथ चीजों को कैसे शैलीबद्ध करते हैं? क्वेरी स्ट्रिंग से आप पैरामीटर कैसे प्राप्त करते हैं? आप जावास्क्रिप्ट में फ़ील्ड मान को कैसे मान्य करते हैं? उन सभी चीजों को वास्तव में सीखना वास्तव में आसान है, लेकिन उनमें से बहुत से लोग हैं कि यह वास्तविक दर्द हो सकता है।

9

वेब प्रोग्रामिंग के साथ सबसे बड़ी चुनौती राज्य से निपट रही है। HTTP एक स्टेटलेस प्रोटोकॉल है। यह डेस्कटॉप एप्लिकेशन की तुलना में राज्य को अधिक चुनौतीपूर्ण बना सकता है। इस वजह से वेब अनुप्रयोगों के पास एक अलग जीवन चक्र होता है। प्रत्येक वेब विकास मंच कुछ हद तक अलग-अलग से संबंधित है, लेकिन उन्हें किसी भी तरह से इससे निपटने की ज़रूरत है।

+0

डेस्कटॉप अनुप्रयोगों के बहुत सारे HTTP का उपयोग करते हैं। –

+0

हाँ, इसलिए उन डेस्कटॉप एप्लिकेशन जिम पेटकस के बारे में बात कर रहे लाभार्थियों के लाभार्थी हैं। –

+0

सहमत हुए। HTTP की स्टेटलेसनेस इस मामले की सबसे बुरी चीज है। –

1

अधिकांश वेबसाइटों में बैक एंड घटक भी है। विशिष्ट संरचना हो जाएगा कुछ की तरह:

  1. यूआई - HTML/CSS/जावास्क्रिप्ट
  2. नियंत्रक - MVC
  3. व्यापार तर्क/सेवाओं का उपयोग करना है - यह बैकएंड
  4. है
  5. डाटाबेस - यह भी बैकेंड है

तो वेब साइट बनाने का अभी भी बहुत पीछे का काम होगा। यूआई के संबंध में, मुख्य अंतर यह है कि आपको इसे अच्छी तरह से करने के लिए डिज़ाइन और लेआउट के लिए अच्छी नजर रखने की आवश्यकता होगी। एचटीएमएल/सीएसएस तकनीक अपने आप में बहुत ही सरल है।

+0

को संभालने के विभिन्न तरीकों से विस्तृत होना चाहिए, एक अच्छा एमवीसी ढांचा का उपयोग करना मतलब है कि आप डिज़ाइन भाग से काफी डी-युग्मित हो सकते हैं। यह सीएसएस/एचटीएमएल को जानने में मदद करता है (यदि कुछ भी नहीं, बस यह जानने के लिए कि क्या संभव है) .. लेकिन डिज़ाइनर को वास्तविक "डिजाइन को अच्छा दिखाना" छोड़ दें। – gregmac

1

एचटीएमएल वास्तव में भौतिकी पत्र वितरित करने के लिए विकसित किया गया था। आप इसे अभी भी पुराने मेटा टैग में देख सकते हैं। किसी भी दर पर अंतर वेब प्रोग्रामिंग स्टेटलेस है और मोटी ग्राहक विकास नहीं है।

जैसा कि आपने सख्ती से संकेत दिया है, यह सब घटनाओं द्वारा संचालित है। सही जावास्क्रिप्ट ने एक राज्यव्यापी ईर्ष्या के भ्रम पैदा करके वेब विकास को थोड़ा सा बना दिया है, लेकिन अंत में सबकुछ सरल HTML पर आता है।

सीखना शुरू करने में कभी देर नहीं हुई, मैं कहूंगा कि कुछ स्थिर HTML पेज बनाना शुरू करें और एमवीसी फ्रेमवर्क पर अपना रास्ता बढ़ाएं, मैं माइक्रोसॉफ्ट एमवीसी फ्रेमवर्क का सुझाव देता हूं। यह बहुत बढ़िया है, ऐसे कुछ भी हैं जिन्हें आप एएसपी.Net वेबफॉर्म की तरह उपयोग कर सकते हैं लेकिन आप डिज़ाइनर पर चीज़ों को खींचकर और छोड़कर कुछ नहीं सीखेंगे;)।

+0

मुझे कभी नहीं पता था कि भौतिकी के कागजात के संबंध में - आप किस मेटा टैग का जिक्र कर रहे हैं? –

+0

सीईआरएन के एक वैज्ञानिक टिम बर्नर्स-ली ने 1 99 0 में वर्ल्ड वाइड वेब (डब्ल्यूडब्ल्यूडब्ल्यू) का आविष्कार किया। वेब, जिसे स्नेही रूप से बुलाया जाता है, मूल रूप से विभिन्न विश्वविद्यालयों में काम कर रहे वैज्ञानिकों के बीच स्वचालित सूचना साझा करने की मांग को पूरा करने के लिए कल्पना की गई थी। दुनिया। –

+0

टैग शीर्षक, विवरण, कीवर्ड, वितरण, संसाधन प्रकार, ect शामिल हैं। ये सब दस्तावेजों का वर्णन करने के लिए संबंधित हैं। सुप्रसिद्ध कोई आईएसबीएन मेटा टैग नहीं है: डी –

3

मैंने देखा है कि सबसे बड़ी समस्याएं वेब डेवलपर्स वेब पर जाने पर एप्लिकेशन डेवलपर्स को अपने कोड की लागत पर विचार नहीं कर रही हैं। या तो वे आरडीबीएमएस को कम करने के बिंदु पर MySQL का बहुत अधिक दुरुपयोग करते हैं, वे कोड लिखते हैं जो बहुत अधिक स्मृति का उपयोग करता है, या वे डायलअप/सेलफोन या कम अंत ब्रॉडबैंड/डीएसएल पाइपलाइन में फिट होने के लिए बड़े अंत पृष्ठ बनाते हैं।

कभी-कभी इसे भारी कर्तव्य पृष्ठ लिखने से नहीं बचाया जा सकता है, लेकिन जितना संभव हो सके कैश करने का प्रयास करने के लिए विचार किए जा सकते हैं या एक पृष्ठ लिखते समय बहुत अधिक हिट किया जाएगा, वे प्रोफ़ाइल के लिए कोई प्रयास नहीं करेंगे और दरवाजे से बाहर जाने से पहले प्रश्नों को अनुकूलित करें।

यह नहीं कि ये लोग बेवकूफ़ हैं, केवल अनुभव और जागरूकता की कमी है कि उन्हें अच्छा खेलना और कोड लिखना जरूरी है जो कुछ हद तक दुबला है।

0

वेब प्रोग्रामिंग बैक-एंड प्रोग्रामिंग नहीं है। यह सामने के अंत, वेब पर सामान दिखाता है।

क्या आप इसे अन्यथा परिभाषित कर रहे हैं?

संपादित

वेब प्रोग्रामिंग आपने डेटा को संगत पेश, नेत्रहीन, हर किसी के लिए में खींचता है। बैक एंड कोडिंग का मतलब उस डेटा को प्रस्तुति के लिए उसी तरह बनाना है, लेकिन इसे प्रस्तुत नहीं करना है।

+0

मैं इसे अन्यथा परिभाषित करने की कोशिश नहीं कर रहा हूं। स्पष्टीकरण के लिए कृपया EDIT देखें। मैं अंतर को समझता हूं लेकिन वेब/जीयूआई प्रोग्रामिंग और गैर-जीयूआई प्रोग्रामिंग के बीच "प्रोग्रामिंग जटिलता" में अंतर को समझने की कोशिश कर रहा हूं। – Rahul

+0

वेब प्रोग्रामिंग आपको डेटा को लगातार, दृष्टि से, सभी को प्रस्तुत करने में खींचती है। बैक एंड कोडिंग का मतलब उस डेटा को प्रस्तुति के लिए उसी तरह बनाना है, लेकिन इसे प्रस्तुत नहीं करना है। –

2

बैक-एंड प्रोग्रामिंग वेब प्रोग्रामिंग से असीम रूप से आसान है। (आपको चेतावनी दी गई है!) वेब प्रोग्रामिंग सभी को दिखाने के लिए सबसे आसान है।

0

एक और विचार यह है कि आपकी परिभाषा के अनुसार बैक एंड प्रोग्रामिंग परीक्षण करना आसान है।

एक बार जब आप वेब प्रोग्रामिंग शुरू करते हैं तो आप एक ही कोड के विभिन्न ब्राउज़रों की विभिन्न व्याख्याओं की दया पर हैं। इसके अलावा उपयोगकर्ता, माउस और कीबोर्ड के इनपुट के साथ, आपके द्वारा उत्पादित किए जाने वाले कार्यों को तोड़ने के कई तरीके हैं।

1

वेब मनुष्यों के साथ & जीयूआई अनुप्रयोगों इंटरफ़ेस .. सेवाओं और डेटाबेस के साथ पीछे के अंत अनुप्रयोगों इंटरफ़ेस .. इस तरह अपनी विशिष्टताओं अपने उपयोगकर्ता की मानसिक मॉडल की यह विशेष ध्यान देने को शामिल करना होगा के रूप में - बनाने बातों से व्यवहार के रूप में लोगों उन्हें उम्मीद है। और ऐसा करना - समझें कि उपयोगकर्ता कैसे सोचते हैं - हमेशा आसान या तार्किक नहीं होता है। आपके पास सुरुचिपूर्ण एल्गोरिदमिक समाधान हो सकते हैं जो बस व्यस्त होने में विफल रहते हैं, क्योंकि लोग हमेशा तर्कसंगत नहीं सोचते हैं। कई बार, काफी सुरुचिपूर्ण यूआई बेहद मुड़ते कोडिंग-वार होते हैं .. जो सिस्टम-सिस्टम प्रोग्रामिंग

समस्या-स्थान पर निर्भर करता है, इनमें से अधिकतर विज्ञान की तुलना में अधिक कला हो सकता है।

+0

व्याख्या का विस्तार करें !! –

1

वेब प्रोग्रामिंग के साथ एक विचार (कई लोगों में) यह है कि उपयोगकर्ता केवल बेवकूफ नहीं होंगे (यह नहीं कि वे सभी हैं, लेकिन आपको हमेशा इसमें कारक करना होगा), वे कभी-कभी (मान लेंगे) कमजोर दुर्भावनापूर्ण होंगे और बुरा, और अपने आवेदन, अपने डेटाबेस, अपने सप्ताहांत, अपनी स्वच्छता को नष्ट करने के लिए अपनी शक्ति में सबकुछ करेंगे ...

पेंगुइन शूट पर एक बहुत ही छोटे नन के रूप में पागल हो। अपने उपयोगकर्ताओं पर भरोसा मत करो।

+1

"पेंगुइन शूट पर बहुत छोटा नन" +1 एलओएल – Abie

0

"बैक एंड प्रोग्रामिंग" की आपकी परिभाषा के आधार पर, आपका प्रश्न न केवल वेब अनुप्रयोगों पर लागू होता है, बल्कि किसी भी जीयूआई एप्लिकेशन पर लागू होता है।

यह इस प्रकार निर्भर करता है कि किस प्रकार का जीयूआई एप्लीकेशन हम बात कर रहे हैं। उदाहरण के लिए:

  • आंतरिक व्यावसायिक अनुप्रयोगों में कई व्यवसाय प्रक्रिया वर्कफ़्लो तर्क, रिकॉर्ड रखने और अलग-अलग प्रणालियों के बीच अंतःक्रियाशीलता शामिल होती है। कोई फैंसी अलौकिकता या संख्या क्रंचिंग की आवश्यकता नहीं है। आपके दर्शक सीमित हैं, इसलिए प्रदर्शन एक बड़ा सौदा नहीं है, लेकिन क्रॉस-प्लेटफ़ॉर्म संगतता महत्वपूर्ण है इसलिए ये वेब अनुप्रयोग होते हैं। आपकी मुख्य चिंताओं को व्यापार sytems एक साथ बांधना आसान बना रहा है, और यह सुनिश्चित करने के लिए एपीआई स्तर को बनाए रखना है कि जीयूआई कोड को किसी भी व्यावसायिक तर्क कोड से निपटने की ज़रूरत नहीं है।
  • सार्वजनिक वेब साइट्स (जैसे कि इस) में औपचारिक वास्तुकला से कम शामिल होता है, और "इस शानदार सुविधा को काम करने के लिए बस इतना ही मानसिकता मिलती है ताकि हम अधिक आगंतुकों को प्राप्त कर सकें।" दोबारा, कोई संख्या क्रंचिंग या एल्गोरिदम नहीं जब तक कि प्रदर्शन एक मुद्दा न हो। प्रदर्शन स्लेशडॉट या Google जैसी व्यापक रूप से लोकप्रिय साइटों के लिए एक मुद्दा है, इसलिए यदि आप तेजी से विकास की उम्मीद करते हैं तो यह पहले से ही स्केलेबिलिटी के लिए डिज़ाइन करने का भुगतान करता है।
  • सार्वजनिक ई-कॉमर्स वेबसाइट्स उपर्युक्त दोनों की तरह हैं: विशेषताएं और प्रदर्शन महत्वपूर्ण हैं, लेकिन इसके नीचे संरचित आर्किटेक्चर समान रूप से महत्वपूर्ण है जो सभी वाणिज्य व्यवसाय प्रणालियों को एक साथ जोड़ता है (खरीद, आपूर्तिकर्ता, शॉपिंग कार्ट, भुगतान गेटवे, इत्यादि)

वास्तविक जीयूआई भाग के लिए, आवेदन की जटिलता यह निर्धारित करती है कि जीयूआई कोड कितना जटिल होगा। अत्यधिक जटिल, नेस्टेड जीयूआई के लिए जहां आपकी आवश्यकताएं अक्सर बदलती हैं, एक पृष्ठ में बहुत अधिक GUI सामान डालने के जाल में पड़ना आसान होता है। जल्द ही पृष्ठ अधिकांश लोगों की जटिलता दहलीज से अधिक है, जिससे पेज को बनाए रखना बहुत मुश्किल हो जाता है। यह पहले से सोचने का भुगतान करता है कि आप जीयूआई के अलग-अलग हिस्सों को अलग-अलग घटकों में कैसे अलग कर सकते हैं, और फिर उन्हें एक साथ बांध सकते हैं। यदि आप जीयूआई प्रोग्रामिंग के लिए नए हैं, तो मॉडल-व्यू-कंट्रोलर (एमवीसी) पैटर्न पर कुछ लेख पढ़ें।

सरल वेब साइटों के लिए, जहां अधिकांश पृष्ठ काफी स्थिर हैं, यह समस्या इतनी स्थिर नहीं होती है क्योंकि प्रत्येक व्यक्तिगत पृष्ठ को बनाए रखना आसान होता है।

0

अधिकांश वेब प्रोग्रामिंग शुरुआती सत्तर के दशक में लोकप्रिय शैली में किया जाता है, इससे पहले कि डिजस्ट्रा के 'गोटो को हानिकारक माना जाता था' प्रसिद्ध था।

संबंधित मुद्दे