Проектирование, Оптимизация И Поддержка Крупных Php-Проектов.

Роман Еникеев в прямом эфире Митапа в ОЗ «Иннополис» рассказал о том, что следует понимать под безопасностью данных, немного об изменении мира к лучшему путем создания хорошего программного продукта и его характеристиках.

Вы узнаете о пирамиде поиска ошибок и о самой поддержке продукта.

Роман имеет более 12 лет опыта работы в IT, занимается full-stack разработкой и на данный момент большую часть времени проводит в должности менеджера по доставке.

Спикер работает в DataArt более 10 лет.

Проектирование, оптимизация и поддержка крупных PHP-проектов.
</p><p>

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

Есть много разных метрик, которые можно использовать для этого, но суть этого процесса резюмирована в высказывании Тома Де Марко: «Качество программного продукта — это показатель того, насколько он меняет мир к лучшему.

» Качество продукта – это, прежде всего, польза, которую продукт приносит пользователям.

Согласно формальным документам, характеристиками верхнего уровня являются:

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

Создаются специальные процессы, которые помогают минимизировать риски утечки конфиденциальных данных.

Таким образом, становится понятно, как будут вноситься изменения в случае обнаружения каких-либо недостатков системы.

Каждая система имеет разный уровень строгости.

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

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

И в целом сфера медицинского развития входит в топ-5 направлений по степени тяжести.

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

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

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

Да, безопасность, мобильность и эффективность основаны на требованиях к продукту, но именно процесс разработки влияет на конечное качество.

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

Это сопровождается постоянным тестированием в ходе разработки продукта.

Также, чтобы разобраться в возможных уязвимостях, рекомендуем ознакомиться с топ-10 уязвимостей веб-приложений по версии OWASP. Итак, по данным OWASP, наиболее критичными уязвимостями являются:

  • Неправильная аутентификация и управление сеансами
  • Утечка конфиденциальных данных
  • Нарушение контроля доступа
  • Межсайтовый скриптинг
  • Отсутствие документации и контроля.

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

Кстати, OWASP предоставляет руководства по аудиту систем тестирования.

Например, одним из самых популярных руководств по аудиту является руководство для WordPress. Используя его, вы сможете разработать безопасный веб-сайт, который сложно взломать для получения важной информации.

Тестирование Разработка системы не может осуществляться без ошибок.

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



Проектирование, оптимизация и поддержка крупных PHP-проектов.
</p><p>

Как показывает практика, лучший способ отслеживать ошибки — автоматическое тестирование.

После сборки продукта его необходимо протестировать, развернуть инфраструктуру и еще раз проверить на наличие ошибок в коде.



Проектирование, оптимизация и поддержка крупных PHP-проектов.
</p><p>

По большому счету, если посмотреть на следующую пирамиду, у нас разные уровни.

Мы можем перейти от модульных тестов к тестам сервисов и тестам пользовательского интерфейса.

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

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

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



Проектирование, оптимизация и поддержка крупных PHP-проектов.
</p><p>

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

Важно помнить, что тесты — это тоже код, поэтому к нему тоже нужно подойти достаточно ответственно.

Модифицируемость/ремонтопригодность Существует 4 типа:

  1. Использование корректировок (возможность исправлять ошибки, возникающие в процессе использования)
  2. Адаптация к изменениям среды (требования постоянно меняются, поэтому необходимо постоянно совершенствовать систему)
  3. Постоянно улучшайте, а не ухудшайте систему
  4. Профилактика процессов, чтобы не бояться вносить изменения
Источник: innevia.tech Теги: #meetup #php #fullstack #oez innopolis #fullstack development #DataArt
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.