Потестил ab, первый раз ab -c 100 -n 1000 выдал 0.5 мс на запрос, каждый последующий запуск был медленнее, после 3-го запуска стал выдвать 23 мс. Нода и Эрланг с cowboy выдают примерно по 0.1 мс на запрос стабильно. Почему так?
Ухты! Знал бы две недели назад, сэкономил бы кучу времени и нервов. Для обучения и мастер-классов самое то. Как раз была задача обеспечить для аудитории со своими ноутами одинаковое окружение.
Прочитал полностью, выскажу свои претензии автору:
единожды проинициалированная переменная в доброй половине случаев может быть использована хоть через год работы программы
Нуну, глобальные переменные и синглтоны видимо рулят.
Любой тогдашний средний сервер обзавидовался бы… разрешению экрана
О_о?!?!?
различных степеней парсинг
Кэшировать можно байткод кстати.
Если парадигмы User/Password и Post/Comments настолько прочно обосновались в веб-технологиях — почему работа с ними, включая хранение, до сих пор не выведена на уровень стандарта языка или протоколов?
Можете считать, что соответстующие банлы разных фреймворков и есть DSL для этих нужд.
Ох, что-то надоело… Вобщем, я не удивляюсь, что человек, который веб-разработку краем глаза видел, такие мысли рождает. Но они — от незнания инструментов. Я сам когда-то думал: «как же так? интерактивные приложения и stateless протокол под капотом?», а потом открыл для себя очень много интересных вещей.
Отсюда следует еще один вывод — на всех этапах развития науки, знание всегда было неполным и формировало в головах тех, кто его касался, некий научный миф. Сейчас ситуация точно та же что и при древних греках, только наш научный миф позволяет ракеты запускать, а грекам приходилось довольствоваться только рычагами да насосами. Но насколько мы близки к пониманию сути явлений, нас окружающих, этого видимо никто не знает. И тут встает вопрос, насколько картина мира рационально мыслящего материалиста вернее, чем картина мира религиозного и мистически настроенного человека? Я хоть сам и атеист, но этот вопрос частенько себе задаю.
Работаю программистом 3 года (подрабатываю гитаристом в cover-группе в кабаках :)), до этого поработал промышленным альпинистом, столяром, преподавателем гитары. С удовольствием попробовал бы себя в какой-нибудь профессии связанной с морем, на рыболовном судне или спасателем… Еще одна страсть — самолеты! Не знаю даже, мне кажется в мире офигительное количество очень интересных вещей. Возможно, это от того что я пока молодой (25 лет), но я не вижу проблемы в смене деятельности.
Security фиксы — это одно, а изменение api — другое. Библиотеки обычно привязываются к мажорной ветке зависимости, например mkdirp: '0.3.x'. В рассчете на то, что в 'x' как раз будут исправления безопасности, и в то же время можно рассчитывать на стабильный api.
Папка node_modules не обновляется сама по себе, если по какой-то причине разработчик решил обновить версии модулей, это изменение конечно же пойдет отдельным коммитом с соответствующим commit message. Для аналога lock в npm, как уже указали, есть npm shrinkwrap.
Не проверял их на конфликтность но на моем текущем проекте есть по 3 версии commander, methods и mkdirp, и по 2 версии bson, cookie, esprima, formidable, lru-cache, mime, minimatch, mongodb, pause, pkginfo, sigmund, sliced, uglify-js, underscore. Такое происходит, когда разные библиотеки, которые ты зарекваирил тянут за собой в зависимостях разные версии одной и той же библиотеки. Ситуация вполне типичная для большого проекта.
Хм… Не сталкивался с такими build-скриптами, и имею привычку смотреть git status и git diff перед коммитом. Может быть какой-то смысл в этом есть, но тут уже ответственность полностью на разработчике, и всегда есть возможность откатиться. Ну а от всего не застрахуешься, по-пьяни можно и rm -rf /* на сервере набрать.
То есть там фактически и нет дерева зависимостей. Список библиотек — плоский, по одной штуке каждой версии. А если требуется поставить 2 зависимости, которые в свою очередь зависят от одной библиотеки, но разных версий, получим конфликты. npm принципиально отличается в этом плане, проблема в том, что люди тащат свои старые привычки в новую среду, не понимая особенностей инструмента, с которым работают. lock был нужен, так как не было гарантии, что приложение будет использовать код из репозитория в новой среде, даже если мы закоммитим зависимости. Теперь он просто не нужен, хотя возможность его сделать есть, как указали в комментах npm shrinkwrap. Но в любом случае, необходимость отпала, нужно просто переступить через свои старые привычки :)
Вот же… Вся статья как раз о том, что в npm нет проблем, которые есть в bundler/composer, таких как конфликты версий, например.
Вы можете представить себе 2 больших сложных проекта на рельсах на одной машине и при этом не в сэндбоксе? Это же просто фантастика и сказки. А на ноде, раз плюнуть.
Отчасти может быть и да, но, на мой взгляд, от очень маленькой части, и вообще, это спорное утверждение. Основная цель пакетного менеджера — поддерживать рабочее окружение проекта. И бандлер справляется с этим хуже чем npm. Отсюда костыли в виде rvm.
Мне кажется, это не проблема. npm rebuild при деплое их соберёт. Я понимаю, что процесс деплоя уже может быть давно отлажен, хорошо работает и нет смысла что-то менять. Просто ищу аргументы против node_modules в репе. Пока внятных не нашел :)
На вкус и цвет… Лично мне не мешает
Да ладно, ну сколько можно? Как говорят на ЛОРе — 4.2. В ES6 уже и ключевое слово «class» ввели для тех, кто без него не может жить и программировать.
rust посмотрел, забавно, но у него есть как минимум один недостаток, v8 его не исполняет :)
Нуну, глобальные переменные и синглтоны видимо рулят.
О_о?!?!?
Кэшировать можно байткод кстати.
Можете считать, что соответстующие банлы разных фреймворков и есть DSL для этих нужд.
Ох, что-то надоело… Вобщем, я не удивляюсь, что человек, который веб-разработку краем глаза видел, такие мысли рождает. Но они — от незнания инструментов. Я сам когда-то думал: «как же так? интерактивные приложения и stateless протокол под капотом?», а потом открыл для себя очень много интересных вещей.
Предлагаю автору познакомиться с node.js =)
Вы можете представить себе 2 больших сложных проекта на рельсах на одной машине и при этом не в сэндбоксе? Это же просто фантастика и сказки. А на ноде, раз плюнуть.