Что такое «сетевые» задачи? Автор поста пишет, что невозможно изменить параметры создания сокета, не используя syscall — это вообще что хрень такая-то? Нафига тогда го, если есть С?
«Go нужен хорош для сетевого программирования» — мантра которую все повторяют, но видимо уже забыли, что это вообще значит.
Перечитайте первый пункт моего ответа. node-source-map-support подключить можно и без babel-node.
Тесты спасают 90% случаев. Если, конечно, разбивать все на маленькие модули и тестировать все по отдельности. У меня раз в неделю-две возникает необходимость что-то дебажить, в остальном решается либо тестами, либо console.log банально. Для меня это выбор — писать на приятном глазу языке, или расставлять костыли для IDE. Каждому свое.
А вы как будто не расписываете типы, чтобы можно было использовать библиотеку с вашей точки зрения (вы написали что без автокомплита не можете программировать)?.. Ну и есть огромный репозиторий .d.ts файлов почти на все популярные библиотеки. Постоянно обновляется и дополняется. Им, кстати, пользуется js плагин в idea.
Вы раз уж начали со мной переписку в привате — там ее и продолжайте. Сор из избы не выносят.
Попробуйте babel-node, там используется библиотека node-source-map-support и сорсмэпы работают.
Чтение кода ухудшает использование ES5, по сравнению с ES2015. Мне почти не приходилось дебажить свой код, все решалось написанием тестов.
Я пока отвечал вам на все это, пришел к мнению, что вам нужно перейти на typescript. У него существенно лучше поддержка в IDE и редакторах, тк по языкам с типами и детерминированными конструкции для импортов/экспортов функций/классов гораздо проще сделать все удобные штучки для IDE. Лично для меня в этом языке только async/await не хватает.
В кратце — использование arguments вне функции (возвращение из функции, передача в качестве параметра, использование в замыкании), все это не дает v8 (и возможно другим движкам) оптимизировать функцию.
Ну конечно лаконичнее. Ведь код babel и код coffee делает разные вещи. for-of — синтаксис для обхода итераторов, а for-in в coffee — для массивов. Подучите матчасть по javascript.
Вот вам примерчик:
const numbers = new Set([1, 2, 3]);
for (const num of numbers) {
console.log(num);
}
А вот вам вдогонку пример, как coffee убивает производительность вашего кода:
Феерическая глупость — использовать инструменты без чтения документации. Советую ознакомиться с loose mode, зачем он нужен и почему по дефолту без него. Вот так правильно
Это не забота о потребляемой памяти, это техническая неграмотность. Любой node сервер работает в асинхронном режиме, а require — синхронная функция. То есть так или иначе в какой-то момент весь ваш код будет загружен в память, и именно в момент подгрузки ваш асинхронный код залочится, а для кого-то это может быть критично, а не пара мегабайт байткода.
Я пользуюсь babel еще тогда, когда он был в 3 версии и назывался 6to5. Я отлично знаю, как с ним дебажить.
Покажите мусор, покажите что не работает. Хватит бросаться словами на ветер.
Хоть я и не одобряю как yii, так и вашу поделку, осмелюсь спросить — а чего сложного в дебаге скомпилированного кода из es6 в es5? Есть сорсмэпы, да и babel генерирует понятный, читабельный код. Это вам не coffee.
Зачем вам в node ленивая подгрузка модулей? В php она нужна, потому что на каждый запрос новая инициализация, а зачем такое вам?
Ну конечно. Только мы в реальном мире находимся и за то время, пока пользователь на сайте находится, другой пользователь тоже может что-то менять. Так что эти данные необходимо каждый раз перезагружать.
Я вот недавно столкнулся с простой проблемой. Допустим вы делаете админку. Получается у вас все сторы превращаются в гигантские статические переменные, причем некоторые еще понятны, UsersStore — ок, список пользователей. А вот где держать пользователя при переходе на /users/:id? В UserStore? Тогда каждый раз оно будет обновляться, в итоге это просто глобальная переменная
Ну тут можно продолжать спорить. joomla, modx, wp — это все не интересно клиенту. Ему нужен работающий сайт с удобной админкой. Быстро, дешего и безопасно.
Ну и тысячи не нужны даже разработчикам. Нужно максимум 100, и это с альтернативами по назначению сайтов.
Шареды до сих пор существуют из-за некомпетентности заказчиков/исполнителей, у них сейчас есть выбор, перейти на saas модель (или vps/vpc), либо просто вымирать.
Я не знаю что это за случаи такие. Только шаред-хостинги, но ничего, они скоро умрут и их заменят saas решения, какая разница пользователю wordpress: использовать saas, или шаред хостинг?
Соли в том, что на каждый запрос apache проверяет, не поменялся ли .htaccess — я не вижу, вижу только минусы.
Кстати можно и nginx подпереть небольшим костылем, в виде watch файлов конфигов и nginx reload, если надо. Все это накостылить в виде демона и запустить из под нужного пользователя. Это если прямо сильно надо.
Смотря что иметь ввиду под «на горячую». Сам nginx конфиг не перезагрузит, однако без рестарта его можно загрузить, с помощью
nginx -s reload
или
sudo service nginx reload
. Это не остановит сервер, а просто даст ему команду перезагрузить конфигурацию, текущие запросы отработают по старой конфигурации, а новые — по новой.
И как понять, что не так? По названию файла?
«Go нужен хорош для сетевого программирования» — мантра которую все повторяют, но видимо уже забыли, что это вообще значит.
Тесты спасают 90% случаев. Если, конечно, разбивать все на маленькие модули и тестировать все по отдельности. У меня раз в неделю-две возникает необходимость что-то дебажить, в остальном решается либо тестами, либо console.log банально. Для меня это выбор — писать на приятном глазу языке, или расставлять костыли для IDE. Каждому свое.
А вы как будто не расписываете типы, чтобы можно было использовать библиотеку с вашей точки зрения (вы написали что без автокомплита не можете программировать)?.. Ну и есть огромный репозиторий .d.ts файлов почти на все популярные библиотеки. Постоянно обновляется и дополняется. Им, кстати, пользуется js плагин в idea.
Я пока отвечал вам на все это, пришел к мнению, что вам нужно перейти на typescript. У него существенно лучше поддержка в IDE и редакторах, тк по языкам с типами и детерминированными конструкции для импортов/экспортов функций/классов гораздо проще сделать все удобные штучки для IDE. Лично для меня в этом языке только async/await не хватает.
Вот вам примерчик:
А вот вам вдогонку пример, как coffee убивает производительность вашего кода:
Вот так правильно
Покажите мусор, покажите что не работает. Хватит бросаться словами на ветер.
У вас есть файловая система и common.js/es2015 modules.
Зачем вам в node ленивая подгрузка модулей? В php она нужна, потому что на каждый запрос новая инициализация, а зачем такое вам?
Ну и тысячи не нужны даже разработчикам. Нужно максимум 100, и это с альтернативами по назначению сайтов.
Шареды до сих пор существуют из-за некомпетентности заказчиков/исполнителей, у них сейчас есть выбор, перейти на saas модель (или vps/vpc), либо просто вымирать.
Соли в том, что на каждый запрос apache проверяет, не поменялся ли .htaccess — я не вижу, вижу только минусы.
Кстати можно и nginx подпереть небольшим костылем, в виде watch файлов конфигов и nginx reload, если надо. Все это накостылить в виде демона и запустить из под нужного пользователя. Это если прямо сильно надо.
nginx -s reloadилиsudo service nginx reload. Это не остановит сервер, а просто даст ему команду перезагрузить конфигурацию, текущие запросы отработают по старой конфигурации, а новые — по новой.include /var/www/awesome_project/nginx.conf