SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Распространенные ошибки при разработке фронта
Dmitriy Himenes


Project manager
Кто я такой?
➢ Дмитрий Хименес


➢ Работаю в компании DataArt чуть больше года


➢ До этого более 10 лет занимался
автоматизацией тестирования


➢ Преподавал на IT курсах


➢ Считаю, что если вы проучились 6 лет на врача,
а потом решили стать Itшником, вашим
пациентам очень повезло))
Агенда:
• Как обычно разрабатывается фронт?


• Почему нам важно тестировать наше приложение?


• Кто должен сделать так, чтобы фронт был прост в тестировании?


• Вы задумываетесь во время разработки, как будете тестировать
фронт?


• Несколько важных моментов о которых стоит помнить при
разработке фронта.


• Q/A.
Как обычно разрабатывается фронт?


▪ Сейчас используют современные фреймворки: Angular,
React, jQuery, Vue.js…


▪ Как часто вы пишете хорошие компонентные тесты?


▪ Пишите ли вы е2е тесты сами?


▪ Задумываетесь ли вы о тестировании, выбирая новый
компонент для своего фронта?
• Unit тесты обычно покрывают один отдельный
компонент, это может быть класс или набор
классов, которые реализуют одну
функциональность


• E2e тесты подражают конечному пользователю и
его действиям на вашем ресурсе
Unit тесты VS e2e тесты
Почему нам важно тестировать наше приложение?




✓ Сделать приложение стабильным


✓ Сохранить аудиторию для нашего ресурса


✓ Сохранить деньги


✓ Сохранить время


✓ Писать правильный и структурированный
код
• Во первых это Вы!


• Хорошо, если есть архитектор, который продумывает весь флоу и
делает его консистентным


• Стейкхолдеры! – Обычно им не интересно следить за
правильностью написания фронта, пока не прилетают баги с
продакшена


• QAs, но только потому, что им нужно будет это покрывать тестами
Кто должен сделать так, чтобы фронт был прост в тестировании?




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


• Но в более менее большом проекте это может занять «вечность» ☺


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


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


Несколько важных моментов, о которых стоит помнить при разработке фронта




• Все элементы с которыми можно взаимодействовать, должны иметь уникальный
идентификатор, это может быть имя + имя конкретной формы, в идеале это ID


• Это позволит нам проще взаимодействовать с формами, кнопками, списками и т.д.
• По возможности - не используйте бесконечные таймеры


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


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


• Например: Использование Shadow-dom позволит вам инкапсулировать веб-элементы, но сделает
процесс тестирования очень сложным, так как shadow-root элементы не видны на странице
насквозь
• Всегда пишите Unit тесты, это сделает ваш код структурированным и консистентным
• Думайте о тестировании!


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


• Можно ли там использовать ID
для элементов?


• Есть ли у меня не уникальные
элементы на странице?


• Как я могу это исправить?
Ваши вопросы!
Dmitriy Himenes


Skype: dima.himenes


Telegram: @dima_himenes
Спасибо за внимание!

Contenu connexe

Tendances

Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейSQALab
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Наталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеНаталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеSQALab
 
Гибкое тестирование
Гибкое тестированиеГибкое тестирование
Гибкое тестированиеRina Uzhevko
 
Тестирование как панацея для жизни и развития проекта
Тестирование как панацея для жизни и развития проекта Тестирование как панацея для жизни и развития проекта
Тестирование как панацея для жизни и развития проекта Evgeniy Kuzmin
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?SQALab
 
Скажи мне правду, Scrum, когда тестировать нам?
Скажи мне правду, Scrum, когда тестировать нам?Скажи мне правду, Scrum, когда тестировать нам?
Скажи мне правду, Scrum, когда тестировать нам?SQALab
 
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDЭволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDCEE-SEC(R)
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущееBadoo Development
 
Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Maxim Shulga
 
FitNesse+PowerSlim on Windows
FitNesse+PowerSlim on WindowsFitNesse+PowerSlim on Windows
FitNesse+PowerSlim on WindowsMaxim Shulga
 
Презентация Git-flow (на русском)
Презентация Git-flow (на русском)Презентация Git-flow (на русском)
Презентация Git-flow (на русском)Sergey Chudakov
 
Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015Александр Ежов
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014it-people
 
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)Ontico
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Fwdays
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?CEE-SEC(R)
 

Tendances (20)

Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователейКак 3 тестировщика играючи тестируют приложение для 10млн пользователей
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Наталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеНаталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-команде
 
Гибкое тестирование
Гибкое тестированиеГибкое тестирование
Гибкое тестирование
 
Тестирование как панацея для жизни и развития проекта
Тестирование как панацея для жизни и развития проекта Тестирование как панацея для жизни и развития проекта
Тестирование как панацея для жизни и развития проекта
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?
 
Скажи мне правду, Scrum, когда тестировать нам?
Скажи мне правду, Scrum, когда тестировать нам?Скажи мне правду, Scrum, когда тестировать нам?
Скажи мне правду, Scrum, когда тестировать нам?
 
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDЭволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
 
Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы
 
FitNesse+PowerSlim on Windows
FitNesse+PowerSlim on WindowsFitNesse+PowerSlim on Windows
FitNesse+PowerSlim on Windows
 
Презентация Git-flow (на русском)
Презентация Git-flow (на русском)Презентация Git-flow (на русском)
Презентация Git-flow (на русском)
 
Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
 
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
 

Similaire à Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17

Тест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеТест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеVasiliy Burov
 
Возможна ли жизнь без тестировщика?
Возможна ли жизнь без тестировщика?Возможна ли жизнь без тестировщика?
Возможна ли жизнь без тестировщика?Aleksey Derkach
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rusMaxim Shaptala
 
Jubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation ToolJubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation ToolCOMAQA.BY
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.Mad Devs
 
Методики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1сМетодики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1сHelen Kopteva
 
Технологический цикл и соблюдение фаз производства.
Технологический цикл и соблюдение фаз производства.Технологический цикл и соблюдение фаз производства.
Технологический цикл и соблюдение фаз производства.Сергей Сторожев
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестированияIgor Pozumentov
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияzheldak
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileKairat Yussupov
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1sgdread
 
Андрей Солоной "Как людям бизнеса работать с программистами"
Андрей Солоной "Как людям бизнеса работать с программистами"Андрей Солоной "Как людям бизнеса работать с программистами"
Андрей Солоной "Как людям бизнеса работать с программистами"Startup_Technologies
 
методики управления развитием ис на базе 1с
методики управления развитием ис на базе 1сметодики управления развитием ис на базе 1с
методики управления развитием ис на базе 1сFFelix87
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникSQALab
 

Similaire à Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17 (20)

Тест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеТест-план и исследовательское тестирование
Тест-план и исследовательское тестирование
 
TAP
TAPTAP
TAP
 
Возможна ли жизнь без тестировщика?
Возможна ли жизнь без тестировщика?Возможна ли жизнь без тестировщика?
Возможна ли жизнь без тестировщика?
 
SqaВфны8
SqaВфны8SqaВфны8
SqaВфны8
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 
Jubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation ToolJubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation Tool
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.
 
Методики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1сМетодики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1с
 
01ka-nov
01ka-nov01ka-nov
01ka-nov
 
Технологический цикл и соблюдение фаз производства.
Технологический цикл и соблюдение фаз производства.Технологический цикл и соблюдение фаз производства.
Технологический цикл и соблюдение фаз производства.
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы применения
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
лек11 7
лек11 7лек11 7
лек11 7
 
лек11 7
лек11 7лек11 7
лек11 7
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1
 
Андрей Солоной "Как людям бизнеса работать с программистами"
Андрей Солоной "Как людям бизнеса работать с программистами"Андрей Солоной "Как людям бизнеса работать с программистами"
Андрей Солоной "Как людям бизнеса работать с программистами"
 
методики управления развитием ис на базе 1с
методики управления развитием ис на базе 1сметодики управления развитием ис на базе 1с
методики управления развитием ис на базе 1с
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 

Plus de OdessaFrontend

Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19OdessaFrontend
 
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...OdessaFrontend
 
Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19OdessaFrontend
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...OdessaFrontend
 
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18OdessaFrontend
 
Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17OdessaFrontend
 
Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17OdessaFrontend
 
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17OdessaFrontend
 
Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16OdessaFrontend
 
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16OdessaFrontend
 
Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16OdessaFrontend
 
Современный станок верстальщика
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщикаOdessaFrontend
 
Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15OdessaFrontend
 
DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15OdessaFrontend
 
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15OdessaFrontend
 
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15OdessaFrontend
 
Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14OdessaFrontend
 
Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13OdessaFrontend
 
Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13OdessaFrontend
 
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13OdessaFrontend
 

Plus de OdessaFrontend (20)

Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19
 
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
 
Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
 
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
 
Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17
 
Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17
 
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
 
Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16
 
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
 
Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16
 
Современный станок верстальщика
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщика
 
Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15
 
DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15
 
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
 
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15
 
Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14
 
Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13
 
Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13
 
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
 

Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17

  • 1. Распространенные ошибки при разработке фронта Dmitriy Himenes Project manager
  • 2. Кто я такой? ➢ Дмитрий Хименес ➢ Работаю в компании DataArt чуть больше года ➢ До этого более 10 лет занимался автоматизацией тестирования ➢ Преподавал на IT курсах ➢ Считаю, что если вы проучились 6 лет на врача, а потом решили стать Itшником, вашим пациентам очень повезло))
  • 3. Агенда: • Как обычно разрабатывается фронт? • Почему нам важно тестировать наше приложение? • Кто должен сделать так, чтобы фронт был прост в тестировании? • Вы задумываетесь во время разработки, как будете тестировать фронт? • Несколько важных моментов о которых стоит помнить при разработке фронта. • Q/A.
  • 4. Как обычно разрабатывается фронт? 
 ▪ Сейчас используют современные фреймворки: Angular, React, jQuery, Vue.js… ▪ Как часто вы пишете хорошие компонентные тесты? ▪ Пишите ли вы е2е тесты сами? ▪ Задумываетесь ли вы о тестировании, выбирая новый компонент для своего фронта?
  • 5. • Unit тесты обычно покрывают один отдельный компонент, это может быть класс или набор классов, которые реализуют одну функциональность • E2e тесты подражают конечному пользователю и его действиям на вашем ресурсе Unit тесты VS e2e тесты
  • 6. Почему нам важно тестировать наше приложение? 
 
 ✓ Сделать приложение стабильным ✓ Сохранить аудиторию для нашего ресурса ✓ Сохранить деньги ✓ Сохранить время ✓ Писать правильный и структурированный код
  • 7. • Во первых это Вы! • Хорошо, если есть архитектор, который продумывает весь флоу и делает его консистентным • Стейкхолдеры! – Обычно им не интересно следить за правильностью написания фронта, пока не прилетают баги с продакшена • QAs, но только потому, что им нужно будет это покрывать тестами Кто должен сделать так, чтобы фронт был прост в тестировании? 
 

  • 8. • Простой способ создать легко тестируемое приложение - это заставить разработчика писать на него тесты и мониторить результаты прогона • Но в более менее большом проекте это может занять «вечность» ☺ • Прежде чем добавить новый плагин или компонент в ваше приложение, узнайте, есть ли сложности с его тестированием и взаимодействием с этим элементом • Проектируйте ваше приложение так, чтобы у вас была логика использования, и в случае смены дизайна или фреймворка, вы могли сохранить логику, это поможет упростить повторное покрытие тестами Вы задумываетесь во время разработки, как будете тестировать фронт? 

  • 9. Несколько важных моментов, о которых стоит помнить при разработке фронта 
 

  • 10. • Все элементы с которыми можно взаимодействовать, должны иметь уникальный идентификатор, это может быть имя + имя конкретной формы, в идеале это ID • Это позволит нам проще взаимодействовать с формами, кнопками, списками и т.д.
  • 11. • По возможности - не используйте бесконечные таймеры • Такой таймер распознаётся, как невыполненный скрипт и тесты могут ждать его выполнения часами…
  • 12. • Сохраняйте логическую последовательность вашего приложения при обновлении дизайна или переходе на другой фреймворк • Это упростит переписывание тестов, а при полном сохранении логики, позволит их вообще не менять
  • 13. • Подумайте, прежде, чем начать использовать новую технологию • Например: Использование Shadow-dom позволит вам инкапсулировать веб-элементы, но сделает процесс тестирования очень сложным, так как shadow-root элементы не видны на странице насквозь
  • 14. • Всегда пишите Unit тесты, это сделает ваш код структурированным и консистентным
  • 15. • Думайте о тестировании! • Каждый раз выбирая новый плагин или библиотеку, задумайтесь, нет ли там подводных камней? • Можно ли там использовать ID для элементов? • Есть ли у меня не уникальные элементы на странице? • Как я могу это исправить?
  • 17. Dmitriy Himenes Skype: dima.himenes Telegram: @dima_himenes Спасибо за внимание!