• Использовать ли captcha в Express?

    dizballanze
    @dizballanze
    Software developer at Yandex
    В туториалах очевидно упрощают, чтобы главное осветить. В настоящих проектах естественно используется и каптча и csrf-protection (даже есть встроенных в express).
    Ответ написан
    5 комментариев
  • Как решить проблему с socket.io+express+node.js?

    ZOTTCE
    @ZOTTCE
    После получение данных от клиента, ты не отсылаешь обновленные данные другим клиентам.

    "socket.broadcast.send — отправка сообщения всем клиентам, кроме текущего"
    Ответ написан
    8 комментариев
  • Как запустить скрипт Python по крону?

    BuriK666
    @BuriK666
    Компьютерный псих
    */1 * * * * $HOME/path/to/script.py 2>&1 >> $HOME/cron.log
    Ответ написан
    Комментировать
  • Что такое фикстуры и миграции?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Фикстуры - это по сути тестовые данные. Они нужны для unit-тестирования. Это могут быть как данные в базе, так и обычные файлы (обычно 2 варианта, до и после обработки так скажем). Каждый раз когда запускаются тесты, эти данные используются для установления начального состояния системы, что бы тесты всегда выполнялись предсказуемо.

    Для функционального тестирования (тестрирование контроллеров, интаграционных тестов) фикстуры не применяются, хотя суть там так же сходна. Если честно, то тут мнение расходится. Одни говорят что при функциональных тестах нельзя использовать даже моки, то есть система в процессе выполнения тестов полностью создает то состояние которое необходимо для других тестов. Например последовательное выполнение тестов на добавление статьи и ее просмотр. Другие же предпочитают для каждого тесткейса выставлять состояние с нуля. По сути это схоже с использованием фикстур, но реализация различается. У вас есть некое api для заполнения данными (скажем метод добавляющий пользователя), и перед выполнением тест-кейса происходит ресет данных и заполнение их новыми. Плюсы так же есть - можно распаралелить выполнение тестов. (но не верьте мне на слово)

    Миграции - механизм организации версионности структуры проекта. Вы можете написать миграцию для изменения местоположения статики (картинки, поменять ссылки в базе и т.д.), или же у вас добавляется новая таблица/поле. Обычно дополняется обратной миграцией, которая восстанавливает исходную структуру. Обязательно для работы в команде или при частом изменении организации данных в проекте, вообще я бы посоветовал использовать их всегда.
    Ответ написан
    Комментировать
  • Как реализовать фасетную фильтрацию?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Просто берете книжку "Основы баз данных" и читаете, сразу все прояснится. Задавши этот вопрос вы сразу говорите, что вообще не понимаете что такое реляционные базы данных и как с ними работать, и пытаетесь одним вопросом на тостере познать дзен. Сначала читайте - потом спрашивайте то, чего не поняли.
    Ответ написан
    Комментировать
  • Как провести интеграцию angular.js и socket.io?

    Оборачиваем в сервис, на выполнение колбэков весим $rootScope.$apply.
    Пример сервиса тут: www.html5rocks.com/en/tutorials/frameworks/angular...
    Дальше используем как обычно:
    function controller($scope, socket){
      socket.emit('getFoo', 42, function(data){
        $scope.foo = data
      });
    }
    Ответ написан
    Комментировать
  • Какой выбрать фреймворк для высоконагруженного Python web-приложения?

    @AlexWinner
    А на PostgreSQL не хотите посмотреть? Всё таки его skype, instagram используют с удовольствием. И подводных камней встретите меньше, чем в Mongo.
    Ответ написан
    2 комментария
  • Может ли NodeJS использоваться как основа для крупного проекта?

    @kazmiruk
    @d00mko видимо не потрудился прочитать статью, прежде чем посоветовать ее Вам. В статье как раз пытаются избавиться от мифов вокруг ноды.
    По сути вопроса - нода вполне подходит для проекта любого размера и сложности (как и пхп, раби, питон, ява и т.п.) Никогда в жизни не сталкивался с ситуацией, что язык становился узким местом в веб приложении. Если Вы с этим столкнетесь, то значит Ваша архитектура уже идеальна, у вас миллионы пользователей и у Вас миллиарды денег, чтобы взять и переписать все с нуля где-нибудь на побережье океана попивая мохито, принесенное личным барменом.
    Ява - готовьтесь к тому, что Вам надо МНОГО оперативной памяти. Разработка будет вестись долго, но большинство глупых ошибок Вы избежите в силу особенностей языка.
    ПХП - готовьтесь к тому, что в Вашем коде будут появляться какашки, так как из всех пхп кодеров лишь доли процента могут написать хороший код. Это действительно очень трудно, когда язык сам манит писать все больше и больше какашек ) Лишь просветленные могут удержаться )
    Нода - Вас ждет мир непонятного асинхронного кода, но как только наступит просветление, то Вы будете писать намного более эффективные приложения, чем Ваши товарищи пхпщники ) Наилучшее применение - чаты, кометы и т.п. Но и в качестве веб-сервера чувствует себя замечательно.
    Питон - можно использовать и асинхронный подход и синхронный. Памяти жрет намного меньше, чем Java (личный опыт. разница была почти в 7 раз). По скорости работы практически не уступает яве. По скорости разработки разрывает ее в клочья
    Раби - ничего не могу сказать дельного, но синтаксис мне не нравится.
    Эрланг - если Вы действительно суровы и Вам нужна максимальная производительность - это Ваш выбор. Столько боли и страдания Вам не доставит ни один язык. Вы можете часами сидеть и тупить над одной строчкой кода, но каждый раз после написания такой строчки Вы будете впадать в экстаз ) Да и пока вы часами тупили над одной строчкой в эрланге на другом языке вам бы пришлось написать 200 строчек. Хардкор вариант, есть много тестов, уроков и примеров, но сам бы я не рискнул начинать проект на нем, так как моих знаний не достаточно, а найти разработчика - нереально.
    Вообще, не пишите серьезные проекты на том, что хотите изучить или то, что модно. Пишите на языке, который лучше всего знаете.
    Ответ написан
    7 комментариев
  • Какой выбрать фреймворк для высоконагруженного Python web-приложения?

    @Slko
    C++/C#/Python Developer
    Flask по тестам более производительный. Единственное, что очень сильно меня смутило - проблемы с доменами, если расположить Flask за nginx. Так и не разобрался, как объяснить ему, что он запущен по тому адресу, на котором запущен nginx. Он был убеждён, что запущен на localhost:81 и все редиректы шли туда.

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

    На Django даже не смотрел. Он там всё ещё не поддерживает Python 3.x? Не было желания его изучать хотя бы чтобы не поддерживать устаревшие технологии. Да и какой-то он мейнстримно-быдлокодерский.

    Но, наверное, Tornado и Flask подойдут скорее для небольших проектов. Или для больших, но с основательной проработкой архитектуры. Это неправильный выбор будет для быстрого клепания сайтов в какой-нибудь небольшой фирмочке.

    Раньше я тоже применял MongoDB, простота запросов и отсутствие необходимости описывать структуру данных очень привлекала. К тому же данные очень хорошо ложились в обычные питоновские типы. В конечном итоге перешёл на MySQL + SQLAlchemy. Отсутствие нормальных транзакций в MongoDB вызывало очень большие неудобства. Костыли, которые предлагались взамен, были слишком громоздкими и трудными для понимания.
    Ответ написан
    4 комментария
  • Какой выбрать фреймворк для высоконагруженного Python web-приложения?

    maxaon
    @maxaon
    nichol.as/benchmark-of-python-web-servers
    Gevent если надо очень шуструю работу. Django если надо быстро разработать.
    И 10 раз подумайте перед тем как использовать MongoDB.
    Ответ написан
    1 комментарий
  • Веб-фреймворк для Го?

    1. revel (похоже на rails);
    2. beego (похоже на rails). На нём например gowalker написан;
    3. martini (похоже на sinatra);
    Я бы на эти фреймворки посмотрел, потрогал, повдохновялся, но использовал бы отдельные библиотеки. Благо их в go много (mux, websocket, log, BDD test, test assert, resque worker'ы ...);
    Ответ написан
    1 комментарий
  • Основные мероприятия по переводу на HighLoad?

    @egorinsk
    Наверно хороший способ узнать это — изучить архитектуру существующих highload проектов. Держите ссылку: www.insight-it.ru/highload/

    От себя добавлю, что практически всегда необходимо предусмотреть возможность масштабирования в самом приложении (т.е. переписывать код). Нельзя просто так взять, поставить нгинкс, поменять MySQL на mongo и получить хайлоад проект (более того, поменяв mysql на mongo можно получить еще больше проблем).
    Ответ написан
    Комментировать
  • Прочитал, что MongoDB имеет ограничение в 4Мб на документ. Я не ошибся?

    xSkyFoXx
    @xSkyFoXx
    В версии 2.2 размер одного документа увеличен до 16М. Хотя, как сказали многие вверху, GridFS позволит хранить файлы любых размеров. Даже таких, который превышают размер одного физического компьютера в кластере.
    Ответ написан
    Комментировать
  • В чем принципиальная разница между twisted и tornado?

    igrishaev
    @igrishaev
    Лучше поздно, чем никогда)
    Twisted — это набор библиотек для асинхронного программирования на питоне вообще, в том числе и для веб-пректов. Tornado — это именно веб-сервер, который может запускать wsgi-приложения (без асинхронности) и приложения, построенные на собственных API (с асинхронностью). Если у вас имеено веб-проект, берите Tornado, он легкий в освоении, в то время как twisted требует более серьезного погружения.
    Ответ написан
    Комментировать
  • Open source проекты / сайты на python?

    xSkyFoXx
    @xSkyFoXx
    Ajenti. Именно такой ответ я получил на хабре несколько месяцев назад, когда задал очень похожий вопрос. Прекрастные понятные исходники. Рекомендую взглянуть хотябы одни глазом. Вдруг понравится.
    Ответ написан
    1 комментарий