Metrics

System Design. Подготовка к сложному интервью - Глава 3 - Общие принципы прохождения интервью по проектированию ИТ-систем

System Design. Подготовка к сложному интервью - Глава 3 - Общие принципы прохождения интервью по проектированию ИТ-систем

Переводы: EN

Четыре стандартных этапа собеседования по проектированию ИТ-систем. Однако я бы думал о них шире: как о четырех начальных шагах проектирования любого ПО.

  • Шаг 1. Понимание проблемы и определение скоупа проектирования
  • Шаг 2. Предложите дизайн высокого уровня и получите одобрение
  • Шаг 3. Спроектируйте глубокое погружение
  • Шаг 4. Завершение

Глава 3 книги раскрывает подробности о каждом шаге, хорошие вопросы, которые нужно задать (над которыми следует подумать), а также то, что НУЖНО и НЕЛЬЗЯ делать. Она также показывает хороший пример процесса разработки системы новостных лент в соц сетях.

System Design. Подготовка к сложному интервью - Глава 2 - Приблизительные оценки

System Design. Подготовка к сложному интервью - Глава 2 - Приблизительные оценки

Переводы: EN

Очень короткая глава 2 посвящена тому, как делать приблизительные оценки, чтобы начать с самых важных моментов при разработке программного обеспечения.

Концепции, которые должен знать КАЖДЫЙ разработчик программного обеспечения:

  • “Сила двух”
  • Стандартные цифры задержки! Насколько быстрой является память, насколько медленным является диск и т.д.
  • Показатели доступности
  • Про какие ключевые метрики стоит думать

Эти понятия и числа раскрыты во второй главе книги:

“System Design. Подготовка к сложному интервью” Алекса Сюй. Оригинал: “System Design Interview – An insider’s guide” by Alex Xu

System Design. Подготовка к сложному интервью - Глава 1 - Масштабирование от нуля до миллионов пользователей

System Design. Подготовка к сложному интервью - Глава 1 - Масштабирование от нуля до миллионов пользователей

Переводы: EN

Отличный общий план для масштабирования любого приложения с нуля до миллионов пользователей.

  • Настройка одного сервера
  • Выбор и использование базы данных
  • Вертикальное масштабирование против горизонтального масштабирования подходов. И почему вы должны предпочесть горизонтальный
  • Добавлен балансировщик нагрузки для горизонтального масштабирования
  • Добавление репликации базы данных для горизонтального масштабирования
  • Добавление кеша
  • Добавление CDN
  • Архитектура без сохранения состояния и с сохранением состояния и использование внешнего хранилища состояния
  • Добавление дополнительных центров обработки данных
  • Добавление очереди сообщений
  • Добавление ведения журнала, метрик и автоматизации
  • Масштабирование базы данных
  • и дальнейшие шаги…

Все это тщательно, но кратко раскрыто в Главе 1 книги:

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

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

Переводы: EN

Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения:

Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения

Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design

Четвертая часть книги посвящена принципам объединения компонентов в программные системы.

Эта часть более интересна. Она содержит:

  • Обзор истории компонентов: возможность перемещения в памяти, линкеры
  • Три принципа связности компонентов
    • REP: Принцип эквивалентности повторного использования и выпусков
    • CCP: Принцип согласованного изменения
    • CRP: Принцип совместного повторного использования
  • Три принципа соединения компонентов
    • ADP: Принцип ацикличности зависимостей
    • SDP: Принцип устойчивых зависимостей
    • SAP: Принцип устойчивости абстракций

Мне особенно понравилась эта глава из-за представленных метрик, которые можно использовать для измерения (!) хорошего дизайна ПО (точнее говоря того, как вы следуете некоторым принципам дизайна)