@haskellru

Страница 795 из 1551
Alexander
31.01.2018
15:19:10
а не, не зло, в последних версиях он одумался (или не автор уже)

Denis
31.01.2018
15:19:43
он вроде уже ничего не мейнтейнит толком

Александр
31.01.2018
15:20:59
Разумеется, программист сидит и думает как ему внести побольше сложности в свой проект, ему же с ним работать! Отличный аргумент!
Как ни удивительно, программистам нужны старшие товарищи, тимлиды. Потому что этим ребятам хочется с технологиями поиграться, не думая о том, как другие будут потом с этим кодом работать. У плюсовиков по молодости тоже такое в точности бывает: повальное увлечение шаблонами. Только поговорка не на пустом месте родилась, что как только такой талант увольняется, приходится его код переписывать. Тратить большие ресурсы просто потому, что человек про будущую поддерживаемость кода вообще не думает.

Alexander
31.01.2018
15:22:06
он вроде уже ничего не мейнтейнит толком
но при этом может отдать код только проверенным меинтейнерам

Google
Александр
31.01.2018
15:22:08
Но если плюсовики вылечиваются со временем, то у хаскеллистов этот вид недуга вообще имеет тенденцию к ухудшению.

Alexander
31.01.2018
15:22:57
аргумент, наверное в том, что плохо делать так чтобы bus factor был близок к 1

Denis
31.01.2018
15:23:00
потому что спич о какой-то произвольной черте, выше которой все сложно и комплексити

Александр
31.01.2018
15:23:06
Я не понимаю в чем аргумент заключается. В том что все что вам непонятно плохо?
Нет, что есть цена, и ее надо плнимать. А в целом это и приводит к тому, что хаскельное сообщество не растет толком.

*понимать

Alexander
31.01.2018
15:23:19
причем где 1 относится к любому человеку из продвинутых в команде

Denis
31.01.2018
15:23:28
bus factor ортогонален typeful дизайну

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

Alexander
31.01.2018
15:23:49
и при том что введение нового человека может быть дорого

Alexander
31.01.2018
15:24:07
с haskell наверное одна из важнейших

Denis
31.01.2018
15:24:10
это наистандартнейшая метрика

Google
Denis
31.01.2018
15:24:25
я не согласен с тем что с haskell важнее

возьми какой-нибудь скриптовый язык

там bus factor == 1 еще хуже

Тёма
31.01.2018
15:24:47
Ребят, а кстати как сейчас у ghc обстоят дела с typed holes? Ещё не так круто как в Агде? Поддержку в емакс не завезли?

Александр
31.01.2018
15:24:52
это наистандартнейшая метрика
Ну что сказать, нельзя знать всего. Пойду гуглить про метрику

Тёма
31.01.2018
15:24:55
Я слоупок просто

Denis
31.01.2018
15:24:59
код становится вообще иммутабельным

Alexander
31.01.2018
15:25:21
это да

Denis
31.01.2018
15:25:41
Ну что сказать, нельзя знать всего. Пойду гуглить про метрику
bus factor - количество человек, которое должно попасть под автобус, чтобы не осталось никого, кто понимает как работает

Alexander
31.01.2018
15:25:56
но в общем скорее всего смысл утверждений в том, что неожиданно на ровном месте человеку становится сложно разбираться

Denis
31.01.2018
15:26:00
поэтому любые решения хороши, если команда в них сечет

Alexander
31.01.2018
15:26:15
в итоге возрастает или уровень требуемый от соискателей или цена введения нового человека

Denis
31.01.2018
15:26:41
ну это то безусловно

но typeful дизайн обычно дает какие-то бенефиты, позволяет убрать какие-то классы распостраненных ошибок

или дает более общий код

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

у меня есть отличный пример из нашей кодобазы

Alexander
31.01.2018
15:27:58
accidental - тут конечно субьективно, но в целом насколько много решает по сравнению с тем насколько хуже писать код

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

Александр
31.01.2018
15:28:15
тут надо оценивать плюс подхода против его минусов в каждом конкретном случае
Разве есть что-то важнее поддерживаемости и понятности кода? Кроме его корректности (может даже неполной), что подразумевается

Google
Alexander
31.01.2018
15:28:32
мало ли чего там в Касперском (если я прав) или IOHK начудили

ну типы <-> корректность

Denis
31.01.2018
15:29:03
в общем у нас мозгодрыжни всякие штуки используются, но валюту в типе денежных значений мы не осилили

т.к. цена слишком высока

Александр
31.01.2018
15:29:10
мало ли чего там в Касперском (если я прав) или IOHK начудили
Я без понятия, я не видел их код и не работал с этими ребятами. Ксати, они есть в чате?

Denis
31.01.2018
15:29:34
при этом что-то совершенно чудовищное на вид, вроде schematic, юзается повсеместно

Alexander
31.01.2018
15:29:38
@cblp_su - Касперский, и большая часть Serokell тут есть

Denis
31.01.2018
15:30:30
Разве есть что-то важнее поддерживаемости и понятности кода? Кроме его корректности (может даже неполной), что подразумевается
разные дизайны ведут к разной степени(вероятности, скорее) корректности, в этом и поинт разных решений

Alexander
31.01.2018
15:30:42
хотя может и не большая, но человека 4 было

Александр
31.01.2018
15:30:56
@cblp_su - Касперский, и большая часть Serokell тут есть
Про Serokell ничего не знаю :( И почему о них говорят, тоже

Alexander
31.01.2018
15:31:09
Serokell ~= IOHK

это разные фирмы, но Serokell пишут очень много (весь) Haskell код

Denis
31.01.2018
15:31:47
serokell ⊂ iohk

я починил

Yuriy
31.01.2018
15:31:51
ничего мы не чудили

Александр
31.01.2018
15:32:44
разные дизайны ведут к разной степени(вероятности, скорее) корректности, в этом и поинт разных решений
Но корректность кода не стоит на первом месте в дизайне ПО. На первом месте стоит уменьшение accidental complexity, тем более если essential complexity, неотъемлемая от предметной области, высока сама по себе.

Alexander
31.01.2018
15:33:35
сделать accidental complexity объективной метрикой тяжело

Denis
31.01.2018
15:34:11
Но корректность кода не стоит на первом месте в дизайне ПО. На первом месте стоит уменьшение accidental complexity, тем более если essential complexity, неотъемлемая от предметной области, высока сама по себе.
С какой стати такие обобщения? Мне бы не хотелось жить в мире, где у медицинского оборудования и софта корректность не была бы на первом месте. Также я не фанат поломанного софта в космонавтике и авиации, self-driving cars, дронах, финансах etc

оказывается что дофига всего нуждается в корректном софте

насколько это важно для каждого конкретного проекта - вопрос

Google
Alexander
31.01.2018
15:34:36
ой не парься, в мед софте проблемы начиная с физ модейлей бывают

Denis
31.01.2018
15:34:51
на самолетах тоже не летайте кстати

и в больницы не ходите

Александр
31.01.2018
15:35:20
сделать accidental complexity объективной метрикой тяжело
Объективных метрик, конечно, здесь не придумать. Или если придумать, то получится какая-нибудь "цикломатическая сложность". Но нужно стремиться к тому, чтобы код бизнес-сценариев был понятен тем, кто работает с предметной областью.

Denis
31.01.2018
15:35:57
я никогда не забуду как тулинг мне мерял цикломатическую сложность по количеству веток в case

чем больше веток, тем выше сложность была!

Denis
31.01.2018
15:36:19
надо в отдельную функцию выделять, говорит!

А в процентах сколько такого софта? Супротив внб-сервисов, корпоративного ПО, и прочих сайтиков?
я к тому что это все вдумчивого разбора требует для конкретного случая. Я вполне представляю ситуацию где в проекте 1% критичнейшего кода, где ошибка очень дорогая и 99% всего остального.

Admin
ERROR: S client not available

Denis
31.01.2018
15:37:34
поэтому и дизайн этих частей логично представлять разным

Александр
31.01.2018
15:38:29
поэтому и дизайн этих частей логично представлять разным
Это нормальный подход. Применять то, что нужно, там, где нужно по объективным требованиям предметной области.

Alexander
31.01.2018
15:41:12
хм.. ghc стал перечитывать файл перед выдачей ошибки? действия 1. let unused = () 2. запустисть сборку (стеком) 3. закомментировать: — let unused = () 4. получить error (при -Werror) о неиспользованной переменной unused в строке -- let unused = () закомментированная строка в теле сообщения

Denis
31.01.2018
15:41:56
у меня вчера похожее было!

только там мне во время тайпчекинга неправильный тип в дырке выводился

когда я его поменял

Александр
31.01.2018
15:45:53
В плане type level magic нужно разделять: желание создать типобесопасный тулинг (что часто бывает полезным) и желание писать бизнес-логику в типах. Второе - от лукавого.

Alexander
31.01.2018
15:47:25
не вижу причин для справедливости того, что второе утверждение от лукавого

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

Александр
31.01.2018
15:48:03
не вижу причин для справедливости того, что второе утверждение от лукавого
Считайте частным мнением, потому что пруфов не будет

Google
Alexander
31.01.2018
15:48:55
т.е. как бы типы = инварианты проверяемые компилятором, с их помощью можно внести ограничение на значения, стейты переходы

Александр
31.01.2018
15:49:12
“Make illegal state unrepresentable” – это бизнес-логика?
Нет, это принцип дизайна, который не имплицирует магию на типах.

Alexander
31.01.2018
15:49:21
читать типы человеку знающему предметную область может быть проще

т.к. в них логики существенно меньше, и нету implementation details

так же оно всегда чекается

Александр
31.01.2018
15:50:02
читать типы человеку знающему предметную область может быть проще
Это очень зависит от дизайна. Читать типы servant на порядок проще, чем opaleye

Alexander
31.01.2018
15:50:07
дальше уже вопрос, а нужно ли это и что привнесение такой логики принесёт

общего ответа тут уже нету

Александр
31.01.2018
15:50:40
Просто потому что Servant - это своеобразный, но DSL, а opalyeye... НедоDSL

Denis
31.01.2018
15:51:25
с большим развесистым API в серванте можно пожалеть что ты на свет родился

удачи при мердже

Александр
31.01.2018
15:52:36
с большим развесистым API в серванте можно пожалеть что ты на свет родился
Я с этим не спорю. Если бы я выбират технологию, то никакой магии на типах в продакшне у меня бы не было. Простые, кондовые, но понятные решения.

"Понятные" с точки зрения среднестатистического разработчика.

Denis
31.01.2018
15:55:27
Ну опять. Что такое “среднестатистический разработчик”? Как мне пользоваться этой метрикой?

Александр
31.01.2018
15:55:40
Заметьте, кстати, разницу. Линзы, - вот уж сложная внутри библиотека, чего только там нет. Но они отличные, их использовать легко. В этом и смысл дизайна. Дизайн компонента не должен вести к тому, чтобы его было трудно использовать.

Denis
31.01.2018
15:56:21
спорное заявление, мягко говоря

Leonid
31.01.2018
15:56:35
Средний программист, мальчик молодой.

Александр
31.01.2018
15:57:06
Ну опять. Что такое “среднестатистический разработчик”? Как мне пользоваться этой метрикой?
Это уже другой вопрос. Я бы скащал, что можно априори предположить, что среднестатистический хаскеллист не умеет в type families и прочие подобные штуки.

спорное заявление, мягко говоря
Их там несколько. Какое из них?

Leonid
31.01.2018
15:57:49
А чего сложного в type families?

Александр
31.01.2018
15:58:30
А чего сложного в type families?
А это третий вопрос, мало относящийся к распределению скиллов среди нашего брата.

Страница 795 из 1551