वेबप को डिजाइन करने के लिए एक प्रतिध्वनित वर्कफ़्लो क्या है?


9

जब से मैंने कोई भी पर्याप्त वेब विकास किया है और मुझे नवीनतम प्रथाओं का लाभ उठाना है, लेकिन मुझे सब कुछ शामिल करने के लिए वर्कफ़्लो की कल्पना करने में दिक्कत हो रही है।

यहाँ मैं उपयोग करने के लिए देख रहा हूँ:

  • CakePHP फ्रेमवर्क
  • jsmin (जावास्क्रिप्ट न्यूनतम)
  • SASS (वास्तव में बहुत बढ़िया स्टाइलशीट)
  • Git

CakePHP:

सुंदर आत्म व्याख्यात्मक, संशोधन करें और स्रोत को अपडेट करें।

jsmin:

जब आप एक स्क्रिप्ट को संशोधित करते हैं, तो क्या आप मैन्युअल रूप से नए minified कोड को आउटपुट करने के लिए jsmin चलाते हैं, या प्री-कमिट हुक को चलाने के लिए बेहतर होगा जो स्वचालित रूप से जावास्क्रिप्ट फ़ाइलों के jsmin आउटपुट को बदल देता है जो बदल गए हैं। मान लें कि मुझे प्रतिबद्ध हुक लागू करने का कोई ज्ञान नहीं है।

एस.ए.एस.एस.:

मुझे वास्तव में पसंद है कि SASS को क्या पेशकश करनी है, लेकिन मुझे यह भी पता है कि SASS कोड डिफ़ॉल्ट रूप से ब्राउज़रों द्वारा समर्थित नहीं है, इसलिए, कुछ बिंदु पर, SASS कोड को सामान्य CSS में बदलना होगा। वर्कफ़्लो में किस बिंदु पर यह किया जाता है।

Git

मैं इसे स्वीकार करने के लिए भयभीत हूं लेकिन, पिछली बार जब मैंने कोई महत्वपूर्ण वेब विकास किया था, तो मैंने SCM स्रोत नियंत्रण (IE का उपयोग नहीं किया था, मैंने स्रोत नियंत्रण का उपयोग किया था लेकिन इसमें बैकअप के साथ बहुत विस्तृत परिवर्तन लॉग शामिल था)।

तब से मुझे डेस्कटॉप के विकास के लिए Git (साथ ही भाड़े और SVN) का उपयोग करने का बहुत अनुभव था लेकिन मैं सोच रहा हूं कि इसे वेब विकास के लिए कैसे लागू किया जाए।

क्या वेब होस्ट पर दूरस्थ रिपॉजिटरी को लागू करना आम बात है, इसलिए मैं बदलावों को सीधे उत्पादन सर्वर पर धकेल सकता हूं, या क्या कोई क्रॉस प्लेटफॉर्म (विंडोज़ / लिनक्स) टूल है जो केवल परिवर्तित फाइलों को उत्पादन सर्वर पर अपलोड करना आसान बनाता है । क्या वेब होस्टिंग कंपनियाँ हैं जो रिमोट रिपॉजिटरी को लागू करना आसान बनाती हैं, क्या मुझे SSH एक्सेस आदि की आवश्यकता है ...

मुझे पता है कि एक अलग दूरस्थ ट्रैकिंग शाखा के साथ एक रिमोट रिपॉजिटरी के साथ अपने स्वयं के परीक्षण सर्वर पर इसे कैसे पूरा किया जाए, लेकिन मैंने इसे दूरस्थ उत्पादन वेब होस्टिंग सर्वर पर पहले कभी नहीं किया है, इसलिए मुझे अभी तक विकल्पों के बारे में पता नहीं है।

अतिरिक्त:

मैं एक जावास्क्रिप्ट फ्रेमवर्क को लागू करने पर विचार कर रहा था जहाँ एक पृष्ठ पर उपयोग की जाने वाली अलग-अलग जावास्क्रिप्ट फ़ाइलों को उत्पादन सर्वर पर प्रत्येक पृष्ठ के लिए एकल फ़ाइल में संकलित किया जाता है ताकि प्रति पृष्ठ आवश्यक फ़ाइल डाउनलोड की संख्या को सीमित किया जा सके।

क्या ऐसा कुछ पहले से मौजूद है? वहाँ पहले से ही एक खुला स्रोत परियोजना है कि मैं इस्तेमाल कर सकते हैं और योगदान करने के लिए कुछ इसी तरह लागू करता है जंगली में बाहर है?

यह देखते हुए कि वेब देवता प्रदर्शन के बारे में कैसे हैं (और तथ्य यह है कि किसी वेबसाइट पर फ़ाइल अनुरोधों की संख्या प्रदर्शन के लिए एक बड़ी हिट है) मैं अनुमान लगा रहा हूं कि नेट पर कुछ विज़ार्ड हैकर हैं जिन्होंने पहले से ही इस मुद्दे को संबोधित किया है।

जवाबों:


2

आप Apache : afaik के लिए Google के पेजस्पीड एक्सटेंशन की जाँच कर सकते हैं , जावास्क्रिप्ट को स्वचालित रूप से संयोजित करने और कैशिंग के साथ संयोजित करने का विकल्प है, यह आपके पोस्ट के अंत में आपके द्वारा खोजे जा रहे काम का उल्लेख करेगा।


1
कूल, मुझे महसूस नहीं हुआ कि यह सब एक अपाचे मॉड्यूल के साथ किया जा सकता है। जावास्क्रिप्ट / सीएसएस मिनिफिकेशन, जावास्क्रिप्ट / सीएसएस कॉन्सेप्टन, साथ ही अन्य वैकल्पिक प्रदर्शन में सुधार का गुच्छा। कुछ Googling के बाद मुझे यह भी पता चला कि ड्रीमहोस्ट इसे अपने साझा / वीपीएन होस्टिंग के साथ प्रदान करता है। मुझे आश्चर्य है कि webmasters.stackexchange.com या stackoverflow.com पर इसके बारे में अधिक जानकारी नहीं है।
इवान प्लाइस

5

jsmin

यदि आपके पास जेएस का एक टन नहीं है, तो आप हर बार बचत को हिट करने के लिए कुछ सेट कर सकते हैं। यदि आपके पास बहुत सारे जेएस हैं, तो इसे अपनी तैनाती प्रक्रिया का हिस्सा बनाएं (नीचे देखें Git)।

एस.ए.एस.एस.

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

Git

साइट के आकार / जटिलता के आधार पर, कैपिस्ट्रानो का पालन ​​करने पर विचार करेंपरिनियोजन मॉडल। निश्चित नहीं है कि अगर आप केकपीआरपी के साथ सीधे कैपिस्ट्रानो का उपयोग कर सकते हैं, लेकिन यह बात है: प्रत्येक उत्पादन सर्वर में एक "वर्तमान" फ़ोल्डर होता है जिसमें उस समय उत्पादन में चलने वाले सभी कोड होते हैं। हर बार जब आप नया कोड तैनात करना चाहते हैं, तो आप एक स्क्रिप्ट चलाते हैं, जो प्रत्येक प्रोडक्शन सर्वर पर ssh होती है और इसमें (a) "चालू" फोल्डर की सामग्री को बैकअप फ़ोल्डर में (उस पर रिलीज़ नाम / टाइमस्टैम्प के साथ), ( b) "वर्तमान" फ़ोल्डर में Git से नवीनतम कोड की जाँच करें और (c) "वर्तमान" फ़ोल्डर से इस नए कोड की सेवा शुरू करें। इस तरह, यदि आवश्यक हो तो आप किसी भी पिछले रिलीज़ पर वापस जा सकते हैं और आप यह बता सकते हैं कि उत्पादन में कौन सा संशोधन लाइव है। कैपिस्ट्रानो आपको तैनाती प्रक्रिया के भाग के रूप में जेएस / सीएसएस मिनिफिकेशन सहित सभी प्रकार के कस्टम कार्यों को जोड़ने की सुविधा देता है,

अतिरिक्त

हां, एक गुच्छा हैं। Google "CSS / JS कॉनसैट" जैसी किसी चीज़ के लिए। यहाँ एक त्वरित है जो मैंने CakePHP: एसेट पैकर के लिए पाया ।


इनपुट के लिए बहुत बहुत धन्यवाद। मैं वास्तव में कम्पास फ्रेमवर्क के साथ जो कुछ भी देखा था मुझे पसंद है। मैं केवल यह चाहता हूं कि मैं इसे PHP में तैनात करने का एक तरीका जानता हूं। मैं चारों ओर घूम गया, लेकिन एक विकल्प नहीं मिल रहा है। Capistrano भी बहुत दिलचस्प लगता है, लेकिन महंगी और नाजुक फ़ाइल कॉपी मॉडल के बजाय, मैं सिर्फ ssh का उपयोग सभी दूरस्थ सर्वरों पर git क्लाइंट को बताने के लिए एक त्वरित 'git पुल --rebase' करने के लिए करूँगा ताकि यह जाँचने पर काम हो सके पहले सर्वर।
इवान प्लाइस

(cont) एसेट पैकर भी बहुत दिलचस्प लगता है। एकमात्र कारण जो मैंने आपके ऊपर अन्य उत्तर को उठाया था, उसमें यह सब एक शॉट में था जो कि स्वयं सर्वर पर किए जा रहे प्रसंस्करण के साथ था (इसलिए कोई अतिरिक्त स्क्रिप्ट की आवश्यकता नहीं थी)। एकमात्र नकारात्मक पहलू जो मैं पेजस्पीड को देखता हूं, वह स्टैटिक कंटेंट की अतिरिक्त प्रोसेसिंग है (जिसे स्टैटिक कंटेंट कैशिंग और या सीडीएन का उपयोग करके आसानी से संबोधित किया जाता है। मैं वास्तव में चाहता हूं कि मैं 2 को स्वीकार कर सकूं क्योंकि आपके उत्तर में बहुत सारी बहुमूल्य जानकारी है।
इवान प्लाइस

आप PHP के साथ कम्पास ढांचे को "तैनात" नहीं करते हैं। जब आप कोड करते हैं तो आप इसे चलाते हैं, यह आपके सीएसएस फाइलों को हर बार आपके द्वारा सहेजे जाने पर संकलित करता है, और सीएसएस फाइलें वही होती हैं जो वास्तव में तैनात होती हैं। कम्पास को "रन" करने के लिए, आपको सबसे पहले अपनी कॉन्फिग फाइल (कम्पास .rb) जेनरेट करनी होगी - कमांड लाइन विकल्प उत्पन्न करने के लिए इसका उपयोग करें: jsfiddle.net/chriseppstein/PG46q/3 । एक बार जब आप अपने सभी रास्तों के साथ कॉन्फिग फाइल सेटअप कर लेते हैं, तो बस कॉन्फिगर फाइल के रूप में एक ही फोल्डर में "कंपास वॉच" चलाएं, और कंपास हर बार आपके एसएएस को फिर से खोलना शुरू कर देगा, जब आप सेव करेंगे। इसे किसी ओर परियोजना पर आज़माएँ: यह बहुत आसान और तेज़ है।
येवगेनी ब्रिकमैन

इसके अलावा, जहाँ तक मुझे पता है, Capistrano ज्यादा नकल नहीं करता है। हर बार जब आप तैनाती करते हैं, तो यह नवीनतम कोड की जाँच करता है और बस फ़ोल्डर नामों को स्वैप करता है। लाभ यह है कि आप हमेशा फ़ोल्डर के नामों को फिर से स्वैप करके एक पुराने संस्करण में वापस रोल कर सकते हैं।
येवगेनी ब्रिकमैन

मुझे एक लेख मिला कि इसे कैसे प्राप्त करें और PHP के भीतर कैसे चलें। रूबी परियोजना के बाहर उपयोग करना आसान है जितना मैंने अपेक्षा की थी। कैपिस्ट्रानो के बारे में मेरी पिछली टिप्पणी को देखें। मैंने सोचा कि इसका उपयोग कई सर्वरों को वितरित कमांड भेजने के लिए किया जाता है। अगर मेरे पास दूरस्थ सर्वर तक पहुंच है, तो मैं उत्पादन शाखा से नवीनतम परिवर्तनों को खींचने के साधन के रूप में बहुत अधिक ग्राहक को छोड़ दूंगा। IMHO, फ़ोल्डर स्वैपिंग फ़ोल्डर एक बुरा विचार है। मैं रिलीज चक्र में संशोधन के साथ टैग करना पसंद करूंगा और यदि वर्तमान में कोई समस्या है तो सिर्फ पिछले टैग को चेकआउट करें।
इवान प्लाइस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.