Проектирование своего приложения — как сделать качественный продукт

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

Чтобы разработчики не страдали:

  • Приложение должно быть максимально простым и понятным — не стоит прикручивать к тостеру шесть мониторов, во славу Pimp my Ride.
  • Подобный функционал не расширит возможности, а только усложнит разработку и сделает использование менее комфортным.
  • Не усложняйте решение задач и используйте максимально понятную логику с общепринятыми схемами взаимодействия.
  • Используйте вспомогательные инструменты.
  • Выразительность поможет пользователю быстро ориентироваться и понимать какая функция может решить тот или иной вопрос.
  • Если предусматривается использование сторонних библиотек, они должны быть качественными.

Немного о юзабилити:

  • не должно быть проблем со скоростью отклика;
  • стоит исключить все специфичные технологии, чтобы обеспечить корректное взаимодействие с как можно большим количеством устройств;
  • помимо повышения доверия пользователей, прокачка юзабилити уменьшает затраты времени и финансов на дальнейшие правки.

Чтобы улучшить этот фактор, нужно:

  • подключить аналитику;
  • сделать доступным проведение A/B тестирования;
  • анимация должна быть только там, где это уместно;
  • максимально используйте графический потенциал, создайте не только качественную и стильную, но и добавляющую понимания картинку;
  • обеспечьте свой продукт соответствием последним стандартам.

Мелочи тоже важны:

  • последовательность — это определенно хорошо, особенно если речь о задачах, поставленных перед проектом;
  • частые задачи должны выполняться легче остальных — именно основным задачам нужно уделить особое внимание;
  • расширяемость приложения так же важна, как и остальные пункты — стоит ее учитывать.

Безопасность и надежность

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

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

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

Высокая производительность — не всегда хорошо

Необходимо четко определить задачи и создать для него достаточную базу, не уделяя этому моменту чрезмерного внимания, если производительность для вас не является главным фактором. Иногда именно на эту ветку уходит много лишних ресурсов. Главное, свести к минимуму время до появления интерфейса (меньше 250 мс для 90% выдачи, менее 2 секунды для всех запросов). Если специфика делает это слишком трудозатратным, добавьте механизмы для компенсации — подойдет кеширование.

Только популярные фреймворки

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

28.08.2018
196
Автор: Ася Яскер