?

Log in

No account? Create an account
Дзен-мани

zenmoney_ru


Управление личными финансами


Дзен-Мани: из-под капота.
chedim wrote in zenmoney_ru
Всем привет!

Мы решили начать в нашем блоге рубрику «из-под капота», в которой я буду рассказывать вам о трудовых буднях программистов нашего сервиса: над чем мы работаем, какие незаметные для пользователей изменения были реализованы сегодня. Последние пару месяцев мы ударными темпами работаем над новым мобильным приложением Дзен-мани под android. В начале недели на тестирование был отдан билд этого приложения с громким именем RC-4, выгодно отличающийся от своих предшественников стабильной работой с асинхронными задачами. Именно он и появился в четверг в Google Play.

Возможно, многих разочаруют ограниченные возможности этого приложения по сравнению с уже имеющимся. Однако я уверен: вы оцените, как мы переосмыслили механизм синхронизации мобильного приложения с основным сайтом. Набравшись опыта, мы избавили его от «детских» проблем, мучавших наших пользователей. Теперь все сделанные вами изменения мгновенно будут пересылаться на сервер и ни одно из них не будет потеряно.

Например: в HTML-5 версии мобильного клиента мы сохраняем время последней синхронизации после того, как она будет завершена. Это значение используется клиентом для определения тех изменений в его БД, которые ему надо будет послать на сервер при следующей синхронизации. В большинстве случаев такая схема работала нормально, но при «подвисании» запроса (или слишком быстром пользователе ;) могла возникнуть ситуация, когда какое-то изменение сделано пользователем в промежуток между началом и концом синхронизации. Это приводило к тому, что такие изменения в следующие разы не выбирались для синхронизации и никогда не появлялись на сервере.

Ещё одна проблема также могла быть вызвана сетевыми лагами. Представьте: ваш мобильный телефон отправил серверу набор изменений, но из-за сбоя в сети не смог получить ответ сервера об успешной синхронизации. Поскольку приложение в такой ситуации не знает, дошли ли до сервера изменения, оно попытается их отправить серверу повторно при следующей синхронизации. Раньше это приводило к дублированию изменений на сервере. Но нам удалось справиться и с этой проблемой. Причем мы сделали это так, что и старое HTML5-приложение избавилось от такой проблемы. Теперь наш сервер синхронизации следит за присылаемыми приложениями данными и самостоятельно исправляет случаи дублирования транзакций, счетов или категорий.

Не скрою, в нашем механизме синхронизации ещё осталась пара проблем. Но вероятность их возникновения весьма мала. Кроме того, мы уже придумали, как их решить :) Но об этом — потом.

На этой неделе мы выложили новую версию мобильного клиента для android. В нем мы приберегли для вас один огромный сюрприз, который приблизит сервис zenmoney.ru к дзену :) Да что там! Релиз этого приложения стал огромным прорывом как для нас, так и для наших пользователей с android-телефонами. Добавленная в нем возможность автоматически обрабатывать SMS-уведомления от банков делает учёт финансов ещё более простым занятием. Попробуйте и вы ;)