Рефакторинг в реальных проектах

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

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

Для этого открываем обещанную ранее новую рубрику практического рефакторинга кода на реальных примерах. Там будем искать открытые библиотеки, фреймворки и готовые проекты. И в них будем:

  • анализировать общую архитектуру;
  • искать неудачно написанные места;
  • дописывать отсутствующие тесты;
  • предлагать варианты модификации кода;
  • подбирать полезные в каждом случае паттерны.

В каждом случае предложим несколько вариантов улучшений и часть из них отправим авторам в виде Pull Request.

В нашем аукционе мы сейчас делаем аутентификацию для бэкенда, поэтому в первом эпизоде этой серии мы как раз рассмотрели и отрефакторили компонент OAuth2 Server, который будем использовать вместе со Slim.

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

Перейти к просмотру →

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

Комментарии (4)
Роман

Дмитрий. Вы верно терминатор в мире программирования. Так же нельзя, ну короче в крации, начал изучать ваш мастер класс по YII, дошел до конца 4 занятия, при этом после просмотра примерно повторяя то что было в занятии, ну вообщем мне надоела простро смотреть видео, я решил дай как я разверну весь этот код на продакшн, это было весело :) все моменты не перечислю, но вот долбаннный ElasticSearch меня задрал, из за него не работает отображение товаров по категориям и как его завести я тоже не знаю, попытки на win10 запустить Vagrant это то еще счастье, не увенчалось успехом, матерился долго очень на Vagrant) падла, кароч дальше поставил линукс, ну думаю наверно заведеться, хрен там плавал также установил ElasticSearch после запуска он сожрал всю оперативную память и комп повис) после я забил на это дело окончательно. Я понимаю это конечно был учебный проект, но хочется его запустить пощупать что как, и запустить его при этом мне ни как не удалось в окончательном виде, помогите пожалуйста, проект интересный хотел бы дальше продолжить изучение. И еще момент с классом Mailchimp, ну это был уже (** ) коненчо, при попытке запустить консольное приложение он меня просил установить какой-то ключ sercret for mail champ , я его установил, везде где нужно, но этого оказалось мало, я так понял это класс для отпавки рассылок, по исходникам я понял что в ключе нужно указать дефис, все сделал слава богу заработало :) на на конец-то я смог установить роль админа моему юзеру в админке ) . Кароч было весело. Хотелось устроить себе проверку смогу ли я разобраться в чужом коде самостоятельно, ужас но нет. Хотя программировать люблю)

Ответить
Дмитрий Елисеев

Не гарантирую, что запустится в исходном виде, так как там в репозитории вписаны старые версии софта. И у свежего ElasticSearch уже другая структура определения индексов. Так что всё нужно будет постепенно обновлять.

Ответить
Сергей

Расскажите про работу с приватными репозиториями в докере (гитлаб).

Ответить
Дмитрий Елисеев

GitLab уже рассматривали здесь

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Google
GitHub
Yandex
MailRu