Clean Code
13.3K subscribers
2.3K photos
5 videos
2.95K links
Советы по написанию кода, обзоры распространенных ошибок и многое другое.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

РКН: clck.ru/3Ht6ch
Download Telegram
Упрощайте сложные булевые проверки

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

Создание отдельного метода для проверки подчеркивает ее значимость. Упрощение булевых проверок является примером оправданного снижения сложности кода.

#tips #refactoring
Чистый код и рефакторинг

У каждого понятия прекрасного свои, кто-то связывает чистоту с отсутствием дублирования, кто-то - с минимальными зависимостями и прямолинейностью, но правда всегда где-то посередине. Стремление к чистоте кода абсолютно оправданно, ведь для программиста код как картина для художника.

Читать статью

#cleancode #refactoring
Факторизуйте глубоко вложенный код в отдельный метод

Если при написании кода внутри цикла формируется глубокая вложенность условных операторов, имеет смысл переместить обработку вложенности в отдельный метод, чтобы разгрузить код и внести ясность.

Чем выше уровень вложенности, тем хуже ваш код. Создается визуальная перегрузка, которая усложняет понимание кода и исправление багов.

Подробнее: Code Complete, стр. 463

#tips #refactoring
📖 Refactoring
🖋 Martin Fowler, 2018

Второе издание книги Мартина Фаулера объясняет, что такое рефакторинг на самом деле, впрочем, как и первое издание, выпущенное 20 лет назад. После прочтения книги вы найдете ответы на следующие вопросы:

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

Прочитав эту книгу, вы поймете сам процесс и общие принципы рефакторинга, которые сможете сразу же применить к своему коду. Вы также научитесь обнаруживать «косяки» в коде вашего коллеги по команде, которые требуют рефакторинга.

💾 Скачать книгу

Clean Code #книги #refactoring
Рефакторинг унаследованного кода: как разорвать зависимости?

Как быть, если код достался в наследство без тестов, а очень хочется порефакторить? Помолиться и вперед? Или же есть инженерный подход подготовки кода к написанию тестов и безопасному рефакторингу? В рамках мастер-класса вас ждет live-coding и разбор техник разрыва зависимостей.

📺 YouTube

Clean Code #видео #cleancode #refactoring
📑 Как определять, декомпозировать и показывать результаты рефакторинга

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

Целью продуктовой разработки является непрерывная поставка бизнес-ценности пользователям и заинтересованным лицам. Постоянно меняющиеся технологии в сочетании с меняющимися бизнес-целями значительно затрудняют это.

Clean Code #статьи #refactoring
Рефакторинг - Где? Куда? Когда? Откуда? Почему? Зачем и Как?

Первая мысль, приходящая на ум каждому программисту, который видит новый код: "Пора все переписывать". В этом докладе рассказывается, как бороться с такими мыслями, чем они плохи, какие есть подходы к рефакторингу, и чего им можно добиться на примере компьютерной игры.

📺 YouTube

Clean Code #видео #cleancode #refactoring
Рефакторинг кода

Рефакторинг — это процесс улучшения кода, который не влияет на внешнее поведение программы, так как при рефакторинге оптимизируется внутренняя структура кода. Он становится более чистым и понятным другим членам команды. Его легче поддерживать и развивать, а значит, ускоряется процесс разработки. В результате программный продукт получается качественным и работает без сбоев. Но у этого процесса есть риски, например, после всех изменений программа перестает работать. Поэтому чтобы использовать рефакторинг, нужно хорошо знать плюсы и минусы всех способов улучшения кода.

📺 YouTube

Clean Code #видео #refactoring
РЕФАКТОРИНГ. Почему код может плохо пахнуть и как его освежить?!

Что такое рефакторинг и какой профит мы можем от него получить, с чем его едят и как проводят? К чему стремится рефакторинг? Как пахнет ваш код? Причины по которым необходимо провести рефакторинг? Как найти ошибки в коде? Что такое правило трёх ударов? Как объяснять клиенту, что это такое и зачем оно нужно? Как видят эту необходимость все стороны? Ответим на все вопросы, покажем примеры и расскажем, как они работают!

📺 YouTube

Clean Code #видео #refactoring
🧑‍💻 Когда нужен рефакторинг

Согласно «Википедии», рефакторинг — это процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения. Его цель — упростить понимание работы программы.

Итак, что значит «упростить понимание работы программы»?

▍Конкретные цели рефакторинга могут быть такими:

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

Также рефакторинг помогает быстрее реализовать программные продукты. Повышается качество — и, соответственно, скорость разработки. Рефакторинг точно необходим, если к вам в команду приходит новый человек, и код в таком виде, в котором он существует, ему не понятен. Это говорит о том, что качество кода неудовлетворительно.

Для рефакторинга, во-первых, напишите хорошие тесты: unit, функциональные или интеграционные. Во-вторых, изменяйте код небольшими итерациями. На каждом шаге прогоняйте тесты. Для качественного рефакторинга полезно знать шаблоны проектирования. Без них будет сложнее проектировать и масштабировать большие проекты.

Clean Code #совет #cleancode #refactoring
🧑‍💻 Что именно рефакторить

Рассмотрим, какие элементы кода затрудняют его восприятие, ухудшают качество и, соответственно, требуют рефакторинга.

▍Повторы

Допустим, у нас есть такой фрагмент: см. код 1.

Решение — реализовать гидратор:

 $dto);

Метод гидратора: см. код 2.

Clean Code #совет #cleancode #refactoring
🧑‍💻 Рефакторинг комментариев

Если код получается непростым, возникает искушение написать комментарий и поставить на этом точку. Нужно избегать этого, если комментарий поясняет логику, но не делает код более качественным.

Пример: см код 1.

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

Clean Code #совет #cleancode #refactoring
📑 Что такое рефакторинг кода и зачем он нужен

Рефакторинг — это переработка исходного кода программы, чтобы он стал более простым и понятным.

Рефакторинг не меняет поведение программы, не исправляет ошибки и не добавляет новую функциональность. Он делает код более понятным и удобочитаемым.

Clean Code #статьи #refactoring
🧑‍💻 Что нужно рефакторить? — Наследование

Предпочтительнее использовать композицию вместо наследования. К примеру, 2 дочерних класса наследуют от родительского все его методы. Если мы добавим в родительский класс метод, который нужен только для одного из дочерних классов, он автоматически будет применим и ко второму. Если же использовать инжект, дочерние классы будут независимы и не будут содержать лишнего. Конечно, все зависит от ситуации — иногда без наследования не обойтись.

Clean Code #совет #cleancode #refactoring
🧑‍💻 Что нужно рефакторить? — Статика

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

Статика приводит к процедурному программированию, тогда как в объектно-ориентированной парадигме мы инстанцируем объекты и позволяем им управлять данными как и когда это нужно. При использовании статики невозможно проектировать на основе контрактов.

Clean Code #совет #cleancode #refactoring
Рефакторинг унаследованного кода: как разорвать зависимости?

Как быть, если код достался в наследство без тестов, а очень хочется порефакторить? Помолиться и вперед? Или же есть инженерный подход подготовки кода к написанию тестов и безопасному рефакторингу? В рамках мастер-класса вас ждет live-coding и разбор техник разрыва зависимостей.

📺 YouTube

Clean Code #видео #refactoring