Доброе утро, добрый день, добрый вечер и доброй ночи, всем! Сегодня будет статья, в которой я кратко опишу мой первый опыт работы с частичной занятостью и первые трудности, с которыми я встретился в процессе. Это работа в небольшой команде, состоящей из 3-4 человек, над сайтом на WordPress, которым раньше занимался обычный фотограф.
Сперва коротко о себе. Я являюсь front-end разработчиком и на рабочем месте спокойно пилю фронт на JS, бывает приходится залезть на бэк поправить пару методов на C#, но никогда особенно не влезал в вопросы администрирования, безопасности и тонкости рабочего процесса. Как выяснилось, работа над сторонним проектом расширяет твой кругозор, и ты имеешь возможность поглубже погрузится в неизведанный еще темы. Так вот, обо всё по порядку…

Окунулся в администрирование
Одним прекрасным утром, я проснулся от сообщения заказчика, что на сайт зайти нельзя и во весь экран красуется сообщение «Нет доступа к БД. ошибка установки соединения с базой данных WordPress». После того как вытер холодную испарину со лба, стал искать решение проблемы. Естественно, решение я стал искать гуглением и вопросами в телеграмм-чате разработчиков WordPress. Сразу скажу, что чат не оказался полезным, а даже наоборот, стали поступать предложения о продаже своих услуг за копеечку. Помогать за плюсик в карму никто не захотел(«Да кто бы мог подумать!»). Помогло гугление и ответ техподдержки моего хостинга. Решением оказалось исправление наименования БД в сломанном файле config.php и исправления нескольких файлов function.php. Выявить ошибки мне помог режим дебага, который включается с помощью установки значения true в одноименном свойстве.
Во второй раз вспотеть меня заставили, так называемые, «хакеры» или, просто сказать, ребятки, которые делают деньги на кликах и различного рода рекламе. В интернете можно найти много информации о межсайтовой подделке запросов, которая и была причиной моей очередной холодной испарины. Эти умелые ребята просто вписали свой скрипт в один из js файлов моего сайта. Сей файл создавал div размеров моей страницы, при клике на который открывалась соседняя вкладка, начиналось скачивание и те самые ребятки получали +1 конверсию.
«Как же Вы, Василий, смогли дважды так облажаться?», — спросите вы и это будет справедливый вопрос. Очень просто, отвечу я, по незнанию того, что все файлы будь то js или php должны быть только для чтения (как я понял css файлы не рекомендуется ограничивать только для чтения, так как некоторые темы WordPress странно на это реагируют и перестают использовать свои стили). Да и вообще, по хорошему все эти файлы должны быть сложены в Git. Такие вот два урока я получил от рукодельников, которые попортили мои файлы и нервы в обоих случаях. И да да, первого раза мне оказалось мало.

Боролся с фронтовой частью
На самом деле, с фронтовой частью всё гораздо приятнее. Ведь, для тех кто не знал, WordPress — это конструктор и для повседневных решений есть много классных плагинов. Но ведь, признайтесь себе, если вы разработчик, разве вам захочется пользоваться плагином и настроить его как обычный юзер. Конечно, нет! Так вот и я решил не ходить по простому пути. Задавшись вопросом, как же, писать код в таком удобном конструкторе, я быстро нашел решение, которое оказалось плагином. «От чего ушли, к тому пришли!» — пронеслось у вас в голове. Ну да, всё правильно, я установил плагин, который помогает писать свой код и пользоваться им на сайте по средством подключения скрипта в index.html(что делается автоматически при активации скрипта). Ссылочку на плагин оставлю ниже.
Для любителей чего-то пожёстче всегда можно зайти в файлы min.js и попробовать разобраться там. Это тоже можно сделать простым редактированием в диспетчере файлов, но если вы знаете методы как сделать это лучше, то милости прошу в комментарии. И да, полных и обычных js файлов в некоторых установленных плагинах нет.
Следующим полезным, как мне кажется, моментом была отладка поведения сайта на мобильном устройстве с помощью того же мобильного устройства и консоли разработчика в Хроме. Об этом вы сможете прочитать в одной из статей на хабре, ссылкочку укажу ниже. А мне хотелось бы тут отметить одну особенность события window.resize. В ходе разработки, я столкнулся с тем, что обычный скролл вверх на мобильном устройстве вызывает данное событие. На просторах интернета нашел одно эффективное решение — это запоминать ширину окна при открытии и сравнивать с шириной окна в момент вызова события. Мне помогло, баг был исправлен. Если у вас есть подобные интересные находки и их решения или более изящное решение вышеописанной проблемы, то встретимся в тех же комментариях.

Налаживал рабочий процесс в команде
Думаю многим из Вас знакома ситуация, когда заказчик и дизайнер проекта атакуют своими пожеланиями и «хотелками» и многим из Вас знакомо, когда это происходит в одном каком-либо популярном мессенджере. Так вот я, недолго потерпев, решил организовать взаимодействие моей небольшой команды и перенести все желания в удобный вид. На данную тему знатоки могут написать целую статью, я же позволю себе сделать небольшое описание. Если честно, я долго не выбирал инструмент и методику, так как на работе я использую всем известную Jira. В данном проекте хотелось чего-то более простого и интуитивно понятного, поэтому мой выбор пал на Trello. Я решил придерживаться основ методики Scrum и считаю, что это было правильным решением по трём параметрам:
- заказчик и дизайнер видят все задачи нашего бэклога;
- заказчик видит, что разработчик и дизайнер заняты, и, самое главное, видит чем заняты;
- мой телефон больше не разрывается от сообщений и мои коллеги не путаются в своих показания и, более или менее, представляют чего хотят.
P.S. По моему опыту замечу, что дизайнеру к структурированной работе привыкнуть сложнее всего. Возможно, так сложилось в силу высоких творческих способностей.

Промежуточные итоги
Хотелось бы сказать, что данный небольшой проект помог мне приоткрыть дверцу в мир администрирования и в мир управления проектами.
Также смог лучше разобрать некоторые моменты отладки поведения сайта на мобильных устройствах.
Надеюсь, данная статья была полезной и эти маленькие открытия сподвигнут Вас к новым домашним проектам.
Успехов!
Пара вопросов читателям
Какие способы защиты от нападения вы знаете и на что в первую очередь стоит обратить внимание?
Нужно ли обновлять версии плагинов и php на сайте WordPress?
Полезные ссылки
Плагин для редактирования JS;
Тестирование для мобильных устройств (Хабр);
Настройка режима разработчика на телефоне;
Крутой туториал по отладке.