Size: a a a

2020 June 27

🦜

🦜 in ☄️ effector
но вот с jsdoc мне удобнее
источник

🦜

🦜 in ☄️ effector
в вебшторме поставил типы от либ, которые юзаешь, если автоматом не подхватились и все зер гуд
источник

DT

Daniil Tchernyavsky in ☄️ effector
makoven
Я то не против. Остальные 532 мембера наверное не очень оценят. Мы и так тут нафлудили)
Окей, совсем краткое имхо. Жоес - скрипт и на мой взгляд он благодаря этому может считаться как выразительным. По факту тс - абстракция, на выходе у тебя все равно жс. При этом существует вероятность сорцмапов. С кем я работал, никто не пытался делать ==, либо сложение строк с числами, которые иногда любят спрашивать на собесах даже, то есть у моих тимейтов не было желаний делать неявное приведение типа. В следствии чего мы точно знаем что ожидаем. Из-за этого на мой взгляд существует как минимум избыточность тс (не учитываю всякие компиляции, читаемость возрастает, мб оптимизация где - то страдает, был тред, что стайлед с тс долго обрабатывал). Щас может прозвучать глупость, но жс и так типизирован, не требует указания этих типов.
К чему я подвожу. Люди чаще всего ставят ТС выше тестов. В следствии чего делают себе абстракцию что все ок. Сравним с тем же шарпом, там на уровне рантайма. У нас есть конечно io-ts и подобные реализации.
И в следствии чего мой вариант - тесты и жсдок (причем мы еще и документацию сгенерим). По факту, у нас тесты упадут, если мы начнем работать не с тем типом например (бек решил вместо массива объект отдать), ну потому что вычилсения пойдут по пизде. Даже если ты тс обмазался. И из-за этого тесты > тс.
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
makoven
Но tsc запускать все равно надо)
ни разу за последние месяца 3 не запускал tsc вручную, редактор справляется с этим самостоятельно, а тайпчекинг в ci вообще считаю антипаттерном)
источник

m

makoven in ☄️ effector
Daniil Tchernyavsky
Окей, совсем краткое имхо. Жоес - скрипт и на мой взгляд он благодаря этому может считаться как выразительным. По факту тс - абстракция, на выходе у тебя все равно жс. При этом существует вероятность сорцмапов. С кем я работал, никто не пытался делать ==, либо сложение строк с числами, которые иногда любят спрашивать на собесах даже, то есть у моих тимейтов не было желаний делать неявное приведение типа. В следствии чего мы точно знаем что ожидаем. Из-за этого на мой взгляд существует как минимум избыточность тс (не учитываю всякие компиляции, читаемость возрастает, мб оптимизация где - то страдает, был тред, что стайлед с тс долго обрабатывал). Щас может прозвучать глупость, но жс и так типизирован, не требует указания этих типов.
К чему я подвожу. Люди чаще всего ставят ТС выше тестов. В следствии чего делают себе абстракцию что все ок. Сравним с тем же шарпом, там на уровне рантайма. У нас есть конечно io-ts и подобные реализации.
И в следствии чего мой вариант - тесты и жсдок (причем мы еще и документацию сгенерим). По факту, у нас тесты упадут, если мы начнем работать не с тем типом например (бек решил вместо массива объект отдать), ну потому что вычилсения пойдут по пизде. Даже если ты тс обмазался. И из-за этого тесты > тс.
> С кем я работал, никто не пытался делать ==, либо сложение строк с числами
Это поверхностно) Типы больше про соглашения, контракты в аннотациях функций, фиксация формы структур. Жсдок глубоко не юзал, но подозреваю, что он умеет не всё, что умеет тс
источник

DT

Daniil Tchernyavsky in ☄️ effector
makoven
> С кем я работал, никто не пытался делать ==, либо сложение строк с числами
Это поверхностно) Типы больше про соглашения, контракты в аннотациях функций, фиксация формы структур. Жсдок глубоко не юзал, но подозреваю, что он умеет не всё, что умеет тс
Под контрактами ты понимаешь передали мы туда данные нужного типа?
источник

TG

Timofey Goncharov in ☄️ effector
что делает useEvent в effector-react/ssr?
источник

m

makoven in ☄️ effector
🚀🔬 🚀🔬🚀🔬
ни разу за последние месяца 3 не запускал tsc вручную, редактор справляется с этим самостоятельно, а тайпчекинг в ci вообще считаю антипаттерном)
Жетбрэйнс? Мой вскот не очень стремится проверить все файлы. Толтко открытые и их зависимости
источник

D

Draft in ☄️ effector
Видел проекты в которых билд выполнялся средствами IDE без всяких вебпаков/gulp
источник

m

makoven in ☄️ effector
Daniil Tchernyavsky
Под контрактами ты понимаешь передали мы туда данные нужного типа?
И возвращает. Плюс дженерики, плюс оверрайд. Если речь про функции
источник

DT

Daniil Tchernyavsky in ☄️ effector
makoven
И возвращает. Плюс дженерики, плюс оверрайд. Если речь про функции
Окей, а какой именно плюс это дает? Контроль входных и выходных типов?
источник

m

makoven in ☄️ effector
Daniil Tchernyavsky
Окей, а какой именно плюс это дает? Контроль входных и выходных типов?
Проверка на здравый смысл. При рефачинге всех деталей не упомнишь, где что вызывал. Аннотации заставят компьютер это проверять
источник

DT

Daniil Tchernyavsky in ☄️ effector
makoven
Проверка на здравый смысл. При рефачинге всех деталей не упомнишь, где что вызывал. Аннотации заставят компьютер это проверять
Тут есть доля правды. Но это в общем на уровне жсдока и тестов все равно будет видно же.
источник

DT

Daniil Tchernyavsky in ☄️ effector
Ведь мы ориентируемся чтобы наша программа не сломалась все же на выходе
источник

DT

Daniil Tchernyavsky in ☄️ effector
без рантайм типизации мы это все равно гарантировать не сможем
источник

DT

Daniil Tchernyavsky in ☄️ effector
Это же условно “Тут массив? - Бля буду массив"
источник

m

makoven in ☄️ effector
Daniil Tchernyavsky
Это же условно “Тут массив? - Бля буду массив"
"Тут массив" это уровень тайпхинтов в пхп) На практике там тупл, да еще и параметризированный генериком
источник

DT

Daniil Tchernyavsky in ☄️ effector
Но ведь на выходе всего это мы все равно эту же цель преследуем, нет?
источник

DT

Daniil Tchernyavsky in ☄️ effector
Daniil Tchernyavsky
Ведь мы ориентируемся чтобы наша программа не сломалась все же на выходе
зис
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Timofey Goncharov
что делает useEvent в effector-react/ssr?
биндит эвент к скоупу, чтобы использовать в обработчиках без потери контекста

const click = root.createEvent()
const Button = () => (
 <button onClick={useEvent(click)} />
)
источник