Обновить
24
Владимир Кожин@affka

Senior Web Developer

14
Подписчики
Отправить сообщение
Спасибо за ссылку на пост. Я глушу ошибки именно в develop режиме, потому что часто бывает такой сценарий: начал писать код (название функции), переключился на браузер чтобы посмотреть документацию и IDE (в моем случае PHPStorm) сохраняет файл при потере фокуса окна, gulp watch начинает выполняться, падает. Все это происходит в фоне и потому не заметно.
А в продакшен билде да, вывод ошибок обязателен… Пойду проверю падает ли он в продакшене при ошибках… и с каким кодом.
Еще одним отличием (на сколько я понял) import от require() является то, что import можно располагать только в начале кода, в то время как require() может быть где угодно и подгружать модули даже динамически.
Поправьте, если ошибаюсь.
es6 раньше не писал, в чем ужас?
webpack — альтернатива browserify, но он не умеет упаковывать less, копировать файлы и еще что-нить, что может понадобитсья. Gulp умеет много и позволяет делать что угодно.
grunt тоже требовал подключения множества модулей и еще большим количеством кода. Про глоток воздуха — это про структуру тасков
Спасибо за наводку! Действительно неплохое решение, но применимое скорее для больших проектов.
У меня была задача сделать что-то для небольших (обычно уже существующих со своей структурой) проектов + этим должны пользоваться джуниоры/мидлы и ничего не сломать :) А то за последнее время народилось кучи разносортных gulp/grunt файлов, в каждом проекте свой формат и свои костыли %)
Да, я предполагал что мое решение выбивается из идеологии gulp (потому что подобных модулей не нашел), но оно было необходимо.
Сложнее и не решает все задачи:
1. Код плохо читаем — будут баги при переносе и редактировании
2. В качестве аргументов не запихаешь весь накопленный опыт. Например, мы используем plumber для глушения ошибок, чтоб процесс не завершался. Очень бесит когда в фоне watch процесс умер, а ты несколько секунд рефрешишь браузер и не понимаешь почему не работает.
3. Если нужно добавить что-то более сложное, то в cmd это уже не запихаешь, т.к. большинство плагинов ее не поддерживает
Ну вы конечно молодцы, сократили задержку — похвастались. А нам то что с вашей статьи? Технических подробностей и секретов вы не хотите рассказывать, кроме того, что используется wowza. Это не совсем формат хабра.
Это пздц, товарищи… Чтож за день то такой…
Если по делу:
Автор, ваш говнокод никому в не интересен, тем более в таком виде. То, что у вас «работает» — не означает что этим можно делиться.

Попробуйте оформить это как отдельный плагин к jQuery, хотя бы, избавьтесь от echo, привязке к элементам по айдишникам и т.д… а пока что уберите этот стыд в черновики.
Gii в планах, но не в ближайших, хотя вполне может кто-нибудь заняться его реализацией. Сами формы в еще более далеких планах. Jii ориентирован на более сложные приложения, где много логики на клиенте, а значит отрисовка вьюшек будет происходить какими-либо фреймворками/библиотеками (backbone/sencha/dojo/...) и Jii будет предоставлять каркас приложения, модели и контроллеры. И сделает все возможное, чтобы другие библиотеки могли параллельно с ней работать. Такое мое видение на данный момент, его можно менять :)
Круто! А чем рисовали графики, да еще и с анимацией? Поделитесь названием софта :)
да. Примеры можно оставить в виде ссылки в README.md на библиотеку
Загуглить, конечно, не долго было, но пару предложений о том, что такое «Рутокен» — можно было вставить.
В репозитории у вас и исходники, и nw.js (nw.exe + всякие dll) и билд для windows… А еще примеры сишной библиотеки в app прям лежат, в билде пути C:\… и т.д… Чистить, чистить и еще раз чистить репозиторий и проект.
Лучше nw.js вообще выкинуть из репозитория, а билды хранить в отдельной папке.

И, я так понимаю, это все только для windows актуально? Об этом статье/репозитории стоит указать
Спасибо за подробный ответ! У нас тоже есть немного схожего с вашей архитектурой: тоже есть мастер процесс, который следит за остальными и не работает с запросами и бизнес логикой, процессы перезагружаются раз в сутки в разнобой (не все разом), нормально завершая свою работу (обрабатывая последние запросы и не принимая следующие), а состояние все в редисе хранится.
Но я очень рад слышать, что все-таки можно иметь приложение без утечек, нам уже казалось это из ряда фантастики для node.js.

У нас в глубине приложения используются express и sockjs. Есть какой-то опыт с ними по поводу утечек?
А у вас нода без перезапусков работает? Утечек вообще никаких нет?
Мы стараемся данные держать где-нить в Redis'е. При обильном использовании памяти нода быстро уходила в цпу 100%, правда это еще было при версии ноды ~0.5…
А что значит «критический объем утечки»? Почему после какого-то предела по памяти нода залипает по цпу?
У нас на серверах памяти много, по ней не упираемся в какие-то лимиты, но если нода начинает много памяти кушать, то она начинает залипать по цпу… и это проблема.

У нас ~500 запросов в секунду в пиках, каждый из воркеров потребляет ~200 мб памяти
Большое спасибо на находку и ее исследования!
А при данном баге память постоянно течет? Т.е. даже после каких-то долгих таймаутов (2 минуты, например) не очищается?
У нас есть high-load приложение на ноде, 3-4 тысячи пользователей онлайн на каждом из серверов, запросов очень много. Память течет, исследовать настолько глубоко нет времени/средств, пришлось делать под 20 воркеров на каждом сервере (которые расходуют по 10-20% цпу) и перезагружать раз в сутки эти воркеры, чтобы очистить память. Если делаем мало воркеров (10, например), то в пиках нагрузки они начинают грузить проц под 100%, не могут обработать запрос и цпу не снижается даже сли нагрузку вообще убрать.
Как думаете, ваш багфикс сможет нам помочь?
Да, меня тоже немного это опечалило. Переход скорее всего связан с большими возможностями sass + скорость компиляции выше.
Значит нужно просто менять свои принципы и переходить на sass :)
Да ну нафиг такую бандуру брать с собой в поход чтоб зарядить мобилку, проще пару аккумуляторов с собой взять… Или солнечных батарей
А по сколько строк в каждом из небазовых (типа Web.php) конфигов? Мы обычно сводим такие настройки в один файл production.php, т.е. на каждый env — свой дополнительный файл, который мержится с base и web/cli.
А вообще в данном аспекте «пули» быть не может, конфигурация сильно зависит от масштабов проекта. Но в одном всегда одинакого — должен быть файл config.php, который лежит в корне и которого нет в гите (на каждой машине — свой). И там идут переопределения настроек индивидуально для машины + пароли для БД/токены/… от продакшена, т.к. хранить пароли в гите — зло :)
Недавно для своего фреймворка делал основу для конфигурация, вот такие примеры получились — github.com/jiisoft/jii-workers/tree/master/examples

Информация

В рейтинге
Не участвует
Откуда
Красноярск, Красноярский край, Россия
Дата рождения
Зарегистрирован
Активность