it-swarm.asia

هل هي سيئة لتطوير ضد بيانات الإنتاج؟

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

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

إذن لماذا تتطور هذه الممارسة السيئة على الموقع المباشر؟

10
plntxt

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

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

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

سأرجع إلى مسؤول قاعدة البيانات الخاص بي في مثل هذه الحالات ، إذا لم يكن هناك DBA "رسمي" ، فقد أخطأت في جانب الحذر. إنها بسيطة بما يكفي لإنشاء قاعدة بيانات تطوير ، حتى بالنسبة لي. في الفريق أمر حيوي. إذا فشلت في ذلك ، إذا كنت مصراً على تحسين قاعدة بيانات واحدة فقط ، فيمكنك بادئة جداول قاعدة بيانات التطوير الخاصة بك بـ DEV_ وتشعر بتحسن كبير. نعم ، يتطلب ذلك بعض التغييرات في الكود ، ولكن في التطوير ، إضافة بعض المتغيرات أثناء التطوير $debug = true ، إلخ ، عادة ما يستحق كل هذا الجهد.

الكثير من الطرق لمقاربة هذا. انها تعتمد اعتمادا كبيرا على وضعك.

17
artlung

لا تريد التطوير مقابل بيانات الإنتاج على خادم الإنتاج الخاص بك. هناك بضعة سبب كبير.

  1. تطوير يبطئ مربع الإنتاج الخاص بك ويخلق نقاط الضعف. ماذا يحدث إذا تركت جهاز الكمبيوتر الخاص بك مقفلاً وابتعد؟
  2. إذا ارتكبت خطأ ، يمكن للأشخاص الذين يزورون موقعك رؤيته.
  3. إذا قمت بإجراء أي نوع من تحديث البيانات داخل معاملة في قاعدة البيانات الخاصة بك ولم تلتزم بها على الفور أو استغرقت المعاملة بعض الوقت حتى تنتهي ، فسوف تضع قفلًا على جميع الجداول المعنية وقد تتسبب في حدوث مهلة .
  4. بعض أنظمة قواعد البيانات ، وبالتحديد SQL Server ستقوم بأقفال الجدول في بعض الأحيان على عبارات SELECT وحدها! مما يعني أنه يمكنك إعطاء الناس مهلة أو صفحات خطأ على موقعك عن غير قصد.

لن أمارس أعمال التطوير في صندوق مباشر إن أمكن. أفضل رهان هو عمل نسخة احتياطية من قاعدة البيانات والصفحات والعمل مع النسخة ثم دفع التحديثات الخاصة بك. إحدى الأدوات التي ساعدتني للطن هي Msft's SyncToy.

11
Ben Hoffman

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

7
Echo

إذا كانت لديك بيانات إنتاج متاحة ، فمن المعقول استخدامها لاختبارها ، ولكن استخدم قاعدة بيانات اختبار منفصلة مع نسخة من تلك البيانات. بخلاف ذلك ، ستعمل أشياء كثيرة لسجلات الاختبار القليلة "blabla" الخاصة بك ولكن ليس لسيناريو حقيقي.

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

3
devmake

إذا كنت لا تقود السيارة بدون حزام الأمان ، فلا تطوّر بيانات الإنتاج. مجرد قضية السلامة.

3
MrChrister