سؤال

لقد وجدت هذا التعليق في Labview إرشادات برنامج تشغيل الصك (القسم 6.2):

إذا كنت بحاجة إلى المزيد من المحطات أكثر من الأنماط الموصى بها، إعادة النظر في تجميع عناصر التحكم والمؤشرات في السادس. باستثناء الخطأ في الخطأ والخطأ، تجنب استخدام المجموعات لتقليل عدد المحطات. غالبا ما تتطلب المجموعات استخدام المستخدم وتجنبها من الكتلة.

إذا كانت الصكوك الوطنية تثبيط المجموعات، فما هو "إعادة النظر في تجمع عناصر التحكم والمؤشرات على VI" يعني؟

أنا حقا أحب استخدام المجموعات، وأعتقد أنهم قد حسنوا تجاهي. هل فاتني شيء؟

هل كانت مفيدة؟

المحلول

أعتقد أن هذا ربما يكون سوء الصياغة في وثائق NI. إذا كان من المنطقي أن يتم كتابة عدد من القيم المختلفة أو القراءة من الصك أو برنامج تشغيله في واحد يذهب ثم الكتلة هو نوع البيانات المناسب. تريد محاولة تجنب الموقف حيث يتعين على المستخدم قراءة البيانات الموجودة في الكتلة، حتى يتمكنوا من كتابةها مرة أخرى مع تغيير قيمة واحدة. المبادئ العامة الجيدة الأخرى لاستخدام المجموعات، بالتأكيد في كود القابلة للتوزيع / القابل لإعادة الاستخدام مثل برنامج تشغيل الصك، هي:

  • حفظ الكتلة كخطوبة صارمة
  • دائما حزمة / عناصر الكتلة غير المتصلة بالاسم.

بهذه الطريقة يمكنك تغيير ما هو في الكتلة دون كسر الرمز الموجود.

نصائح أخرى

تعد تجميع وتقليل معالج تافهة نسبيا وضرب الذاكرة، لذلك لا يقلق الأداء بالقلق إلا إذا كنت تعمل في حلقة ضيقة.

ومع ذلك، عندما يبدأ جزء الموصل في البحث مثل النيص المتنوع، سيبدأ الكثير من الناس في إسقاط كل شيء في إدخال "megacluster". في حين أن هذا يعمل (لفترة من الوقت)، فإنه يؤدي في النهاية إلى الكثير من الألم الذاكرة غير الضرورية وآلام تصحيح الأخطاء، حيث أن الأمور التي ليست حاجة إليها في وظيفة لا تزال تم نسخها في التعليمات البرمجية.

أسوأ من ذلك، يمكن للمرء أن ينتهي مختلف megaclusters لمختلف السادس، ثم تحتاج إلى الترجمة بين الهياكل.

عادة ما أجد أنه أفضل، عندما تبدأ المدخلات والمخرجات في الحصول على مفرطة، والعودة ويعيد عددا سادسا إلى عدة وظيفة أصغر وأكثر تحديدا.

مجموعات كوعي بيانات بخير. ما يغيره NI هو البيانات التجارية في مجموعات الغرض الوحيد من اجتياز البيانات إلى نظام أساسي. إذا كان لديك بيانات يجب مشاركتها بين العديد من تجاه (أو فرعية)، فعليك أن تفكر في استخدام عالمي وظيفي، أو تغيير هندسة المعمارية الخاصة بك لتطبيع بياناتك.

تماما مثل مجموعة بيانات مجموعات الأخطاء وإخراج الأخطاء منطقيا وتسمح لمعلمات السادس الهرمية، أعتقد أن استخدام المجموعات يجب أن يتبع هذا النموذج أيضا. وأنا أوافق، يجب تجنب "مجموعات ميجا". شخصيا، كمطور سابق C ++، أنا لا أحب Globals (رغم أنهم لا مفر منه في بعض الحالات). أكتب الكثير من كود Labview صريح متعدد الخيوط، أو التواصل بين مؤشرات الترابط بين قوائم انتظار الرسائل. (أعتقد أن هذا إرث لأيام مطوري Windows.) بدون كتلة، أو نوع def.، سيكون المراسلة مستحيلا. وبالتأكيد، أنا بالتأكيد استخدام المجموعات لتقليل عدد الدبابيس على المحطة. لا أرى مشكلة في ذلك طالما أنها ليست مفرطة وتجعل معنى منطقي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top