Alexander
Нету такой задачи - чтобы компилятор код писал. Это прогоаммист придумал. А есть задачи предметной области.
Anonymous
Хотите typed holes –– типы.
Anonymous
🙂
Denis
Denis
когда тайпклассами пользуетесь - вам компилятор код пишет, подбирая функции
Alexander
И статические проверки тоже - придумал программист. Ему показалось, что ошибки надо поисключать, и давай для этого вносить неоправданную сложность в проект. Хотя, может, ту же задачу проще и много понятнее было можно тестами решить.
Aliester
да и языки высокого уровня тоже программисты придумали
Denis
дженерики в духе sop опять же для того, чтобы код не программист писал
Aliester
не хотят ироды на асемблере код писать по проекту на архитектуру
Denis
Разумеется, программист сидит и думает как ему внести побольше сложности в свой проект, ему же с ним работать! Отличный аргумент!
Alexander
блин библиотеки bos зло :/
Alexander
а не, не зло, в последних версиях он одумался (или не автор уже)
Denis
он вроде уже ничего не мейнтейнит толком
Alexander
Но если плюсовики вылечиваются со временем, то у хаскеллистов этот вид недуга вообще имеет тенденцию к ухудшению.
Denis
Alexander
аргумент, наверное в том, что плохо делать так чтобы bus factor был близок к 1
Denis
потому что спич о какой-то произвольной черте, выше которой все сложно и комплексити
Alexander
*понимать
Alexander
причем где 1 относится к любому человеку из продвинутых в команде
Denis
bus factor ортогонален typeful дизайну
Denis
я же выше говорил, если команде нормально, то все в порядке
Alexander
и при том что введение нового человека может быть дорого
Alexander
Alexander
с haskell наверное одна из важнейших
Denis
это наистандартнейшая метрика
Denis
я не согласен с тем что с haskell важнее
Denis
возьми какой-нибудь скриптовый язык
Denis
там bus factor == 1 еще хуже
Anonymous
Ребят, а кстати как сейчас у ghc обстоят дела с typed holes? Ещё не так круто как в Агде? Поддержку в емакс не завезли?
Anonymous
Я слоупок просто
Denis
код становится вообще иммутабельным
Alexander
это да
Alexander
но в общем скорее всего смысл утверждений в том, что неожиданно на ровном месте человеку становится сложно разбираться
Denis
поэтому любые решения хороши, если команда в них сечет
Alexander
в итоге возрастает или уровень требуемый от соискателей или цена введения нового человека
Denis
ну это то безусловно
Denis
но typeful дизайн обычно дает какие-то бенефиты, позволяет убрать какие-то классы распостраненных ошибок
Denis
или дает более общий код
Anonymous
Denis
тут надо оценивать плюс подхода против его минусов в каждом конкретном случае
Denis
у меня есть отличный пример из нашей кодобазы
Alexander
accidental - тут конечно субьективно, но в целом насколько много решает по сравнению с тем насколько хуже писать код
Alexander
спорить там тяжело, особенно не видя кодобазы друг друга
Alexander
мало ли чего там в Касперском (если я прав) или IOHK начудили
Alexander
ну типы <-> корректность
Denis
в общем у нас мозгодрыжни всякие штуки используются, но валюту в типе денежных значений мы не осилили
Denis
т.к. цена слишком высока
Denis
при этом что-то совершенно чудовищное на вид, вроде schematic, юзается повсеместно
Alexander
@cblp_su - Касперский, и большая часть Serokell тут есть
Denis
Alexander
хотя может и не большая, но человека 4 было
Alexander
Serokell ~= IOHK
Alexander
это разные фирмы, но Serokell пишут очень много (весь) Haskell код
Denis
serokell ⊂ iohk
Denis
я починил
Cheese
ничего мы не чудили
Alexander
сделать accidental complexity объективной метрикой тяжело
Denis
оказывается что дофига всего нуждается в корректном софте
Denis
насколько это важно для каждого конкретного проекта - вопрос
Alexander
ой не парься, в мед софте проблемы начиная с физ модейлей бывают
Denis
на самолетах тоже не летайте кстати
Denis
и в больницы не ходите
Alexander
сделать accidental complexity объективной метрикой тяжело
Объективных метрик, конечно, здесь не придумать. Или если придумать, то получится какая-нибудь "цикломатическая сложность". Но нужно стремиться к тому, чтобы код бизнес-сценариев был понятен тем, кто работает с предметной областью.
Denis
я никогда не забуду как тулинг мне мерял цикломатическую сложность по количеству веток в case
Denis
чем больше веток, тем выше сложность была!
Alexander
Denis
надо в отдельную функцию выделять, говорит!
Denis
поэтому и дизайн этих частей логично представлять разным