2012-06-28 8 views
5

मैं केवल 2 सप्ताह के लिए नोड.जेएस में विकास कर रहा हूं और पहले PHP में लिखी गई एक वेब साइट को फिर से बनाना शुरू कर दिया था। अब तक इतना अच्छा है, और ऐसा लगता है कि मैं नोड (एक्सप्रेस के साथ) में वही काम कर सकता हूं जो PHP में समान या कम समय में किया गया था।आम विकास के मुद्दे, नुकसान और सुझाव क्या हैं?

मैं चीजों को आप सिर्फ मॉड्यूल का उपयोग कर, आम वातावरण साझा नहीं कर मॉड्यूल, और फाइल सिस्टम और डेटाबेस कार्यों आदि के लिए कॉलबैक का उपयोग करके

लेकिन की आदत में हो रही के रूप में ऐसी आदत हो करने के लिए है में भाग लिया है नहीं है कुछ भी जो डेवलपर बहुत बाद में खोज सकता है जो नोड में विकास के लिए बहुत महत्वपूर्ण है? समस्याएं जो नोड में विकसित होने वाले सभी लोगों के पास हैं, लेकिन वे बाद में सतह तक नहीं हैं? नुकसान? कुछ भी जो पेशेवरों को जानते हैं और नोबस नहीं करते हैं?

मैं किसी भी सुझाव और सलाह की सराहना करता हूं।

+0

पहली बात: यह प्रश्न स्टैक ओवरव्लो के लिए उपयुक्त नहीं है। दूसरा: आम तौर पर भाषा ** लगभग ** कभी समस्या नहीं है। विचार, एक प्रणाली की वास्तुकला ** लगभग हमेशा एक मुद्दा है। – freakish

+0

@ फ्रैकिश हां कभी-कभी भाषा एक समस्या है यदि यह आपकी आवेदन आवश्यकताओं के अनुरूप नहीं है। यही कारण है कि आप शायद असेंबलर में एक वेबसाइट नहीं चल रहे हैं। –

उत्तर

19

यहाँ चीजें आप बाद में जब तक पता ही नहीं सकते हैं:

  • नोड समय-समय पर अंत में कचरा कलेक्टर को चलाने के लिए/निष्पादन को रोक देगा। ऐसा होने पर आपका सर्वर हिचकी के लिए रुक जाएगा। ज्यादातर लोगों के लिए, यह मुद्दा एक महत्वपूर्ण समस्या नहीं है, लेकिन यह निकटकालिक सिस्टम बनाने के लिए बाधा बन सकता है। Does Node.js scalability suffer because of garbage collection when under high load?
  • नोड एकल प्रक्रिया है और इस प्रकार डिफ़ॉल्ट रूप से केवल 1 सीपीयू का उपयोग करेगा। कई प्रक्रियाओं (आमतौर पर 1 सीपीयू) चलाने के लिए अंतर्निर्मित क्लस्टरिंग समर्थन है, और अधिकांश भाग के लिए नोड समुदाय का मानना ​​है कि यह एक ठोस दृष्टिकोण है। हालांकि, आप इस वास्तविकता से आश्चर्यचकित हो सकते हैं।
  • स्टैक ट्रेस अक्सर घटना कतार के कारण खो रहे हैं, तो अपने प्रवेश और डिबगिंग कार्यप्रणाली काफी

यहाँ कुछ मामूली ब्लॉकों आप थोड़ी देर के लिए में चलाए जा सकते हैं (मैं अभी भी इन के खिलाफ टक्कर बदलने की जरूरत)

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

यहाँ आप शुरू में पता ही नहीं सकता है

  • यह Node.js में बहुत आसान है, भयानक प्रवाह नियंत्रण पुस्तकालयों में से एक का उपयोग कर, लोडिंग 3 नेटवर्क की तरह जटिल आपरेशन करने के लिए कुछ अच्छा बातें हैं समानांतर में संसाधन, फिर धारावाहिक में 2 डीबी कॉल करना, फिर समानांतर में 2 लॉग फ़ाइलों को लिखना, फिर एक HTTP प्रतिक्रिया भेजना। यह सामान नोड में छोटा और सुंदर है और कई तुल्यकालिक वातावरण में असंभव है।
  • सभी नोड के मॉड्यूल नए और आधुनिक हैं, और अधिकांश भाग के लिए, आपको एक बेहतरीन एपीआई के साथ एक सुंदर-डिज़ाइन किया गया मॉड्यूल मिल सकता है जो आपको चाहिए। पाइथन के पास अब भी महान पुस्तकालय हैं, लेकिन नोड के चीरियो या जेएसडम मॉड्यूल की तुलना पाइथन के सुंदर सूप से करें और देखें कि मेरा क्या मतलब है। पाइथन के requests मॉड्यूल की तुलना नोड के superagent से करें।
  • एक सामुदायिक लाभ है जो आधुनिक मंच के साथ काम करने से आता है जहां लोग आधुनिक वेब विकास पर केंद्रित हैं। नोड समुदाय और PHP समुदाय के बीच का अंतर अतिरंजित नहीं किया जा सकता है।
+0

उत्तर के लिए धन्यवाद! –

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