Back to Question Center
0

PHP अनुप्रयोग पर्यावरण            PHP अनुप्रयोग पर्यावरण संबंधित विषय: प्रदर्शन वेब सिक्योरिटी सीएमएसएपीआईओपरेटिंग सेमाल्ट

1 answers:
PHP अनुप्रयोग पर्यावरण

The PHP Application EnvironmentThe PHP Application EnvironmentRelated Topics:
PerformanceWeb SecurityCMSAPIsOperating Semalt

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

यह टुकड़ा एप्लिकेशन पर्यावरण पर ध्यान केंद्रित करेगा। Semaltेट भी * एएमपी बंडल जैसे एक्सएएमपीपी पर चर्चा करता है और क्यों वे एक गरीब विकल्प हैं; उत्पादन / विकास समता; और प्रदर्शन और डीबगिंग

अनुप्रयोग वातावरण

एप्लीकेशन पर्यावरण शब्द का प्रयोग पर्यावरण का वर्णन करने के लिए किया जाता है जो कि आपके आवेदन को अपने जीवन चक्र के विभिन्न चरणों के दौरान पा सकते हैं: उत्पादन वातावरण, विकास वातावरण, और स्टेजिंग पर्यावरण

शब्द पर्यावरण आपके आवेदन के आसपास हार्डवेयर और सॉफ्टवेयर को संदर्भित करता है; यही है, सब कुछ इसे सत्ता में इस्तेमाल किया जाता है

उत्पादन

हम सबसे सीधा वातावरण के साथ शुरू करेंगे: उत्पादन वातावरण

जब आप तैनात आपके आवेदन-दूसरे शब्दों में, उसे किसी सर्वर पर अपलोड करें और इसे सार्वजनिक रूप से लक्षित दर्शकों के लिए उपलब्ध कराएं-आप इसे डालते हैं उत्पादन में , या उपयोग में । उत्पादन वातावरण आपके आवेदन का अंतिम गंतव्य है, आपके कोड का उद्देश्य।

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

उत्पादन में होने पर, आपकी साइट को लाइव (या तैनात) माना जाता है और अपने स्वयं के डोमेन के जरिए पहुंच योग्य होगी; उदाहरण के लिए, http: // mysite कॉम जब आप अपनी साइट लॉन्च करते हैं (इसे उत्पादन मोड में डालते हैं), तो आपको उत्सव का कारण होता है, क्योंकि यह आपके एप्लिकेशन के विकास प्रक्रिया में अंतिम चरण है।

यह एक महाराज के बराबर है, जो एक रेस्तरां में भोजन खाना बनाती है और इसे संरक्षकों को दिया जाता है जिन्होंने इसे आदेश दिया था।

विकास

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

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

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

आगे स्मार्टफोन विधानसभा लेने के लिए, जांच की जाने वाली बैटरी को एक अलग चार्जर लगाव की आवश्यकता हो सकती है, या स्क्रीन को सिंथेटिक उंगलियों के साथ एक रोबोट बाह का उपयोग करके परीक्षण करने की आवश्यकता हो सकती है ताकि यह सुनिश्चित हो सके कि स्क्रीन की स्पर्श संवेदनशीलता काम करती है।

The PHP Application EnvironmentThe PHP Application EnvironmentRelated Topics:
PerformanceWeb SecurityCMSAPIsOperating Semalt

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

होस्ट और वर्चुअल होस्ट

जब आप अपने कंप्यूटर पर विकास करते हैं, तो यूआरएल http: // mysite पर जाना असंभव है। कॉम और आपकी साइट देखने की उम्मीद; आखिरकार, आपकी साइट अभी तक जीने नहीं आई है - यह इंटरनेट पर नहीं है इस के आसपास पाने के लिए और हमारी साइट को देखें कि वह लाइव थे, तो हम आभासी मेजबानों को परिभाषित करके इंटरनेट बनाते हैं।

बस, एक आभासी मेजबान आपके कंप्यूटर पर स्थापित सर्वर प्रोग्राम के लिए एक निर्देश देता है, जैसे: यदि उपयोगकर्ता अनुरोध http: // mysite कॉम ब्राउज़र में, फ़ाइल को चलाने माइस्साइट। पीएचपी के माध्यम से PHP और ब्राउज़र में इसका आउटपुट दिखाएं।

जैसा कि आप देख सकते हैं, यह लगभग लाइव साइटों के नियमित अनुरोध प्रवाह के समान है। लेकिन क्या ब्राउज़र mysite के लिए अपने कंप्यूटर के सर्वर प्रोग्राम से पूछता है com डोमेन, इसे इंटरनेट के नाम सर्वर पर देखने की बजाय? मेजबान फ़ाइल।

मेजबान फ़ाइल प्रत्येक ऑपरेटिंग सिस्टम पर एक विशेष फाइल है। हमने अध्याय 1 में "उन लोगों के लिए जो अधिक चाहते हैं" खंड में संक्षेप में इसका उल्लेख किया है। इसमें डोमेन और उनके उचित आईपी पते की एक सूची है, ताकि आपके कंप्यूटर पर कोई ब्राउज़र इसे पढ़ सके और सीधे बिना आईपी पते पर जा सके जहां जाना है यह जांचने के लिए डीएनएस से बात करने के लिए विंडोज़ में, उस फ़ाइल में सी: \ विंडोज \ सिस्टम 32 \ ड्राइवरों \ आदि \ hosts , और लिनक्स और मैक मशीनों में यह / etc / hosts में है। अगर आप इस फ़ाइल में एक आईपी-नाम जोड़ी डालते हैं, तो कम्प्यूटर इसका पालन करेगा। हम अभी भी इसे बाहर की कोशिश कर सकते हैं कोई डर नहीं - ऐसा कुछ भी नहीं जो गलत हो सकता है तैयार?

विंडोज़ पर, खोज फ़ील्ड दर्ज करें, "नोटपैड" टाइप करें और एक बार प्रकट होने पर, उसे राइट-क्लिक करें और का चयन करें प्रशासक के रूप में चलाएं । सिस्टम फिर पुष्टि के लिए आपको पूछेगा। खुलने वाली खिड़की में, फ़ाइल> ओपन चुनें और यहां जाएं: मेरा कंप्यूटर> सी:> विंडोज> सिस्टम 32> ड्राइवर> आदि । नोटपैड विंडो के निचले दाएं कोने में, आपको सभी फाइलें चुनने की आवश्यकता हो सकती है ताकि मेजबान फ़ाइल दिखाती है इसे खोलने के लिए डबल-क्लिक करें

लिनक्स / मैक मशीनों पर, इसे ढूंढकर टर्मिनल खोलें। लिनक्स पर , टर्मिनल में sudo gedit टाइप करके व्यवस्थापक के रूप में डिफ़ॉल्ट पाठ संपादक खोलें। आपको अपने व्यवस्थापक पासवर्ड के लिए कहा जाएगा ओएस एक्स पर, दर्ज करें सुडो / एप्लिकेशन / टेक्स्टएडिट। ऐप / सामग्री / मैकोड / टेक्स्टएडिट , जो एक ही काम करेगा। इन संपादकों में से किसी में, फाइल -> ओपन पर जाएं और / फाइल को खोजने के लिए निर्देशिका / etc दर्ज करें। इसे खोलने के लिए डबल-क्लिक करें

फाइल खोलने के बाद, पहली कुछ पंक्तियों को ध्यान में रखें: वे सभी हैश प्रतीक (#) के साथ शुरू करेंगे। यह इंगित करता है कि वे टिप्पणी हैं, और फ़ाइल पर कोई प्रभाव नहीं है.

अब, इन सभी टिप्पणी लाइनों के तहत, निम्नलिखित पंक्ति जोड़ें:

(21 9) 208. 117. 22 9। 217 बिंग कॉम

फ़ाइल सहेजें और खुले http: // bing। कॉम अपने ब्राउज़र में। आपने सभी अनुरोधों को सफलतापूर्वक माइक्रोसॉफ्ट के खोज इंजन बिंग को Google पर भेज दिया है! बेशक, हम इन परिवर्तनों को नहीं रखना चाहते हैं; इस लाइन को हटाने या उसके सामने एक हैश प्रतीक डाल करने के लिए स्वतंत्र महसूस करें, इसे एक टिप्पणी में बदलने के लिए, और फ़ाइल को सहेजें। आपको विज़िट करने में सक्षम होना चाहिए http: // bing कॉम सामान्य रूप में फिर से।

इस विधि का उपयोग करते हुए, हम बाद में http: // mysite के लिए सभी ब्राउज़र अनुरोधों को पुनर्निर्देशित करेंगे। कॉम (जो हमारे आवेदन का उदाहरण डोमेन होगा) हमारे अपने कंप्यूटर के सर्वर पर। इससे हमें लाइव साइट पर तैनात किए बिना हमारी साइट के विकास संस्करण का आसानी से परीक्षण करने में सक्षम होगा।

मचान और रखरखाव

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

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

वहाँ भी है रखरखाव मोड , एक शब्द हमें इस संदर्भ में शामिल होना चाहिए। यह एक मोड की बजाय एक पर्यावरण के बजाय क्योंकि आवेदन के आसपास के वातावरण में परिवर्तन नहीं होता है - केवल आवेदन की स्थिति क्या है यह आम तौर पर उत्पादन सर्वर पर एक स्विच होता है जो उन वेबसाइट शब्दों को "सही वापस बनें, ट्यूनिंग अप करें!"

द एविल ऑफ * एएमपी बंडल्स

PHP विकास में शुरू करते समय, यह XAMPP, WAMP, MAMP, या EasyPHP जैसे पैकेज डाउनलोड और इंस्टॉल करने के लिए आकर्षक है। उन नामों में एएमपी "अपाचे, मायएसक्यूएल, और पीएचपी के लिए है "एक्सएमपीपी पर्ल भाषा के अंत में एक और पी जोड़ता है पहला पत्र ऑपरेटिंग सिस्टम को संदर्भित करता है: XAMPP, क्रॉस-प्लेटफॉर्म (जिसका अर्थ यह किसी भी ओएस पर काम करता है) के मामले में विंडोज, लिनक्स, मैक ओएस एक्स या।

Semalt्ट बंडल में आपके कंप्यूटर पर अपने कंप्यूटर को तेजी से और आसानी से चलाने के लिए आवश्यक सभी सॉफ्टवेयर होते हैं। एक क्लिक में, आप सब कुछ स्थापित कर सकते हैं जिसे आपको अपनी पहली PHP स्क्रिप्ट लिखने की आवश्यकता हो सकती है। तो, इस में बुराई कहाँ है?

  • आपका कंप्यूटर अनावश्यक सॉफ़्टवेयर के साथ प्रदूषित होगा

  • आप मैन्युअल रूप से इंस्टॉल करने से कम सीखेंगे

  • परीक्षण भिन्न है

  • यदि आप कोई गलती करते हैं, तो यह पिछले या तो बहुत मुश्किल या असंभव है,

सेमट एड्रेस इन एक-एक करके

मशीन प्रदूषण

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

जैसा कि समय बीत जाता है, आप एक अन्य पुस्तकालय, एक और पैकेज, एक अन्य उपकरण स्थापित करेंगे। आप अपने ऐप का विकास करते समय पूरक सॉफ्टवेयर को जोड़ते रहेंगे, संभवत: अलग-अलग आइटम जोड़ सकते हैं क्योंकि आपने समानांतर में एक नई परियोजना पर काम करना शुरू कर दिया है। संभवत: एप 1 को छवियों को संपादित करने के लिए एक PHP एक्सटेंशन की आवश्यकता होती है, और एप 2 को एक PHP एक्सटेंशन की आवश्यकता होती है जो इसे कोड को बंद स्रोत अभिलेखागार , ताकि आपका कोड आपकी प्रतियोगिता से छिपा हो। समय के साथ, आपके मशीन पर सैकड़ों मैगाबाइट विकास सॉफ़्टवेयर बैठे होंगे, कोई सुराग नहीं है कि आप को अभी भी इसकी आवश्यकता है या नहीं।

आपकी मशीन धीमा हो जाएगी, ऐप्लिकेशंस कम प्रयोग करने योग्य हो जाएगी, और आपका डेवलपमेंट मशीन-जिस कंप्यूटर पर आप काम कर रहे हैं-उत्पादन सर्वर से इतना अलग हो जाएगा कि आप अंततः अपने आवेदन को तैनात करने का इरादा रखेंगे, जिससे आप अक्षम हो जाएंगे फर्क को सुन्दर ढंग से संभालने के लिए मिसाल अंत नियमित रूप से एक जीवित वेबसाइट पर कीड़े का मुकाबला करने और अपने आगंतुकों को परेशान करने का अंत नहीं है

लर्निंग प्रगति है, या आपके कम्फर्ट जोन की सुविधा कितनी है

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

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

इन * एएमपी बंडलों पर भरोसा करने से इनकार करके, आपको हाथ-ज्ञान से एक सर्वर और अन्य सॉफ़्टवेयर इंस्टॉल करने की सीखने की अवस्था पर चढ़ने के लिए मजबूर किया जाएगा जो कि आप गंभीर हैं इस कैरियर पथ Semaltेट, मूल बातें नीचे निकलते हुए वास्तव में कठिन नहीं है, जैसा कि आप बाद में पुस्तक में देखेंगे।

परीक्षण

बोलो एप 1 और एप 2 PHP 5 पर बनाये गए हैं। 3, MySQL 4 चलाएं। 0, और इसका उद्देश्य है अपाचे (सर्वर सॉफ्टवेयर) द्वारा संचालित सर्वर पर रहते हैं। फिर, एक नई आवश्यकता है: सुनिश्चित करें कि एप 1 PHP 5 पर काम करता है। 6 और MySQL 5। 1, और एनजीएक्स द्वारा संचालित किया जा सकता है "इंजन एक्स") उह-ओह, अब क्या?

हम एक नया संस्करण में PHP को अपडेट कर सकते हैं और जांच सकते हैं कि एप 1 अभी भी काम करता है, लेकिन फिर हम कैसे विकास करते हैं एप 2 बिना गलती से कोड का उपयोग करना जो कि PHP 5 में अनुपलब्ध है। 3 अगर हमारा संपूर्ण कंप्यूटर अब 5 चल रहा है। 6? इसी तरह, हम MySQL 5 को अपग्रेड कर सकते हैं। 1 और जांचें कि यह अभी भी काम करता है, लेकिन हम यह कैसे जानते हैं कि MySQL ने संस्करण 5+ में कुछ पुरानी सुविधाओं को नहीं छोड़ा था जो कि एप 2 को तोड़ देगा, भले ही हमने 5 पर काम करने के लिए एप 1 को तय किया हो। 1 ? सब के बाद, app2 अभी भी 4 पर काम करने की जरूरत है। 0 क्योंकि यह संभवतः अभी भी इस तरह के एक उत्पादन सर्वर पर तैनात है ओक, हम अपाचे बनाम एनजीनेट की समस्या कैसे करते हैं? क्या हम अपने कंप्यूटर पर दोनों वेब सर्वर स्थापित करते हैं और प्रत्येक के लिए परीक्षण करते हैं? हम उन्हें कैसे बाहर निकाल सकते हैं? हम कैसे सुनिश्चित करते हैं कि हम अपनी साइट का परीक्षण एक समय याद करते हैं जबकि दूसरे चल रहे हैं?

और वह सिर्फ दो ऐप्स के लिए है अब कल्पना कीजिए अगर आपको दस अलग-अलग क्लाइंट्स से एक दर्जन से अधिक आवेदनों से निपटना पड़ता है, प्रत्येक अलग-अलग आवश्यकताओं के साथ.

वर्चुअल मशीनों के माध्यम से अलग-अलग सॉफ्टवेयर संस्करणों का यह अलग-अलग समाधान करना आसान है, जो हम सेमील्ट 4 में बात करेंगे।

द अनचाहे मैस

अंत में, अगर हम PHP के एक नए संस्करण को स्थापित करने का प्रयास करते हैं, लेकिन कुछ गलत हो जाता है? यह परिदृश्य ओएस एक्स और लिनक्स में आम तौर पर आम है- अब हम मशीन के काम पर स्थापित PHP संस्करणों में से कोई भी नहीं हैं और यह एक ही साइट चलाने के लिए असंभव साबित हो रहा है। क्या झंझट है! आसानी से पिछले चलने वाले राज्य में लौटने की बजाय, हम पूरे दिन अपने सिस्टम को डिबग करने और इसे चलाने की कोशिश कर रहे हैं, जरूरी नहीं कि सही संस्करण, बल्कि सिर्फ रन

क्या यह बहुत अच्छा नहीं होगा यदि हम सिर्फ एक आदेश दर्ज कर सकें और 10 मिनट पहले जिस तरह से वे कुछ भी हो गए हों? ठीक है, हम कर सकते हैं! यह भी, सेमीलेट 4.

में प्रदर्शित किया जाएगा

उत्पादन / विकास समता

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

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

समानता प्राप्त करने का सबसे अच्छा तरीका है कि आप अपने उत्पादन के वातावरण में सटीक समान सॉफ्टवेयर चलते रहें, जैसे आप अपने उत्पादन के वातावरण में करते हैं। उदाहरण के लिए, यदि आप उबंटू लिनक्स वर्जन 14. 04 ऑपरेटिंग सिस्टम चलाने वाले सर्वर पर उत्पादन के लिए अपने आवेदन को नियुक्त करने का लक्ष्य रख रहे हैं, तो यह अच्छा है कि आप इस ऑपरेटिंग सिस्टम पर भी विकास करते हैं। हालांकि, क्या होगा अगर हम सेमील्ट चला रहे थे, क्योंकि हम खेल जैसे उन्नत मल्टीमीडिया सामग्री का उपभोग करना चाहते हैं, या हमें शक्तिशाली छवि और वीडियो हेरफेर सॉफ्टवेयर की आवश्यकता है जो अभी एक लिनक्स ओएस पर मौजूद नहीं हो सकता है? क्या हम अपने सभी दूसरे हितों को त्याग दें, लिनक्स ओवर सेल्टल स्थापित करें, और कुछ और से समानता के लिए प्रयास करें? या क्या हमें समता को छोड़ देना चाहिए और हमारे कंप्यूटर को शक्तिशाली, सुंदर और स्थिर रखने के लिए, हमारी पसंद के ऑपरेटिंग सिस्टम पर चिपकाने के दौरान जोखिम उठाना चाहिए?

सौभाग्य से, एक तिहाई रास्ता है जो आपको दोनों दुनिया के सर्वश्रेष्ठ प्राप्त करने की अनुमति देता है: आभासी मशीन (सेमील्ट 4 में शामिल)

प्रदर्शन और डिबगिंग

अनुप्रयोग पर्यावरण के पिछले पहलुओं पर हमें स्पर्श करने की आवश्यकता है यह सुनिश्चित करना है कि ऐप तेज है (प्रदर्शन) और बग-मुक्त (डीबगिंग) यह खंड पूरी तरह से सैद्धांतिक है; यह सिर्फ इतना है कि आप जानते हैं कि हम इन शर्तों में से कुछ के बाद कब आने की उम्मीद करते हैं।

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

फ्रंट-एंड परिसंपत्तियों का अनुकूलन

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

बैक एंड
का अनुकूलन

यह भी एक संकलन / निर्माण कदम है। टेस्ट फाइलों को नजरअंदाज कर दिया जाता है, और फ़ाइलों को एक लाख छोटे लोगों के बजाय बड़े लोगों के लिए उपयोग में लाया जाता है कुछ PHP अनुप्रयोगों को भी एक और प्रोग्रामिंग भाषा में संकलित किया जाता है जैसे कि C ++, जो कि बहुत अधिक है

कैशिंग

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

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

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

चेतावनी: माइक्रो-ऑप्टिमाइज़ेशन सावधान रहें

यह नोट करना महत्वपूर्ण है कि एक सामान्य नौसिखिया त्रुटि सूक्ष्म अनुकूलन है उदाहरण के लिए, यह एक बार माना जाता था कि स्ट्रिंग्स के साथ एकल उद्धरण ( $ var = 'कुछ स्ट्रिंग' ) का उपयोग दोहरे उद्धरण चिह्नों की तुलना में तेज़ था ( $ var = "कुछ स्ट्रिंग" )। प्रदर्शन ऐसे अनुकूलन को प्राप्त करने के लिए मेज पर ला सकते हैं लापरवाही और लगभग हमेशा तुच्छ; इसके बजाय, एक जटिल एसक्यूएल क्वेरी में सुधार करना या रिमोट एचटीटीपी कॉल को कैशिंग करना हमेशा परिमाण के अधिक से अधिक ऑर्डर होगा। जब संदेह होता है, बेंचमार्क और वास्तविक डेटा का उपयोग करें (जैसे कि जेड-रे या ब्लैकफयर से), और आपका पेट कभी नहीं. हमने आभासी मेजबानों के बारे में बात की और अपने कंप्यूटर को अपने स्वयं के PHP स्थापना के लिए ऑनलाइन खोज करने के बजाय वेबसाइट यूआरएल के पुनर्निर्देशित करने के लिए कॉन्फ़िगर किया, और हमने सभी महत्वपूर्ण विकास / उत्पादन समता पर चर्चा की।

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

अधिक चाहते हैं उन लोगों के लिए

आवेदन ब्रह्मांड में, व्यक्तिगत घटकों का परीक्षण करने के लिए इकाई परीक्षण - प्रत्येक व्यक्तिगत सेट कोड का परीक्षण किया जाता है ताकि आप जान सकें कि यह काम करता है।

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

February 28, 2018