Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

АР checklist

TODO

  • компромисс ар
    • +- вариантов ар
    • аргументы swot
  • Новая ис
    • Владелец бизнес, ит
  • набор действии crud̆ с каждой сущностью и возможные ошибочные ситуации
    • Изменения сущностей рост бд, прогноз роста: тип, строк/День
    • объемы данных, которые нам нужны для хранения
  • Сквозная функциональность
  • посчитать начальную нагрузку на наш абстрактный сервис и скорость ее роста
  • жизненный цикл и набор состояний каждой сущности
  • согласовать
    • Иб: прокси, dlp, доступы, внешние апи
    • Инфраструктура
    • Эксплуатация: новая ис
    • ОР
  • Раскрыть схемы инфпотоков до сущностей+, атрибутов+ связей+, бд+, компонентов ис+, процессов+
  • Архитектура ИС, компонентов, бд, инфраструктура

Ключевые вопросы

Аутентификация и авторизация

Как хранить идентификационные данные зарегистрированных пользователей? Как аутентифицировать запросы? Как авторизовывать запросы? Как передавать идентификационные данные пользователей между слоями приложения?

Кэширование и состояние

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

Взаимодействие

Как передавать информацию между слоями приложения? Как совершать асинхронные операции? Как передавать секретные данные?

Композиция

Как спроектировать структуру приложения? Как спроектировать слабую связанность между модулями? Как работать с зависимостями в слабосвязанном режиме?

Параллельные вычисления и транзакции

Управление конфигурацией

Как определить какая информация подлежит конфигурированию? Как определить где и каким образом сохранять конфигурационную информацию? Как работать с секретной информацией? Как работать с конфигурационной информацией в кластере?

Связанность и сцепление

Как разделить функцональности? Как структурировать приложение? Как выбрать подходящее разбиение на слои? Как задать границы между частями системы?

Доступ к данным

Как управлять соединениями БД? Как управлять исключениями? Как улучшить производительность? Как улучшить управляемость? Как работать с бинарными данными (BLOBs)? Как использовать пейджинг (paging) для записей? Как управлять транзакциями?

Работа с исключениями

Как обрабатывать исключения? Как сохранять информацию об исключениях?

Ведение логов и мониторинг

Как определить какую информацию писать в лог? Как сделать запись в лог настраиваемой?

Взаимодействие с пользователем

Как повысить эффективность выполнения задач? Как улучшить отзывчивость интерфейса? Как улучшить возможности приложения для пользователя? Как улучшить внешний вид приложения?

Проверка данных

Как определить где и когда проводить валидацию данных? Как проверять длину, диапазон, формат и тип данных? Как ограничить вводимые данные и сообщать о неправильных значениях? Как обезопасить (sanitize) выводимые данные?

Поток операций

Как решать проблемы параллельных вычислений в потоке операций? Как обрабатывать ошибки в потоке операций? Как координировать процессы в потоке операций?