🧑💻 Когда нужен рефакторинг
Согласно «Википедии», рефакторинг — это процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения. Его цель — упростить понимание работы программы.
Итак, что значит «упростить понимание работы программы»?
▍Конкретные цели рефакторинга могут быть такими:
— улучшить проект существующего кода;
— найти ошибки;
— сделать код более понятным для других участников команды;
— сделать код менее раздражающим;
— упростить добавление нового кода.
Также рефакторинг помогает быстрее реализовать программные продукты. Повышается качество — и, соответственно, скорость разработки. Рефакторинг точно необходим, если к вам в команду приходит новый человек, и код в таком виде, в котором он существует, ему не понятен. Это говорит о том, что качество кода неудовлетворительно.
Для рефакторинга, во-первых, напишите хорошие тесты: unit, функциональные или интеграционные. Во-вторых, изменяйте код небольшими итерациями. На каждом шаге прогоняйте тесты. Для качественного рефакторинга полезно знать шаблоны проектирования. Без них будет сложнее проектировать и масштабировать большие проекты.
Clean Code #совет #cleancode #refactoring
Согласно «Википедии», рефакторинг — это процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения. Его цель — упростить понимание работы программы.
Итак, что значит «упростить понимание работы программы»?
▍Конкретные цели рефакторинга могут быть такими:
— улучшить проект существующего кода;
— найти ошибки;
— сделать код более понятным для других участников команды;
— сделать код менее раздражающим;
— упростить добавление нового кода.
Также рефакторинг помогает быстрее реализовать программные продукты. Повышается качество — и, соответственно, скорость разработки. Рефакторинг точно необходим, если к вам в команду приходит новый человек, и код в таком виде, в котором он существует, ему не понятен. Это говорит о том, что качество кода неудовлетворительно.
Для рефакторинга, во-первых, напишите хорошие тесты: unit, функциональные или интеграционные. Во-вторых, изменяйте код небольшими итерациями. На каждом шаге прогоняйте тесты. Для качественного рефакторинга полезно знать шаблоны проектирования. Без них будет сложнее проектировать и масштабировать большие проекты.
Clean Code #совет #cleancode #refactoring
🧑💻 Что именно рефакторить
Рассмотрим, какие элементы кода затрудняют его восприятие, ухудшают качество и, соответственно, требуют рефакторинга.
▍Повторы
Допустим, у нас есть такой фрагмент: см. код 1.
Решение — реализовать гидратор:
Clean Code #совет #cleancode #refactoring
Рассмотрим, какие элементы кода затрудняют его восприятие, ухудшают качество и, соответственно, требуют рефакторинга.
▍Повторы
Допустим, у нас есть такой фрагмент: см. код 1.
Решение — реализовать гидратор:
$dto);Метод гидратора: см. код 2.
Clean Code #совет #cleancode #refactoring
🧑💻 Рефакторинг комментариев
Если код получается непростым, возникает искушение написать комментарий и поставить на этом точку. Нужно избегать этого, если комментарий поясняет логику, но не делает код более качественным.
Пример: см код 1.
Решение — переписать код, заменив комментарии вынесением кода в методы. Даже несколько строк кода лучше вынести в метод, чтобы не использовать комментарий: см. код 2.
Clean Code #совет #cleancode #refactoring
Если код получается непростым, возникает искушение написать комментарий и поставить на этом точку. Нужно избегать этого, если комментарий поясняет логику, но не делает код более качественным.
Пример: см код 1.
Решение — переписать код, заменив комментарии вынесением кода в методы. Даже несколько строк кода лучше вынести в метод, чтобы не использовать комментарий: см. код 2.
Clean Code #совет #cleancode #refactoring
📑 Что такое рефакторинг кода и зачем он нужен
Рефакторинг — это переработка исходного кода программы, чтобы он стал более простым и понятным.
Рефакторинг не меняет поведение программы, не исправляет ошибки и не добавляет новую функциональность. Он делает код более понятным и удобочитаемым.
Clean Code #статьи #refactoring
Рефакторинг — это переработка исходного кода программы, чтобы он стал более простым и понятным.
Рефакторинг не меняет поведение программы, не исправляет ошибки и не добавляет новую функциональность. Он делает код более понятным и удобочитаемым.
Clean Code #статьи #refactoring
🧑💻 Что нужно рефакторить? — Наследование
Предпочтительнее использовать композицию вместо наследования. К примеру, 2 дочерних класса наследуют от родительского все его методы. Если мы добавим в родительский класс метод, который нужен только для одного из дочерних классов, он автоматически будет применим и ко второму. Если же использовать инжект, дочерние классы будут независимы и не будут содержать лишнего. Конечно, все зависит от ситуации — иногда без наследования не обойтись.
Clean Code #совет #cleancode #refactoring
Предпочтительнее использовать композицию вместо наследования. К примеру, 2 дочерних класса наследуют от родительского все его методы. Если мы добавим в родительский класс метод, который нужен только для одного из дочерних классов, он автоматически будет применим и ко второму. Если же использовать инжект, дочерние классы будут независимы и не будут содержать лишнего. Конечно, все зависит от ситуации — иногда без наследования не обойтись.
Clean Code #совет #cleancode #refactoring
🧑💻 Что нужно рефакторить? — Статика
Использование статики ведет к непредсказуемости кода. Статические переменные несут глобальное состояние, данные не инкапсулированы в объекты. Изменяя эти переменные из разных мест приложения, мы не можем гарантировать корректность их состояний.
Статика приводит к процедурному программированию, тогда как в объектно-ориентированной парадигме мы инстанцируем объекты и позволяем им управлять данными как и когда это нужно. При использовании статики невозможно проектировать на основе контрактов.
Clean Code #совет #cleancode #refactoring
Использование статики ведет к непредсказуемости кода. Статические переменные несут глобальное состояние, данные не инкапсулированы в объекты. Изменяя эти переменные из разных мест приложения, мы не можем гарантировать корректность их состояний.
Статика приводит к процедурному программированию, тогда как в объектно-ориентированной парадигме мы инстанцируем объекты и позволяем им управлять данными как и когда это нужно. При использовании статики невозможно проектировать на основе контрактов.
Clean Code #совет #cleancode #refactoring
Рефакторинг унаследованного кода: как разорвать зависимости?
Как быть, если код достался в наследство без тестов, а очень хочется порефакторить? Помолиться и вперед? Или же есть инженерный подход подготовки кода к написанию тестов и безопасному рефакторингу? В рамках мастер-класса вас ждет live-coding и разбор техник разрыва зависимостей.
📺 YouTube
Clean Code #видео #refactoring
Как быть, если код достался в наследство без тестов, а очень хочется порефакторить? Помолиться и вперед? Или же есть инженерный подход подготовки кода к написанию тестов и безопасному рефакторингу? В рамках мастер-класса вас ждет live-coding и разбор техник разрыва зависимостей.
📺 YouTube
Clean Code #видео #refactoring