
Mikhail
22.10.2018
11:15:53

Alexander
22.10.2018
11:16:18
ну как-то все тестируют

Yuriy
22.10.2018
11:16:26
если формулировать ТЗ на человеческом языке, это было бы полезнее. но такие сервисы уже есть

Mikhail
22.10.2018
11:16:41

Google

Alexander
22.10.2018
11:17:06
так кто Ц.А. ?

Ilya
22.10.2018
11:17:20
Ну сайтов с контестами тоже полно

Artyom
22.10.2018
11:17:26
Ссылки не будет, это я из опыта (у девушки был хаскель в универе и там были тесты, еще какой-то чувак просит вот меня сейчас домашку по хаскелю ему решить и там тоже есть тесты, etc)

Mikhail
22.10.2018
11:17:45
ЦА - стартаперы-одиночки, тонущие в сложности

Artyom
22.10.2018
11:18:05
Попробуй накидать примеров конкретных тасок, которые могут появиться на твоем сервисе

Mikhail
22.10.2018
11:18:16

Alexander
22.10.2018
11:18:58
т.е. я стартапер, я придумываю какая чистая функия мне нужна, пишу тесты

Mikhail
22.10.2018
11:19:02

Alexander
22.10.2018
11:19:10
и жду как мне запилят функциональность, за мою крипту?

Yuriy
22.10.2018
11:19:24

Artyom
22.10.2018
11:19:40
Я бы предложил сузить очень сильно scope, тогда может и взлетит. Например: люди пишут парсеры для стремных форматов данных за деньги, примеры файлов даны, примеры распарсенных данных тоже даны, если написана какая-то хрень — крипту назад, можно поставить галочку “хочу стриминг-парсер”

Alexander
22.10.2018
11:19:41
при этом тесты я пишу точно так же как написал бы их дома
и не на кол-во строк тогда, а память и цпу

Google

Alexander
22.10.2018
11:20:10
вообще спец-олимпиадки бы зашли
парсер тоже спец-олимпиадка, правда возможно с меньшими требованиями к cpu/память

Mikhail
22.10.2018
11:22:54
Проблема как я вижу то, что не каждый код легко оттестировать

Yuriy
22.10.2018
11:23:32
и не все требования можно сформулировать в тесте

Mikhail
22.10.2018
11:24:22
да, для чего-то может потребоваться что-то типа линтера

Alexander
22.10.2018
11:24:28
ну вот для произвольной задачи переформулировать её как чистую функцию которую можно покрыть тестами имхо чуть ли не сложнее, чем написать решение

Mikhail
22.10.2018
11:24:35
Например чтобы не лепили GHC-specific code

Artyom
22.10.2018
11:25:24
Но насколько это востребовано? Я слабо знаком с этим рынком
А важнее не то, насколько это востребовано, а то, насколько плохо жить той малой части людей, которой это все-таки надо. Иначе ты можешь получить что-то вроде bountysource, где можно поставить bounty на любой github issue, но никто этой фигней не пользуется

Alexander
22.10.2018
11:25:51

Artyom
22.10.2018
11:25:56
+

Alexander
22.10.2018
11:26:18
вообще ещё клиенты к веб сервисам можно бы

Mikhail
22.10.2018
11:26:20
Но оно может быть

Yuriy
22.10.2018
11:26:24

kana
22.10.2018
11:26:34
вообще должен заметить, что меня часто просят написать какой-то чистый код по пребразованию одного куска данных в другой, с тестами (одним зачастую)
и на этом я заработал даже один раз целую тысячу

Alexander
22.10.2018
11:27:18
вот сервисом, на котором бы я мог заказать клиент к сервису я бы может даже пользовался

kana
22.10.2018
11:27:22
(все это было правда по js ramda, а не по хаскелю, там нет помощи от компилятора)

Alexander
22.10.2018
11:27:25
но не ясно тогда почему не upwork

Yuriy
22.10.2018
11:28:11

Google

Alexander
22.10.2018
11:28:45
о у нас есть то что из сваггера генерит клиент?

Mikhail
22.10.2018
11:28:56
хаскель не идеально эту проблему решает, liquid haskell идет к этому, но это дело будущего

Alexander
22.10.2018
11:29:41
в общем в предложенном виде, я не понимаю как для чего-то кроме домашек это использовать

Artyom
22.10.2018
11:29:47

Alexander
22.10.2018
11:29:58
да
так я спрашиваю есть ли для сабжа

Artyom
22.10.2018
11:31:12
https://github.com/swagger-api/swagger-codegen/pull/6429
Есть какие-то попытки, но я никогда не юзал и не знаю, насколько они прекрасные

Yuriy
22.10.2018
11:32:09

Alexander
22.10.2018
11:32:21
ну что для других есть то понятно

Artyom
22.10.2018
11:34:20
В общем, у них есть для http-client codegen и для серванта codegen
Оба на джаве ?
Если кому-то доведётся испытать, отпишитесь здесь, мне прям любопытно

Alexander
22.10.2018
11:36:09
мне тоже

A64m
22.10.2018
11:49:42
Чет срок обсуждения лин.типов давно уже вышел, а как принятый все не помечают

Alexander
22.10.2018
11:51:06
судя по #linear-types чятику там что-то активизировалось
но давно не было собраний с ryan и spj

A64m
22.10.2018
11:59:51
ну они обещали уже дифф сделать в ближайшие дни, вот и активизировались

Vitaly
22.10.2018
13:16:33

Google

Alexander
22.10.2018
13:25:36
ааа
у меня есть кондуиты
я хочу сделать isolate и потом все остальное, вне isolate запустить в новом треде
как это сделать по человечески?
причем который consume-ит, принимает Couduit, и не является его частью
и можно ли проверсить что кондуит закончился?
наверное надо все перестроить к чертям

A64m
22.10.2018
13:35:44
я так и не освоил кондуиты

Alexander
22.10.2018
13:35:54
они простые

A64m
22.10.2018
13:36:00
ммммм

Alexander
22.10.2018
13:36:04
т.к. много чего не сделать
ну в смысле где они работают они работают как ожидается, хотя streaming получше
а pipes я не осилил
но наверное т.к. под кондуиты 100600 либ было

Pineapple
22.10.2018
13:37:16
Пайпы тоже простые, надо просто смотреть на 2-х параметрическую версию, а не на 4-х параметрическую

Alexander
22.10.2018
13:37:39
в кондуитах с 0.7 где-то почти тот же пайп внутри
а с 1.3 наверное такойже
когда управление ресурсами выкинули

Pineapple
22.10.2018
13:38:00
Разный немножко
Но похожий

Google

A64m
22.10.2018
13:38:42
больше всего нельзя сделать и самые хорошие гарантии по памяти и финализации у гонзалесовского и/о костыля поверх foldl из turtle

Alexander
22.10.2018
13:38:51
мне сейчас интересно как сказать, вот вам текущий upstream, а ещё лучше вот вам текущий pipe в середине

A64m
22.10.2018
13:39:12
но там обязательно все вычитывать надо

Alexander
22.10.2018
13:39:32
ну я кондуиты никогда как boundary по памяти не рассматривал
там же вся экосистема не придерживается этого
мне кстати сейчас наоборот надо
не вычитывать до конца, а вернуть все невычитанное
хм.. значит моя функция должна быть sink?
и тогда с $$+ или как там его можно
как бы ещё проверять пустой ли мне resumable кондуит вернули
@A64m_qb0 в стриминге с линтипами тоже кстати нужно все вычитывать

A64m
22.10.2018
13:43:43
ну да
но все равно гибкость побольше должна быть чем у и/о поверх foldl

Alexander
22.10.2018
13:47:25
пока думал, что хочу понял, что хочу плохую вещь, и так делать не надо

Timofey
22.10.2018
14:23:39
А в API turtle есть что-то вида isWindows :: IO Bool?

A64m
22.10.2018
14:24:51
если не собралось - значит виндовс

Aleksey
22.10.2018
14:25:13

A64m
22.10.2018
14:25:15
т.е. можно isWindows = False

Timofey
22.10.2018
14:26:10

Aleksey
22.10.2018
14:28:15