Завтра
Кст, уже забил на свой апдейтер?
Пока не до этого вообще, мы сейчас апдейты новые не выпускаем
Исмаил
Исмаил
А как вскод это делает?
Исмаил
Или там все приложение заново качается всегда?
Den
Ну я работаю с React + Electron
Вы node_modules для проекта на реакте тоже в инсталлятор включаете?
Vadim
Разницу между devDeps и deps знаешь?
Den
Не всё, только то что нужно)
А в проекте разве не только то что нужно?)
Den
.
Я правильно понимаю, у вас собранный билд клиента + дублирующиеся deps для него же - все это в инсталлятор?? Это ж ппц.
Den
Треш, конечно..
Den
Да ладн, на ты норм
Vadim
Да ладн, на ты норм
В devDeps пиши все зависимости, кроме нескольких которые нужны именно коду который исполняется в ноде, их добавляй в депсы
Vadim
Плюс настрой включаемый папки в сборку
Vadim
А именно, только папки со сборкой
Den
🤔
Den
Чито?)
Судя по твоим словам, зависимости для фронта надо складывать в devDeps
Vadim
Обычно это неправильно, но в этой ситуации очень даже норм
Den
Я понял. Как вариант.
Den
Единственно, это неочевидно.
Den
(Хуево)
Den
Но есть еще один момент - как ты будешь различать deps от devDeps для реакта?
Den
Это все очень неочевидно.
Den
Зачем?)
Чтоб легче было новому человеку в коллективе разобраться в твоем проекте.
Den
Документация для слабаков?
А что у тебя в доке? Есть ли там список зависимостей (просто интересно, чем ты собираешь прод)?
Den
Обычно, это в package.json - и devDeps может быть такое же количество пакетов, сколько в deps
Vadim
Мля, чел о чем ты?) Забей
Den
Мля, чел о чем ты?) Забей
Впрочем, если ты один на проекте, то не парься) Если больше одного разраба - это начало хаоса.
Den
Ор
Ага
Anonymous
Ну пост хороший
Артем
Представь себе, это бесит Особенно когда каждый минорный апдейт и у пользователя снова качаются все эти 50-100 метров
если каждый минорный апдейт требует перескачивания целого инсталлятора, то руки нужно отрывать и менять местами с ногами - не из того места, видимо, растут... Но вообще, складывается впечатление, что те, кто высказался на эту тему ни разу не работали в жестких временных рамках. Есть 4 недели на "нечто"... если разработчик выдал это нечто работающее на общих принципах через 3 недели в рабочем состоянии, то есть лишняя неделя "оптимизировать" что ему угодно... но если разраб потратил сначала неделю, а потом просрал сроки из-за этой задержки, то херовый это разраб и с таким работать по меньшей мере рисковано...
Anonymous
Хоть и не по теме
Anonymous
да, норм пост
Артем
и да, как там говорили выше на тему "не надо считать юзеров за идиотов" или как-то так... правильнее сказать - не нужно считать юзеров дофига умными... 90% ПОЛЬЗОВАТЕЛЕЙ реально понятия не имеют в чем разница между 150 и 200 Мб, если им нужно что-то скачать, то они просто качают... если что-то нужно для работы, то на это есть админ или девопс в компании, и если он идиот, то это его проблема и проблема его работодателя... юзеры не идиоты, но они и не технари все поголовно, чтобы подстраиваться под каждого, сидящего на модеме
Артем
а если выбирать такую позицию, то обязаны писать такие программы, которые всем юзерам "зайдут" по интерфейсу, но таких что-то я не видел ни одной, даже те проги, что скины имеют и несколько форматов вида "простой/расширенный/профи" и т.д.
Electron.js releases
v7.0.0-nightly.20190727 https://github.com/electron/electron/releases/tag/v7.0.0-nightly.20190727 v7.0.0-nightly.20190727
Den
Господа, поскажите, выполняю mainWindow.loadURL('http://localhost:3000') как проверить, доступна ли эта страница или еще нет соединения?
Dmitry
fetch?
Den
fetch?
Похоже на костыль. Ищу пока варианты получше.
Dmitry
единственный другой вариант - зацепиться на порт через сокет, если удастся - то всё ок
Dmitry
const client = new net.Socket(); client.connect(3000, '127.0.0.1', () => { console.log('Connected'); client.destroy(); })
Den
const client = new net.Socket(); client.connect(3000, '127.0.0.1', () => { console.log('Connected'); client.destroy(); })
Да, хороший вриант. net - это тулза какая-то специальная?
Dmitry
не, const net = require('net')
Dmitry
это из node.js API
Den
const client = new net.Socket(); client.connect(3000, '127.0.0.1', () => { console.log('Connected'); client.destroy(); })
Блин, но по идее, это зафэйлится при первой же попытке.
Den
localhost:3000 гарантировано не успевает завестись.
Dmitry
да, надо делать exponential retries - через 1, 3, 5, 10, 30 секунд
Dmitry
а пробник обернуть в промис, который порезолвится по успеху или зафейлится по таймауту выставленному
Den
да, надо делать exponential retries - через 1, 3, 5, 10, 30 секунд
А есть где-нибудь пример реализации?
Завтра
если каждый минорный апдейт требует перескачивания целого инсталлятора, то руки нужно отрывать и менять местами с ногами - не из того места, видимо, растут... Но вообще, складывается впечатление, что те, кто высказался на эту тему ни разу не работали в жестких временных рамках. Есть 4 недели на "нечто"... если разработчик выдал это нечто работающее на общих принципах через 3 недели в рабочем состоянии, то есть лишняя неделя "оптимизировать" что ему угодно... но если разраб потратил сначала неделю, а потом просрал сроки из-за этой задержки, то херовый это разраб и с таким работать по меньшей мере рисковано...
Здорово, но 1) Автоапдейтер электрона, к сожалению, работает именно так 2) И может не будем меряться, у кого хуевее дедлайны? Это не связанные вещи, MVP на то и MVP, чтобы с минимумом затрат протестить какую-то концепцию. После этого уже должен идти процесс полировки и доработки, если этого процесса нет - "руки отрывать", как вы выразились, нужно руководсту
Завтра
А насчет "не чувствуют разницы между 150 и 200 мб" - престиж проекта формируется из сотен мелких критериев, от плавности анимашек, до вот этих ожиданий загрузок, и производить хуевое впечатление на старте - ну такое
Артем
Здорово, но 1) Автоапдейтер электрона, к сожалению, работает именно так 2) И может не будем меряться, у кого хуевее дедлайны? Это не связанные вещи, MVP на то и MVP, чтобы с минимумом затрат протестить какую-то концепцию. После этого уже должен идти процесс полировки и доработки, если этого процесса нет - "руки отрывать", как вы выразились, нужно руководсту
В вашей позиции с отрывом рук руководству есть одна тонкость, а с какого перепугу вообще руководство должно знать, какой именно хренью занимается нанятый сотрудник? Выполняет поставленную задачу, на которую отведен определенный срок, или занимается лишней преоптимизацией, оправданность которой под ооочень большим вопросом, а потом просирает сроки! И по поводу многих мееелких деталей - если проект не выйдет в заявленный срок, то все эти мелкие детали нахуй никому не будут важны, зато будет важна одна - проект не вышел в заявленный срок! Выпустил проект, вылизанный на тему ошибок - а дальше занимайся оптимизациями и т.п. процессами, ЕСЛИ ОНИ НЕОБХОДИМЫ...
Завтра
В вашей позиции с отрывом рук руководству есть одна тонкость, а с какого перепугу вообще руководство должно знать, какой именно хренью занимается нанятый сотрудник? Выполняет поставленную задачу, на которую отведен определенный срок, или занимается лишней преоптимизацией, оправданность которой под ооочень большим вопросом, а потом просирает сроки! И по поводу многих мееелких деталей - если проект не выйдет в заявленный срок, то все эти мелкие детали нахуй никому не будут важны, зато будет важна одна - проект не вышел в заявленный срок! Выпустил проект, вылизанный на тему ошибок - а дальше занимайся оптимизациями и т.п. процессами, ЕСЛИ ОНИ НЕОБХОДИМЫ...
С такого перепугу, что это хуевое руководство, если оно не осознает тривиальных вышеописанных вещей И никто не говорил страдать этим всем вместо разработки проекта, хватит гиперболизировать до абсурда
Den
да, надо делать exponential retries - через 1, 3, 5, 10, 30 секунд
Решил ограничиться поллингом. На localhost уже есть сокет - решил не плодить их. Заработало! Думаю упаковать решение в npm пакет...
Завтра
С вашей точки зрения разработка выглядит как бесконечное ебаное колесо с хомячком, в котором у него нет времени ни на что, кроме как клепать прототипы на отъебись, лишь бы заработало, в связи с чем и появляется ненависть к оптимизациям и полировке мелких деталей Но увы, так далеко не везде, и если у вас так, то мне жаль, что тут сказать
Артем
С такого перепугу, что это хуевое руководство, если оно не осознает тривиальных вышеописанных вещей И никто не говорил страдать этим всем вместо разработки проекта, хватит гиперболизировать до абсурда
ну-ну =))) это уже даже не абсурд, а смешно =)))) дяденька с деньгами, который платит сотрудникам за выполнение проекта должен разбираться, чем же этот программер занят - код пишет для реализации поставленной задачи или занимается преоптимизацией... дурь несусветная!!! дяденька нанимает людей и платит им деньги... в случае команды нанимает руководителя этой команды, который понимает программистов, но с этого человека дяденька спросит по факту - с какого хрена сроки просрали и ему будет до лампочки, что просрали все "потому что инсталлятор уменьшали"
Завтра
Я еще раз повторяю - в моих словах не было "вместо работы фиксить инсталляторы", рекомендую научиться читать
Артем
С вашей точки зрения разработка выглядит как бесконечное ебаное колесо с хомячком, в котором у него нет времени ни на что, кроме как клепать прототипы на отъебись, лишь бы заработало, в связи с чем и появляется ненависть к оптимизациям и полировке мелких деталей Но увы, так далеко не везде, и если у вас так, то мне жаль, что тут сказать
а мне жаль вас, если вы приступаете к выполнению фактических задач не с проектирования и реализации скелета, а с идиотских преоптимизаций... любые разработки начинаются именно с прототипов, корявых, больших и периодически глюкавых, и потом их причесывают - и степень причесывания зависит не от домыслов о лишних секунд на скачивание, а от ресурсов, которые готовы предоставить непосредственно наниматели... ну разве что вы альтруист по жизни и готовы заниматься вылизыванием продукта просто так, без оплаты =)))
Артем
Я еще раз повторяю - в моих словах не было "вместо работы фиксить инсталляторы", рекомендую научиться читать
а я рекомендую не материться по отношению к человеку, который не переходил на мат в ваш адрес... статус админа чата не дает права вести себя как хамло...
Den
Я работаю в конторе, в которой заказчик знает за что платит только благодаря красивым росказням продукт манагеров. И это не значит, что я не должен строить оптимизированный продукт на этапе проектирования каждой из фич.
Anton
Тема конечно интересная, но вопрос по существу. У кого то получилось делать апдейт не всего приложения а только фронта?
Den
Аа. Только фронта.
Den
А что сложного? Используя бойлерплейт, в котором фронт в отдельной папке - можно его из репозитория скачать, сбилдить, не выключая электрон.
Den
(Я позже добавлю команду)
Den
https://github.com/pravosleva/electron-react-boilerplate-2019
Den
Я ж говорил, архитектуру надо нормальную сразу проектировать )
Den
Логическии следует то, что фронт должен быть отдельным репозиторием. Значит нужно изменить бойлерплейт..
Den
*тут была б уместна злорадная шутка про "преждевременную оптимизацию ради оптимизации"