Cypress (or any e2e/ui tests) project structure

Nowadays cypress is a quite hype technology (I am saying this in Fall 2020, everyone knows how rapidly js world can change ;))

Cypress is a next generation front end testing tool built for the modern web.

https://docs.cypress.io/guides/overview/why-cypress.html#In-a-nutshel

I had some experience with Behat and other types of tests like unit/integarational, but today I will tell you about e2e.

When I wrote Behat tests I didn't think a lot about how to structure my test cases in a maintainable way. This led me to the antipattern called "Single-Layer Architecture"[1].

Extending such tests quickly becomes a mess and tends to become an ineffective work:

  1. You can't focus on business logic, you always need to remember low-level details to introduce a new step definition
  2. Your low-level solutions are often duplicated, and you even don't notice that
  3. Changing testing framework means rewriting or updating all step definitions!

Fortunately there is an approach which is very easy to follow and which mitigates mentioned issues.

Junior vs Senior разработчик: в чем, в конце концов, разница между ними?

Junior vs Senior engineerКажется, что есть резкий контраст между этими уровнями. Но на самом деле, какое различие между Junior и Senior разработчиком?

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

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

Паттерны проектирования (Design patterns). Часть 1: Порождающие и структурные

О паттернах проектирования слышали все программисты. Хотя... Исходя из количества стебов над php-разработчиками и видя некоторые куски кода, возможно некоторые из них (php-шников) понятия не имеют, что это такое.

Паттерны и архитектура веб-приложений

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

Вещи, необходимость понимания которых возникает при разработке средних и больших проектов. Но даже для относительно небольших проектов это важно.

Создание сайтов

Состоянием на 2012 год, в Интернете насчитывалось 612 843 429 сайтов. Это количество стремительно растет.

Так зачем же люди создают веб сайты?

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

Довольно важной задачей при разработке веб-сайтов и веб-приложений есть ограничение доступа к некоторым разделам сайта, например к панели администратора. В теории это достаточно сложный процесс, с трема составляющими - аутентификация, идентификация и авторизация (англ. authentication, identification, authorization).

Список рутинных задач web-программирования

programmistПри изучении нового фреймворка, или языка web-программирования иногда возникает непонятное чувство замешательства, вы ставите себе вопросы: Когда можно считать, что вы выучили продукт на приличном уровне? Когда можно считать, что вы его знаете, а если некоторые вещи и не знаете, то сможете налету схватить/прочитать в мануале/прогуглить?

Принцип MVC в web - программировании

Принцип MVC у веб-программировании (Model - View - Controller, Модель - Представление(Вид) - Контроллер) - одна из наиболее удачных идей на сегодняшний день. Принцип MVC интуитивно понятен на первый взгляд, но не очень простой при углублении. Сначала рассмотрим, для чего он предназначен.