GWT again


7 декабря 2007

Со вчерашнего вечера прозреваю. Отркытие за открытием. Сначала наткнулся на интересную вещь в GWT.
Написал простенький тестик:


scrollPane.setScrollPosition(15 * 3);
assertEquals(15 * 3, scrollPane.getScrollPosition());


В результате тест валится, потому что scrollPane.getScrollPosition() = 0. Вечером по прозревал, забил, пошел домой спать.
Утром пришел с новыми силами. Думаю: "Я - бландинко. Ему же просто некуда скролиться. Там же всего 5 записей и их высота меньше установленных 70px". Переписал тест:


scrollPane.setHeight("15px");
scrollPane.setScrollPosition(15 * 3);
assertEquals(15 * 3, scrollPane.getScrollPosition());

Ну теперь точно все должно работать. Запускаю тест - те же яйца. ) Потом вычитал в мане, что есть метод ensureVisible решили перейти на него, да и посмотреть что в интерфейсе происходит. Переписали код. Запускаем. Происходит какая-то фигня. Появляется какой-то непонятный Exception. Ну тут пошли серьозные раскопки.

В ходе которых были выявлены проблемы.
Открытие 1: Валится Arrays.sort() хотя GWT заявляет, что его поддерживает.
Начал копать дольше.
Открытие 2: Arrays.sort() оказывается на самом деле работает не по алгоритму QuickSork, а по оптимизированному алгоритму MergeSort. По крайней мере в JDK 6.
Вот это да. Чудеса. Потом выяснелось невозможное. Оказывается в GWT class Character не Comparable. Это повергло меня в шок. )

xposted в Мой ЖЖ

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

6 Комментариев на “GWT again”

  1. zeroreturn сказал:

    а вот нефиг использовать сырые технологии

  2. Руслан Пилин сказал:

    В общем-то технология не такая уж и сырая. Технологии минимум 1.5 года. И за это время она серьезно продвинулась. Любую технологию надо уметь использовать. К тому же реальных альтернатив я не вижу.

    Можно, конечно, взять prototype + DWR. Но по сути те же проблемы.

    GWT рулит, когда надо писать rich web client ).
    Когда нужна просто какая-то маленькая фишка, от него мало толку.

  3. bobi сказал:

    Работяю с GWT больше пол года.
    Технология достаточно стабильная.
    Но IMHO необходимо учитывать много нюансов
    (в частности небходимо помнить что в итоге все компилится в JavaScript).
    Нормальные тесты UI на данном этапе невозможно писать и поддерживать.

    Arrays.sort() - работает нормально, багов небыло замечено.

  4. Руслан Пилин сказал:

    Arrays.sort() прекрасно работает для String, думаю так же хорошо работает и для своих Comparable объектов. Причина, того что он не работал для Character была в том, что гугловцы забыли написать, что Character реализует Comparable метод compareTo там вроде бы есть.

  5. zeroreturn сказал:

    О, хорошая новость :)
    Тогда получается, что как временное решение можно просто использовать CharType: extends Character implements Comparable

  6. Sergey сказал:

    Мда, сложно успеть за прогрессом...





Оставте свое мнение