سؤال

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

السؤال هو:هل هناك أي مفاجآت سيئة والضعف أو حفرة من السقوط الذي مبتدئ السبات الربيع يحول من المرجح أن تتعثر ؟


PS:لدينا مكتبة DAO هذا ليس متطورة جدا.أشك في أنه قد السبات ثراء, لكنه التوصل إلى نوع من النضج (أيانها لم تتغير في السنوات القليلة الماضية مشاريع انها مدرجة).

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

المحلول

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

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

الكتابة الخاصة بك إطار المغري التعليمية و متعة.ليست كبيرة في النتائج.

نصائح أخرى

لقد ندد الأطر?

هذا هو المكسرات.إذا كنت لا تستخدم الجاهزة الإطار ثم يمكنك إنشاء الخاصة بك.انها لا تزال الإطار.

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

بعض النصائح:

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

إذا كان لديك معقدة إلى حد ما قاعدة بيانات السبات قد لا يكون لك.في العمل لدينا إلى حد ما قاعدة بيانات معقدة مع الكثير من البيانات و السبات لا تعمل حقا بالنسبة لنا.لقد بدأت باستخدام iBATIS بدلا من ذلك.ومع ذلك, أنا أعرف الكثير من التنمية المحلات التجارية الذين يستخدمون السبات بنجاح - كما يفعل الكثير من العمل الناخر لك - لذا فإن الأمر يستحق النظر.

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

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

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

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

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

  1. كان DB عيب تصميم, تصميم;
  2. دافق (أو ارتكاب إذا كنت سوف) بين حذف وإدراج;

لم أتمكن من القيام به على حد سواء ، وفي نهاية المطاف التغيير والتبديل في السبات مصدر ترجمة.كان فقط 1 سطر من التعليمات البرمجية.ولكن الجهد للعثور على سطر واحد يساوي حوالي 27 أكواب من القهوة و 3 ليال بلا نوم.

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

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

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

لقد وجدت دائما السبات إلى أن يكون قليلا معقدة و من الصعب معرفة.ولكن كما JPA (جافا استمرار API) ، EJB (Enterprise Java Beans) 3.0 موجودة لفترة من الوقت أصبحت الأمور أسهل كثيرا, أنا أفضل بكثير التأشير دروسي إنشاء تعيينات عبر جافادوك أو XML.تحقق من الدعم في السبات.مكافأة إضافية هي أنه من الممكن (ولكن ليس جهد) إلى تغيير إطار قاعدة البيانات في وقت لاحق إذا لزم الأمر.لقد استخدمت OpenJPA مع نتائج عظيمة.

في الآونة الأخيرة لقد تم استخدام JCR (جافا مستودع المحتوى) أكثر وأكثر.أنا أحب أن وحدات يمكن أن حصة واحدة على تخزين البيانات التي لا يمكن أن تسمح هيكل و خصائص التطور.أجد أنه من الأسهل العمل مع العقد و خصائص بدلا من أن الخرائط بلدي كائنات قاعدة البيانات.التنفيذ الجيد هو Jackrabbit.

أما بالنسبة الربيع, انها لديها الكثير من الميزات أحب, ولكن كمية XML اللازمة لتكوين يعني أنني لن استخدامها.بدلا من ذلك أنا الاستفادة Guice والحب على الإطلاق.

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

لقد فعلت الكثير من ربيع/السبات التنمية.مع مرور الوقت الناس طريقة استخدامها على حد سواء في تركيبة قد تغيرت قليلا.الأصلي HibernateTemplate النهج وقد ثبت أن من الصعب التصحيح لأنه يبتلع يلتف وإلا مفيدة الاستثناءات ؛ التحدث إلى Hiberante API مباشرة!

يرجى الحفاظ على النظر في إنشاء SQL (تكوين التنمية تسجيل عرض SQL).وجود طبقة التجريد قاعدة البيانات لا يعني أنك لا يجب أن نفكر في SQL بعد الآن ؛ أنك لن تحصل على أداء جيد إذا كنت على خلاف ذلك.

النظر في المشروع.لقد اخترت iBatis أكثر من السبات في عدة مناسبات حيث كان لدينا صرامة متطلبات الأداء ، مجمع تراث المخططات أو جيدة DBa قادر على الكتابة ممتازة SQL.

أما بالنسبة السبات:وسيلة جيدة جدا التطبيق الذي يتعامل مع التغير السريع في مخطط قاعدة البيانات, كمية كبيرة من الجداول تفعل الكثير من عمليات الخام.تقارير الاستعلامات المعقدة المعنية هي أقل إلى حد ما التعامل معها بشكل جيد.ولكن في هذه الحالة أنا أفضل خلط في JDBC أو الأم الاستعلامات.لذلك ، من أجل الإجابة القصيرة:أنا لا أعتقد أن الوقت الذي يقضيه في التعلم السبات هو استثمار جيد (يقولون انها متوافقة مع EJB3.0 و JPA المعايير أيضا ، لكن ذلك لم يأت في المعادلة عندما تقيم للاستعمال الشخصي).

أما بالنسبة الربيع...انظر الصفراء بلوق :)

تذكر:أطر لا الرصاص الفضي, ولكن يجب أن لا إعادة اختراع العجلة إما.

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

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

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

/Ace

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

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

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

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

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

يجب أن نتفق مع العديد من المشاركات على هذا واحد.لقد استعملت على حد سواء ، على نطاق واسع في مجموعة متنوعة من الإعدادات.إذا كان بإمكاني التراجع عن القرار التصميم سيكون استخدمت السبات.ونحن في الواقع في الميزانية الإفراج في واحدة من منتجاتنا إلى مبادلة السبات على iBatis والربيع-JDBC على أفضل من كل العالمين النهج.أنا يمكن أن يكون مطور جديد الحصول على ما يصل إلى سرعة باستخدام ربيع-JDBC, ربيع-MVC, ربيع-Ioc ، iBatis أسرع مما لو كنت مجرد تكليف لهم السبات.

السبات هو أكثر تعقيدا من هذا قبلة المطور.و السماء تساعدك مع السبات إذا DBA يرى SQL التي تم إنشاؤها في قاعدة البيانات يرى ويرسل لك مع إصدارات محسنة.

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

@سليم وأنا معك مرة أخرى هذا الصباح.

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

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

قد ترغب في النظر في AppFuse للحد من التعلم الخاص بك-منحنى:إنشاء تطبيق الدراسة والتكيف ، وقبالة تذهب.

الأطر ليست شريرة.حتى Java SDK هو الإطار.

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

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

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