زيادة الاعتماد على C++ المصدر المفتوح المشروع ؟

StackOverflow https://stackoverflow.com/questions/125597

  •  02-07-2019
  •  | 
  •  

سؤال

دفعة من المفترض أن يكون على معيار غير معيار C++ مكتبة كل C++ يمكن للمستخدم استخدام.هل من المعقول أن نفترض أنه المتوفرة مفتوحة المصدر C++ المشروع ، أو هو كبير التبعية بعيد ؟

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

المحلول

أساسا سؤالك يتلخص "هل من المعقول أن يكون [مكتبة xyz] كما التبعية ل C++ مشروع مفتوح المصدر."

الآن النظر في الاقتباس التالي من Stroustrup والجواب هو حقا عدم التفكير:

دون مكتبة جيدة معظم المهام مثيرة للاهتمام من الصعب القيام به في C++;ولكن بالنظر إلى مكتبة جيدة تقريبا أي مهمة يمكن أن تكون سهلة

على افتراض أن هذا هو الصحيح (و في تجربتي هو) ثم كتابة بحجم معقول C++ المشروع دون تبعيات هو اكيد غير معقول.

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

إذا كان البرنامج لا يمكن حتى الاعتماد على دفعة لا يمكن أن تعتمد على أي المكتبة.

نصائح أخرى

نلقي نظرة على http://www.boost.org/doc/tools.html.على وجه التحديد bcp أداة من شأنها أن تأتي في متناول اليدين إذا كنت ترغب في تضمين دفعة الخاص بك-تبعيات إلى المشروع الخاص بك.مقتطف من موقع على شبكة الإنترنت:

"الأداة المساعدة bcp هو أداة لاستخراج مجموعات فرعية من دفعة, انها مفيدة دفعة المؤلفين الذين يرغبون في توزيع مكتبة على حدة من دفعة ، ومن أجل تعزيز المستخدمين الذين ترغب في توزيع مجموعة فرعية من دفعة مع تطبيقها.

bcp يمكن أيضا التقرير على أي أجزاء من دفعة التعليمات البرمجية الخاصة بك يعتمد على ما رخص تستخدم من قبل تلك التبعيات."

طبعا هذا يمكن أن يكون بعض السلبيات لكن على الأقل يجب أن يكون على بينة من إمكانية القيام بذلك.

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

الحديث البرمجيات مفتوحة المصدر يبني الكثير على أنظمة أخرى.في دراسة حديثة, ، من خلال تتبع تبعيات فري حزم ، أنشأنا أن 12,357 الموانئ حزم في فري 4.11 النظام في مجموع 21,135 مكتبة تبعيات;أي أنها تتطلب المكتبة ، وغيرها من 52 المكتبات التي هي جزء من النظام الأساسي ، من أجل تجميع.المكتبة تبعيات تتألف 688 المكتبات المختلفة ، في حين أن عدد من مختلف المكتبات الخارجية المستخدمة من قبل مشروع واحد تتراوح بين 1 و 38 ، مع وضع القيمة 2.وعلاوة على ذلك ، 5,117 مشاريع تستخدم خارجي واحد على الأقل مكتبة 405 مشاريع تستخدم 10 أو أكثر.

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

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

كدي يعتمد أيضا على دفعة.

ومع ذلك فإنه يعتمد في الغالب على أهدافك ، وحتى أكثر من ذلك على الجمهور المستهدف الخاص بك بدلا من نطاق المشروع.على سبيل المثال TinyJSON (المشروع صغير جدا) ، هو ما يقرب من 100 ٪ دفعة, ولكن هذا جيد لأن API ذلك يوفر دفعة قوية مثل تستهدف تعزيز المبرمجين التي تحتاج سلمان الارتباطات.ومع ذلك كثيرة أخرى سلمان المكتبات لا تستخدم دفعة لأنها تستهدف الجماهير.

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

  • تحرير: السبب في أننا لا يمكن استخدامه في العمل لأن لدينا البرنامج أن المحمولة إلى حوالي 7 مختلفة منصات عبر 4 المجمعين.لذلك لا يمكننا استخدام دفعة لأنه لم ثبت أن تكون متوافقة مع جميع أهدافنا ، السبب هو التقنية واحدة.(نحن بخير مع مفتوحة المصدر وزيادة رخصة جزء ، كما نستخدم دفعة أشياء أخرى في مرات)

فوائد استخدام دفعة عند كتابة رمز C++ أنها تفوق بكثير تعقيد إضافي توزيع التعليمات البرمجية مفتوحة المصدر.

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

لجعل تعقيد أقل قليلا عن الآخرين ، وأنا تشمل إصدار بنيت قبل المكتبات دفعة الثعبان بحيث كل ما عليك القيام به هو توفير دفعة في وتشمل الدلائل.

وأود أن أقول نعم.سواء ماندريفا (القبعة الحمراء على أساس) و أوبونتو (دبيان القائم) قد حزم دفعة libriaries.

أعتقد وظائف واسعة النطاق التي تعزز توفر و كما تقول هو معيار غير معيار C++ مكتبة يبرر ذلك كما تبعية.

للأسف نعم ، أوبونتو انهم المتاحة بسهولة ولكن RHEL 4&5 كنت دائما تقريبا انتهى يجعلها من جذر.انهم كبيرة مكتبات كبيرة حقا...مثل استخدام السكك الحديدية ارتفاع عند بعض الأحيان كل ما تحتاجه حقا هو طبعة.

كل هذا يتوقف على الطريقة التي كنت تنوي استخدام دفعة.كما Diomidis قال: إذا كنت تنوي استخدام بعض غير تافهة مرافق من دفعة فقط على المضي قدما.استخدام المكتبات ليست جريمة.

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

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