Linker Unsafe – Telegram
Linker Unsafe
220 subscribers
182 photos
24 videos
18 files
859 links
Собираю ржавые и лямбдообразные новости, прикольные цитатки с форумов, ссылки на статьи и всё такое. В-общем, сюда я тащу такие крупицы, которые мне будет жаль потерять в цифровой бездне. Возможно, они покажутся интересными и вам.

Фи сюда: @nlinker
Download Telegram
Forwarded from Stanislav Popov
предвидя ваши возражения - интерпретируемость все же должна быть фундаментом для разработки. кодер будет хотеть иметь возможность всегда покрутить что ему пришло, побрутфорсить обьект таким образом чтобы получить своё. да я понимаю что те кто вышел из статики привыкли без этого обходится, эта тема уже поднималась с @mersinvald и я понял что можно писать мини тесты но это не совсем катит. бывает так что стейт слишком крупный или жирный, бывает так что воспроизвести стейт затратно, нужно писать механизм типа "просто дампни текущий стейт в файлик и воспроизведи", вобщем я понял что это удобный хороший способ но это все же недостаточно гибко и требует всю архитектуру делать "рекаверабле"

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

и я уже столько лютого треша на эти темы нагуглил. вот например https://gist.github.com/spacejam/15f27007c0b1bcc1d6b4c9169b18868c

вобщем есть у меня ряд задач где просто страшно отказываться от какого то низового уровня, страх потерять контроль, страх потерять возможность отладить. причем это же не просто так, это вот буквально в любом ботике, любом кравлере - вот происходит отсос - можно вытащить стейт всех обьектов, изучить, потраить какието рантайм тулзы
Forwarded from The Wacky Yellow Dog
tapir/rho/typed-schema + finch/http4s + IO/ZIO + doobie/quill, архитектурно - tagless final и т.п.
Forwarded from The Wacky Yellow Dog
Ну и я не называю раст плохим, он достаточно хорош, чтобы я сел на нём прод писать.

Вопрос в том, что трейдоффы в нём не подходят для тех приложений, где производительность не играет критичной роли
Forwarded from The Wacky Yellow Dog
Потому что эргономика так себе, она сильно ограничивает архитектуру приложения не по принципиальным причинам, а тупо из-за ограничений языка, связанных с его низкоуровневостью и некоторыми решениями в дизайне.

С этим можно мириться, если тебе нужна максимально хорошая производительность, но это редко нужно.

А где производительность не столь критична, там есть куда более выразительные альтернативы, которые в IO-bound задачах сравнимы по большинству показателей, а в плане эргономики сильно лучше
Forwarded from Al P
Алексей именуемый 1 он же Алексей Абашев - плохой,
Алексей именуемый 2 он же Алексей Нестеров - хороший.
K P A C U B O
Forwarded from Αλεχ Zhukovsky
whileM' : (Monad m, Monad f, Alternative f) => (a -> Bool) -> m a -> m (f a)
whileM' p f = go
where go = do
x <- f
if p x
then do
xs <- go
pure (pure x <|> xs)
else pure empty

whileM : Monad m => (a -> Bool) -> m a -> m (List a)
whileM = whileM'

@hirrolot если вдруг нужен такой комбинатор в идрсе - держи. Чуваки из чатика не смогли сделать версию которая работает, у меня с божьим чудом и хуглом - вышло