DEVIC DEV & DESICATION DEVER: ما هي الممارسات السيئة الشائعة في تطوير طبقة البيانات؟

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

سؤال

أنا أبحث حاليًا عن أفضل الممارسات (على مستوى عالٍ معقول) لتصميم التطبيق للأنظمة القابلة للصيانة للغاية والتي تؤدي إلى الحد الأدنى من الاحتكاك. من خلال "طبقة البيانات" ، أعني تصميم قاعدة البيانات ، ومحبوط علاقة الكائن (ORMS) وتقنيات الوصول إلى البيانات العامة.

من تجاربك ، ما الذي وجدته هو الأخطاء الشائعة والممارسات السيئة عندما يتعلق الأمر بتطوير طبقة البيانات والمقاييس التي اتخذتها / وضعت في مكانها / أو يمكن أن توصي بها لجعل طبقة البيانات مكانًا أفضل لتكون من مطور إنطباع؟

قد تتضمن الإجابة على سبيل المثال ما يلي: ما هي الأسباب الأكثر شيوعًا للبيانات البطيئة والقابلة للتطوير والقابلة للتطوير والقابلة للتمديد؟ + ما هي التدابير التي يمكن اتخاذها (سواء كان ذلك في التصميم أو إعادة البناء) لعلاج هذه المشكلة؟

أنا أبحث عن قصص الحرب هنا وبعض النصائح الحقيقية في العالم الذي يمكنني بناؤه في وثائق التوجيه المتاحة للجمهور والعينات.

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

المحلول

سحر.

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

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

نصائح أخرى

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

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

بالطبع ، في الحالات التي تكون فيها متطلبات البيانات المستمرة ضئيلة ، هذا غير مهم.

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

كانت هذه نتيجة مباشرة أو رسم الخرائط ؛ كان أسوأ تعقيد في المخطط (وبالتالي الأداء الضعيف) بسبب وجود الجداول التي تم إنشاؤها فقط كتحف لعملية تصميم OO - وهي تعكس تخطيطات الشاشة ، وليس علاقات البيانات.

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