Autofixture: مناقشة: بادئة مساحة الاسم "Ploeh"

تم إنشاؤها على ٢ أبريل ٢٠١٧  ·  32تعليقات  ·  مصدر: AutoFixture/AutoFixture

من خلال فتح هذه التذكرة ، أريد أن أفهم موقفنا فيما يتعلق بمساحة الاسم "Ploeh.AutoFixture" لدينا حاليًا في AutoFixture وما هي رؤيتنا بشأنه في المستقبل. لقد نشأ هذا السؤال

هناك طريقتان يمكن أن نتصرف بها - احتفظ بها كما هي أو أزل البادئة Ploeh . كل خيار له هذه الإيجابيات والسلبيات.

احتفظ بها كما هي

الفكرة هي الاحتفاظ بالبادئة Ploeh في جميع مساحات الأسماء في الوقت الحالي ، على الرغم من حقيقة أن Mark ليس صاحب الريبو أكثر من ذلك.

__النماذج: __

  1. سيؤدي ذلك إلى تخليد استثماراتploeh في هذا المشروع لأنها كانت كبيرة جدًا.
  2. لن يؤدي ذلك إلى حدوث تغييرات فاصلة أثناء الترحيل إلى v4 .

__سلبيات:__

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

قم بتغيير البادئة

الخيار هو تغيير جميع الملفات في جميع المشاريع وإزالة البادئة Ploeh . من الناحية الفنية ، من السهل القيام بذلك ، لذا فإن السؤال يتعلق فقط بقرارنا.

إيجابيات وسلبيات الخيار _Keep as is_:

__النماذج: __

  1. ملكية. سيكون من الواضح أن AutoFixture هي منظمة قائمة بذاتها تدير المشروع بنفسها. لا يقود مارك (بلويه) المشروع أكثر. كما أن عددًا أقل من الناس يعتقدون أن هذا المشروع ينتمي إلى مارك.
  1. مساحة اسم مبسطة. سيؤدي ذلك إلى إزالة الكلمات غير الضرورية من مساحة الاسم ، وبالتالي تقليل عمليات استيراد مساحة الاسم.

__سلبيات:__

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

بادئ ذي بدء ، أود أن أسمع رأي

أود أيضًا إشراك لاعبين من الفريق الأساسي: ecampidoglio و moodmosaic وadamchester.

بعد أن نقرر ، سنواجه مشكلة في قرارنا ، لذا يمكننا لاحقًا إعادة توجيه أي شخص يسأل / لا يوافق هنا :)

question

التعليق الأكثر فائدة

يبدو غير ممتن فيما يتعلق بمرقس.

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

ال 32 كومينتر

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

👍 لتغيير مساحة اسم الجذر إلى AutoFixture في نسخة مقطوعة.

لا أمانع في الاحتفاظ بمساحة اسم Ploeh. الملكية لا تتعلق و
تتغير مساحة الاسم على الأشياء التي تعمل بشكل مثالي ، لماذا ..؟

يوم الأحد ، 2 أبريل 2017 الساعة 14:04 كتب آدم رالف [email protected] :

👍 لتغيير مساحة اسم الجذر إلى AutoFixture في نسخة مقطوعة.

-
أنت تتلقى هذا لأنك مشترك في هذا الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/AutoFixture/AutoFixture/issues/745#issuecomment-290999395 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AAwCv_G4V_0nKgVTPpSAOpmMAQ8BMJQ6ks5rr9UpgaJpZM4Mw1jd
.

أوافق على التحليل العام (الإيجابيات والسلبيات الموضحة أعلاه).

كما لاحظ العديد من الأشخاص هنا ، فإن تغيير مساحة الاسم سيكون تغييرًا جذريًا. OTOH ، يبدو تغيير مساحة الاسم بين الإصدار 3 والإصدار 4 قابلاً للدفاع على الأقل ، بسبب التغيير في الحوكمة. سيكون من الأصعب بكثير الدفاع عن إزالة "Ploeh" بين الإصدار 4 والإصدار 5.

إذا كنت تريد إزالة "Ploeh" من مساحة الاسم ، فقد حان الوقت الآن للقيام بذلك.

ploeh شكرا على الرد. سؤال آخر لك - ما هو الخيار الذي تفضله شخصيًا؟ :) أعلم أن هذا سؤال صعب بعض الشيء ، لكنني أعتقد أنني لست الشخص الوحيد الذي يهمه الأمر ، لأنك مؤسس (أو شريك مؤسس ، لست متأكدًا: flushed :).

أفضل أن تتوصل إلى القرار الذي تعتقد أنه الأفضل للمشروع للمضي قدمًا 😉

من منظور خارجي ، يمكنني القول أن وجود مساحة الاسم Ploeh.Autofixture جعل استخداماتي الأولى للمكتبة أصعب قليلاً لأن مساحة الاسم غير مرتبطة إما باسم الحزمة أو بالمشروع هنا على GitHub.

من المفاجئ كتابة using Auto... والحصول على قائمة فارغة من Intellisense.

أتفق معKralizek.
لكن مشكلة إعادة تسمية المشروع إلى Fixture.Net (على الرغم من أنني كنت أؤيد هذه الخطوة شخصيًا) قد تعني الانفصال عن اسم مجتمع .NET على نطاق واسع ومعروف جيدًا.

موافق على ما كتبه ploeh

إذا كنت تريد إزالة "Ploeh" من مساحة الاسم ، فقد حان الوقت الآن للقيام بذلك.

بالطبع ، قد يحدث هذا فقط في الفرع v4 .

يعد تغيير مساحة الاسم أمرًا سهلاً إلى حد ما ، والبحث والاستبدال ويتم القيام به في شفرة المصدر الخاصة بك.

تكمن المشكلة في nuget إذا كانت الحزم الأخرى تستخدم AutoFixture ولا تحتوي على محدد الإصدار الصحيح في nuspec ، فسوف ينكسر هذا أيضًا. ولكن في الوقت الحالي ، يمكن للمستخدم العودة بسهولة إلى AutoFixture 3.x. يمكن معالجة هذا في التوثيق أو منشور مدونة أو أيًا كان.

أنا أقوم بإزالة Ploeh من Namespace ، فأنا لا أحب مطلقًا الأسماء الشخصية في Namespace ، لقد فعلت ذلك في وقت مبكر من مشاريعي ، وكرهتني لفعل ذلك ؛)

إذا كانت الحزم الأخرى تستخدم AutoFixture ولا تحتوي على محدد الإصدار الصحيح في nuspec ، فسوف ينكسر هذا أيضًا

لن أقلق بشأن ذلك. توجد نفس المشكلة لكل نسخة معطلة. إذا اختارت الحزم النهائية عدم وضع حد أعلى حصري للإصدار الرئيسي التالي ، على سبيل المثال <dependency id="AutoFixture" version="[3.0,4.0)" /> ، فإنها تدعو هذه المشكلة في كل مرة يتم فيها إصدار إصدار رئيسي من AutoFixture.

abatishchev هل Fixture.Net من مناقشة أخرى؟ سأكون سعيدًا جدًا بمجرد تغيير مساحة الاسم إلى AutoFixture

moodmosaic هل يمكنك أيضًا إضافة موقفك حول هذا؟ أعتقد أننا بحاجة إلى جميع آراء المشرفين الأساسيين لاتخاذ القرار النهائي.

Ι فعلته بالفعل.

moodmosaic رأيت هذه الإجابة ، لكني لست متأكدًا من أنني حصلت على موقعك. هل تصوت للاحتفاظ بمساحة الاسم أو إزالتها؟ :)

أنا أصوت لإبقائها. أقل اضطرابًا.

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

moodmosaic رأيت هذه الإجابة ، لكني لست متأكدًا من أنني حصلت على موقعك.

سأكون بخير من قبلي ، إذا تمت إعادة تسمية مساحة اسم الجذر إلى AutoFixture فقط في v4 .

بينما أقف إلى جانب تصويتي السابق للاحتفاظ بمساحة الاسم Ploeh ، فأنا على ما يرام مع إزالته إذا كان هذا ما يريده معظم الناس.

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

ecampidoglio ، كنت أشعر بالعواطف أيضًا ، لكنني أعتقد أن الأمر أكثر "صحيحًا" بمجرد _AutoFixture_ في الإصدار 4 ...

moodmosaic شكرا على الرد ، نفس الشيء يحدث لي في الواقع. كلما تعلمت هذا المشروع ، كلما رأيت وأدرك مقدار العمل الذي قام به مارك هنا - عدد كبير من المناقشات المختلفة ، والتعديلات الطفيفة ، والردود على SO ، إلخ. يبدو غير ممتن فيما يتعلق بمارك.

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

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

zvirja أعتقد أنك أساءت فهم تعليقي السابق :

أنا بخير مع إزالته إذا كان هذا ما يريده معظم الناس.

لذا ، نعم ، أفضل الاحتفاظ بها ولكني موافق على مساحة الاسم AutoFixture في الإصدار 4. 😉

رأيي هو في الأساس نفس ecampidoglio - أفضل الاحتفاظ AutoFixture في الإصدار 4.

يبدو غير ممتن فيما يتعلق بمرقس.

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

شكرا لك على الرد ، مارك!

بالنظر إلى جميع الردود أعلاه وبالنظر إلى أن الفريق الأساسي لا يمانع في تغيير مساحة الاسم ، سأضيف هذا إلى نطاق v4.

الشيء الآخر الذي أغفلت عن السؤال عنه - أسماء التجميع. يبدو أن أسماء التجميعات حاليًا تبدأ بـ Ploeh أيضًا. إذا أزلنا بادئة مساحة الاسم ، فمن المنطقي إعادة تسمية التجميعات أيضًا (على سبيل المثال من Phoeh.AutoFixture.dll إلى AutoFixture.dll ). أعتقد أن NuGet ستتعامل مع هذا التغيير بأمان. الشيء الوحيد الذي يمكن أن نقلق بشأنه هو أن هذه ستكون هوية تجميع جديدة وسيكون من المستحيل إجراء إعادة توجيه التجميع من الإصدار 3 إلى الإصدار 4.

ما رأيك في moodmosaic و adamchester و ecampidoglio - هل لديك اعتراضات بشأن إعادة تسمية التجميع؟ يبدو أنه تغيير مهم ، لكن ليس جاهزًا لتقييم مقدار ذلك.

بمجرد إعادة تسمية مساحات الأسماء في الإصدار 4 ، سيكون إعادة توجيه ربط التجميع إلى الإصدار 4 بلا معنى. لهذا السبب ، ولكي تكون متسقًا ، أعتقد أنه من المنطقي إعادة تسمية التجميعات إلى AutoFixture (. *).

نقطة جيدة ، لقد فاتني ذلك. في الواقع ، ستكون جميع الأسماء الكاملة للنوع مختلفة ، لذا فإن إعادة التوجيه لا معنى لها. ما لم يكن لدى adamchester و ecampidoglio مخاوف أخرى -

منتهي! ستتم إزالة مساحة الاسم "Ploeh" وبادئة اسم التجميع من الإصدار 4 ، بحيث تبدأ بـ "AutoFixture" بدلاً من ذلك. يسمح هذا التغيير بعكس الملكية المحدثة حيث يتم الآن تطوير المنتج بواسطة فريق AutoFixture فقط.

ضع في اعتبارك أن هذا يكسر خط الاستمرارية فيما يتعلق بالتجميع. أي لن تحتوي الحزمة الجديدة على نسخة جديدة من التجميع. بدلاً من ذلك ، ستتم إزالة التجميع السابق واستبداله بتجميع جديد تمامًا بهوية جديدة. هذا يعني أنه لا يمكن عمل أشياء مثل عمليات إعادة التوجيه الملزمة بين التجميع الموجود في الحزمة 3.x والتجميع الموجود في 4.x.

ربما هذه ليست مشكلة ، لكنني اعتقدت أنها تستحق الإشارة إليها.

راجع للشغل - هل تحققت من سلوك NuGet عند ترقية الحزمة؟ بالنسبة لمشاريع نمط SDK ، أعتقد أن كل شيء سيعمل على ما يرام ، نظرًا لأن المشروع يحتوي فقط على عنصر <PackageReference> يشير إلى الحزمة بدلاً من التجميعات. ولكن مع النمط القديم csproj ، قد يكون من المفيد التحقق من قيام NuGet بإجراء التغيير المطلوب على مرجع التجميع ، من تجميع إلى آخر.

adamralph شكرا على مخاوفك!

هذا يعني أنه لا يمكن عمل أشياء مثل عمليات إعادة التوجيه الملزمة بين التجميع الموجود في الحزمة 3.x والتجميع الموجود في 4.x.

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

راجع للشغل - هل تحققت من سلوك NuGet عند ترقية الحزمة؟

نعم ، لقد اختبرت ذلك بالفعل وهو يعمل بشكل جيد. الشيء الوحيد الذي عليك القيام به هو تشغيل استبدال النص لإصلاح using Ploeh.AutoFixture إلى using AutoFixture . بعد ذلك المشروع يتم تجميع واختبارات بنجاح.

الشيء الوحيد الذي عليك القيام به هو تشغيل استبدال النص لإصلاح استخدام Ploeh.AutoFixture لاستخدام AutoFixture. بعد ذلك تم تجميع المشروع بنجاح واختبار التشغيل بنجاح.

نعم بالضبط.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات