मुझे लगता है कि प्रश्न गलत है।
सभी startups मैं भाग लिया था एक FE-BE केवल वास्तुकला नहीं था।
मेरे द्वारा ज्ञात अधिकांश स्टार्टअप:
- कोर - वास्तविक उत्पाद जो एक इंटरफ़ेस को उजागर करता है
- UI - BE और FE। बीई कोर के एपीआई का उपयोग करता है।
एपीआई बिना स्टेट की जरूरत के भी स्टेटलेस और आसानी से नकली हो जाते हैं। नरक, अगर मुझे खरोंच से एक परियोजना शुरू करनी थी, तो मैं पूरे यूआई के साथ शुरू कर सकता हूं जो शुद्ध रूप से मॉक पर काम करता है - जो प्रस्तुतियों के लिए बहुत अच्छा होगा। अधिकांश प्रतिक्रिया UI के कारण है। ग्राहक ध्यान दें कि अधिक - (आपके लक्षित दर्शकों पर निर्भर करता है।)
उदाहरण के लिए - Google खोज में मुख्य घटक है जो वेब को क्रॉल करता है, उसे अनुक्रमित करता है .. और Google UI पूरी तरह से अलग दुनिया है। यह कोर आसानी से गैर डब्ल्यूडब्ल्यूडब्ल्यू खोजों का समर्थन कर सकता है, जबकि यूआई नहीं कर सकता है।
इस तरह से आपका UI "प्लग करने योग्य" है और आपके पास चिंताओं का पृथक्करण है।
आपने विकास ज्ञान का उल्लेख किया है, हालाँकि आप परियोजना प्रबंधन पहलुओं को देख रहे हैं। जबकि कोर टीम को 2 सप्ताह स्प्रिंट अवधि की आवश्यकता हो सकती है, यूआई टीम सीआई का उपयोग करेगी - सब कुछ हर समय अपलोड किया जाता है। कोर टीम को बैकवर्ड संगतता की आवश्यकता होगी जबकि यूआई नहीं करेगा।
भाषा अलग है। आप शायद कोर कंपोनेंट के लिए सी डेवलपर्स चाहेंगे - और यह ठीक होगा यदि यह एक एकल ओएस पर चलता है, जहां यूआई को क्रॉस ओएस भाषा में लिखा जाएगा।
टेस्ट अलग। UI परीक्षण दुनिया सॉफ्टवेयर विकास में मेरे द्वारा ज्ञात सबसे जटिल में से एक है। अधिकांश स्टार्टअप इसकी उपेक्षा करते हैं और बाद में इस निर्णय पर पछतावा करते हैं। परीक्षण करते समय आप BE और FE को अलग नहीं कर सकते। यह एक एकल इकाई है जो इसे संभालती है।
ओपन सोर्स यूआई - दो को अलग करने का सबसे बड़ा लाभ यह है कि आप अपने यूआई को स्रोत खोल सकते हैं। यूआई प्रोजेक्ट को ओपन सोर्स सपोर्ट की जरूरत है।
मैं एक यूआई डेवलपर कि नहीं समझ सकता कल्पना नहीं कर सकते पूरी session
सुविधा। आप जानते हैं - जहां आप लॉगिन करते हैं और विभिन्न अनुरोधों के बीच लॉग इन रहते हैं। सच है कि वे PHP को जानते हैं और जावा को नहीं .. लेकिन बीई की अवधारणा स्पष्ट होनी चाहिए (जैसे एक एन्क्रिप्टेड कुकी का उपयोग करें)। विशिष्ट भाषा अवरोध गलत है - प्रत्येक डेवलपर को किसी भी भाषा में काम करने के लिए तैयार होना चाहिए। किसने सोचा होगा कि वे कुछ साल पहले जावास्क्रिप्ट में बीई लिखेंगे।
यदि आप 3 टीम रखते हैं: कोर, बीई और एफई, तो यह संसाधनों की बर्बादी है। DB के बारे में क्या? क्या आपके पास डीबीए होना चाहिए? एक BE डेवलपर को DB और FE डेवलपर को BE और DB को क्यों नहीं जानना चाहिए? कोई सीमा नहीं है।
यदि आपको विशेषज्ञों की आवश्यकता है, और आप करेंगे, तो आउटसोर्सिंग उन्हें बहुत अच्छी तरह से काम करती है। वे आमतौर पर गुणवत्ता कोड वितरित करते हैं और वे इसे काफी तेज करते हैं। आप जरूरी नहीं कि उन्हें घर में रखना चाहते हैं क्योंकि अगर वे चले गए तो आप खो जाएंगे। इसके अलावा आप आज ऑनलाइन सलाह ले सकते हैं। अत्याधुनिक सामग्री को अलग-अलग दृष्टिकोण की आवश्यकता हो सकती है।
इसलिए परिणाम मूल रूप से यूआई में एक बहुत पतली बीई है जिसे हर एफई डेवलपर विकसित कर सकता है। यदि आपके पास यूआई में एक मोटी बीई है, तो संभवतः आपके पास कोर में आवश्यक कुछ एपीआई कार्यक्षमता है।
हमेशा कम से कम एक डेवलपर होता है जो बाकी से बाहर रहता है। ऐसे पतले FE को देखते हुए, वह BE कोड में अन्य डेवलपर्स को समर्थन (विकास नहीं) देने का प्रबंधन कर सकता है। मेरी राय है कि यह डेवलपर बहुत अच्छी स्थिति में है और इसे उचित रूप से सम्मानित किया जाना चाहिए (हालांकि वेतन में, कुछ और)। मुझे यह भी भरोसा है कि वे निर्माण प्रक्रिया को संभालने और ठीक से निर्माण करने में सक्षम होंगे।
यह मॉडल आपको बीई विकास के बारे में एक शानदार लचीलापन देता है। बीई दुनिया ने पिछले कुछ वर्षों में कई बदलावों को जाना है, इसलिए मैं किसी भी तरह बीई स्थिरता पर भरोसा करने की सलाह नहीं देता। कोर एक अलग कहानी है।
अभी भी सवाल है - क्या FE और BE एक ही प्रोजेक्ट होना चाहिए ? आपको निम्नलिखित पर ध्यान देना चाहिए
- स्टेटिक-सर्वर से स्थैतिक संसाधनों को सबसे अच्छा काम किया जाता है। चूंकि फ्रंट-एंड सर्वर (उदाहरण के लिए नेग्नेक्स) बहुत शक्तिशाली हैं और चूंकि आप स्थिर संसाधनों के लिए कैश का उपयोग कर सकते हैं, आप अपने स्थिर संसाधनों (जो सभी HTML सामग्री, जेएस, सीएसएस, छवियां होनी चाहिए) की एकल तैनाती के साथ प्रबंधन कर सकते हैं।
- बैकएंड कोड में समान विलासिता नहीं है, इसलिए आपके पास एक वितरित प्रणाली होनी चाहिए - जो कि एक फ्रंट-सर्वर द्वारा भी प्रबंधित की जाती है।
- जावास्क्रिप्ट का समर्थन करने वाली सभी नई तकनीकों के साथ FE कोड का अत्यधिक उपयोग किया जाना है। अब आप जावास्क्रिप्ट के साथ डेस्कटॉप और मोबाइल एप्लिकेशन लिख सकते हैं।
- निर्माण प्रक्रिया पूरी तरह से अलग है - और इसमें पैच डिलीवरी, अपग्रेड, इंस्टॉलेशन आदि शामिल हो सकते हैं।
मैं आगे बढ़ सकता हूं, लेकिन मुझे उम्मीद है कि यह स्पष्ट है कि मुझे लगता है कि बीई और एफई एक ही टीम होनी चाहिए, लेकिन शायद अलग-अलग परियोजनाएं।
if you have a startup, don't assign roles. Better hope that you assembled a good self organizing team. If everybody knows each other, everybody knows who does what the best.