Со вчерашнего вечера прозреваю. Отркытие за открытием. Сначала наткнулся на интересную вещь в 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 в Мой ЖЖ



декабря 7, 2007 в 11:11 pm
а вот нефиг использовать сырые технологии
декабря 21, 2007 в 8:01 pm
В общем-то технология не такая уж и сырая. Технологии минимум 1.5 года. И за это время она серьезно продвинулась. Любую технологию надо уметь использовать. К тому же реальных альтернатив я не вижу.
Можно, конечно, взять prototype + DWR. Но по сути те же проблемы.
GWT рулит, когда надо писать rich web client ).
Когда нужна просто какая-то маленькая фишка, от него мало толку.
декабря 24, 2007 в 5:17 pm
Работяю с GWT больше пол года.
Технология достаточно стабильная.
Но IMHO необходимо учитывать много нюансов
(в частности небходимо помнить что в итоге все компилится в JavaScript).
Нормальные тесты UI на данном этапе невозможно писать и поддерживать.
Arrays.sort() - работает нормально, багов небыло замечено.
декабря 27, 2007 в 7:33 pm
Arrays.sort() прекрасно работает для String, думаю так же хорошо работает и для своих Comparable объектов. Причина, того что он не работал для Character была в том, что гугловцы забыли написать, что Character реализует Comparable метод compareTo там вроде бы есть.
декабря 27, 2007 в 9:43 pm
О, хорошая новость
Тогда получается, что как временное решение можно просто использовать CharType: extends Character implements Comparable
января 6, 2008 в 11:10 pm
Мда, сложно успеть за прогрессом...