Russian Association of Software Architects
4.34K subscribers
85 photos
9 videos
15 files
296 links
Канал самоуправляется коллегией: @sergey486 и @emacsway . Бот для вступления в авторский коллектив: @ru_arc_bot

Предложить доклад для митапа: @ru_arc_meetup_bot

Группы:
@ru_arc_chat
@rasa_business
@archicases

Рекламу не размещаем.
Download Telegram
Блог Сергея Баранова
В 19:00 Иван Волынкин (OneCell) расскажет как предоставить команде возможность работать на разных dev окружениях с разными ветками и всегда знать, где что задеплоено. Подключайтесь по ссылке на эфир и задавайте вопросы спикеру: https://www.youtube.com/live/sViiClT1t…
Ваня пилит классный и удобный open source инструмент: https://github.com/jonasasx/envrouter 🙂

В видео Ваня показал envrouter в действии, демка пока даже доступна публично https://demo.envrouter.ru (как я понял 1-2 дня будет доступна)

Кому интересно попробовать или поконтрибьютить, чат проекта:
https://t.iss.one/envrouter_ru
Мысль про приоритеты на подумать: «помимо приоритета есть еще срок, в рамках которого приоритет в принципе имеет смысл».
👍11
Еще мысль про приоритеты и критериальные оценки, а точнее – вопросы на подумать: «Были ли задачи, которые вы брали и срочно делали. Почему? По какому критерию? Значит этот критерий был важен. А до какого уровня он должен упасть, чтобы перестать быть важным?
Cвязан ли этот критерий с каким-то другим?
»
👍2
Забрал самые первые экземпляры, прямиком со склада :)
🔥67👍148
Russian Association of Software Architects
Забрал самые первые экземпляры, прямиком со склада :)
Сразу всем отвечу по поводу купить, - их в Москву на склад только вчера вечером привезли, уже на этой неделе по идее должны появиться в продаже, по крайней мере уже точно развозят по маркетплейсам.

UPD: появилась в продаже

https://bhv.ru/product/izuchaem-ddd-predmetno-orientirovannoe-proektirovanie/
👍22
Russian Association of Software Architects
Забрал самые первые экземпляры, прямиком со склада :)
Если заметите опечатки, пишите мне в личку (@sergey486), я все форвардну издательству. В следующем тираже все будет исправлено.
👍6👌1
1. Как делать микросервисы единообразными, когда их много, а разрабы все разные? — Олег Козырев, Авито
У нас было несколько десятков микросервисов, и их число продолжало расти. Всё бы ничего, но когда один сервис написан так, как привыкли писать на PHP, другой вдохновлен Ruby, а третий и вовсе отдаёт плюсами, то становится жутко. С таким зоопарком подходов переключаться от сервиса к сервису очень сложно и трудозатратно, а главное, чревато большим количеством ошибок в разработке. Поговорим о проблеме и ее решении.

2. Paranoia driven development — Мясников Алексей, Яндекс
Как спроектировать контракты так, чтобы не допускать ошибок при их использовании. На нескольких примерах мы пройдем путь от ненадежных контрактов к надежным. На всех этапах дизайна кода будем исходить из того, что кодом будут пользоваться самые "одаренные" программисты.

3. Микросервисы в небольших командах разработки: почему вам нужен PaaS? — Алексей Коротин, Sports ru
Какие проблемы поможет решить PaaS? Архитектура компонентов и как организовать миграцию старых сервисов на новые рельсы.

4. Обработка ошибок в go в 2023 — Виталий Попов, InDrive
Доклад дает конкретный алгоритм выбора способа обработок ошибок в go для проекта. Плюс маленький обзор пакетов, существующих, для каждого из способов.



🗓 8 ноября, начало в 19:00 мск, Среда

🌐 ОНЛАЙН

Регистрация на мероприятие
👍81🔥1
Скоро очередной движ подлодки по архитектуре, запрыгивайте, кому интересно 🙂

https://podlodka.io/techcrew
👍7
Компания ScyllaDB проспонсировала открытую публикацию избранных глав из технического бестселлера Amazon Мартина Клепмана «Проектирование высоконагруженных приложений»:
https://lp.scylladb.com/designing-data-intensive-apps-book-offer

А мы перевели на русский язык 1-ю из этих избранных глав, посвящённую технологиям работы с данными, на которых построены современные СУБД и ответственные интернет-сервисы

Глава 3. Хранение и извлечение данных

Структуры данных, которые поддерживают вашу базу данных
- Хэш-индексы
- SST-таблицы и LSM-деревья
- B-деревья
- Сравнение B-деревьев и LSM-деревьев
- Другие индексные структуры данных

Транзакционная обработка или аналитика?
- Хранилище данных
- Звезды и Снежинки: схемы для аналитики
- Агрегация: Кубы данных и материализованные представления

Столбцово-ориентированное хранилище
- Сжатие столбцов
- Порядок сортировки в хранилище столбцов
- Запись в столбцово-ориентированное хранилище

https://systems.education/designing-data-intensive-applications

#книги #архитектура
👍21
Forwarded from Блог Сергея Баранова (Sergey Baranov)
Кто использует https://raml.org для API?
Поделитесь впечатлениями.
👎3👍1
Кратко о fitness functions. Любое приложение всегда стремится к энтропии. Как говорил известный в ИТ-индустрии Gregor Hohpe:

💬 It’s almost like enterprise IT is subject to the Second Law of Thermodynamics, which concludes that the entropy in an (isolated) system can never decrease - at best it can be constant, but usually it increases.
-- "Here’s why enterprise IT is so complex" by Gregor Hohpe

Технически невозможно контролировать качество работы каждого разработчика. Это побуждает индустрию искать способы поддержания качества архитектуры на принципиальном уровне. Одним из таких способов является Evolutionary Architecture.

Генетический механизм репродукции реализует адаптивный способ разрешения неопределенности.

Причина его существования заключается в том, что никто не знает какие условия обитания будут на планете завтра. Т.е. имеет место неопределенность условий существования. Вдруг завтра прилетит метеорит и изменится состав атмосферы?

В связи с этим, двуполое размножение обеспечивает постоянную генерацию новых генетических комбинаций. Мы просто не знаем какая именно генетическая комбинация окажется наиболее приспособленной к завтрашним условиям окружающей среды.

Те генетические комбинации, которые слабо приспособлены к текущим условиям окружающей среды, не должны препятствовать распространению более приспособленных комбинаций. Иными словами, если существует механизм формирования разнообразия генетических комбинаций, то должен существовать и механизм истребления слабо приспособленных генетических комбинаций. Именно поэтому двуполый механизм репродукции не может выполнять свои функции без хищников, назначение которых сводится к истреблению слабо приспособленных генетических комбинаций. Т.е. к селекции. Это как пропалывание грядки.

Зачастую проблема кодовой базы заключается в том, что никто и ничто не выполняет роль этого самого хищника, истребляющего несоответствующие решения. Поэтому больные решения хорошо размножаются.

Robert Martin говорил, что архитектура - это о том, как не надо делать. Иными словами, архитектурное решение - это сокращение количества возможных вариантов. Т.е. архитектура должна выполнять хищнические функции.

Чем отличаются собаки от волков? Волк имеет естественных врагов-хищников, а собаки - нет.

Вместо хищников, процесс селекции собак выполняют выставки и стандарты пород, которые фиксируют желаемые свойства пород.

Выводок, не соответствующий требованиям стандарта породы и допустимым пределам отклонения, отбраковывается и не получает сертификат соответствия. Его рыночная ценность падает, и он не используется заводчиками для репродукции.

По мере возникновения исторических изменений в породе, в стандарт вносятся изменения, требования ужесточаются, что обеспечивает прогресс породы.

Этот же принцип положен в основу Evolutionary Architecture. Архитектор выступает в роли автора стандарта породы, а разработчик - в роли заводчика, который выбирает (путём сравнения) для репродукции такой экземпляр породы из всех возможных, который наилучшим образом соответствует стандарту.

Роль стандарта породы выполняют fitness functions (функции соответствия, приспособленности). Они позволяют разработчикам измерить степень соответствия старого варианта системы и нового, и выбрать тот, который соответствует требованиям наилучшим образом.

Понимая, что требования fitness functions будут ужесточаться, разработчик всегда стремится увеличивать запас по требованиям , что вынуждает искать его новые решения и постоянно повышать собственный уровень знаний.

Хотя fitness functions выполняют охранные функции, препятствуя деградации свойств системы, главная их ценность заключается не в этом, а в создании благоприятных условий для постоянного развития уровня квалификации специалистов.

Наиболее важными я считаю fitness functions с нагрузочным и объемным тестированием, которые мгновенно выявляют костыльные запросы и побуждают разработчиков изначально закладывать в систему решения с дальним горизонтом развития, например, такие, как CQRS.

Пример реализации fitness functions.
👍9🔥31👏1
Админ би лайк
🤣14🔥3👍1
Друзья, есть запрос про проведение Customer Development по теме AI.

Если вы пробовали в своей работе AI (успешно/не успешно) или планируете попробовать и готовы пройти небольшое интервью на эту тему (получите новый опыт в качестве респондента 🙂 ), то напишите об этом в личку @akimovpro, все детали у Игоря

Спасибо.
👍4
Через 5 минут ArchDays MeetUp.

Тема: «Сага - решение технической проблемы или доменный процесс?».

🟢 Михаил Натаров, расскажет: если поискать доклады про саги, то они делятся на два типа. В первом говорят, что саги - это про распределенные транзакции. Во втором - что саги это описание процессов в домене. В докладе спикер поделится плюсами и минусами каждого из подходов, и вместе посмотрим на примерах когда "контекст и движок", а когда это скорее про DDD и "доменные саги".

🔜 Ссылка на трансляцию
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥32
Кто читал, что скажете о книге?

Ссылка: https://www.manning.com/books/building-user-friendly-dsls