हम 2020 में क्या बना रहे हैं
2020 के लिए हमारी योजना तीन क्षेत्रों को शामिल करती है:
- हमारे VS कोड संपादन और ब्राउज़िंग अनुभव की क्षमताओं और जवाबदेही में सुधार करें
- हमारे प्रकार प्रणाली को अधिक सरल, अभिव्यंजक और सही बनाएं
- रीचेक प्रदर्शन पर लाइन को दबाए रखते हुए हमारे चरम मेमोरी उपयोग को कम करें
फ्लो समृद्ध संपादन और कोड ब्राउज़िंग सुविधाएँ प्रदान करने के लिए एक भाषा सर्वर प्रदान करता है जैसे कि इन-एडिटर डायग्नॉस्टिक्स (टाइप एरर), स्वतः पूर्ण और "परिभाषा पर जाएं"। जबकि हमारा ध्यान वीएस कोड में सर्वश्रेष्ठ-इन-क्लास अनुभव प्रदान करने पर है, एलएसपी का उपयोग करने वाला कोई भी संपादक फ़्लो के भाषा सर्वर का लाभ उठा सकता है।
2020 में हम अपने संपादन और ब्राउज़िंग अनुभव में दो प्रकार के निवेशों पर ध्यान केंद्रित करेंगे। सबसे पहले, हम अपनी IDE सुविधाओं की विश्वसनीयता और जवाबदेही में सुधार करना जारी रखेंगे। दूसरा, हम कुछ शीर्ष-अनुरोध वाली IntelliSense सुविधाओं के लिए समर्थन जोड़ेंगे।
फ़्लो लैंग्वेज सर्वर हमेशा तुरंत प्रतिक्रिया नहीं देता है क्योंकि इसे शुरू करते समय पहले इनिशियलाइज़ करने की आवश्यकता होती है, और कभी-कभी बड़े विद्रोह जैसी घटनाओं के बाद पुनः आरंभ करने की आवश्यकता होती है। अधिकांश भाषा सुविधाओं के लिए यह आवश्यक है कि कोड को संपादित करते समय फ़्लो सर्वर लगातार चलता रहे। जहां संभव हो, हम सर्वर को बिना आवश्यकता के पूरा करने के लिए हमारे संपादन और ब्राउज़ अनुरोधों को परिवर्तित करेंगे। हम उन परिस्थितियों को भी कम करना जारी रखेंगे जहां फ़्लो सर्वर को स्वयं को पुनरारंभ करने की आवश्यकता है।
निवेश का एक दूसरा सेट इंटेलीजेंस सुविधाओं के लिए शीर्ष-समर्थित अनुरोधों को जोड़ने से आता है: पैरामीटर जानकारी, त्वरित जानकारी और त्वरित सुधार।
- पैरामीटर जानकारी में हस्ताक्षर सहायता शामिल है - अपेक्षित संख्या और प्रकार के पैरामीटर - जैसा कि आप फ़ंक्शन कॉल टाइप करते हैं। हम कोड में JSDoc टिप्पणियों से निकाले गए पैरामीटर के बारे में दस्तावेज भी दिखाएंगे ।
- जब आप अपने कोड में एक पहचानकर्ता पर होवर करते हैं तो त्वरित जानकारी घोषणा को दिखाती है। फ्लो पहले से ही फ़ंक्शन हस्ताक्षर दिखाता है। हम त्वरित जानकारी के लिए प्रारूपण में सुधार करेंगे और पैरामीटर जानकारी के समान प्रलेखन टिप्पणियाँ जोड़ेंगे।
- हमने अभी-अभी अपनी पहली त्वरित सुधार सुविधा जोड़ी है - "क्या आपका मतलब था?" जैसे ही आप टाइप करते हैं, आपके कोड में सुधार का सुझाव देता है । उदाहरण के लिए, यदि आप
foo.bar
एक ऐसी वस्तु पर लिखते हैंfoo
जिसका नाम फ़ील्ड नहीं है,bar
लेकिन नाम फ़ील्ड हैbaz
, तो त्वरित सुझाव उस सुझाव को लागू करेगा। हम फ्लो एरर सप्रेशन औरimport
स्टेटमेंट के ऑटोमैटिक जेनरेशन को जोड़ने की भी जांच कर रहे हैं ।
हम मानते हैं कि एक विचारशील रूप से डिज़ाइन किया गया सिस्टम जो सरल, अभिव्यंजक और सही है, डेवलपर्स के लिए एक बेहतर अनुभव प्रदान कर सकता है।
- सरल: डेवलपर्स भविष्यवाणी कर सकते हैं कि फ्लो उनके कोड पर कैसा व्यवहार करेगा?
- अभिव्यंजक: डेवलपर्स फ्लो द्वारा अवरुद्ध किए बिना क्या कर सकते हैं?
- सही: डेवलपर्स सामान्य महंगी गलतियों से बचने में मदद करने के लिए फ्लो पर भरोसा कर सकते हैं?
- का प्रयोग करें
this
, अनियंत्रित कोड के लिए कार्य करता है और तरीके अक्सर होता है क्योंकि यह परोक्ष रूप से टाइप किया जा सकता हैany
। का उपयोग करनाany
असुरक्षित है और फ्लो को रिपोर्टिंग त्रुटियों से बचाता है। के लिए टाइपिंग लागूthis
करने से फ्लो का उपयोग करने वाले कोड की जांच करने की अनुमति मिल जाएगीthis
। - रिक्त ऑब्जेक्ट प्रकारों का उपयोग रिक्त ऑब्जेक्ट शाब्दिक और कार्यों पर गुणों को मॉडल करने के लिए किया जाता है। अनसोल्ड ऑब्जेक्ट्स किसी भी समय नए गुणों को लिखने की अनुमति देते हैं। वे कई बयानों में ऑब्जेक्ट आरंभीकरण को सक्षम करने जैसे परिदृश्यों के लिए उपयोगी हैं। लेकिन फ्लो चेक नहीं करता है बिना लिखी लिखी हुई वस्तुओं से पढ़ी गई वस्तुओं से । हम इस आरंभिकता को संबोधित करने पर काम करेंगे, सामान्य आरंभिक पैटर्न को ध्यान से देखते हुए।
- फ्लो की उपयोगिता के कई प्रकार , जैसे
$ObjMap
और$PropertyType
, इसी क्रम संचालन के शब्दार्थ को प्रतिबिंबित नहीं करते हैं। हम उन प्रकारों के लिए प्रथम श्रेणी के डिजाइन बनाएंगे। - फ्लो एरर सप्रेशन बहुत मोटे होते हैं।
$FlowFixMe
एक प्रकार की त्रुटि को दबाने के लिए कोड की एक पंक्ति के ऊपर जोड़ना वास्तव में उस कोड द्वारा शुरू की गई सभी त्रुटियों को दबा देता है, संभावित रूप से भविष्य की त्रुटियों को मास्क कर रहा है। हम त्रुटि कोड डिजाइन कर रहे हैं जो आपको कोड की समान लाइन पर एक और त्रुटि छिपाए बिना विशिष्ट त्रुटियों को दबाने की अनुमति देगा। और हम एक त्रुटि की प्राथमिक स्थिति के लिए दमन को आगे बढ़ाएंगे, एक परिभाषा से जुड़ी एक दमन को त्रुटियों को छिपाने से रोकेंगे जहां उस परिभाषा का उपयोग किया जाता है। - जेनेरिक प्रकार और फ़ंक्शंस में वर्तमान में अप्रत्याशित व्यवहार होता है, जेनेरिक प्रकार के पैरामीटर अपने दायरे से बचने में सक्षम होते हैं और जेनेरिक फ़ंक्शंस को कॉल-साइट से बहुत दूर नए सीमाएं जमा करने में सक्षम होते हैं। हम जेनेरिक कार्यों के लिए नए व्यवहार को डिजाइन कर रहे हैं, जिसमें जेनेरिक कार्यों में त्रुटियों का अधिक विश्वसनीय पता लगाना, एस्केप प्रकार के मापदंडों को रोकने के लिए एक परीक्षण, और फ़ंक्शन कॉल सुनिश्चित करने के लिए एक जांच ठीक से विवश है।
फ्लो टीम ने पिछले साल बड़े पैमाने पर प्रदर्शन में सुधार किया , जैसे कि हमारे रीटेक समय को 70% तक कम करना। हमने अपने प्रदर्शन सुधारों के बारे में फेसबुक डेवलपर्स से सकारात्मक प्रतिक्रिया प्राप्त की है। जैसे ही हमारे जावास्क्रिप्ट कोडबेस बढ़ते हैं, हम प्रदर्शन पर लाइन रखने का लक्ष्य रखते हैं। हम सभी स्थितियों में फ़्लो की मेमोरी के उपयोग को कम करने के लिए भी काम कर रहे हैं।
बंद होने को
2020 में, फ्लो टीम एक डेवलपर अनुभव प्रदान करेगी जो उद्योग की विश्वसनीयता, सुविधा पूर्णता और प्रसन्नता के व्यापक मानकों के साथ है। इस डेवलपर अनुभव के हिस्से के रूप में, हम बुनियादी बातों में सुधार करना जारी रखेंगे: स्मृति उपयोग और विश्वसनीयता। हम सबसे अनुरोधित IDE संपादित करें और सुविधाएँ ब्राउज़ करेंगे। और हम डेवलपर्स के लिए सुरक्षित, सही कोड लिखना आसान बनाने के लिए फ्लो के प्रकार की प्रणाली को बढ़ाएंगे।
हम आपके साथ इस ब्लॉग पर , GitHub पर , और हमारे फ़्लो टाइप टाइप डिस्क्स चैनल में संपर्क बनाए रखेंगे ।