Рубрики
JS Kotlin Кодинг

Большое обновление Bill-Splitter (Дели Счет)

За последний год мне надоело выслушивать жалобы друзей на недостаточно понятное приложение Money-Splitter. Приложение то очень полезное, но, чтобы им начать пользоваться — было нужно сидеть и разбираться как оно работает.

Поэтому я решил полностью переделать UI, сделать его как можно более понятным для новичков и, в дополнение, сделать его удобным для использования на смартфоне. Ну и, конечно, поэкспериментировать с новыми (для меня) инструментами разработки.

Новая версия приложения доступна по ссылке: http://zavedyaev.ru/bill-splitter/ . Старая версия все-еще работает, но скоро будет удалена.

Преображение UI на большом экране
Рубрики
Kotlin Кодинг

Kotlin после Groovy

Привет!

Хотелось бы сегодня рассказать про мой процесс перехода с Groovy на Kotlin, об отличиях, преимуществах и недостатках этих языков. Я подразумеваю что у вас уже есть опыт работы с Groovy, вы знаете и используете большинство вспомогательных методов/приемов (далее сахар).

Начнем с предпосылок смены языка на нашем проекте. Нам потребовалось срочно подготовить проект под увеличивающиеся нагрузки (примерно в 10-100 раз). Что, во-первых, привело к жесткой смене архитектуры, а во-вторых, мы решили сменить и основной язык программирования.

Рубрики
AngularJS JS Кодинг

Обновление Money-Splitter

Ездили недавно с друзьями на Алтай. Поездка вышла достаточно утомительной, но, сейчас не об этом. По окончанию поездки встал вопрос денег: кто кому и сколько должен. Кто-то ехал без наличных, кто-то, наоборот, взял денег с запасом и одалживал. В итоге, как обычно, нужно было составлять документ со всеми тратами и делить на всех.

И тут я подумал, у меня же уже есть приложение, чтобы делить один счет на всех (оно мало применимо, если расплачивался не 1 человек), почему бы не улучшить его чуть-чуть и не сделать возможность следить не только за тем кто сколько потратил, но и кто сколько заплатил.

Рубрики
AngularJS

Money-Splitter

Всем привет! После устройства на новую работу — приходится активно изучать новый стек технологий. В связи с этим, решил сделать небольшой проект на AngularJS.

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

Чтобы избавиться от необходимости это вручную считать, я создал свое простое приложение «Money Splitter«.

Рубрики
Кодинг

Денормализация для увеличения производительности

Первый раз я столкнулся с намеренной денормализацией около года назад (на самом деле уже больше, статья давно в черновиках). В то время мы (Orange[UC]e) занимались оптимизацией скорости работы нашего JavaFX клиента. В одном из отчетов необходимо было осуществлять поиск по последним цифрам номеров телефонов. А в БД номера телефонов хранились в прямом виде. К моему большому сожалению, MariaDB (форк MySQL) не имеет возможности использовать индексы при поиске по концу строки (а номера у нас хранились в виде строк). Решение данной проблемы стало добавление столбца с перевернутым номером телефона, и добавлением индекса для этого столбца. Столбец с «прямым» номером решили тоже оставить, т.к. времени на переписывание логики на использование только перевернутого номера не было. Таким образом у нас получилось 2 столбца, которые содержат одни и те же данные.

Последний раз с денормализацией для увеличения производительности я столкнулся совсем недавно (около трех месяцев назад). Здесь все получилось намного интереснее. Подробности под катом.