Эта статья написана в продолжение к первой части и посвящена новому Date Time API, который был введен в Java 8. Я изначально хотел оформить эту тему отдельно, поскольку она достаточно большая и серьезная. Я еще сам не в полной мере начал использовать этот API в проектах, поэтому разбираться будем вместе по ходу. В принципе в переходе на новый API нет никакой срочной необходимости, более того многие еще и не начинали проекты на Java 8, а это означает, что время на освоение еще есть.
В статье я постараюсь не скатываться в банальный перевод штатной документации, больше я хотел бы сконцентрироваться на том, что мне показалось особенно важным.
Читать дальше →
Восемь лет назад я принимал участие в проектировании и разработке сервиса, который был должен обслуживать запросы пользователей со всех уголков земного шара и координировать их действия. Работая над проектом я понял, что очень часто многие важные аспекты работы со временем просто игнорируются. Иногда это действительно не очень критично: если сервис локален и им пользуются только на определенной территории, либо пользователи естественным образом разделены на почти не взаимодействующие между собой географические кластеры. Однако же, если сервис объединяет пользователей по всему миру, то без четкого понимания принципов работы со временем уже не обойтись. Представим сервис, в котором общие события (совещания например) начинаются в какое-то строго определенное время, а пользователи рассчитывают на это. Какое время им показывать, в какой момент их беспокоить уведомлениями, что такое день рождения и когда можно поздравить человека — в статье я попробую это осмыслить.
Статья не претендует на глубину и/или академичность. Это попытка систематизировать опыт и обратить внимание разработчиков на не очень очевидные аспекты.
Сервис databoom – это облачный backend для Web и мобильных приложений. Он сокращает время и снижает стоимость прототипирования и разработки приложений за счет упрощения доступа к данным. На следующих видео показано, как легко с помощью databoom строится прототип Web приложения.
Microsoft Azure позволяет удивительно легко создавать надежные масштабируемые приложения. Если еще пару лет назад Azure означал Windows, то сегодня Microsoft Azure является прекрасной средой и для Linux разработчиков.
Серверная часть databoom работает под управлением Linux, использует Node.js и native модули, написанные на C++. Простота развертывания виртуальных машин, балансировщиков и других сервисов под Azure позволила нам достаточно легко развернуть облачное решение.
Начав с прототипов, многие наши клиенты продолжают работать с нами, создавая все более сложные приложения, для которых критически важными являются вопросы надежности, защищенности и масштабируемости. Поэтому мы выбрали Microsoft Azure.
Читать дальше →
Привет, Хабр! Мы продолжаем делиться технологической кухней Retail Rocket. В сегодняшней статье мы разберем вопрос выбора БД для хранения больших и часто обновляемых данных.
На самом начальном этапе разработки платформы перед нами возникли следующие задачи:
Хранить у себя товарные базы магазинов (т.е. сведения о каждом товаре всех подключенных в нашу платформу магазинов с полным обновлением 25 млн. товарных позиций каждые 3 часа).
Хранить рекомендации для каждого товара (около 100 млн. товаров содержит от 20 и более рекомендуемых товаров для каждого ключа).
Обеспечение стабильно быстрой выдачи таких данных по запросу.
Потребовался класс для работы с БД. Мои требования были:
Поддержка типов данных через макросы: строка, целое число, дробное число, логическое значение + возможность расширения
Возможность компиляции запроса в PHP код (по аналогии как шаблонизаторы компилируют шаблон — к примеру так делает Twig)
Возможность делать макросы для использования в запросе
Поискал по интернету — список чего нашел (самые лучшие на мой взгляд): safemysql, DbSimple, go-db, dibi, Yaff\db. Однако почему-то именно компилирующих нет. Поспрашивал на форумах и тостере, получил 10000 советов не писать велосипед, а изучить библиотеку X, потому что это круто и на ней можно сделать всё. И всё же… решил таки написать свой велосипед.
Читать дальше →