Страница телеграм канала Pepegramming

pepegramming logo

Pepegramming

587 подписчиков

Грустно о программировании. Все проблемы сюда: @davydovanton Ссылки на конкретные посты: http://telegra.ph/Pepegramming-Contents-03-11 Обратная связь: https://goo.gl/forms/iUd1Gufq6WnTsaO62


Входит в категории: Технологии
Pepegramming
30.08.2019 16:08
И последнее на сегодня В следующий четверг (5го числа), в москве, пройдет ruby митап. Сам на него придти не смогу так как буду в тайланде на конференции, но регистрация доступна по этой ссылке: https://railsclub.timepad.ru/event/1050182/
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
30.08.2019 15:08
Спасибо @saintprug, у нас теперь 3 билета на розыгрыш! Если хотите присоединиться к лучшему российскому комьюнити - прошу в чат
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
30.08.2019 13:08
Пятничное чтиво Начнем с грустных новостей. По техническим причинам стримы откладываются. Вспомнить что было можно тут. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму. В этом году Pepegramming разыгрывает два билета на rubyrussia конференцию! Условия как и в прошлом году: - Заполняем форму; - Рассказываем друзьям и коллегам о розыгрыше; - 13 сентября разыгрываю 2 билета; ————————————— Good Database Design Starts Here - Towards Data Science Автор статьи объяснит что для него хороший дизайн базы данных. Так же, в статье описываются виды моделей, нормализация, стандарты именования, документация и тестирование. Если хотите узнать чуть больше о базах данных, но не знаете с чего начать - текст покажет на что можно посмотреть. ————————————— Documenting Software Architecture Работа архитектором подразумевает написание документации по проектам. Автор собрал популярные виды документации для проектов и описал каждый из них. Для себя открыл Class dependency diagram так как последнее время занимаюсь автогенерацией подобных диаграмм. Об этом подробнее расскажу на предстоящей rubyrussia. А статья однозначный мастрид, если хотите прокачать навык документирования систем, которые проектируете. ————————————— RabbitMQ vs Kafka Цикл из 6 статей которые пытаются описать в чем же разница между kafka и MQ. В начале описывается, что из себя представляет RabbitMQ и Kafka, показываются плюсы и минусы. Далее автор описывает разницу между push и pull моделью для работы с событиями. А в следующих статьях описываются паттерны и топологии используемые в RabbitMQ и Kafka, а также fault tolerance высокая доступность с каждым из сервисов. Статья будет полезна тем, кто выбирает что использовать в системе или тем, кто думает, что kafka тот же MQ только популярнее. ——— одной строкой ——— - Пропозал на добавление simple immutable value object в кор руби;
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
23.08.2019 14:08
Пятничное чтиво На прошлой неделе не смог сделать ссылки, исправляюсь. Стримы возвращаются с каникул! Первый стрим проведем 30 августа, это пятница. Вероятно, что стримы теперь будут выходить в пятницу или выходные. Вспомнить что было можно тут. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму. Розыгрыш билетов откладывается, так как жду программу со списком докладов. Как появится - сразу же начнем розыгрыш билетов. ————————————— Monads as a Programming Pattern Еще одна статья о монадах. На этот раз автор пытается представить монады в виде паттерна. Описывается работа Maybe/Nullable/Optional, List/Collection, и Promise/Awaitable монад с примерами на популярных языках программирования. Дается точное определение, говориться о теории категорий и синтаксисе. А так же рассматривается await из js, python и c#. Читать пост определенно стоит ради понимания того, как на практике работают некоторые монады и чтения мыслей автора касаемо того, чем могут быть монады. ————————————— Testing Microservices: Overview of 12 Useful Techniques Проблема сервисной архитектуры о которой редко говорят - тестирование и мониторинг. Сегодня статья о тестировании. Идея в том, что тестировать сервисы как монолит накладно и больно. Вместо этого приходиться использовать иные способы. Так же рассказываются что делать с зависимостями и что такое контрактное тестирование и в чем преимущество данного подхода. Отчасти идеи пересекаются с юнит тестированием, где юнит - изолированный сервис. На предстоящей rubyrussia будет доклад о том, как в топтал тестирует сервисы. ————————————— From CRUD to CQRS. Part1. CQRS Один из способов сложной композиции в сервисной архитектуре - использование read и write models. В таком подходе можно подготовить данные для чтения в подходящий формат и использовать подходящую базу данных (например эластик). CQRS является паттерном проектирования подобных моделей, а в статье на примерах показывается как реализовать паттерн. Если после статьи хочется больше узнать о CQRS - глава 7.2 из Microservices Patterns книги подробно рассказывает о том, как проектировать сервисы связанные read model. ——— одной строкой ——— - How old are dependencies in your (ruby) project? - DEV Community - Канал с идеями вокруг разных языков и экосистем. В списке языков: elixir, crystal и ruby
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
16.08.2019 17:08
к сожалению на этой неделе не справился и ссылок не будет. Приношу извинения. В следующую пятницу все по расписанию
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
09.08.2019 15:08
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
09.08.2019 14:08
Пятничное чтиво Pepegramming третий год подряд (первый раз второй) является информационным партнером конференции http://amp.gs/Slkg (ex railsclub). Благодаря помощи питерскому сообществу в этом году два билета на розыгрыш. Форму сделаю в течении недели. А победителей узнаем на первом стреми этого сезона. Стримы возвращаются с каникул! Первый стрим проведем 28 августа. Вспомнить что было можно тут. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму. ————————————— Chaos Engineering — Part 1 Chaos Engineering — Part 2 Chaos Engineering не дает покоя последние 1.5-2 года. Идея, заложенная в практике описывается одним предложением: представь, что может произойти при отказе части системы, безопасно сломай, запиши результаты и сделай систему лучше. В первой части статьи указывается что такое Chaos Engineering, как практика появилась и подробно расписываются концепции. Во второй части приводится пример того, как пользоваться этой практикой. Русский перевод первой части Кроме статьи, советую прочитать книгу, а так же посмотреть на awesome список. ————————————— Thinking about the Go Proposal Process (Go Proposals, Part 1) Go Proposal Process: Clarity & Transparency (Go Proposals, Part 2) Кор разработчик языка Go рассуждает на тему процесса принятия решений в языке. В первой части рассматривается как происходит процесс принятия решения в языке (с примерами), как процесс эволюционировал и что можно улучшить. Во второй части рассматриваются конкретные примеры с документацией, принятием решений и как кор разработчики боролись с откладыванием рассмотрения предложений. Статьи интересна с точки зрения процессов и менеджмента крупного опенсорсного проекта. ————————————— Are you really ready for serverless? О serverless говорят каждую неделю. Часто serverless преподносят как серебряную пулю и панацею от проблем. Последняя статья на сегодня - подводные камни, о которых принято умалчивать. Статья основана на докладе AWS re:Invent 2016 и детально описывает проблемы, упомянутые в оригинальном докладе. “Functions are the unit of deployment and scaling” ударила в сердце. Если, после прочтения твиттера, задумывались о миграции на serverless - статья станет подспорьем подумать два раза перед миграцией. ——— одной строкой ——— - BlazingSQL, the GPU-accelerated SQL engine of the RAPIDS ecosystem, is now 100% open-source licensed under Apache 2.0!; - Github: Документ с описанием Coupling Criteria. Мастхев для мигрирующих на сервисы; - Практические задания для изучения Kafka и Kafka streams;
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
02.08.2019 14:08
Пятничное чтиво Стримы отпуске, темы пишутся. Вспомнить что было можно тут. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму. ————————————— Modelling Bounded Contexts with the Bounded Context Design Canvas: A Workshop Recipe Сложно представить из каких частей состоит монолитное приложение и как эти части взаимосвязаны. Понимание связей и границ является первым шагом в переходе на сервисную архитектуру. В статье автор приводит пример того, как определить домен и связи с другими доменами в 5 шагов. Однозначный маст рид для тех, кто начинает движение в сторону сервисов. ————————————— Little thread about Lightning video adapters Люблю “как это работает” статьи. Сегодня твиттер тред о том, как работает HDMI адаптер для айфона/айпада, осторожно Hardware Porn. Я купил этот адаптер год назад, так как айпад легче ноутбука и если есть возможность показать презентацию с айпада - стоит воспользоваться. Из треда выше увидеть как это выглядит и как работает. Русский перевод ————————————— Algebraic Effects for the Rest of Us Благодаря Никите часто слышу фразу algebraic effects. Dan Abramov описывает что это, почему это должно волновать js разработчиков. Как это работает и что вообще с этим делать в контексте языка и реакта. Для рубистов делается dry-effects, доков нет, но куча примеров в PR-ах. Пока сложно разобраться с эффектами, поэтому буду ждать доклада от Никиты на RubyRussia. ——— одной строкой ——— - Book Review: Designing Data-Intensive Applications; - Медленно, но верно готовлюсь к выступлению на RubyRussia
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
26.07.2019 15:07
Пятничное чтиво Эту неделю провел в обнимку с Kafka, поэтому ссылки будут тоже тематические. На стримах покажу на практике как все сегодняшние ссылки работают в руби и расскажу почему это круто. Так же, открыт CFP на RubyRussia. Можно заполнить форму, а можно написать лично, попробую помочь с темами. Стримы отпуске, темы пишутся. Вспомнить что было можно тут. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму. ————————————— Kafka in a Nutshell - Kevin Sookocheff Thorough Introduction to Apache Kafka Две статьи, описывающие базовые концепции кафки. Старт для тех, кто хочет разобраться как база работает. Если хотите быстро разобраться что такое кафка - забейте на zookeeper, streaming API. Прочитайте что такое producers, consumers, consumers group, а лучше поставьте кафку локально и напишите hello world продюсер и консьюмер (можно взять karafka). Для локальной работы Confluent Platform сделали docker-compose.yaml который ставит последнюю версию кафки и все необходимое . Так же стоит понять что такое message в контексте кафки и как partitions помогают паралелизовать консьюмеры. После этого уже можно смотреть на репликацию, зукипер и другие страшные вещи. ————————————— Schema Management В distributed systems много проблем. Первая проблема, которая появляется, когда сервисов становиться больше 2 - как гарантировать работу сервисов с одинаковыми данными. А так же, как обновлять схему запроса/ответа, чтобы не сломать систему. Такие проблемы относятся к эволюции данных и схемы данных и подробно описываются в Designing Data-Intensive Applications. Умные ребята подумали и сделали schema registry, которая позволяет хранить описание схем в отдельном топике кафке. Это означает, что каждая схема данных находиться в едином месте и каждый продюсер и консьюмер будет использовать одну и ту же схему данных. К сожалению, schema registry работает только с avro и за счет имутабельности сообщений кафки решает проблему совместимости схем о которой писал в прошлую пятницу. ————————————— Stream-based Architecture Build Services on a Backbone of Events Важно понимать, что кафка является distributed streaming platform. Это значит, что привычные паттерны, которые используются в pub/sub не подходят. Поэтому стоит использовать другие подходы к построению архитектуры. В статьях выше описывается понятие Stream-based Architecture, в чем отличие такой архитектуры. Описывается процесс Event Driven Flow и затрагивается почему топики должны быть domain specific. Основные проблемы работы с кафкой - обучение инженеров и затраты на operations. Поэтому, если думаете, что кафка решит проблемы приложения - прочтите эти две статьи и попробуйте представить как может выглядеть data flow в приложении. ——— одной строкой ——— - HAProxy EBtree: Design for a Scheduler, and Use (Almost) Everywhere;
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
19.07.2019 12:07
Пятничное чтиво На прошлой неделе началась работа над конференцией RubyRussia. В этом году я снова попал в программный комитет. Если хотите выступить и не знаете с чего начать - можете подать заявку или написать лично, попробую помочь с темами. Стримы еще в отпуске, вспомнить что было можно тут. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму. ————————————— Schema Evolution and Compatibility — Confluent Platform Эволюция схемы данных проблема о которой начинают думать, когда сталкиваются в первый раз. Обычно возникает в сервисной архитектуре, но и в монолите тоже может возникнуть. Эта проблема касается как async (схема данных события) так и sync (http схема) коммуникаций. Confluent описали виды совместимости и порядок обновления клиентов, что полезно во время перехода на сервисную архитектуру. Так же, больше подробностей можно найти в Designing Data-Intensive Applications. Однозначный мастрид этой недели. ————————————— Goodbye ActiveRecord! Опыт компании Aircall, которая разделяет монолит на сервисы и в качестве работы с базой решила взять ROM. Описываются ограничения active record, что из себя представляет ROM и как изучить библиотеку. Статья - старт для тех, кто не знает зачем или с чего начать использование библиотеки. Так же, советую запись доклада Петра о 4 версии ROM (текущая версия - 5). ————————————— Autocompletion with deep learning Еще один автокомплит для редакторов, на этот раз с deep learning. Поддерживаются популярные языки (включая руби). Для работы автокомплита ребята обучили модель на 2 миллионах файлах из гитхаба. Также рассказывается об архитектуре приложения и возможности использования документации для предрешена. Я не фанат автокомплитов, хватает автокомплита строки из буфера или слова из буфера в виме. Но после статьи уже хочу поиграть с этой штукой, надеюсь биндинги к виму будут. ——— одной строкой ——— - Объяснение мема об 10x инженере - Как правильно приглашать на встречи
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
12.07.2019 14:07
Пятничное чтиво Привет, на этой неделе оказался на питерском митапе, рассказал о DI и послушал как используют dry-system. Стримы еще в отпуске, вспомнить что было можно тут. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму. ————————————— Should We Create a Shared Service? A Decision-making Checklist Если у возникла проблема выделения общего сервиса - чеклист из статьи может помочь ответить на вопрос, поможет или нет. Так же, показываются два паттерна для shared service. Лично сталкивался с Deceptive Reuse Services, боль возникает, когда клиенты сначала хотят одно и то же, но потом потребности начинают различаться. ————————————— When SQL Isn’t the Right Answer Статья о noSQL базы данных. От продажных статей отличается исторической справкой. Рекомендую прочитать виды data models для таких баз. Их четыре, но описание каждого даст понимание того, какие структуры данных можно хранить в noSQL. Статья может помочь подготовиться к некоторым главам Designing Data-Intensive Applications. ————————————— Scalable architecture without magic Подробная статья о том, как сделать scalable архитектуру. Рассматриваются SQL/noSQL базы данных. Как работать с несколькими серверами, кешем и данными. Так же описываются возможные ботлнеки, которые могут возникнуть во время проектирования. А так же, показываются схемы построения таких систем. ——— одной строкой ——— - YouTube: Being a Better Developer With EXPLAIN - Introduce support for ActionView::Component · rails/rails · GitHub
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
05.07.2019 17:07
DNS конечно же, тяжелый перелет дает о себе знать
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
05.07.2019 17:07
Пятничное чтиво Эту неделю провел в UK, где в офисе cookpad ruby core разработчики научи контрибьютить в язык. Расскажу об этом и покажу с чего начать в будущих стримах. А пока можно посмотреть прошлые стримы. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму. ————————————— The Sacred Art of Concurrent and Parallel Programming На примере clojure рассказывается разница между конкурентным и параллельным программированием. Объясняются как работаю и зачем использовать блокировки. Объясняется как работают JVM Threads, Futures, Delays и Promises. В конце показывается как написать асинхронную очередь. ————————————— Что такое DNS – Hexlet Guides Подробный гайд от Hexlet о том, что такое DNC. Рассказывается история появления, причины и как DNC работает. Из интересного было почитать о рекурсии в DNC. Однозначный маст рид для тех, кто не знает что это такое ————————————— Next steps toward Go 2 Go core команда рассказывает о процессе перехода на 2.0 версию языка. Главная проблема - сделать изменения затрагивающие изменения в самом языке так, что бы разработчики смогли их пережить. Понравилась обратная связь кор команды с комьюнити, чего не хватает в ruby. Будет интересно посмотреть, что из этого получиться. Русский перевод ——— одной строкой ——— - Code review checklist; - Слайды, рассказывающие почему SOLID ошибочен;
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
28.06.2019 15:06
> По вопросам как это сделать можно писать в личку. Основная идея в том, что бы сделать в /rbi папке rbi файл со всеми аннотациями. Для этого можно руками все написать, а можно сгенерировать через srb init в любом рабочем проекте где есть эта библиотека. В sorbet/rbi/gems/gem_name.rbi будет лежать сгенерированный файл к библиотеке без аннотаций. Нужно будет его скопировать в бибилиотеку, добавить аннотаций Использование srb tc в геме автоматически подтянет rbi файлы из /rbi/ директории и автоматически все провериться.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Pepegramming
28.06.2019 15:06
Твиттер как обычно не работает, вот рабочая ссылка: https://twitter.com/anton_davydov/status/1142090131576414209
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме