बेज़ेल विज़न

समस्या की शिकायत करें सोर्स देखें

कोई भी सॉफ़्टवेयर डेवलपर, किसी भी साइज़ या मुश्किल के किसी भी प्रोजेक्ट को असरदार तरीके से बना सकता है, उसकी जांच कर सकता है, और उसे पैकेज कर सकता है. इसके लिए, वह ऐसे टूल का इस्तेमाल कर सकता है जिसे इस्तेमाल करना और इस्तेमाल करना आसान हो.

  • इंजीनियर इस बात पर भरोसा कर सकते हैं कि वे डिवाइस बनाने से जुड़ी बुनियादी बातों को हल्के में लें. सॉफ़्टवेयर डेवलपर, कोड लिखने की क्रिएटिव प्रोसेस पर फ़ोकस करते हैं, क्योंकि बिल्ड और टेस्ट की मकैनिकल प्रोसेस अब हल हो गई है. बिल्ड सिस्टम को नई भाषाओं या संगठन की यूनीक ज़रूरतों के हिसाब से कस्टमाइज़ करते समय, उपयोगकर्ता उन सुविधाओं पर ध्यान देते हैं जो उनके काम के हैं. साथ ही, उन्हें बुनियादी सुविधाओं में बदलाव करने की ज़रूरत नहीं है.

  • इंजीनियर किसी भी प्रोजेक्ट में आसानी से योगदान दे सकते हैं. अगर कोई डेवलपर नए प्रोजेक्ट पर काम शुरू करना चाहता है, तो वह बस प्रोजेक्ट का क्लोन बना सकता है और बिल्ड को रन कर सकता है. इसके लिए लोकल कॉन्फ़िगरेशन की कोई ज़रूरत नहीं होती है, यह सिर्फ़ काम करता है. क्रॉस-प्लैटफ़ॉर्म की मदद से रिमोट तरीके से एक्ज़ीक्यूट करने की सुविधा की मदद से, वे कहीं भी और किसी भी मशीन पर काम कर सकते हैं. साथ ही, प्रोजेक्ट के टारगेट किए गए सभी प्लैटफ़ॉर्म पर, बदलावों की पूरी जांच कर सकते हैं. इंजीनियर नए प्रोजेक्ट के लिए बिल्ड को तुरंत कॉन्फ़िगर कर सकते हैं या मौजूदा बिल्ड को समय-समय पर माइग्रेट कर सकते हैं.

  • प्रोजेक्ट, किसी भी साइज़ के कोड बेस और किसी भी साइज़ टीम के हिसाब से स्केल किए जा सकते हैं. तेज़ी से और इंक्रीमेंटल टेस्टिंग की मदद से, टीमें हर बदलाव की पुष्टि करने से पहले, उसकी पूरी तरह पुष्टि कर लेती हैं. यह बात रेपो के बढ़ने पर भी लागू होती है, प्रोजेक्ट में कई स्टोर होते हैं और कई भाषाओं में बात की जाती है. इंफ़्रास्ट्रक्चर, डेवलपर को बिल्ड की स्पीड के लिए टेस्ट कवरेज का कारोबार करने के लिए मजबूर नहीं करता.

हमारा मानना है कि बैजेल के पास, इस विज़न को पूरा करने की क्षमता है.

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

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

बेज़ल की ऐब्सट्रैक्ट लेयर, जिसे खास तौर पर भाषाओं, प्लैटफ़ॉर्म, और टूलचेन पर लागू किया जाता है. इसे अन्य भाषाओं में लागू किया जा सकता है. इसकी मदद से, इसे किसी भी कॉन्टेक्स्ट में आसानी से लागू किया जा सकता है.

बेज़ल कोर की क्षमता

  1. Baज़ल, कई भाषाओं, मल्टी-प्लैटफ़ॉर्म बिल्ड और टेस्ट के साथ काम करता है. अपना पूरा सोर्स ट्री बनाने और उसकी जांच करने के लिए, सिर्फ़ एक कमांड इस्तेमाल किया जा सकता है. इससे कोई फ़र्क़ नहीं पड़ता कि आपने किन भाषाओं और प्लैटफ़ॉर्म को टारगेट किया है.
  2. बेज़ल बिल्ड तेज़ और सही हैं. आपके डेवलपर की मशीन और सीआई (CI) पर, हर बिल्ड और टेस्ट का समय इंक्रीमेंटल होता है.
  3. Baज़ल, किसी भी भाषा या प्लैटफ़ॉर्म के बिल्ड तय करने के लिए, एक समान, एक्सटेंशन की भाषा उपलब्ध कराता है.
  4. Basel की मदद से, आपके बिल्ड बड़े पैमाने पर जनरेट होते हैं. इसके लिए, उन्हें रिमोट तौर पर एक्ज़ीक्यूट करने और कैश मेमोरी में सेव करने की सुविधा से कनेक्ट करना होता है.
  5. Basel, डेवलपर के लिए सभी बड़े प्लैटफ़ॉर्म (Linux, MacOS, और Windows) पर काम करता है.
  6. हम स्वीकार करते हैं कि Basel को अपनाने के लिए मेहनत की ज़रूरत होती है, लेकिन प्रोसेसिंग में इसे अपनाया जा सकता है. Baज़ल, किसी दी गई भाषा/प्लैटफ़ॉर्म के लिए, डी-फ़ैक्टो स्टैंडर्ड टूल की मदद से इंटरफ़ेस करता है.

सेवा देने वाली भाषा से जुड़े समुदाय

सॉफ़्टवेयर इंजीनियरिंग, भाषा से जुड़ी कम्यूनिटी के संदर्भ में विकसित होती है. आम तौर पर, इसमें ऐसे लोगों के ग्रुप को इकट्ठा किया जाता है जो एक ही टूल और तरीके का इस्तेमाल करते हैं.

किसी भाषा समुदाय के सदस्यों को इस्तेमाल किए जाने के लिए, अच्छी क्वालिटी वाले बेज़ल नियम उपलब्ध होने चाहिए, जो उस समुदाय के वर्कफ़्लो और तौर-तरीकों के मुताबिक हों.

Basel का मकसद है कि वह एक्सटेंसिबल और ओपन हो. साथ ही, किसी भी भाषा के लिए अच्छे नियम सेट करने में आपकी मदद करे.

एक अच्छे नियमसेट की आवश्यकताएं

  1. इन नियमों को भाषा के लिए बेहतर बिल्डिंग और टेस्ट करने में मदद करनी चाहिए. इसमें कोड कवरेज भी शामिल है.
  2. ये नियम, भाषा (जैसे कि Java के लिए Maven) के लिए, बहुत इस्तेमाल किए जाने वाले "पैकेज मैनेजर" के साथ इंटरफ़ेस होने चाहिए. साथ ही, बड़े पैमाने पर इस्तेमाल होने वाले अन्य बिल्ड सिस्टम के इंक्रीमेंटल माइग्रेशन पाथ के साथ काम करना चाहिए.
  3. "बेज़ल सैंडविच" सिद्धांतों का पालन करते हुए, नियम एक्सटेंसिबल और इंटरऑपरेबल होने चाहिए.
  4. नियम दूर से एक्ज़िक्यूशन के लिए तैयार होने चाहिए. व्यावहारिक तौर पर, इसका मतलब है टूलचेन तकनीक का इस्तेमाल करके इसे कॉन्फ़िगर किया जा सकता है.
  5. अगर भाषा उपलब्ध है, तो नियमों (और बेज़ल) को बड़े पैमाने पर इस्तेमाल किए गए IDE के साथ इंटरफ़ेस करना चाहिए.
  6. नियमों में इस्तेमाल किए जा सकने वाले ऐसे दस्तावेज़ होने चाहिए जिनमें नए उपयोगकर्ताओं के लिए शुरुआती जानकारी दी गई हो. साथ ही, ऐसे दस्तावेज़ होने चाहिए जिनके बारे में विशेषज्ञ उपयोगकर्ताओं को अच्छी जानकारी मिले.

इनमें से हर एक आइटम ज़रूरी है और सिर्फ़ एक साथ मिलकर वे अपने नेटवर्क के हिसाब से बेज़ल की क्षमता के हिसाब से डिलीवरी करते हैं.

वे काफ़ी हैं और ज़रूरत भी हैं - सभी के पूरा होने के बाद, बेज़ल भाषा के समुदाय के सदस्यों को अपनी वैल्यू पूरी तरह से उपलब्ध करवाते हैं.