
Сергей
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:41:47

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

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

Сергей
16.05.2017
09:43:02

Dreamerinnoise
16.05.2017
09:43:10

Сергей
16.05.2017
09:43:10
в рашке только в крипте встречал

code4aman
16.05.2017
09:43:34

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

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

Max
16.05.2017
09:54:27
я понимаю
тоже накипело )

Дмитрий
16.05.2017
09:55:07

Алексей
16.05.2017
09:55:45

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

Сергей
16.05.2017
09:56:26

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

Aleh
16.05.2017
09:58:57

Kirill
16.05.2017
09:59:49

Сергей
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
Если честно не удобно, когда длинные имена классов

Aleh
16.05.2017
10:00:43

Сергей
16.05.2017
10:00:44

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

Кирилл
16.05.2017
10:01:16

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

Aleh
16.05.2017
10:03:54

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

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

Google

Oleg ?
16.05.2017
10:04:03

Aleh
16.05.2017
10:04:27

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

Aleh
16.05.2017
10:06:02

? ethorz
16.05.2017
10:06:06

Vladislav
16.05.2017
10:06:10
да

Сергей
16.05.2017
10:06:17

Aleh
16.05.2017
10:06:22

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

Aleh
16.05.2017
10:07:26

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

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

? ethorz
16.05.2017
10:08:11

Vladislav
16.05.2017
10:08:40
хм
мне нужно по клику менять значение на true , а остальным ставить false\

Кирилл
16.05.2017
10:08:59

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

Сергей
16.05.2017
10:12:12