Найти в Дзене
Строим отчеты на SQL
Disclaimer: SQL позволяет собирать данные множеством способов, если считаете что приведенные в статье запросы можно улучшить, оставьте соответсвующий комментарий :) P.S. в статье запросы написаны на postgresql Итак, для начала ознакомимся с предметной областью У нас есть маленький магазичник, но довольно проходной, потому что торгует всем, начиная от ПИВА и заканчивая ВОДКОЙ… Владельцу понадобилось узнать, сколько людей заходит в магазин и в какое время, чтобы скоординировать смены кассиров и поставки...
135 читали · 6 лет назад
Макросы в Elixir для взрослых
Данная статья является продолжением предыдущей. На этот раз мы на примерах рассмотрим директиву use и магический метод __using__, магический, потому что подобные методы с двумя подчеркиваниями используют в Питоне, называя магическими. Довольно часто мы пишем use GenServer, или require Logger, давайте разберемся в чем же разница? Различие между require и use Если объяснять на пальцах, то use расширяет модуль, в котором он используется: дополняет его методами и зависимостями, описанными в __using__, поэтому может возникнуть конфликт имен...
6 лет назад
Макросы в Elixir для маленьких
Данная статья рассчитана на тех, кто уже немного познакомился с метапрограммированием в эликсире, но так и не понял, где же применять и творить магию. Повторим: quote и unquote Выражения в эликсире представляют собой кортежи. Эти кортежи состоят из трех частей: название функции, метаданные и аргументы функции. Например блок указанный ниже вернет список кортежей для каждого выражения, для List.last, для пайплайна и для Enum.sum. quote — возвращает внутренние структуры выражений unquote — разворачивает...
6 лет назад
Elixir и ошибки новичков
В Эликсире много возможностей для эффективного написания кода. Новички, осваивая язык, проникаются его различными возможностями и начинают их применять повсеместно. В статье речь пойдет про перегрузку функций с паттернматчингом аргументов Эликсир позволяет осуществлять перегрузку функций, как, например, Java. Достаточно объявить две одноименные функции в одном модуле, например, рекурсивный обход коллекции с умножением каждого элемента на 2. Разберем еще один пример: создадим функцию, которая сортирует разные типы данных, в данном случае — list и tuple...
6 лет назад
Графовая база данных Neo4j
Содержание История происхождения графов Среди жителей Кёнигсберга (нынешний Калиниград) была распространена такая загадка: как пройти по всем городским мостам через реку, не проходя ни по одному из них дважды. Многие пытались решить эту задачу как теоретически, так и практически, во время прогулок. Впрочем, доказать или опровергнуть возможность существования такого маршрута никто не мог. Решил задачку Леонард Эйлер, сформулировав ряд правил и доказав, что пройти по мостам, не повторяясь, невозможно...
1522 читали · 6 лет назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала