أي طريقة سريعة لتحويل JSP التطبيق المصابة scriptlet في الدعامات؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

لقد حصلت على التطبيق القديمة إلى دعم. انها محض JSP، أي JSP يفتح اتصالات، لا منطق الأعمال، تقدم أشكال (عادة إلى نفس JSP)، وهلم جرا. انها 400+ الصفحات، مع بعض الصفحات كبيرة مثل 100K.

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

لا أحد المتحمسين لريفاكتور كل صفحة يدويا. كانت لدينا فكرة أنه قد يكون في مكان ما هناك أداة أن يفعل ما لا يقل عن إعادة بيع ديون جزئي، على سبيل المثال يخلق ActionForm على أساس request.getParameter () يدعو في JSP، يتحرك كل رمز جافا في العمل (على الرغم من uncompilable)، يستبدل بعض "<٪ إذا" مع <ج: إذا العلامات، وهلم جرا.

ووالعمل المتبقي لا يزال مملة جدا، ولكن على الأقل لديها نطاق أصغر بكثير.

لا أحد يعرف هذه الأداة؟

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

المحلول

وأنا لا أعتقد أنه قيمته ذلك. كنت تقول لديك 400+ صفحات مع بعض خارج 100K؟

تحليل 100K !!!

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

لصفحات التي هي 100K، هم المرشحين الجيدين من وحدات خاصة بهم.

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

والجزء الجيد هو؟ ما وحدات سيذهب أولا؟ ما غيرها لا ينبغي أن تتغير؟

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

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

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

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

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

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