• Как реализовать очередь заданий на PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Смотрите в сторону сервера очередей (ZMQ, RabbitMQ, Gearman)
    Ответ написан
    Комментировать
  • Как проектировать БД для сложной админки (mysql)?

    Крайне советую почитать "Базы данных: Учебник для высших учебных заведении" Авторы: Хомоненко А.Д., Цыганков В.М., Мальцев М.Г.
    Читаем раздел про проектирование БД.
    Ответ написан
    1 комментарий
  • Для чего нужна ORM?

    Zorkus
    @Zorkus
    Сам по себе ORM, именно как maaping, в крупных проектах нужен как раз очень сильно. Опишу здесь свой опыт. Если понравится кому, может и статью потом.

    Итак.
    Представьте себе — у меня есть очень крупная система, и есть в ней таблица orders, в ней скажем, 50 колонок (на самом деле у нас 150, ну да ладно. Нормализаторы, молчать! Про нормальные формы я тоже знаю). И вот надо значит вам выбрать один ордер и показать его на экране. Допустим, вы пишете селект, неважно. Дальше что делать, в промежуточном слое? Вы не же вызываете хранимую процедуру (запрос) напрямую с, скажем, JSP страницы (я надеюсь), вам все равно надо получить данные и передать их как-то.
    Так что, передавать их в виде массива, ArrayList-a, ассоциативного массива имя колонки/значения? Ну так дико громоздно, неудобно, и очень легко ошибиться. А если вам надо несколько ордеров, тогда что, создавать вложенные коллекции для конвертации результатов? Неудобно же.

    Потому, очевидно, нам нужен объект Order, имеющий все нужные property, и нужен код, который умеет конвертировать результаты скл запрос в эти объекты (или коллекцию этих объектов).

    Далее, очевидно, что писать руками _все_ запросы трудно и нудно, легко ошибиться, т.к. в Java они будут представляться в коде в виде строк (а значит, никакой статической типизации и compile-time проверок и прочее и прочее), и их надо держать либо в Java коде (если они мелкие), либо, если побольше, выносить в отдельные XML файлы.

    В общем, ORM в больших проектах нужен для упрощения рутинной части. Без него — никуда :)

    Безусловно, обойтись ТОЛЬКО ORM не получится. Есть у нас масса мест, где сложная логика написана в хранимых процедурах в 500-1000 строк на PL/SQL, написанная через ORM /Java она бы занимала в 10 раз больше и работала в 2 раза медленнее (при этом, она была бы еще и менее понятная, т.к. есть такая логика, которые в терминах реляционной алгебры описывается куда проще, чем в терминах ООП :), следовательно ложится на ORM со скрипом). Сколько нибудь сложные запросы с подзапросами, юнионами, хитрыми джойнами тоже писать через чистый ORM громоздко. Оптимизировать запросы, работающими в таблицах где, хотя бы, несколько сотен миллионов записей, без доступа к планам SQL оптимизатора и статистики/средствам мониторинга уровня СУБД тоже крайне сложно. Так что без SQL тоже — никуда :)
    Ответ написан
    3 комментария
  • Какие "заготовки" вы используете при вёрстке нового проекта?

    @vitstr
    Front-end developer
    Использую свой фреймворк, который собирался на основе:
    1. csstemplater.com/
    2. www.blueprintcss.org/
    3. www.yaml.de/en/home.html
    4. reset от Эрика Мейера meyerweb.com/eric/tools/css/reset/
    5. clearfix www.positioniseverything.net/easyclearing.html
    6. pngfix www.dillerdesign.com/experiment/DD_belatedPNG/
    7. Типографика

    для фреймворка ставил след. задачи.

    1. Переход между фиксированной/резиновой версткой на уровне css
    2. 1-2-3 колоночная разметка
    3. Быстрый выбор кол-ва колонок (одному контейнеру добавляется класс и убирается лишний html код столбца)
    4. Футер прижат к низу
    5. Минимальная-максимальная ширина
    6. Готовая типографика
    7. Кросбраузерность ие6+, FF3+, Opera 9+, Safari, Chrome

    В приниципе по тем сслыкам которые я дал, можно относительно быстро собрать в кучу все что нужно для заготовки.
    Ну а там уже исходите от ваших целей. Про ZenCoding уже выше упомянули.
    Ответ написан
    Комментировать