@frp_ru

Страница 53 из 420
Vladimir
01.05.2017
21:23:57
отсюда https://mobile.twitter.com/janiczek/status/859156300357390337

Yung
01.05.2017
21:28:34
Причём документирован так, что лучше - никак, чем так))
Одна из худших документаций что я видел пожалуй, не хватает только вместо объяснений сразу "тут вполне очевидно, что" как в учебниках по матанам всяким

Mikhail
01.05.2017
21:42:49
всем в укрытие https://github.com/ElmCast/elm-node
ну это игрушки какие-то. Где рендер виртуального дома в строку, например? Да и т.к. они используют нативные модули путь в elm packages пока закрыт.

Vladimir
01.05.2017
23:09:26
https://twitter.com/janiczek/status/859179099440414720

Google
Mikhail
01.05.2017
23:10:30
кстати, в 0.19 обещают много интересного https://github.com/elm-lang/projects/blob/master/roadmap.md#how-do-i-make-a-single-page-app

Alex
02.05.2017
08:24:36
да выбор фреймворка не простое дело в наши дни, все обещают много

https://www.youtube.com/watch?v=1CLBANCVHTw

Yumi
02.05.2017
10:09:20
Alex
02.05.2017
10:27:25
это не меняет сути дела)

Aleh
02.05.2017
10:34:36
видал я доки и похуже

Karen
02.05.2017
10:34:55
с доками все норм

просто перемодулизировано

и раскинуто

Aleh
02.05.2017
10:35:09
ну эт да

здесь не поспоришь

от балды как-то там накидано всего)

Google
Aleh
02.05.2017
10:35:52
даже нет единой стратегии именования

Karen
02.05.2017
10:36:02
хз там балда такая должна быть заряженная чтоб такие вещи накидывать

Gleb
02.05.2017
11:35:33
Привет, хотел спросить по тестам, если я тестирую функцию которая возвращает результат другой, то могу ли я в тестах expect данные передавать результат от функции которая будет вызвана внутри тестируемой, или я не должен пользоваться функциями которые вызываются внутри тестируемой?

Например: const a = (someProp, data) => { ...всяческие условия return b(data); } В одном из тест кейсов могу ли я писать так: expect(b(data)).toEqual(a...) Чтобы при изменении b не затрагивать тест а

ну и естественно тестировать b

Aleh
02.05.2017
11:39:08
не стоит так делать

Karen
02.05.2017
11:39:15
тебе надо b индджектить

Aleh
02.05.2017
11:39:18
тебе надо проверить выполнение результата

Karen
02.05.2017
11:40:02
у тебя функция a внутри вызывает какую то функцию b, по хорошему ее надо как аргумент указывать внутри функции а

тогда ты спокойно можешь застабить ее

и проверить выполнение скоупа функции а

то есть смысл в том что ты твоя функция а выполняет что-то при этом используя внешнюю функцию б

ты хочешь проверить правильно ли работает функция а

сама абстракция а

и ты проверяешь ее застабив все внешние зависимости

которые ты потом отдельно поштучно проверяешь в отдельных тест кейсах

Gleb
02.05.2017
11:42:09
Это да, спасибо , но немного уточню, тут речь идет о reducer ,просто там внутри есть функция b она больше даже как util функция идет

Karen
02.05.2017
11:42:10
как-то так

Gleb
02.05.2017
11:42:20
внутри reducer

то есть как обычный редусер (state, action)

Google
Karen
02.05.2017
11:42:45
а это неважно ты сам решаешь насколько грязный твой тест

но в идеале

функция чистая

получила вернула

без сайд эффектов

если тебе надо что-то использовать ты явно инжектишь

если у тебя получается слишком много аргументов

тогда ты разбиваешь функцию на разные маленькие функции

Gleb
02.05.2017
11:43:36
То есть внешний инджект это уже грязно считается ?

внешний не являющийся аргументом имею ввиду

Karen
02.05.2017
11:43:51
каждая из которых имеет разумное кол-во инжектов через аргументы

Gleb
02.05.2017
11:44:11
Спасибо большое!)

Karen
02.05.2017
11:44:42
у такого подхода высокая тестируемость но в реальности народ не пишет

так

потому что никто не хочет принцип сингл респонсибилити реализовывать идеально

среднестатическая функция делаем как минимум 3-4 вещи

каждый if else

это еще один респонсибилити в копилку функции

так что как всегда надо взвешивать вкаждой конкретной ситуации

но моя практика стараться инжектить как можно больше явных зависимостей и функции делить на более мелкие

Google
Karen
02.05.2017
11:46:26
но не совсем мелкие

как-то так

потому что когда совсем мелко и на каждый чих функция оно нечитабельно становится вообще

точнее неподдерживаемо

колл стек уходит в бесконечность

Aleh
02.05.2017
11:52:03
это еще один респонсибилити в копилку функции
не, так мерять ответственность не оч затея

самые норм подходы: 1. количество вариантов ответа "для чего вам использовать эту функцию" 2. сколько ролей(менеджер, начальник по продажам, начальник по кадрам и т.д.) могут запросить требование, которое повлияет на эту функцию

Karen
02.05.2017
11:54:06
между идеал и норм пропасть

Aleh
02.05.2017
11:54:12
идеал не нужен

Karen
02.05.2017
11:54:15
поэтому я и написал что мало кто в идеале так делает

я сам не пишу безифовые функции

все в меру

просто надо иметь в виду

что порождает сложность и мультиответственность

и держать под уздой

Aleh
02.05.2017
11:55:02
безифовые тож такое, был бы другой язык, например с ООП или с ФП норм, писали бы ифы чисто на полиморфизме

иф не порождает ответственность, про мелкие опять же

это связь между coupling и cohesion

Karen
02.05.2017
12:00:39
очень даже порождает потому что контролирует флоу

Aleh
02.05.2017
12:00:51
и?)

Google
Aleh
02.05.2017
12:01:00
ретурн тож контролирует)

и вызов другой функции контролирует

Karen
02.05.2017
12:01:58
не совсем понимаю аналогию

ретурн это конец функции

ифы опредлеяют флоу функции до конца

Aleh
02.05.2017
12:02:34
какая разница между: if (a) { b() } else { c() } и: a.then(b, c)

Karen
02.05.2017
12:02:35
сама функция выполняет одно действие

конкретно здесь никакой разницы

промис чейнинг это тоже контрол флоу

Aleh
02.05.2017
12:05:23
эт не промис

но не суть

Karen
02.05.2017
12:05:35
thenable

любой флоу контрол внутри тела функции который выдает более 1 пути развития есть усложнение и нарушение сингл респонсибилити которое указывает на нужду в делегировании в субфункцию или выведение логики в отдельную функцию

но это в идеале

Aleh
02.05.2017
12:07:20
нет, не указывает

опишите что такое идеал?

и почему это идеал

Karen
02.05.2017
12:07:58
идеал это чистая функция в функцинальном понимании

на каждый инпут стабильный оутпут без сайд эффектов

с единственной ответственностью

unit сложности

максимально делимый

Страница 53 из 420