هل من المنطقي استخدام أدوات Google Web Toolkit (GWT) كإطار Web Java بالكامل

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

سؤال

أنا مهتم بإمكانية أن تكون GWT بمثابة أساس طبقة العرض التقديمي بأكملها.

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

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

المحلول

عملت مع GWT منذ حوالي عام. في ذلك الوقت بدا وكأنه فكرة رائعة، مع عدد من التحذيرات:

  • كان لدي مشاكل "GoTcha" مع بعض أجزاء API، والتي ربما كانت مرتبطة بحقيقة أنك ترميز كما لو كنت في Java عندما تكون في الواقع تكتب فعلا لبيئة مترجمة بشكل منفصل يعمل مثل Java، لذلك تقوم بإجراء بعض الافتراضات غير الصحيحة (في هذه الحالة، وقم بتمرير القيم المتداخلة إلى النهاية الأمامية). أعتقد أن هناك آخر تم إعادة كتابة البرامج النصية الخاصة بي لاستخدام JVM 32 بت لتجميع GWT.
  • قضيت بعض الوقت في محاولة تعديل المظهر - لم ننشر مطلقا مشروعا نهائيا لذلك أنا لست متأكدا من مقدار العمل الذي كان قد اتخذه للوصول إلى المستوى المهني، ولكن يبدو (منطقيا) كما لو كان مماثلة لتشغيل واجهة سوينغ. ربما أكثر قليلا غير عملي، بصريا، من HTML.
  • لأن AJAX مخفية منك في المنتج النهائي، كان لدي بعض المخاوف بشأن ما قد أقوم به إذا كان الأداء ضعيفا.

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

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

نصائح أخرى

لقد ذكرت أن GWT ستعامل مع الطبقة العرضية. هل ستقوم بطبقة العمل في جافا أيضا؟ إذا كان هذا هو الحال، أود أن أشير إليك نحو مجموعة أدوات مطحنة., ، هذا يقوم بالضبط: إنها مجموعة أدوات تستخدم GWT لتقديم مكونات واجهة المستخدم الرسومية، مما يسمح لك بإجراء تطبيقاتك بالكامل في Java. أعتقد أن المصطلح الذي يحاوله العملة هو "مدفوعة بخادم RIA".

لقد جئت من خلفية PHP، لكن على الفور جاء مثل مجموعة الأدوات. ولكن من الأفضل أن أقول أي شيء أكثر واتركك القيام به قراراتك الخاصة.

إلزلق: أنا أعمل في مطحنة عليه، رغم أن هذا غير ذي صلة لآرائي.

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

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

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

المزالق وجدت معها يمكنك أن تجد هنا:

أكبر المزادات GWT؟

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

تحتاج إلى نوع من الإطار الجانبي العميل أو ستنتهي بكتابة الكتابة (كما فعلنا!): يتم بناء تطبيقنا على مداخل GWT. (مصدر مجاني ومفتوح).

نحن نستخدم شظايا HTML ل Bransning التطبيق لنشرات مختلفة ويتم تخزين تخطيط كل "صفحة" في ملف XML.

بعض المعلومات الجيدة حول ذلك على هذا الفيديو المجلوئي: http://raibledesigns.com/rd/entry/my_drunk_on_software_interview.

GWT في تكنولوجيا المعلومات هي مكتبة تحسين UI، وليس إطارا. إذا كنت تستخدمه باستخدام محرك Google App، فسيكون لديك إطار أساسي. (هذه قصة مختلفة، وبينما نظرت إليها، قررت عدم تضمين ذلك في الهندسة المعمارية الخاصة بنا).

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

بقدر ما يذهب النملة أي مشاكل مع مترجم 64 بت.

u003Cjava failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler" dir="${dir.GWTCompile}"> <- dir.gwtcompile هو الدليل الذي يحتوي على GWT ->u003Cclasspath> classpath. u003C/classpath>u003Cjvmarg value="-${gwt.maxMem}"/>u003Carg value="@{gwt.baseModule}" />u003Carg value="DEBUG" />u003Carg value="-strict" />u003C/java>

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

ما يفعله GWT أثناء عملية الترجمة: إنه يقوم بإنشاء العديد من النسخ من مكتبات JS لمجموعات متصفح مختلفة (أحد الأسباب التي يمكن أن يستغرقها دقائق لتجميعها)، يمكنك إضافة / إزالة هذه حسب الحاجة. يؤدي هذا إلى تقليل حزمة JS التي يجب تنزيلها ويزيد من السرعة لأنها لا يجب أن يكون لديك تلك سيئة إذا كان ذلك (EI) هذا آخر إذا (FF) ذلك. ومع ذلك، عند القيام بتصحيح الأخطاء المحلي (على الأقل في الكسوف)، لا يتعين عليك الانتظار، مما يسمح بمغادرة ذلك لخادم البناء (أو عندما تحتاج إلى بناء ونشر يدويا (neanderthals)).

الجانب السلبي ل GWT. نظرا لأن الجانب العميل JavaScript (بحتة تقريبا)، لا يمكنك الاستفادة منه عن الأشياء التي لا تدعمها، أو دعم أحد الإصدارات. لذلك بالنسبة للأشياء مثل iPads و iPhone، يمكنك تشغيل بعض المشكلات إذا لم تستخدم مكتبات إضافية مصممة لسجل هذه الفجوات (مثل MGWT).

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