
Aleksei
09.01.2017
16:15:57
Поэтому проще

Andrew
09.01.2017
16:24:17

Sasha
09.01.2017
16:25:48

Konstantin
09.01.2017
16:32:17
Проблема в том, что при добавлении элемента в поле-массив, пропсы внутренней формы (<Form ...> на скриншоте) не обновляются.

Google

Konstantin
09.01.2017
16:32:27
Кто-нибудь сталкивался?

hlomzik
09.01.2017
16:36:16

Алексей
09.01.2017
20:11:17
с отсылкой не имеет, но излишне события употреблять нестоит мне кажется
В идеале, следуя подходу Реакта, ВСЕ данные, связанные с UI должны храниться в некотором стейте или стейтах отдельно от DOM, хотя React позволяет этого не делать, а использовать refs/event.target. Вообще в идеальном мире, как мне кажется, весь UI представляет собой чистую функцию (stateless компонент) от state и actions, которая возвращает виртуальный DOM, где actions - это набор функций, которые вызывают изменения state и/или взаимодейстуют с сервером. При таком раскладе state полностью определяет UI. Собственно, если использовать Redux или MobX и не использовать state из React, то будет как раз такая штука.


Nikita
09.01.2017
20:33:46
я про ES6 class

Sergey
09.01.2017
20:35:57
Сидят такие TC39 и думают: "как бы нам ява разработчикам угодить?"

Nikita
09.01.2017
20:36:35
это не так работает
но сути не меняет
есть тренды и TC39 им следует

Sergey
09.01.2017
20:37:10
Тренд на ООП лет 10 назад закончился
Сейчас по трендам надо стандартную библиотеку на монадах делать

Google

Nikita
09.01.2017
20:37:37
расскажи это ява и c++ программистам

Алексей
09.01.2017
20:38:02

Sergey
09.01.2017
20:38:23

Алексей
09.01.2017
20:38:38

Nikita
09.01.2017
20:38:49
да, и у них получается ява вместо идиоматического жс
вот реально если бы этого class не было может быть хоть что-то бы дошло
а то им кажется, что это действительно классы

Oleg
09.01.2017
20:41:30
всем typescript

Алексей
09.01.2017
20:41:40

Nikita
09.01.2017
20:41:49
да это ж явно ирония была )

Sergey
09.01.2017
20:43:08

Nikita
09.01.2017
20:43:39
ошибочно полагать, что лучшие технологии это самые популярные

Алексей
09.01.2017
20:43:49

Nikita
09.01.2017
20:44:19
когда он появился его дофига в продакшне было
есть чуть-чуть
http://www.wonderzine.com/wonderzine/life/life/214569-welcome-to-the-real-world

Sergey
09.01.2017
20:45:23
Смысл в том, что рыба гниет с головы. Тренды начинаются в околоакадемических кругах, а через десяток лет уже в энтерпрайз просачиваются, в искажённом до неузнаваемости виде.
Академики на ООП давно забили.

Nikita
09.01.2017
20:45:24
сорян
не тот буфер обмена
момент
https://montykamath.wordpress.com/smalltalk-companies/

Google

Алексей
09.01.2017
20:45:34

Nikita
09.01.2017
20:45:35
о!
ну и маркетинг не стоит забывать
конечно всегда есть положительные стороны
типа jvm у java

Алексей
09.01.2017
20:47:52
Вообще, я считаю, что на данный момент ничего лучше смеси ООП и ФП не придумали.
Именно смесь, а не чистое ООП или чистое ФП.

Nikita
09.01.2017
20:48:17
так же не стоит забывать о том, что больному бизнесу важно иметь возможность легко заменить программиста на другого
чистых языков в принципе очень мало
а смеси ООП и ФП несколько десятков лет
сейчас конечно в гору эта тема пошла
впрочем ООП с наследованием нафиг не нужен

Nikita
09.01.2017
20:50:40
и инкапсуляция сомнительная штука

Алексей
09.01.2017
20:51:40
ого
впервые вижу, что кто-то называет инкапсуляцию сомнительной штукой

Nikita
09.01.2017
20:52:28
да ладно
нас много :)

Алексей
09.01.2017
20:53:20
ООП критиковали и критикуют, наследование критиковали и критикуют, полиморфизм критиковали и критикуют, ФП критиковали и критикуют, но чтобы инкапсуляцию критиковали - это что-то новое

Sergey
09.01.2017
20:53:49
Очень интересно посмотреть на ООП без наследования и инкапсуляции.

Nikita
09.01.2017
20:54:09
ну здрасте приехали
это основная проблема в ООП

Google

Алексей
09.01.2017
20:54:28
это в каком же месте?

Nikita
09.01.2017
20:55:09
в смысле в каком? прячет мутабельный стейт в черный ящик который неизвестно как себя поведет когда ты на нем подергаешь рычаги
датафлоу должен быть максимально явным что бы было понятно что происходит

Алексей
09.01.2017
20:56:17
Основа всякого программирования - абстракция и декомпозиция, то есть разбиение на куски кода - функции (чистые или нет - это уже детали). И тогда естественно желание открыть часть этих функций для использования только внутри некоторых других функций, а не всех.
а реализация зависит от интерфейса

Nikita
09.01.2017
20:57:18
инкапсуляции предполагает, что у тебя данные и операции над ними связаны друг с другом
и в обьекте есть мутабельный стейт

Admin
ERROR: S client not available

Nikita
09.01.2017
20:57:26
интерфейсы никак эти проблемы не решают
просто не имею отношения к этой проблеме

Алексей
09.01.2017
20:57:48
как раз таки решают
если есть интерфейс, то даже не важно мутабельный стейт в этом объекте или нет

Nikita
09.01.2017
20:58:20
это всегда важно

Алексей
09.01.2017
20:59:07
нет, если ящик чёрный, то не важно, что у него внутри (если не брать во внимания эмпирический закон протекающих абстракций)

Nikita
09.01.2017
20:59:32
интерфейс не гарантирует отсутствие ошибок
иммутабельность этого тоже не гарантирует, но сделать их становится намного сложнее

Алексей
09.01.2017
21:01:55
да причём тут иммутабельность и инкапсуляция???
если брать интерфейс как в Java или C# - набор абстрактных методов без реализации, то это и есть некий почти абсолют инкапсуляции, когда принципы реализации скрыты ПОЛНОСТЬЮ

Nikita
09.01.2017
21:03:05
то есть ты веришь в то что тебе на тарелочке кто-то выдаст гарантированно и всегда работающую черную коробку?

Алексей
09.01.2017
21:03:45
в мутациях можно легко запутаться, если происходят сложные мутации большого стейта, но если грамотно подходить к архитектуре, то больших стейтов вообще не должно быть (иначе это антипаттерн God object)
сделать и забыть

Google

Алексей
09.01.2017
21:04:22
помня только об её интерфейсе

Nikita
09.01.2017
21:04:34
с мутабельными структурами данных твоя задача будет в разы сложнее

Алексей
09.01.2017
21:04:48
не будет

Nikita
09.01.2017
21:04:53
будет

Алексей
09.01.2017
21:04:59
если мутабельные структуры небольшие

Nikita
09.01.2017
21:05:12
ок
как скажешь
я к сожалению не могу удаленно свой опыт телепатически транслировать

Roman
09.01.2017
21:06:05
у меня вопрос вы логику ответа от хттп запроса обрабатываете в компоненте или там где сам запрос прописан?

Nikita
09.01.2017
21:06:27
логику ответа?
поясни

Алексей
09.01.2017
21:06:32
ок
функциональное программирование тоже становится сложным, когда оно начинает взаимодействовать с императивным миром и появляются всякие монады

Nikita
09.01.2017
21:07:14

Алексей
09.01.2017
21:07:39

Nikita
09.01.2017
21:09:52
так что же будет решением?
ну кстати для кого-то монады
а мне нравится как в Clojure сделано
хотя там много компромиссов, потому что компилится в ява байткод или в яваскрипт

Roman
09.01.2017
21:10:10
логику ответа?
у меня есть хелпер utils/loginHelper.js и есть компонент в котором в функции onSubmitHandler я передаю значения полей в этот хелпер. когда приходит ответ я через promises в onSubmitHandler уже определял там ошибка пришла из хелпера (response status или timeout) или пришел ответ что бы знать что рисовать на экране. это правильно?

Nikita
09.01.2017
21:10:38

Алексей
09.01.2017
21:11:44