ฉันจะเริ่มต้นด้วยการบอกว่าฉันเป็นแฟน GWT ขนาดใหญ่ แต่ใช่มีข้อผิดพลาดมากมาย แต่ส่วนใหญ่ถ้าไม่ใช่ทั้งหมดที่เราสามารถเอาชนะได้:
ปัญหา:เวลารวบรวมนานขณะที่โครงการของคุณเติบโตดังนั้นระยะเวลาที่ใช้ในการรวบรวม ฉันได้ยินรายงานการคอมไพล์ 20 นาทีแล้ว แต่โดยเฉลี่ยแล้วฉันประมาณ 1 นาที
วิธีแก้ไข:แบ่งรหัสของคุณออกเป็นโมดูลแยกต่างหากและบอกให้ ant สร้างเฉพาะเมื่อมีการเปลี่ยนแปลง ในขณะที่กำลังพัฒนาคุณสามารถเร่งความเร็วในการคอมไพล์ครั้งใหญ่โดยสร้างเพียงเบราว์เซอร์เดียว คุณสามารถทำได้โดยใส่สิ่งนี้ลงในไฟล์. gwt.xml ของคุณ:
<set-property name="user.agent" value="gecko1_8" />
โดยที่ gecko1_8 คือ Firefox 2+, ie6 คือ IE เป็นต้น
ปัญหา:โหมดโฮสต์นั้นช้ามาก (ใน OS X เป็นอย่างน้อย) และไม่เข้าใกล้กับการเปลี่ยนแปลง 'สด' ที่คุณได้รับเมื่อคุณแก้ไขสิ่งต่าง ๆ เช่นหน้า JSP หรือหน้า Rails และกดรีเฟรชในเบราว์เซอร์ของคุณ
วิธีแก้ปัญหา:คุณสามารถเพิ่มหน่วยความจำในโหมดโฮสต์ได้ (โดยทั่วไปฉันมี 512M) แต่ก็ยังช้าฉันพบเมื่อคุณเก่งพอที่จะมี GWT คุณหยุดใช้สิ่งนี้ คุณทำการเปลี่ยนแปลงจำนวนมากจากนั้นคอมไพล์สำหรับเบราว์เซอร์เดียว (โดยทั่วไปจะมีค่าคอมไพล์แล้ว 20s) จากนั้นกดรีเฟรชในเบราว์เซอร์ของคุณ
อัปเดต: ด้วย GWT 2.0+ นี่ไม่ใช่ปัญหาอีกต่อไปเพราะคุณใช้ 'โหมดการพัฒนา' ใหม่ มันเป็นพื้นหมายความว่าคุณสามารถเรียกใช้รหัสโดยตรงในเบราว์เซอร์ที่คุณเลือกดังนั้นจึงไม่สูญเสียความเร็วรวมทั้งคุณสามารถ firebug / ตรวจสอบมันเป็นต้น
http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM
ปัญหา:รหัส GWT คือ java และมีความคิดที่แตกต่างกันในการวางหน้า HTML ซึ่งทำให้การออกแบบ HTML และเปลี่ยนเป็น GWT ยากขึ้น
การแก้ไข:คุณคุ้นเคยกับสิ่งนี้อีกครั้ง แต่น่าเสียดายที่การแปลงการออกแบบ HTML ให้เป็นการออกแบบ GWT จะช้ากว่าการทำบางอย่างเช่นการแปลงการออกแบบ HTML เป็นหน้า JSP
ปัญหา: GWT ใช้เวลารับหัวของคุณเล็กน้อยและยังไม่เป็นกระแสหลัก หมายความว่านักพัฒนาส่วนใหญ่ที่เข้าร่วมทีมของคุณหรือดูแลรหัสของคุณจะต้องเรียนรู้ตั้งแต่เริ่มต้น
วิธีแก้ปัญหา:ยังคงต้องมีการดูว่า GWT จะปิดตัวลงหรือไม่ แต่ถ้าคุณเป็น บริษัท ที่ควบคุมว่าคุณจ้างใครคุณสามารถเลือกคนที่รู้ GWT หรือต้องการเรียนรู้ได้ตลอดเวลา
ปัญหา: GWT เป็นค้อนขนาดใหญ่เมื่อเทียบกับ jQuery หรือ javascript ธรรมดา ต้องใช้การตั้งค่ามากขึ้นเพื่อให้มันเกิดขึ้นมากกว่าแค่การรวมไฟล์ JS
วิธีแก้ไข:ใช้ไลบรารีเช่น jquery สำหรับงานขนาดเล็กและเรียบง่ายที่เหมาะสมกับงานเหล่านั้น ใช้ GWT เมื่อคุณต้องการสร้างสิ่งที่ซับซ้อนอย่างแท้จริงใน AJAX หรือที่ที่คุณต้องการส่งผ่านข้อมูลไปมาผ่านกลไก RPC
ปัญหา:บางครั้งเพื่อเติมข้อมูลหน้า GWT ของคุณคุณต้องทำการโทรเซิร์ฟเวอร์เมื่อหน้าโหลดครั้งแรก อาจเป็นเรื่องน่ารำคาญที่ผู้ใช้จะนั่งที่นั่นและดูสัญลักษณ์โหลดขณะที่คุณดึงข้อมูลที่คุณต้องการ
วิธีแก้ปัญหา:ในกรณีของหน้า JSP เซิร์ฟเวอร์ของคุณได้สร้างการแสดงผลหน้าเว็บแล้วก่อนที่จะกลายเป็น HTML ดังนั้นคุณจึงสามารถทำการโทร GWT ทั้งหมดของคุณก่อนแล้วจึงโหลดลงในหน้านั้นล่วงหน้าเพื่อโหลดทันที ดูรายละเอียดที่นี่:
เพิ่มความเร็วในการโหลดหน้าโดยทำการซีเรียลการโทร GWT ของคุณล่วงหน้า
ฉันไม่เคยมีปัญหาใด ๆ กับ CSS ในการออกแบบวิดเจ็ตของฉันออกจากกล่องกำหนดเองหรืออื่น ๆ ดังนั้นฉันจึงไม่ทราบว่าคุณหมายถึงสิ่งใดที่เป็นอันตรายหรือไม่
สำหรับประสิทธิภาพฉันมักพบว่าเมื่อรวบรวมรหัส GWT อย่างรวดเร็วและการโทร AJAX นั้นเล็กกว่าการรีเฟรชทั้งหน้า แต่ก็ไม่ได้มีเอกลักษณ์เฉพาะ GWT แม้ว่าจะเป็นแพ็กเก็ต RPC ดั้งเดิมที่คุณได้รับถ้าคุณใช้ ปลายด้านหลังของ JAVA นั้นเล็กกะทัดรัด