четверг, апреля 29, 2010

Быстрый способ обработать большой набор данных

Довольно стандартная минизадача - взять данные из одного или нескольких источников, сгруппировать и как-либо обработать их и выдать на выход в неком формате. Часто для группировки/обработки сильно помогает наличие SQL базы данных. Для минизадач напрашивается sqlite (для явы я использую http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC но и вариант zentus вроде бы тоже использовал раньше). При больших объёмах данных узким местом обычно становится время затрачиваемое на insert/update. И тут сильно помогает то что в sqlite есть memory режим (имя базы данных для задания в конекте :memory:), что сильно ускоряет insert/update операции. Вобщем разница видна на глаз уже где-то на наборе из 500К объектов, а при отладке экономия времени просто неимоверная.

четверг, апреля 01, 2010

Про DTO в GAE+GWT

Не знаю как остальных, а меня всегда раздражала необходимость создавать DTO (Data transfer object) в связке GWT-GAE. Ну не то чтобы раздражала, но не приводила в восторг необходимость клепать одно и то же каждый раз когда в клиентскую часть надо отдать данные объекта.

Также всегда было ощущение что используя JDO, я уподобляюсь человеку забивающему гвозди микроскопом (вобщем понятно что какие-то экстра расходы на JDO уходят).

Так что если у кого-то были схожие ощущения делюсь ссылкой: objectify-appengine. Из плюсов - не нужны DTO(конечно при использовании GWT-safe библиотек), быстрый холодный старт и тп. Сам пока в бою не щупал - пока только в планах. Даже есть проектик подходящий.