Design

Высоконагруженные приложения - Глава 4 - Кодирование и эволюция

Высоконагруженные приложения - Глава 4 - Кодирование и эволюция

Переводы: EN
Ранее в этом году книжный клуб нашей компании изучил отличную книгу: Martin Kleppmann - Designing Data-Intensive Applications Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка Это - лучшая книга о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪 Как обычно, я подготовил краткий обзор и майнд-мапу. Глава 4: Что такое эволюционируемость. Обратная и прямая совместимость Подходы к кодированию данных: JSON, XML и их двоичные варианты Thrift и Protobuf Apache Avro Модели работы с потоком данных Через базы данных Через сервисы: REST, SOAP, RPC и их будущее развитие Через брокеры сообщений - когда они лучше, а когда нет Намного больше деталей в майнд-мапе:
Высоконагруженные приложения - Глава 3 - Подсистемы хранения и извлечение данных

Высоконагруженные приложения - Глава 3 - Подсистемы хранения и извлечение данных

Переводы: EN
Ранее в этом году книжный клуб нашей компании изучил отличную книгу: Martin Kleppmann - Designing Data-Intensive Applications Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка Это - лучшая книга о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪 Как обычно, я подготовил краткий обзор и майнд-мапу. Глава 3: Структуры данных: Log-structured. SSTables / LSM-деревья (когда мы ничего не обновляем, а пишем в конец). Очень крутая идея, как хранить данные.
Высоконагруженные приложения - Глава 2 - Модели данных и языки запросов

Высоконагруженные приложения - Глава 2 - Модели данных и языки запросов

Переводы: EN
Ранее в этом году книжный клуб нашей компании изучил отличную книгу: Martin Kleppmann - Designing Data-Intensive Applications Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка Это - лучшая книга о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪 Как обычно, я подготовил краткий обзор и майнд-мапу. Глава 2: Что такое модель данных. Различные отношения между данными. Реляционные, документные, графовые модели данных. Какая лучше и когда. Схема-на-запись, схема-на-чтение (без схемы).
Высоконагруженные приложения - Глава 1 - Надежные, масштабируемые и удобные в сопровождении приложения

Высоконагруженные приложения - Глава 1 - Надежные, масштабируемые и удобные в сопровождении приложения

Переводы: EN
Ранее в этом году книжный клуб нашей компании изучил отличную книгу: Martin Kleppmann - Designing Data-Intensive Applications Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка Это - лучшая книга о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪 Как обычно (чтобы лучше усвоить) я подготовил краткий обзор и майнд-мапу. Глава 1: Строительные блоки приложений Что такое надежность, масштабируемость и ремонтопригодность. Примеры и определения. Неисправности и отказы Производительность, нагрузка, задержка и время отклика Работоспособность, простота, эволюционируемость Почему вы должны убивать свои сервера случайным образом 😅 Как Twitter доставляет 12 000 твитов в секунду до 300 000 пользователей в секунду.
Чистая Архитектура - Часть IV - Принципы дизайна

Чистая Архитектура - Часть IV - Принципы дизайна

Переводы: EN
Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения: Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design Четвертая часть книги посвящена принципам объединения компонентов в программные системы. Эта часть более интересна. Она содержит: Обзор истории компонентов: возможность перемещения в памяти, линкеры Три принципа связности компонентов REP: Принцип эквивалентности повторного использования и выпусков CCP: Принцип согласованного изменения CRP: Принцип совместного повторного использования Три принципа соединения компонентов ADP: Принцип ацикличности зависимостей SDP: Принцип устойчивых зависимостей SAP: Принцип устойчивости абстракций Мне особенно понравилась эта глава из-за представленных метрик, которые можно использовать для измерения (!
Чистая Архитектура - Часть III - Принципы дизайна

Чистая Архитектура - Часть III - Принципы дизайна

Переводы: EN
Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения: Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 Третья часть книги посвящена принципам SOLID. Принцип единственной ответственности: модуль должен быть ответственным перед одним и только одним действующим лицом. Принцип открытости-закрытости: программный артефакт должен быть открыт для расширения, но закрыт для модификации.
Сравнение Front-end фреймворков: Angular, React, Vue

Сравнение Front-end фреймворков: Angular, React, Vue

Переводы: EN
При запуске нового проекта по разработке ПО необходимо выбрать технологию для Frontend. В настоящее время существуют три ведущие технологии: Angular, React и Vue. Но как выбрать из них? Наша команда имеет опыт работы со всеми из них, но обычно выбор делается на основе «кто доступен в команде, и что они предпочитают». Я хотел более глубокое сравнение плюсов и минусов, и я нашел его в отличном коротком курсе Udemy: React JS, Angular & Vue JS - Quickstart & Comparison
Чистая Архитектура - Часть II - Начальные основы: парадигмы программирования

Чистая Архитектура - Часть II - Начальные основы: парадигмы программирования

Переводы: EN
Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения: Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 Книга пока поверхностная. Вот обзор второй части: Есть три парадигмы программирования: Структурированное программирование - накладывает ограничение на прямую передачу управления. Объектно-ориентированное программирование - накладывает ограничение на косвенную передачу управления.
Чистая Архитектура - Часть I - Введение

Чистая Архитектура - Часть I - Введение

Переводы: EN
Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения: Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design 👍 Краткий обзор первой части: Цель архитектуры ПО уменьшить человеческие трудозатраты на создание и сопровождение системы Две ценности ПО Поведение (функционал) - удовлетворить требованиям заинтересованных сторон Структура (архитектура) - сложность внесения изменений должна быть пропорциональна содержанию, а не “форме” изменений Легкость внесения изменений более важна чем фунционал!
Python call async from sync

Python call async from sync

Переводы: EN
В Python существует известная проблема - вам нужно выбирать между моделями кода sync и async. И если вы используете async код, вы можете вызвать sync код, но из этого кода вы НЕ МОЖЕТЕ снова вызвать async код. Почему возникает эта проблема? Event loop, используемый кодом async, уже застрял в ожидании результата от кода sync. И если вы хотите вызвать async код сейчас, вы не можете повторно использовать тот же event loop.