2010-07-10 14 views
6

क्या प्रोग्रामर की मदद करने के लिए वहां कोई उपकरण हैं जो वास्तव में टाइप सुरक्षा और सी # या जावा के साथ जावास्क्रिप्ट के साथ अधिक कठोर नियम चाहते हैं?जावास्क्रिप्ट कोड विश्लेषण और सर्वोत्तम प्रथाओं

उदाहरण के लिए, कुछ ऐसा जो स्रोत स्रोतों का विश्लेषण करता है और ज्ञात चर जैसे चीजों को पाया जाता है या परिभाषित प्रकार की वस्तुओं की जेएस फ़ाइल int या स्ट्रिंग की तरह है?

+0

आप स्थैतिक विश्लेषण द्वारा गतिशील रूप से टाइप की गई भाषा में प्रकार की सुरक्षा नहीं प्राप्त कर सकते हैं, क्योंकि रनटाइम के दौरान कुछ भी प्रकार बदल सकता है। – galambalazs

+0

@galamalazs यह नहीं हो सकता है कि आप सभी मामलों को चिह्नित करते हैं जहां यह एक उपकरण के साथ होता है। सवाल यह है कि क्या ऐसा कोई उपकरण मौजूद है या नहीं। – reinierpost

उत्तर

5

जेएसलिंट के अतिरिक्त, Google क्लोजर कंपाइलर का उपयोग जेएस स्रोत के स्थिर विश्लेषण के लिए भी किया जा सकता है, और यह जेएसलिंट की तुलना में अलग-अलग चीजों की जांच भी करता है।

इन उपकरणों में से कोई भी बिल्कुल वही प्रदान करता है जो आप चाहते हैं .. क्लोजर कंपाइलर टाइप-चेकिंग का प्रयास करता है अगर मुझे सही याद है, लेकिन यह हमेशा काम नहीं करता है (बिल्कुल)।

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

मेरा सुझाव भाषा की "ढीलापन" को गले लगाने के लिए होगा, शायद एक परीक्षण सहायता उपकरण (जेएसटेस्ट ड्रायवर) के रूप में परीक्षण संचालित विकास के साथ।

+0

+1 "looseness" को गले लगाने के लिए +1 – galambalazs

+0

मैंने JSLint का उपयोग शुरू किया। यह सामान है - बहुत अच्छी चीजें। बंद करो, मुझे कम उपयोगी लगता है (हालांकि यह अज्ञान हो सकता है)। – j03m

+0

यह मुझे पागल बनाता है हालांकि - ढीलापन - मेरा मतलब है। उदाहरण के लिए, मेरे पास उन कार्यक्रमों के लिए मेरे कार्यक्रम में एक संरचना है जो पढ़ता है: ga.gameEvents.Idle आदि। और किसी बिंदु पर, मुझे लगता है कि मुझे एक "।" मैक्रो चलाते समय और मेरे कोड में gagameEvents.Idle था। इसलिए मैंने क्रोम के माध्यम से 30 मिनट की दूरी तय की, यह जानने का प्रयास कर रहा था कि एक फ़ंक्शन में दिया गया मान अनिर्धारित क्यों था। गरर। मुझे थोड़ा पागल ड्राइव जानता है कि एक कंपाइलर इसे पकड़ा होगा। मुझे लगता है कि जेएसलिंट अभी भी इस प्रकृति की चीजों को याद करेगा। :( शायद सही उत्तर GWT है। क्या मैं html5 कैनवास सामग्री नहीं कर रहा था, मैं इसका उपयोग करूंगा। – j03m

0

@no ने कहा, jslint हैट है। मुझे लगता है कि आप Closure compiler की तलाश में हैं, हालांकि।

0

यदि आप जावास्क्रिप्ट निर्भरताओं की जांच करना चाहते हैं और क्लाइंट-साइड आर्किटेक्चर को परिभाषित करना चाहते हैं, तो आप JSAnalyse का उपयोग कर सकते हैं।

यह आपको निर्माण के दौरान इसे जांचकर जावास्क्रिप्ट फ़ाइलों के नियंत्रण में नियंत्रण के तहत निर्भरता रखने की अनुमति देता है। यह जावास्क्रिप्ट का समर्थन करने के लिए विजुअल स्टूडियो लेयर आरेख को बढ़ाता है और आसानी से एमएसबिल्ड प्रक्रिया में एकीकृत किया जा सकता है।

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