Forwarded from Defront — про фронтенд-разработку и не только
Аксель Раушмайер написал у себя в блоге статью про проблемы с разделяемым изменяемым состоянием и способы их решения — "The problems of shared mutable state and how to avoid them".
Если один и тот же объект, массив или другая структура изменяется в нескольких местах программы, то это может приводить к неприятным багам. Для предотвращения таких проблем часто используют защитное копирование (Defensive copying), недеструктивное изменение данных и иммутабельные данные. В статье описываются все эти подходы.
Забавно, что буквально перед тем как начать статью, я сидел и пробовал вспомнить все способы ограничения доступа к свойствам объекта. Вспомнил только про
Статья у Акселя получилась большой и подробной. Рекомендую почитать.
#js #immutability
https://2ality.com/2019/10/shared-mutable-state.html
Если один и тот же объект, массив или другая структура изменяется в нескольких местах программы, то это может приводить к неприятным багам. Для предотвращения таких проблем часто используют защитное копирование (Defensive copying), недеструктивное изменение данных и иммутабельные данные. В статье описываются все эти подходы.
Забавно, что буквально перед тем как начать статью, я сидел и пробовал вспомнить все способы ограничения доступа к свойствам объекта. Вспомнил только про
Object.freeze и Object.seal. В статье нашёл третий забытый метод — Object.preventExtensions.Статья у Акселя получилась большой и подробной. Рекомендую почитать.
#js #immutability
https://2ality.com/2019/10/shared-mutable-state.html
#eda #messaging
Для тех кто еще не знаком с Pulsar'ом, появилась отличная статья про его архитектуру и фичи. Статья крутая: есть сравнение архитектуры и фичей пульсара с его ближайшим родственником(кафкой), а так же примеры использования сабжа в связке со спарком.
Для тех кому мало, у пульсара достаточно крутая дока, где подробно написано как что работает.
Для тех кто еще не знаком с Pulsar'ом, появилась отличная статья про его архитектуру и фичи. Статья крутая: есть сравнение архитектуры и фичей пульсара с его ближайшим родственником(кафкой), а так же примеры использования сабжа в связке со спарком.
Для тех кому мало, у пульсара достаточно крутая дока, где подробно написано как что работает.
Medium
Apache Pulsar as One Storage System for Both Real-time and Historical Data Analysis
Use Apache Spark as an example
Forwarded from Технологический Болт Генона
How to Write Good Documentation (And Its Essential Elements)
https://www.sohamkamani.com/blog/how-to-write-good-documentation/
https://www.sohamkamani.com/blog/how-to-write-good-documentation/
Forwarded from Defront — про фронтенд-разработку и не только
Корри Хаус — известный спикер в React-сообществе — поделился своим пятилетним опытом работы с React — "Lessons learned from 5 years in React".
Документ содержит 63 пункта про работу с компонентами, JSX, про управление состоянием приложения, производительность, переиспользование компонентов и их тестирование. Есть пара пунктов, которые хочется выделить. Не используйте во всех компонентах без исключения
Есть в списке пара пунктов, которые у меня вызвали вопросы. Например, полный отказ от тестирования снепшотами. Вместо них Корри предлагает использовать Percy или Chromatic. Это очень жёсткая позиция. Проблема со снепшотами возникает только тогда, когда их очень много. Если для компонента создаётся один снепшот, то этого вполне достаточно для отлавливания непреднамеренного изменения кода.
Как бы то ни было, если вы работаете с React, очень рекомендую посмотреть документ.
#react #list #experience
https://www.dropbox.com/s/tsid5bnphznbvjv/
Документ содержит 63 пункта про работу с компонентами, JSX, про управление состоянием приложения, производительность, переиспользование компонентов и их тестирование. Есть пара пунктов, которые хочется выделить. Не используйте во всех компонентах без исключения
useMemo, shouldComponentUpdate, PureComponent. Используйте их только там, где они нужны. Если бы их использование не несло дополнительные накладные расходы, они были бы включены по умолчанию. Если есть в этом смысл, используйте в своих компонентах имена, которые используются в Web-платформе (`onBlur`, onChange и т.п.). Используйте as как пропс для модификации типа верхнеуровневого элемента.Есть в списке пара пунктов, которые у меня вызвали вопросы. Например, полный отказ от тестирования снепшотами. Вместо них Корри предлагает использовать Percy или Chromatic. Это очень жёсткая позиция. Проблема со снепшотами возникает только тогда, когда их очень много. Если для компонента создаётся один снепшот, то этого вполне достаточно для отлавливания непреднамеренного изменения кода.
Как бы то ни было, если вы работаете с React, очень рекомендую посмотреть документ.
#react #list #experience
https://www.dropbox.com/s/tsid5bnphznbvjv/
Dropbox
Lessons learned from 5 years in React.docx
Shared with Dropbox
#db
Вот только-только мы в 2019 году смирились с отсутствием строгой консистентности и перестали городить 2PC и адок на компенсаторах, как парни из eBay изобрели "распределенный ACID"😁
Работает это добро аж в 3 фазы, бенчмарков что-то нету... ну ждем пока кто-то попробует(но мемы про eBay можно делать уже сейчас)
Вот только-только мы в 2019 году смирились с отсутствием строгой консистентности и перестали городить 2PC и адок на компенсаторах, как парни из eBay изобрели "распределенный ACID"😁
Работает это добро аж в 3 фазы, бенчмарков что-то нету... ну ждем пока кто-то попробует(но мемы про eBay можно делать уже сейчас)
Ebayinc
GRIT: a Protocol for Distributed Transactions across Microservices
eBay technologists recently showed off a distributed transaction protocol called GRIT, for distributed ACID (atomicity, consistency, isolation, durability) transactions across microservices with multiple underlying databases.
Monolith-to-Microservices(Newman 2).pdf
11.1 MB
#books
Все же помнят, любят и читали книжку про Микросервисы от Сэма Ньюмана? Так вот, котаны, вышла вторая часть про миграцию с монолита от того же автора в содружестве с NGinx.
В книжке рассмотрены как организационные вопросы(как реорганизовать команды), глобальные(оно вам вообще надо?), так и набор паттернов, который поможет вам успешно провести ваше microservice journey
Все же помнят, любят и читали книжку про Микросервисы от Сэма Ньюмана? Так вот, котаны, вышла вторая часть про миграцию с монолита от того же автора в содружестве с NGinx.
В книжке рассмотрены как организационные вопросы(как реорганизовать команды), глобальные(оно вам вообще надо?), так и набор паттернов, который поможет вам успешно провести ваше microservice journey
Forwarded from FrontEndDev
Forwarded from HighLoad++
Напоминаем о прямой трансляции из Конгресс-холла, Обровец жжет) https://www.highload.ru/moscow/2019
highload.ru
Конференция разработчиков высоконагруженных систем HighLoad++ 2019
HighLoad++
Напоминаем о прямой трансляции из Конгресс-холла, Обровец жжет) https://www.highload.ru/moscow/2019
Какая-то странная ссылка у них... вот, ловите, прямо на плейлист
YouTube
HighLoad++ 2019 - Главный зал - YouTube
Forwarded from Архитектура ИТ-решений
Почему архитектурные эскизы становятся всё более востребованы? Раньше люди умели читать. Большинство сотрудников внимательно изучали документы, стараясь понять, что там написано. Только обчень большим начальникам рисовали слайды с красивыми графиками. Сейчас сотрудники утрачивают способность к вдумчивому прочтению документов. Они ролики на YouTube смотреть умеют, а вот документы читать - не очень. Можно сокрушаться на эту тему, а можно относится к этой тенденции более диалектически. Многие ораторы древности тоже не писали колонки в популярные еженедельные издания, а выступпали на площадях. Мы знаем об их идеях по запискам учеников. Похоже, что сегодня жанр устного творчества отыгрывает утраченные позиции. Но надо учитывать следующий момент. Большим начальникам и слушателями публичных лекций, вы обычно рассказываете очень простые вещи. Их можно воспринять с голоса. В крайнем случае оратор поможет себе красноречивой жестикуляцией. Технически сложные вещи с голоса воспринимаются плохо.
Нужна картинка!
(насколько большее число людей восприняло бы этот текст, будь он нарисован)
Нужна картинка!
(насколько большее число людей восприняло бы этот текст, будь он нарисован)
#monitoring
ОКметер, как всегда, с интересным докладом про мониторинг:
Во-первых, если у вас Nginx, то советую сделать так же как написано(мы вот сделали и довольны)
Во-вторых, очень грамотно написано про алертинг. Похожую концепцию наблюдал в Контуре с их Мойрой и, пожалуй, все. Все остальные как-то незаслужено обходят алертинг стороной.
ОКметер, как всегда, с интересным докладом про мониторинг:
Во-первых, если у вас Nginx, то советую сделать так же как написано(мы вот сделали и довольны)
Во-вторых, очень грамотно написано про алертинг. Похожую концепцию наблюдал в Контуре с их Мойрой и, пожалуй, все. Все остальные как-то незаслужено обходят алертинг стороной.
Хабр
Типовое внедрение мониторинга. Николай Сивко
Расшифровка доклада "Типовое внедрение мониторинга" Николая Сивко. Меня зовут Николай Сивко. Я тоже делаю мониторинг. Okmeter это 5 мониторинг, который я делаю. Я решил что я спасу всех людей от...
Forwarded from Находки в опенсорсе
Awesome talk for a friday evening about understanding magic behind tech and principles over syntax.
YouTube
Lambda World 2019 - Painless software development with Haskell - Paweł Szulc
In this Lambda World 2019 presentation, Paweł Szulc shows the benefit of programming with Haskell.
Full Presentation Description:
Developers interested in seeing Haskell being used as a general programming language. Engineers hoping to see Haskell as an…
Full Presentation Description:
Developers interested in seeing Haskell being used as a general programming language. Engineers hoping to see Haskell as an…
Forwarded from Записки админа
📌 chaoskube - утилита для проверки вашего kubernetes на прочность. Периодически приходит и убивает случайный под в кластере.
https://github.com/linki/chaoskube
#kubernetes #github
https://github.com/linki/chaoskube
#kubernetes #github
Forwarded from dd if=/dev/stuff of=/dev/tg
Лекции по прикладной теории категорий в MIT от Дэвида Спивака и Брендана Фонга:
https://www.youtube.com/playlist?list=PLhgq-BqyZ7i5lOqOqqRiS0U5SwTmPpHQ5
Материал лекций основан на замечательной книге Seven Sketches in Compositionality.
https://www.youtube.com/playlist?list=PLhgq-BqyZ7i5lOqOqqRiS0U5SwTmPpHQ5
Материал лекций основан на замечательной книге Seven Sketches in Compositionality.
Software-Architecture-Patterns.pdf
5.1 MB
#books
Тут подъехала брошура от Mark Richards'а про патерны современных приложенек. Все очень обзорно и больше похоже на какой-то маркетинговыйбуллшит материал, но тем не менее ознакомиться стоит
Тут подъехала брошура от Mark Richards'а про патерны современных приложенек. Все очень обзорно и больше похоже на какой-то маркетинговый
I hate overtime
Software-Architecture-Patterns.pdf
#microservices #soa
Вспомнил, что, кажется, не постил статью Марка про отличие микросервисов от SOA. Много текста, но
1. у Марка очень интересная таксономия микросервисов, отличающаяся от Ньюмановской и Фаулеровской
2. наверно одна из наиболее показательных статей по сабжу. Для тех кто все еще не устаканил в голове чем же микросервисы отличаются от сервисов — рекомендую
Вспомнил, что, кажется, не постил статью Марка про отличие микросервисов от SOA. Много текста, но
1. у Марка очень интересная таксономия микросервисов, отличающаяся от Ньюмановской и Фаулеровской
2. наверно одна из наиболее показательных статей по сабжу. Для тех кто все еще не устаканил в голове чем же микросервисы отличаются от сервисов — рекомендую
O’Reilly Media
Microservices vs. service-oriented architecture
Learn the core differences between microservices and SOA so you can make an informed choice when determining which is best for your particular situation.
Forwarded from Dmitry Sh
В новом переводе даётся обзор основных подходов к выкатыванию приложений в Kubernetes и рассказывается о применении Flagger: https://habr.com/ru/company/flant/blog/471620/
Хабр
Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование)
Прим. перев.: Этот обзорный материал от Weaveworks знакомит с наиболее популярными стратегиями выката приложений и рассказывает о возможности реализации наиболее...