#arch #video
Последнее время очень залип в видосы с ArchDays. Вроде ничего нового, но очень структурировано и качественно подано.
P.S. со многими докладчиками можно пообщаться лично в @itarchitect
Последнее время очень залип в видосы с ArchDays. Вроде ничего нового, но очень структурировано и качественно подано.
P.S. со многими докладчиками можно пообщаться лично в @itarchitect
YouTube
ArchDays 2019 - YouTube
Forwarded from Протестировал
Микросервисная архитектура получила широкое распространение и с ростом количества этих самых сервисов усложняются коммуникации между ними, увеличивается объем разработки серверной и клиентской частей, тестирования этого кода. Для сокращения издержек на написание кода общепринятым подходом считается использование так называемых схем, из которых код клиента и сервера генерируется автоматически. Стандартом схем де-факто является Open API 3.0, инструменты для которой также позволяют генерировать интерактивную документацию.
А вот с тестированием API не все так однозначно. Я думаю не надо объяснять, что при несоответствии реализации схеме возможны неблагоприятные последствия: от необработанной ошибки, которая ломает приложение, до проблем с безопасностью, которые могут повлечь серьезные финансовые потери. Классический подход с example-based тестами не является дешёвым ни в разработке, ни в поддержке. Подход с тестированием с помощью свойств может сократить стоимость тестирования. schemathesis позволяет рутинные проверки с простыми запросами генерировать автоматически из схемы.
Для демонстрации возможностей можно попробовать запустить пример, где создается простой веб-сервис с множеством ошибок и генерируются тесты с помощью schemathesis.
#непишитетесты, генерируйте их
А вот с тестированием API не все так однозначно. Я думаю не надо объяснять, что при несоответствии реализации схеме возможны неблагоприятные последствия: от необработанной ошибки, которая ломает приложение, до проблем с безопасностью, которые могут повлечь серьезные финансовые потери. Классический подход с example-based тестами не является дешёвым ни в разработке, ни в поддержке. Подход с тестированием с помощью свойств может сократить стоимость тестирования. schemathesis позволяет рутинные проверки с простыми запросами генерировать автоматически из схемы.
Для демонстрации возможностей можно попробовать запустить пример, где создается простой веб-сервис с множеством ошибок и генерируются тесты с помощью schemathesis.
#непишитетесты, генерируйте их
GitHub
GitHub - schemathesis/schemathesis: Catch API bugs before your users do
Catch API bugs before your users do. Contribute to schemathesis/schemathesis development by creating an account on GitHub.
Forwarded from Грефневая Кафка (pro.kafka)
📣 2020 будет твой!
Начни год с изучения опыта коллег - кафкаводов!
Авито открывает двери для встречи на зимнем митапе Moscow Kafka Meetup!
Будем говорить о её интеграции, source коннекторах и запуске масштабируемых приложений в Kubernetes. С докладами выступят инженеры Booking.com, Авито и ваш покорный слуга выступит!
Регистрация обязательна
https://avitotech.timepad.ru/event/1231827/
Начни год с изучения опыта коллег - кафкаводов!
Авито открывает двери для встречи на зимнем митапе Moscow Kafka Meetup!
Будем говорить о её интеграции, source коннекторах и запуске масштабируемых приложений в Kubernetes. С докладами выступят инженеры Booking.com, Авито и ваш покорный слуга выступит!
Регистрация обязательна
https://avitotech.timepad.ru/event/1231827/
dd if=/dev/stuff of=/dev/tg
Algebraic lenses https://chrispenner.ca/posts/algebraic
Специально для тех у кого все еще "да кто такой этот ваш профунктор нахуй?!"
mesos.pdf
829 KB
#arch
Нашел тут древний пейпер с анонсом Mesos'а. Помимо кишочков и т.д. очень интересно сравнивать размер экосистемы мезоса сегодня и одинокий Spark тогда(оказывается Spark был подопытным кроликом Mesos'a). А еще первый Мезос = 10kLoC на крестах
Нашел тут древний пейпер с анонсом Mesos'а. Помимо кишочков и т.д. очень интересно сравнивать размер экосистемы мезоса сегодня и одинокий Spark тогда(оказывается Spark был подопытным кроликом Mesos'a). А еще первый Мезос = 10kLoC на крестах
Вот такую интересную штуку показал коллега!
Во-первых, мне кажется, это идеальная демка(дада, не физбаз, не хелловорлд и даже не туду лист)
Во-вторых, очень интересно сделан деплой в кубер, а точнее, пакуются чарты
#хозяюшкеназаметку
Во-первых, мне кажется, это идеальная демка(дада, не физбаз, не хелловорлд и даже не туду лист)
Во-вторых, очень интересно сделан деплой в кубер, а точнее, пакуются чарты
#хозяюшкеназаметку
GitHub
GitHub - microsoft/RockPaperScissorsLizardSpock: Rock, Paper, Scissors, Lizard, Spock - Sample Application
Rock, Paper, Scissors, Lizard, Spock - Sample Application - GitHub - microsoft/RockPaperScissorsLizardSpock: Rock, Paper, Scissors, Lizard, Spock - Sample Application
Троллинг 80го уровня из книжки по теоркату:
"Here seems to be some controversy about the advantages of static vs.
dynamic and strong vs weak typing. Let me illustrate these choices with a thought experiment. Imagine millions of monkeys at computer keyboards happily hitting random keys, producing programs, compiling, and running them. With machine language, any combination of bytes produced by monkeys would be accepted and run. But with higher level languages, we do appreciate the fact that a compiler is able to detect lexical and grammatical errors. Lots of monkeys will go without bananas, but the remaining programs will have a better chance of being useful. Type checking provides yet another barrier against nonsensical programs. Moreover, whereas in a dynamically typed language, type mismatches would be discovered at runtime, in strongly typed statically checked languages type mismatches are discovered at compile time, eliminating lots of incorrect programs before they have a chance to run.
So the question is, do we want to make monkeys happy, or do we want to produce correct programs?"
"Here seems to be some controversy about the advantages of static vs.
dynamic and strong vs weak typing. Let me illustrate these choices with a thought experiment. Imagine millions of monkeys at computer keyboards happily hitting random keys, producing programs, compiling, and running them. With machine language, any combination of bytes produced by monkeys would be accepted and run. But with higher level languages, we do appreciate the fact that a compiler is able to detect lexical and grammatical errors. Lots of monkeys will go without bananas, but the remaining programs will have a better chance of being useful. Type checking provides yet another barrier against nonsensical programs. Moreover, whereas in a dynamically typed language, type mismatches would be discovered at runtime, in strongly typed statically checked languages type mismatches are discovered at compile time, eliminating lots of incorrect programs before they have a chance to run.
So the question is, do we want to make monkeys happy, or do we want to produce correct programs?"
I hate overtime
Троллинг 80го уровня из книжки по теоркату: "Here seems to be some controversy about the advantages of static vs. dynamic and strong vs weak typing. Let me illustrate these choices with a thought experiment. Imagine millions of monkeys at computer keyboards…
category-theory-for-programmers.pdf
15.7 MB
Сурс
Интересное сравнение green thread'ов на примере Хаскеля и Future из Раста в контексте обработки ошибок.
Чет вспомнил как больно было до await'ов и порадовался
Чет вспомнил как больно было до await'ов и порадовался
FP Complete
Async Exceptions in Haskell, and Rust
Haskell and Rust both support asynchronous programming. Haskell includes a feature called async exceptions, which allow cancelling threads, but they come at a cost. See how Rust does the same job, and the relative trade-offs of each approach.
Forwarded from CatOps
Объяснение RAFT на пальцах с красивыми диаграммками. Можете даже показать свой маме!
И вдогонку две старые статьи с DOU о консенсус-протоколах:
- раз
- два
И вдогонку две старые статьи с DOU о консенсус-протоколах:
- раз
- два
ДОУ
12 консенсус-протоколов для распределенных систем
В Intellectsoft Blockchain Lab мы работаем с клиентами из большого количества индустрий, будь то финансовый сектор или ритейл, а также с разными компаниями — от стартапа до международной корпорации. В этой статье я рассмотрю базовые, самые популярные консенсус…
Внезапно с удовольствием прочитал новую статью Фаулера про парное программирование. Во-первых, узнал про технику "ping-pong", когда один пишет тест, второй реализует, потом пишет тест, первый реализует и т.д.
Во-вторых, осознал, что у нас тоже есть pair programming(точнее Strong-Style Pairing).
Кароч, котятки, рекомендую ознакомиться
Во-вторых, осознал, что у нас тоже есть pair programming(точнее Strong-Style Pairing).
Кароч, котятки, рекомендую ознакомиться
martinfowler.com
On Pair Programming
A guide to effective pair-programming
#testing
Awesome list puppeteer. Сабж -- headless(консольный) браузер, который мы заслужили на основе Chromium
Awesome list puppeteer. Сабж -- headless(консольный) браузер, который мы заслужили на основе Chromium
GitHub
awesome-puppeteer/readme.md at master · transitive-bullshit/awesome-puppeteer
A curated list of awesome puppeteer resources. Contribute to transitive-bullshit/awesome-puppeteer development by creating an account on GitHub.
Forwarded from Находки в опенсорсе
The perfect dictionary of popular programming words.
My favourite one is:
> "dsl — A domain specific language, where code is written in one language and errors are given in another."
#rant
My favourite one is:
> "dsl — A domain specific language, where code is written in one language and errors are given in another."
#rant