Nested Set

Создание модели для хранения иерархических данных - совсем непростая задача. Что же мы подразумеваем под иерархическими данными? Представьте, что вам необходимо организовать список продуктов по категориям. Например, у вас будет несколько основных категорий: продукты, оборудование, электроника. А далее вам потребуется разбить их на подкатегории, а те в свою очередь, на более узкие категории. На бумаге всё выглядит довольно просто, а вот в таблице СУБД (система управления базами данных) дело обстоит совсем по другому. В этой статье я попробую рассказать об основной идее этой модели и когда её следует применять. Начну с объяснения более простой иерархической модели, а далее перейдём к модели вложенных множеств.

Читать далее...

Создание CLI приложения на NodeJS

  • NodeJS
  • 3 года назад

Я только что закончил работу над CLI приложением на NodeJS, sike - инструмент для оповещения пользователей через заданный интервал времени, определенное количество раз. Оповещения задаются при помощи командной строки.

Эта статья описывает процесс создания простого cli приложения, которое работает как echo. Пользователь сможет выполнить что-то в этом роде:

cli -m hello

и терминал просто выведет “hello”.

Читать далее...

Как установить и использовать Redis

Redis был разработан в 2009 году и представляет собой хранилище типа ключ-значение. Следуя опыту таких NoSQL баз данных, как Cassandra, CouchDB и MongoDB, Redis позволяет хранить большой объем данных без ограничений реляционных баз данных. Также его часто сравнивают с memcache, он находит применение в качестве БД для кеширования.

Перед установкой Redis следует учесть пару нюансов. Для начала обновим пакеты apt-get:

Читать далее...

Symfony 2 Joboard : Формы

На каждом сайте в том или ином виде присутствуют формы, от простой формы контакта до сложных со множеством полей. Создание форм - не простая задача для разработчика, для начала надо написать HTML форму, реализовать проверку введенных данных, обработку данных перед сохранением в БД, отображение ошибок, восстановление полей в случае ошибок и т.д.

Читать далее...

Введение в REDIS-PY

  • Python
  • 3 года назад

redis-py - это библиотека на языке Python для управления NoSQL хранилищем Redis.

Для установки redis-py требуется установленный и запущенный Redis сервер . В [redis’s quickstart] вы найдете инструкцию по установке.

Чтобы установить redis-py выполните:

$ sudo pip install redis

или воспользуйтесь pip

$ sudo easy_install redis

или из исходников

$ sudo python setup.py install

Проверка

>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
'bar'
Читать далее...

Профилирование запросов в MySQL

Профилирование запросов в Mysql применяется для оценки производительности вашего приложения. При разработке средних и больших приложений приходится иметь дело с сотнями запросов распределенными по вашему коду, которые исполняются каждую секунду. Без техники профилирования запросов бывает очень сложно найти из-за чего страдает быстродействие вашего приложения.

Лог медленных запросов в MySQL - лог, отмечающий медленные и потенциально проблемные запросы. MySQL по умолчанию поддерживает такой функционал, но он отключен. При помощи настройки определенных переменных сервера мы можем указать какие именно запросы нас интересуют. Чаще всего нам нужны запросы которые требуют определенное количество времени на своё выполнение или запросы, которые некорректно обрабатывают индексы.

Читать далее...

Настройка виртуальных хостов в Nginx на Ubuntu 14.04

Будем работать под учетной записью обычного пользователя с sudo правами. Так же вам понадобится установленный веб-сервер Nginx. При желании можно установить полностью LEMP (Linux, Nginx, MySQL и PHP). Чтобы установить Nginx достаточно выполнить следующую команду:

sudo apt-get update
sudo apt-get install nginx

Прежде чем продолжить читать статью, настоятельно рекомендуем выполнить вышеописанные условия. Для примера, мы настроим два домена на нашем сервере. Их имена - example.com, test.com. Если в наличии у вас нет двух свободных имен, то просто придумайте два, а позднее мы покажем как настроить ваш локальный сервер, чтобы проверить их работоспособность.

Читать далее...

Symfony 2 Joboard : Функциональное тестирование

Функциональные тесты отлично подходят для полной проверки вашего приложения - от запроса в браузере до выданного сервером ответа. Они покрывает все уровни приложения: маршрутизацию, модели, действия и шаблоны. Они очень похожи на то, с чем вы уже сталкивались: каждый раз при изменения действия, вы проверяли корректность его работы в браузере, кликая на ссылки и проверяя элементы на полученной странице. Другими словами, функциональные тесты автоматизируют эти действия.

Читать далее...