@react_js

Страница 1297 из 5115
Сергей
16.05.2017
09:39:24
а говна написать каждый сможет в любом стиле (но без типов это сделать проще)

Алексей
16.05.2017
09:41:13
причем тут разбираться, я уже на каком только языке с типами не писал, начиная от си заканчивая свифтом и не уведел того большого профита который обещают)

Сергей
16.05.2017
09:41:27
> дженерики > си

Алексей
16.05.2017
09:41:46
Google
Алексей
16.05.2017
09:42:38
я честно не пробовал раст, но слышал что там safe писать нереально сложно и многие пишут unsafe код)

Max
16.05.2017
09:43:00
а где раст вообще юзают?

Dreamerinnoise
16.05.2017
09:43:10
Сергей
16.05.2017
09:43:10
а где раст вообще юзают?
очень часто вижу в криптообменниках

в рашке только в крипте встречал

andretshurotshka?❄️кде
16.05.2017
09:43:43
Vladimir
16.05.2017
09:47:25
Может нахер этот flow?:)

Oleg ?
16.05.2017
09:47:57
Блин, я специально вбросил, чтобы разобраться плюсы/минусы

Max
16.05.2017
09:48:01
Может нахер этот flow?:)
правильно, есть TS

Oleg ?
16.05.2017
09:48:01
Минусов не нашёл

Google
Oleg ?
16.05.2017
09:48:17
Если нравится без него - не используй)

code4aman
16.05.2017
09:49:27
Хороший холивар, можно понять зачем что делается и какие у этого плюсы
+1 что хорошая тема, и вывод для меня такой: вот если покрывать все тестами, это не выгодно экономически, с типами я могу писать тесты только там где не хватает типов, где это важно (бизнес логика), а ошибки уровня гетеров/сетеров или параметров функций - тут типы просто не дадут скомпилировать код так чем сильнее система типов тем меньше нужно на самом деле тестов

Дмитрий
16.05.2017
09:51:56
Просто вы написали единственное приемущество строгой типизации - меньше ошибок
Единственное преимущество строгой типизаци — ты в каждый момент времени понимаешь, какие именно данные тебя сейчас в распоряжение и в какой форме. Покрыв код типами можешь узнать много нового о том, как работает твой код (и о новых проявлениях слова «чудо») Потому что типизатор мыслит совсем не так как человек, и когда ты точно уверен, что у тебя в функцию приходит, допустим number, он может увидеть, что это тебе совсем не гарантируется и где-то в коде тебя string неявно кастуется в number, сколько раз такое было

Max
16.05.2017
09:52:38
потому что еще строгая типизация нужна

Vladimir
16.05.2017
09:52:52
redux-form положил на flow

Max
16.05.2017
09:52:52
чтобы не было "string неявно кастуется в number"

Vladimir
16.05.2017
09:53:11
Если юзать redux-form то будет пулять тебе нетипизированные экшены

export type Action = { type: 'favorites/FILL', +payload: FavoriteNormalizePayload } | { type: 'favorites/SELECT', +payload: ?string } | Object ; Вот такой щит приходится делать

Дмитрий
16.05.2017
09:54:17
чтобы не было "string неявно кастуется в number"
Я просто пример привёл сходу, суть не в динамической типизации самой по себе)

Дмитрий
16.05.2017
09:55:07
ну например с тем что понятнее программа с типами, тоже не факт, особенно дженерики когда
Программа с типами вообще не обязана становиться более понятной, она становится более определённой и конкретной

Дмитрий
16.05.2017
09:56:22
Ок, я мимо проходил. не вчитывался)

Aleh
16.05.2017
09:56:31
типы это дешевый и простой тест вашего кода

его ограничение - малая область покрытия программы

Vladimir
16.05.2017
09:57:13
Чет подзаебался я с этими типами:)

Медленно все(

Google
Дмитрий
16.05.2017
09:58:08
неопределенность увеличивает непонятность
Увеличивает, просто понятность саму по себе никто не гарантирует) Реально слишком абстрактные дженерики как контрпример.

Сергей
16.05.2017
09:58:43
Kirill
16.05.2017
09:59:49
а где раст вообще юзают?
Новый двиган Servo пишется на Rust. Servo - огонь по описанию.

Сергей
16.05.2017
09:59:55
не
почему нет? function foo(bar) { return bar.baz } vs function foo(bar: Bar): Baz { return bar.baz } даже знаешь что открыть, какой тип смотреть и знаешь, что сюда другое не прокинуть

Oleg ?
16.05.2017
10:00:28
Если честно не удобно, когда длинные имена классов

Oleg ?
16.05.2017
10:00:58
Типа MySoLongLengthClass

Кирилл
16.05.2017
10:01:16
Типа MySoLongLengthClass
при чем тут типы?

Oleg ?
16.05.2017
10:01:39
При том, что у тебя длинна строки увеличивается в два раза

Сергей
16.05.2017
10:01:40
ну вот как раз хороший пример, где типы ничего хорошего не дали
то есть по твоему, открыв эту функцию без типов ты всё сразу поймешь? или же открыв код функции с типами, тебе ничего понятно не будет?

Aleh
16.05.2017
10:01:58
более того, если я открыл код функции, значит с ней уже что-то не так)

Кирилл
16.05.2017
10:03:01
При том, что у тебя длинна строки увеличивается в два раза
чет не пойму как типы увеличивают длину имени класса

Сергей
16.05.2017
10:03:22
именно эту - да, она ж в одну строку
ты знаешь типы, которые она возвращает и которые принимает ты с ходу знаешь с какими данными она работает

Сергей
16.05.2017
10:03:56
это весьма утрированный пример есть функции посложнее в разы (что не есть хорошо конечно) но которые сходу понять очень сложно

Aleh
16.05.2017
10:04:00
и нормальный компилятор тож должен это знать

Google
Oleg ?
16.05.2017
10:04:03
чет не пойму как типы увеличивают длину имени класса
Типы увеличивают длинну строки, в котрой их используют

Vladislav
16.05.2017
10:05:01
Привет всем. Подскажите пожалуйста, как можно изменить состояние сразу нескольких компонентов ? по событию в одном компоненте должно быть setState({ключ : true}) , а остальных из этого же массива setState({ключ : false}) ?

Кирилл
16.05.2017
10:05:17
Admin
ERROR: S client not available

Сергей
16.05.2017
10:05:36
ну как контрпример - посмотри типизацию compose для 5 аргументов
видел, знаю а использование этого сложного, как-то ухудшает? когда ты наводишь на аргумент и видишь его тип

Aleh
16.05.2017
10:06:02
видел, знаю а использование этого сложного, как-то ухудшает? когда ты наводишь на аргумент и видишь его тип
твой аргумент был про чтение кода, чтение этого определения ничего хорошего не дает

Vladislav
16.05.2017
10:06:10
да

Сергей
16.05.2017
10:06:17
? ethorz
16.05.2017
10:06:40
я думаю это не очень хорошая практика, изменился стейт - обновились компоненты

а, стоп, сам стейт

Oleg ?
16.05.2017
10:07:38
эм, имя класса тут при чем
Если длинное имя класса, то есть высокая вероятность, что оно не влезет в 100 символов строки, в которой используется flow, подобное я заметил в TypeScript

Сергей
16.05.2017
10:08:09
стараюсь не писать длинные имена классов

Vladislav
16.05.2017
10:08:40
хм

мне нужно по клику менять значение на true , а остальным ставить false\

Google
? ethorz
16.05.2017
10:09:19
ну ты передаешь одному компоненту true в явном виде, а другим его реверсишь

т.е. на false

Vladislav
16.05.2017
10:09:33
а как это сделать ?

в етом и вопрос

setState для нескольких сразу поменять

Алексей
16.05.2017
10:09:54
про типы можно еще в другом ключе поговорить, например корректность программы и ошибки с типами можно быстро отлаживать если ты работает с системой которая дает тебе быстрый фидбек. например в кложуре ты подключился к реплу, который к твоей программе подключен, и пишешь итеративно, написал кусок кода - проверил, и так далее. с типами ты вынужден написать большой кусок кода - потом борьба с компилятором и только потом запуск программы и ее проверка на корректность. в общем просто это разные подходы и у каждого есть свои плюсы и минусы, но я не стал бы говорить что типы это единственный правильный путь ;)

Сергей
16.05.2017
10:09:55
Vladislav
16.05.2017
10:10:03
да ето понятно

? ethorz
16.05.2017
10:10:25
ты меняешь стейт в контейнере, а значения стейта передаешь в компоненты через пропсы

можешь повесить доп. флаг для пропсов

а, не, флаг не нужен

или можно добавить, чтобы потом ориентироваться по нему внутри компонента уже, берешь этот пропс и реверсишь

Oleg ?
16.05.2017
10:11:17
таааак а если нет ни флоу ни тс, то вероятность будет меньше?
Бля, ты что угораешь? В флоу приходится использовать имена классов для проверки типов, из - за этого длинна строки, в которой используется флоу увеличивается в 1.5 - 2 раза. Всё забей, нравится флоу, используй.

Страница 1297 из 5115