Цель заброшена

Автор не отписывался в цели 5 лет 4 месяца 30 дней

Общая

Step 5. Рефакторинг.

Описание появится по ходу выполнения шагов.

Задание 5. Рефакторинг. 1-2 месяца

Последний этап — это большой рефакторинг на основе наших стандартов с созданием issues в ваших github-репозиториях и проверка ваших знаний на личной беседе (в офисе или через созвон) c неограниченным количеством попыток.

Но перед стартом последнего этапа просим вас пройти небольшой опрос. По традиции ссылку для общения в чате вы найдёте в конце опроса. Описание задания В этом задании у нас три шага: 1. Рефакторинг по нашим стандартам У нас сейчас есть объемный документ, куда мы собираем все полезные и нужные требования к реальным проектам, готовым к сдаче заказчикам. В документах собраны правила, которые помогают избегать нерасширяемого и неочевидного кода, и все их нужно хотя бы в общих чертах помнить, прежде чем приступать к реальным проектам. А лучший способ запомнить — попробовать исправить все свои ошибки в ваших выполненных за время обучения проектах. Главное — не бойтесь, что мы будем криво смотреть на недочеты в прошлом коде. Мы очень лояльно относимся к коду новичков, так как сами через это проходили :) Описание стандартов находится в нашем репозитории на Github. В описании стандартов сказано: «Модифатор — должен удовлетворять свойстам модификатора из английского языка. Всегда adjective или adjectival phrase» Это правило не применимо к модификаторам «Ключ-значение» из оригинальной версии методологии БЭМ (https://ru.bem.info/methodology/quick-start/#%D0%BA%D0%BB%D1%8E%D1%87-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5). Вопрос: Допустимо ли при выполнении тестового задания использовать модификаторы «Ключ-значение»? Или строго придерживаться правила — модификатор — всегда adjective или adjectival phrase? Если используете формат "ключ-значение", то ключ просто существительным делайте, а значение прилагательным. Мы выдаем вам требования, а вы вносите по ним правки в текущие проекты. Затем после рефакторинга напишите нам в чате, что все готово. 2. Код-ревью Обычно это довольно длительный процесс, так как тут нужна синхронизация с проверяющим и часто много правок (в сумме от 50 до 100 в среднем на все три проекта). Проверка кода в рамках ревью будет не только на предмет наших стандартов, но и на предмет продуманной и ясной архитектуры, читаемого и понятного кода, удобного интерфейса работы с вашими функциями. Мы будем ревьюить код, как реальный проект, который нам предстояло бы долго поддерживать. Он пройдёт проверку тогда, когда будут внесены все правки. Эти же правила будут применяться и при всех ревью на реальных проектах после приема на работу. Обычно это занимает довольно много времени: приходиться проект практически полностью переписывать на два, три, иногда четыре и более раз — это нормально. Логично, что когда вы делали первую версию, у вас совсем не было опыта и вы там сделали много ошибок при проектировании и реализации. Иногда такие ошибки приводят к тому, что для исправления приходится перелопатить целую гору кода — это нормально, это случается даже в реальных проектах, где в команде есть крутые спецы. 3. Интервью по теоретическим вопросам В нашем репозитории с картой развития у нас подготовлены около 80 вопросов по материалам из первого и третьего задания (про изучение вёрстки и изучение JavaScript). Там мы проверяем, что вы действительно изучили весь тот материал, помогаем вам побороть неосознанную некомпетентность через получение обратной связи от нас. Количество попыток на сдачу неограниченно, обычно уходит неделя-две, чтобы повторить изученное и ещё неделя на две-три попытки сдачи, после чего задание успешно завершается. В рамках этого шага вы действительно систематизируете все полученные знания, закрываются дыры в знаниях, которые почти наверняка у вас будут, обычно это один из самых эффективных этапов в обучении, когда каждый день на уже крепкую основу ваших знаний укладывается огромное количество нового и полезного материала. Сами вопросы вы можете посмотреть в нашем репозитории на Github (папка junior-1). Требования к исправлениям:

  • По каждому замечанию мы будем создавать issue в вашем репозитории. Коммиты с исправлениями по каждому issue стоит называть, ссылаясь на номер ишью через #. Например, для ишью "Убрать неиспользуемые переменные" с номером 14, будет коммит, с названием типа "unused variables removed #14". Это позволит при проверке сразу увидеть, какой коммит к чему относится.
  • Не стоит делать большие коммиты: в идеале каждый коммит по исправлению оставленных issue должен быть в рамках данного конкретного issue. Делать несколько коммитов для одного issue, если он большой — приветствуется, делать один коммит для нескольких issue — нет.
  • Исправляя ошибки по оставленным замечаниям, не забывайте делать это во всем проекте (и даже в других своих проектах, пока, например, ожидаете очередную итерацию ревью), а не только в том месте, которое приводится в качестве примера. Проверяющие не всегда будут сразу находить и указывать на все места, где встречаются те или иные ошибки. Так вы сэкономите время и себе и нам: вы быстрее пройдете ревью, а мы не будем писать одно и то же несколько раз :)

Задание вам даст

  • расширение и закрепление ваших познаний в области проектирования Почти наверняка вы совершили много типичных ошибок при создании архитектуры вашей компонентной вёрстки или вашего бегунка. Мы всё тщательно изучим и дадим исчерпывающую обратную связь. Опрос прошедших наше задание показал, что главное понимание ООП и MVC как раз пришло уже во время получения фидбека и очередного переписывания своего кода. ;
  • закрепление полученных теоретических знаний;
  • базовые навыки командной работы (получения код-ревью и работы с ишью);
  • навыки написания чистого поддерживаемого кода (изучение наших стандартов, чтение ишью от проверяющих);
  • пошаговый рефакторинг своего кода.

Если вы отлично знаете все пункты из нашего уровня Low Junior, умеете создавать компонентную архитектуру с нуля для переиспользования блоков (например, по БЭМ), отлично владеете JavaScript, понимаете ООП и MVC, практикуете TDD и умеете работать с Git, то можно пропустить и это задание и сразу претендовать на сокращённый формат интервью по практическим навыкам и теоретическим знаниям.

 Критерий завершения

материал пройден

  • 676
  • 23 июня 2019, 03:43
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?