Дима
У меня есть пара вопросов по поводу mtproto api, но, боюсь, они не вполне цензурные
V◌┗⢎ℍıK
@react_js @reactnative_ru
Egor
а есть какое то другое решение, без флагов ?
А как ты себе это представляешь?
Vsevolod
набросить, что ли... Как считаете, нужно ли минифицировать релизы npm-модулей?
Vsevolod
хотя бы на уровне "вырезать пробелы"
Sergey
набросить, что ли... Как считаете, нужно ли минифицировать релизы npm-модулей?
Не надо. Отлаживать сложнее. Да и кому надо, тот да сожмет
Vsevolod
Не, не на уровне злой минификации с манглингом и структурными оптимизациями
Vsevolod
тупо взять, выкинуть пробелы, возможно, что-то внутреннее оптимизировать по мелочи
Vsevolod
чтобы npm install был быстрее, а node_modules была не больше, чем мамка %подставьте что-нибудь смешное%
Vsevolod
у меня, например, и так идет сборка одного модуля бабелем, от этого никуда не деться (декораторы используются), поэтому - возможно, имеет смысл как-нибудь покрутить
Vsevolod
а какая разница?) в глобальный скоп-то как раз один раз ставишь)
Дима
Жаль что нельзя абсолютно точно указать версию, которая для использования as is в браузере
Дима
набросить, что ли... Как считаете, нужно ли минифицировать релизы npm-модулей?
Есть, конечно. Просто указыаешь в ридми, что modulename/dist/browser.min.js - готовый модуль для использования в браузере или просто в проде
Дима
Есть разные директивы в package.json для указания версий
Дима
Но увы, они все слегка про другое
Дима
Например, поле browser — это версия, которая будет подтянута вебпаком
Дима
jsnext: main — расплывчатое описание для минимально транскомпилированной версии
Дима
Ну и т.д.
Дима
Есть, конечно. Просто указыаешь в ридми, что modulename/dist/browser.min.js - готовый модуль для использования в браузере или просто в проде
Тащемта, такой подход в итоге все и используют, создают min/js версию и указывают в readme о её наличии
Vsevolod
это-то понятно, что продакшн-сборка должна быть такой, если она есть
Vsevolod
вопрос именно про дев-сборку
Sergey
вопрос именно про дев-сборку
Удобно ли тебе будет смотреть стэктрэйс с указанием ошибки на 1 стенке 2568 символе?
Vsevolod
тебе не придется смотреть стектрейс, если будешь делать библиотеки без ошибок ;)
Vsevolod
хотя да, пока что это единственный полноценный аргумент против базовой минификации
Sergey
тебе не придется смотреть стектрейс, если будешь делать библиотеки без ошибок ;)
Да и к тому же, или если я допустил ошибку в работе с библиотекой, то хотелось бы знать что и почему
Sergey
Если я хочу отладить, куда мне точку останова воткнуть
Дима
Ну тут source maps, как бы
Дима
А для того, чтобы было понятно, что происходит, нужно делать качественные сообщения об ошибках
Дима
И это кстати такая боль, что ппц 😒
Sergey
Ну тут source maps, как бы
Не везде они работают
Дима
Реально от состояния "production ready" до "ага, понятно в чём дело" просто бездна труда
Vsevolod
Так надо просто делать minimal API surface. Меньше сущностей - меньше вероятность проблем, причем зависимость экспоненциальная
Дима
Я только сейчас понимаю, какое гигантское количество времени вкладывают в это создатели либ типа реакта
Vsevolod
И дробить на микромодули внутри
Vsevolod
Знаю, сам четвертый месяц внутреннее апи делаю
Vsevolod
Раскрой мысль, пожалуйста
Sergey
Так надо просто делать minimal API surface. Меньше сущностей - меньше вероятность проблем, причем зависимость экспоненциальная
Далеко не все модули могут впринципе имеет минимальное API Чаще люди выбирают тот модуль, у которого API богаче (помимо других характеристик)
Дима
Если у комбинации "состояние приложения x реакция сервера" дерево конечных исходов больше сибирской тайги, то тут как не минимизируй
Vsevolod
Ну так нужно тренироваться впихивать функционал в меньшее количество сущностей)
Дима
У тебя например многоступенчатый процесс, каждый шаг которого может упасть самым разнообразным уникальным способом чисто by design
Дима
Тупо например потому что ты в этих шагах делаешь кардинально разные операции
Vsevolod
Я сейчас делаю аналог одной очень популярной c++/Python либы (уровень бабеля по популярности), апи начал брать под кальку. Либа очень сложная. Уменьшил количество сущностей на треть и прям дышать стало легче)
Vsevolod
А почему в таком случае не акторную модель использовать?
Дима
Детали реализации тут не помогут особо
Vsevolod
Если честно - пока не убедил, что твой монолит не дробится. Но холивар я сейчас морально не готов устраивать)
Дима
В случае одной ошибки можно повторить процесс, в случае другой попробовать иным способом, третья — бесповоротный терминальный конец, о четвертой нужно просто уведомить пользователя, потому что это не критично но полезно
Дима
Список можно продолжать
Дима
Можно работать с ним эффективно и изящно, но сам груз дерева возможных исходов это не снижает
Vsevolod
Пока что не вижу ничего за рамками продвинутого логгера и стейтмашины или акторов)
Дима
Мне кажется, что ты с чего то посчитал, что здесь есть какая-то принципиальная проблема
Дима
Единственная проблема — это конечность человеческой жизни
Дима
А когда тебе надо задокументировать и отработать кучу вариантов, то это нудно и долго даже просто когда ты записываешь текст конечных сообщений столбиком в блокнот
Дима
Без акторов и вжух-машин
Anonymous
Используйте популярные решения
Дима
React?
Дима
У меня кажется переизбыток сарказма сегодня
Anonymous
Я не знаю, вы тут Джависты)
Jąńek
шта?
Oleg
/warn Вакансия не соответствует группе и правилам группы.
Group Butler [beta]
Alina has been warned (1/5)
Oleg
Эйчары делятся на 2 категории - на тех кто различает JavaScript и Java, и тех, кто не понимает почему их не любят.
Aleksandr
А в Java свойства объектов обозначаются подобно как в Javascript? Например так:
Aleksandr
clojure.lang.PersistentVector
Anton
Аксесят. В данном случае так же.
Anonymous
/warn Вакансия не соответствует группе и правилам группы.
Опыт программирования на js не является обязательным требованием здесь, однако работодатель рассматривает кандидатов, кто пишет в том числе на js и готов писать на java. Поэтому я и сообщила о вакансии.
Anonymous
При таком условии пост можно возобновить?)
Sigmas
При таком условии пост можно возобновить?)
Он не это имел ввиду. Вы не там размещаетесь, здесь обсуждают, как правильно код писать, а Вам надо в @js_jobs
Oleg
Опыт программирования на js не является обязательным требованием здесь, однако работодатель рассматривает кандидатов, кто пишет в том числе на js и готов писать на java. Поэтому я и сообщила о вакансии.
Для того чтобы это была вакансия о js - основным скилом в вакансии должен быть js. Иначе любой опыт программирования можно подтянуть до вашего аргумента.
Oleg
При таком условии пост можно возобновить?)
Нет. Но вам предложили выше ссылку на более лояльный чат. Однако, скорее всего реакция будет та же.
Oleg
И да, в нашей группе нужна вилка ЗП.
Anonymous
Хорошо.
Anonymous
Можете, пожалуйста, переслать текст опубликованной вакансии мне? :)