سؤال

أنا في بداية/منتصف المشروع الذي اخترنا أن تنفذ باستخدام GWT.وقد أي شخص واجه أي عثرات كبيرة في استخدام GWT (و GWT-EXT) التي لم تتمكن من التغلب عليها.ماذا عن أداء المنظور ؟

بعض الأشياء التي شهدناها/سمعت بالفعل وتشمل:

  • جوجل لا يجري قادرة على فهرس المحتوى
  • CSS و التصميم بشكل عام يبدو أن قليلا قشاري

تبحث عن أي ملاحظات إضافية بشأن هذه البنود أيضا.وذلك بفضل!

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

المحلول

سأبدأ بالقول أنا ضخمة GWT مروحة, ولكن نعم هناك كثير من المزالق ، ولكن معظم إن لم يكن كل تمكنا من التغلب عليها:

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

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

<set-property name="user.agent" value="gecko1_8" />

حيث gecko1_8 هو فايرفوكس 2+, ie6 هو أي وما إلى ذلك.


المشكلة: استضافت وضع بطيئة جدا (على OS X على الأقل) و لا تقترب من مطابقة 'يعيش' التغييرات التي تحصل عند تحرير أشياء مثل صفحات jsp أو القضبان صفحات وضرب تحديث في المستعرض الخاص بك.

الحل: يمكنك إعطاء استضافت وضع المزيد من الذاكرة (عموما أنا حصلت على 512M) ولكن لا يزال بطيئا ، لقد وجدت مرة واحدة تحصل جيدة بما فيه الكفاية مع GWT التوقف عن استخدام هذا.يمكنك جعل جزءا كبيرا من التغييرات ، ثم ترجمة على متصفح واحد فقط (عموما 20s يستحق من تجميع) ثم ضرب تحديث في المستعرض الخاص بك.

تحديث:مع GWT 2.0+ هذا لم يعد مشكلة ، لأن استخدام جديدة 'نمط التنمية'.يعني أساسا يمكنك تشغيل التعليمات البرمجية مباشرة في المتصفح الخاص بك في الاختيار ، وبالتالي عدم فقدان السرعة, بالإضافة إلى أنك يمكن أن الحرائق/وتفتيشها ، إلخ.

http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM


المشكلة: GWT كود جافا و لديه عقلية مختلفة إلى وضع صفحة HTML ، مما يجعل أخذ تصميم HTML وتحويلها إلى GWT أصعب

الحل: مرة كنت تعتاد على هذا ، ولكن للأسف تحويل HTML تصميم GWT التصميم هو دائما ما يكون أبطأ من القيام بشيء مثل تحويل تصميم HTML إلى صفحة JSP.


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

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


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

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


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

الحل: في حالة صفحة JSP, الصفحة الخاصة بك بالفعل المقدمة من قبل الملقم قبل أن يصبح HTML, إذا كنت يمكن أن تجعل في الواقع كل ما تبذلونه من GWT المكالمات ثم قبل تحميلها على الصفحة ، لحظة الحمل.انظر هنا لمزيد من التفاصيل:

تسريع تحميل الصفحة قبل التسلسلية الخاصة بك GWT المكالمات


لم يكن لدي أي مشاكل التصميم CSS بلدي الحاجيات ، من خارج منطقة الجزاء ، العرف أو غير ذلك, لذلك أنا لا أعرف ما الذي تعنيه بذلك كونه شرك?

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

نصائح أخرى

ونحن نعمل مع gwt ما يقرب من 2 سنوات.لقد تعلمنا الكثير من الدروس.هنا هو ما نفكر:

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

  2. استخدام gwt فقط في ملء ديناميكية أجزاء من تطبيقات الخاصة بك.حتى إذا كان لديك بعض المعقدة تفاعلات المستخدم مع الكثير من المجالات.ولكن لا تستخدم الألواح التي تأتي معها.اتخاذ الخاص بك القائمة الأسهم مصمم الموردة صفحات.انتقاء المناطق التي سوف تحتوي على ضوابط التطبيق الخاص بك.إرفاق هذه الضوابط إلى صفحة داخل onModuleLoad().بهذه الطريقة يمكنك استخدام صفحة قياسية من مصمم الخاص بك كما تفعل كل التصميم خارج gwt.

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

المعلقين الآخرين أيضا بعض الاقتراحات الجيدة.القاعدة تستخدم لإنشاء صفحات مثل كنت تفعل القياسية صفحة ويب.ثم انتقاء القطع التي تحتاج إلى أن تكون دينامية.استبدالها مع عناصر الهوية ومن ثم استخدام RootPanel.get( id ).add( widget ) لملء تلك المناطق.

العثرات التي واجهتنا:

  • في حين يمكنك الحصول على الكثير من الأميال من استخدام شيء من هذا القبيل GWT EXT, في أي وقت يمكنك استخدام هذا النوع من قشرة رقيقة فوق مكتبة جافا سكريبت, تفقد القدرة على التصحيح.أكثر من مرة كنت أضرب رأسي على المكتب لأنني لا تفقد (داخل IntelliJ المصحح) ما يحدث في GWT تحويلة جدول الصف...كل ما يمكنك رؤيته هو أنه JavaScriptObject.وهذا يجعل من الصعب جدا معرفة ما هو خطأ...

  • عدم وجود شخص في فريقك الذي يعرف CSS.من تجربتي, لا يهم أن الشخص لم يكن خبير...يكفي أن تكون لديه معرفة جيدة و يعرف الحق من حيث أن جوجل عند الضرورة.

  • التصحيح عبر المتصفحات.إبقاء العين على من عملية استضافت وضع[1][2][3] نأمل القادمة في GWT 1.6...الآن لديك فقط للحصول على الأشياء الجيدة مع استضافت الوضع ، ثم استخدام "ترجمة/Browse" زر, حيث يمكنك أن تلعب مع المتصفحات الأخرى.بالنسبة لي, يعمل على نظام التشغيل ويندوز, هذا يعني لا يمكن عرض عملي في فايرفوكس ، واستخدام الحرائق للمساعدة في قرص جعل الأمور أفضل.

  • IE6.إنه لأمر مدهش كيف مختلفة IE 6 سوف تجعل الأمور.لقد اتخذت نهج تطبيق نمط على الأبعد "المعاينة" وفقا المتصفح لدرجة أنني يمكن أن يكون لها قواعد CSS مثل:

    .my-style { /* stuff that works most everywhere */ }
    
    .msie6 .my-style { /* "override" so that styles work on IE 6 */ }
    

وأخيرا تأكد من استخدام محرر يساعدك.يمكنني استخدام IntelliJ -- انها حصلت على الكثير من GWT الذكاء.E. g. ، إذا حاولت استخدام الفئة التي لا يتم التعامل معها من قبل JRE مضاهاة ، فإنه يتيح لي أن أعرف ، إن تحديد نمط القطعة و لم يعرف هذا النمط حتى الآن ، رمز يحصل على القليل من أحمر متعرج...أو عندما تبحث في CSS, أخبرني عندما كنت المحدد متضاربة الصفات في قاعدة واحدة.(لم أجربه بعد ولكن أنا أفهم أن الإصدار 8 حتى أفضل GWT الدعم ، مثل الحفاظ على "المحلي" و "التزامن" RPC واجهات تطبيقات في المزامنة.)

GWT 2.0 ، والتي من المفترض أن يخرج في وقت ما في الأشهر القليلة المقبلة ، يحل الكثير من القضايا التي تمت مناقشتها.

  • إنشاء تخطيطات باستخدام html/xml مثل بناء الجملة
  • دينامية تحميل البرنامج النصي فقط الأساسية شبيبة سيتم تحميلها في البداية.والباقي سيتم تحميلها حسب الحاجة
  • في متصفح استضافت وضع هذا قد تأخذ الرعاية من استضافت وضع السرعة القضايا التي نوقشت ، ومن بين المزايا الأخرى
  • "مترجم تحسينات" - أسرع تجميع أمل

GWT 2.0 معاينة الفيديو في جوجل I/O

لا "غير قادر على التغلب عليها" ولكن قليلا من الألم عن شيء الأساسية.

تاريخ المعالجة:

GWT يستخدم مستنكر java.util.Date والتي يمكن أن تؤدي إلى سلوك غير متوقع عند التعامل مع التواريخ على جانب العميل. java.util.Calendar غير معتمد من قبل GWT. مزيد من المعلومات هنا.

مشكلة تتعلق الأمثلة:

سأضيف بعض النقاط التي سبق ذكرها:

  • ربط البيانات/التحقق من الصحة.GWT لا ربط البيانات والتحقق الدعم من خارج منطقة الجزاء ، على الرغم من أن هناك بعض المشاريع في هذا المجال بدأت في الظهور.سوف تجد نفسك في كتابة الكثير من هذا:
TextField fname, faddress;
...
fname.setText(person.getName());
faddress.setText(person.getAddress());
...
  • تحميل كسول.منذ gwt على جانب العميل, تحميل كسول حقا ليس خيارا.سيكون لديك التصميم الخاص بك RPCs و كائنات المجال بعناية من أجل
    • إرسال جميع بيانات الكائن المطلوب
    • تجنب حريصة على جلب جميع البيانات الخاصة بك
    • سيكون لديك أيضا للتأكد من أن كنت لا ترسل وكلاء/عدم تسلسل الكائنات. hibernate4gwt يمكن أن تساعدك مع هذه النقاط.
  • تصميم واجهة المستخدم.فمن الصعب تصور وجود واجهة المستخدم في جافا (لوحات ، أزرار ، وما إلى ذلك) في html.
  • تاريخ الدعم.GWT لا السفينة مع تاريخ الفرعي ، كما أنها لا تأتي مع أي الفرعي لطيف عناوين url أو statefull ارتباطك.عليك أن لفة الخاص بك (على الرغم من أنه لديه دعم التاريخ الرموز التي هي البداية).هذا يحدث مع جميع اياكس أدوات AFAIK.

IMHO ، GWT مفقود إطار عمل من صندوق دعم جميع المسائل المذكورة في هذا الموضوع'.

أنا أعمل على مشروع الآن يستخدم تحويلة GWT (GXT) وينبغي عدم الخلط مع GWT تحويلة.هناك فرق EXT GWT هو واحد الذي هو في الواقع التي تنتجها الشركة التي كتب ExtJS مكتبة جافا سكريبت.GWT EXT هو GWT التفاف حول ExtJS المكتبة.GXT الأصلي GWT.

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

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

لمزيد من المعلومات حول GWT EXT:http://gwt-ext.com/

لمزيد من المعلومات عن تحويلة GWT (GXT):http://extjs.com/products/gxt/

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

توصيتي هي أن استخدام GWT "الأم" القطعة على مكتبة واحدة حيث أنها قريبة في الميزات.

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

اعتدت GWT و GWT-ext معا على المشروع منذ فترة.لقد وجدت التجربة على نحو سلس جدا مثل تطوير الشبكة يذهب, ولكن نصيحتي أن يكون هذا:

لا تخلط GWT الحاجيات المحلية مع تحويلة الحاجيات.انها مربكة كما الجحيم ، حيث عادة ما تكون الأسماء هي نفس (GWT.زر أو GWText.الزر؟)

الشيء الوحيد الذي حدث لي حقا رمز أكثر تعقيدا مما أريد, أن أردت أن الفريق كان أ) حيوي قابل للتحديث ب) cascadable

GWT الأصلية لوحات ديناميكية, Ext لوحات cascadable.حل ؟ أ GWT.VerticalPanel لف GWTExt الفريق...حالة من الفوضى.:)

ولكن مهلا, يعمل.;)

أنا أؤيد تعليق من ykagano أكبر العيب هو فقدان الخامس في MVC.على الرغم من أنك يمكن فصل حقيقي واجهة المستخدم فئة من بقية من جانب العميل رمز, لا يمكنك استخدامه بسهولة في صفحة HTML التي تم إنشاؤها بواسطة جرافيك/مصمم على شبكة الإنترنت.هذا يعني أنك بحاجة إلى المطور ترجمة HTML في جافا.

الحصول على واجهة wysiwyg محرر ، فإنه سيوفر لك الكثير من الوقت.يمكنني استخدام GWTDesigner.

أكبر رأسا على عقب من GWT هو أن تكون قادرة على نسيان عبر متصفح القضايا.ليس 100% ولكن يأخذ تقريبا كل الألم بعيدا.جنبا إلى جنب مع الاستفادة من استضافتها وضع التصحيح (بدلا من الحرائق والذي يعتبر ممتاز ولكن ليس بنفس جافا المصحح) أنه يعطي المطور ميزة كبيرة في توليد مجمع اياكس التطبيقات.

و سريع في وقت التشغيل ، خاصة إذا كنت تستخدم gzip التصفية.

قليلا خارج الموضوع, لكن #gwt على قناة irc مفيد جدا في حال كان لديك مشكلة مستمرة.

GWT هي جميلة على التوالي إلى الأمام وسهلة الاستخدام.

خاصة مع صدور UIBinder للسماح GWT الحاجيات أن تكون وضعت في XML ثم ترميز-خلف في جاوة.

حتى إذا كنت قد استخدمت أخرى اياكس أو فلاش تصميم الأدوات, أو Silverlight ، إلخ ، GWT من السهل جدا على التعلم.

الرئيسية العقبة ، إن لم يكن شرك ، GWT RPC.السبب كنت ترغب في استخدام GWT بسبب GWT المتزامن RPC.وإلا لماذا لا تعتمد فقط على css لتنسيق الصفحة الخاصة بك ؟

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

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

فوق أنه بعد وضع بعض الجهد في تعلم GWT RPC ، تكتشف في النهاية أنه لا يمكنك استخدام صفحات jsp مثل خدمة مكون RPC ، إلا ...لدي 8 جزء (على ما أظن) سلسلة على بلدي بلوق على كيفية استخدام JSP كما GWT RPC الصيانة.ومع ذلك, منذ كنت لم تطلب إجابات ولكن فقط القضايا ، يجب أن تكف عن الإعلان بلدي بلوق.

لذلك.أنا كثيرا يعتقدون أن أسوأ الحواجز/المزالق باستخدام GWT هو معرفة كيفية نشر GWT المتزامن RPC وكيفية تمكينها من استخدام JSP servicers.

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

  • المتزامن واجهة عليك أن تكتب لكل واجهة خدمة يبدو أن شيئا قد تم إنشاؤها تلقائيا من قبل GWT مترجم.
  • تجميع مرات تصبح طويلة للمشاريع الكبيرة

ولكن كبيرة جافا سكريبت المشروع هو أفضل خيار

GWT 2.4 تم إصلاح العديد من القضايا المذكورة أعلاه كبيرا مكتبة القطعة هو مجرد الخروج من بيتا (تحويلة GWT 3.0.4 أ.ك.أ.GXT) ، الذي هو مكتوب تماما في GWT وليس المجمع من شبيبة lib.

المتبقية الألم:

  • عدم CSS3 محدد الدعم ، يمكنك استخدام "الحرفي()" في بعض الحالات للحصول على من حوله.
  • عدم دعم CSS3 الحديثة المتصفح الأحداث مثل transitionEnd.
  • عدم وجود جافا التقويم دعم فئة (سنوات عديدة).
  • عدم JUnit4 الدعم (5 سنوات وأكثر).
  • عدم وجود خريطة طريق واضحة و الافراج عن الجدول الزمني من جوجل GWT الفريق.

فيما يتعلق GWT 2.4, استخدام فايرفوكس عند تصحيح GWT ، الكثير أكثر ثم أسرع باستخدام الكروم.وإذا كان عليك فقط باستخدام فايرفوكس ، النظر في وضع هذا الخط في project.gwt.xml الملف

<set-property name="user.agent" value="gecko1_8" />

أيضا, إذا كنت تستخدم الكسوف, ثم إضافة ما يلي في إطار الحجج -- > VM الحجج:

-Xmx512m -XX:MaxPermSize=1024m -XX:PermSize=1024m

يمكنك تقسيم الخادم و العميل, و استخدام ما يلي في إطار الحجج -> برنامج الحجج:-codeServerPort 9997 -startupUrl http://yourserver/project -noserver

أيضا, لمنع تحديث الخادم الخاص بك على كل تغيير ، استخدام JRebel http://zeroturnaround.com/blog/how-to-rock-out-with-jrebel-and-google-web-toolkit-gwt/ وهنا عرض حي http://www.youtube.com/watch?feature=player_embedded&v=4JGGFCzspaY

رئيسية واحدة شرك هو أنه في بعض الأحيان تحتاج إلى صراحة تعيين معرف إلى ما نهاية المطاف يصبح عنصر HTML لتكون قادرة على استخدام بعض أنماط CSS.على سبيل المثال:أ GWT TabPanel سوف تفعل سوى :تحوم فوق tabBarItems عندما tabBar من tabPanel تم تعيين معرف تحديد :تحوم على أن elementId.

كتبت عن بعض مساوئ GWT في أماكن أخرى ، لكنها مشمولة بالفعل rustyshelfs الجواب :).

لقد فعلت الكثير من العمل على GWT في الآونة الأخيرة و هذا هو wht أود أن أقول:

  1. التصميم المغلق هو صعب في بعض الأحيان فقط ، استخدام أي أداة مطور في IE و الحرائق في فايرفوكس لمعرفة بالضبط ما يحدث و سوف تحصل على فكرة واضحة عن ما css يحتاج إلى تغيير
  2. يمكنك استخدام الحيل للحصول على google مؤشر عليه.الشهير جدا الموقع http://examples.roughian.com/ التحقق من التقييم في جوجل.أقل شهرة الموقع www.salvin.in (لم أستطع مقاومة تذكر أن) ، محسن إلى الكلمات:salvin الصفحة الرئيسية (جوجل للبحث عن هذه الكلمات الثلاث)

أنا لا أعرف الكثير عن GWT-EXT, ولكن أنا أيضا من الاعتقاد بأن هناك حاجة إلى إدراج طرف ثالث المكتبات.

حظا سعيدا على قرارك :)

GWT فريق جعل الكثير من تحسينات كبيرة في العام الماضي الإفراج عن GWT 2.7.أحد أهم نقاط ضعف GWT كان هذا التجميع يأخذ الكثير من الوقت في GWT 2.6 و أدناه.هذا هو الآن ذهب GWT لم الإضافية التي تجمع بسرعة فائقة و يجمع التغييرات.

GWT 2.7 الآن (المصدر):

  • تدريجي يبني الآن ثوان فقط
  • أكثر إحكاما وأكثر دقة SourceMaps
  • الشاباك الدعم
  • JSInterop
  • كبير أداء جافا سكريبت
  • أصغر حجم التعليمات البرمجية

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

ومن الجدير بالذكر أن GWT 3.0 سوف تجلب تحسينات هائلة.

إعادة استخدام خدمة RPC الكائنات.
أنه يسبب شروط السباق مع الأعراض التي تبدو وكأنها التطبيق شنقا.

مطبات ركضت إلى 1.سلوك مختلف في superdev الوضعية.E. g.Someclass.فئة.getName() يعمل بشكل جيد للغاية في Superdev الوضع وإرجاع مؤهل بشكل كامل اسم الفئة.في الإنتاجية وضع هذا لا يعمل.

  1. addWidget(القطعة) سوف ندعو القطعة removefromparent()

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

أول خطأ يجب تجنب الذي استغرق أربع سنوات ، هو استخدام ملحقات طرف ثالث مثل EXT-GWT الملقب GXT و SmartGWT.ومن المغري جدا أن تبدأ باستخدام جدا desktopish الحاجيات بدلا من الاستثمار في التصميم, ولكن لا استطيع ان اقول كيف العديد من المشاكل مع SmartGWT حتى حصلت أخيرا ذرعا.باختصار يتجمد الأساسية GWT مجموعة ميزة في بعض (قديمة جدا) المستوى ثم يبني على أعلى من ذلك.كما نضع في اعتبارنا أن محفور سطح المكتب تبدو و تشعر تبدو سخيفة في الوقت الحاضر ، ناهيك عن الأداء البطيء ، طن من البق و ملامح التوافق - وخاصة على الأجهزة النقالة.كنت ترغب في البقاء على مقربة من المتصفح الأصلي الضوابط ممكن أيالقوائم المنسدلة المقدمة الأم <select> العناصر وليس مخصص-رسم الضوابط.

بفضل المحمول الاتجاهات كلها UX أصبحت أكثر بساطة و تملق, لذلك أنت لا تحتاج أن تفعل الكثير من أجل أسلوب حاد يبحث التطبيق.على الرغم من إذا كنت تريد "3D" انظر, هناك أيضا التدرجات.CSS3 جعل كل شيء سهلا ، GWT يلتف عليه أنيقة وجوه المنحى بطريقة خلافا الخام CSS.حتى لا تثبط من خلال النظر بدلا من ذلك القبيح المجردة التحكم في GWT عرض.GWT فريق عمدا لم تقدم أي التصميم لأنه المطور الوظيفي.

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

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

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

GWT هو الكمال.السبب الوحيد انها لا تحصل على ما يكفي من الحب لأن الإنترنت في وقت مبكر المتبنون الذي لا يزال تأثير هذه الصناعة لم تأتي من علوم الكمبيوتر و اللغات كائنية أن نقدر لهم.لديهم إما الفني (فوتوشوب/وورد) أو شبكة (Perl/Python) الخلفية.

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