Что такое шаблонный код и как от него избавиться

Содержание:

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

Шаблонный код является проблемой всех специалистов. И не важно, какая у них специализация, – iOS приложение или Web-продукт. К счастью, курсы программирования DevEducation предоставляют возможность узнать, как избежать этой и других распространенных проблем в IT.

Давайте разберемся, как современные специалисты справляются с шаблонным кодом.

Шаблонный код: в чем тут проблема?

В каждой системе есть стандартные рабочие процессы, которые программисты копируют и вставляют из модуля в модуль, чтобы добиться желаемой структуры кода. IT-специалисты называют это шаблоном. Они могут копировать и вставлять этот код по нескольким причинам:

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

Функциональные программисты, как правило, замечают шаблонный код лучше, чем объектно-ориентированные специалисты, потому что они легче воспринимают функции как потенциальные параметры блока кода.

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

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

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

Что такое шаблонный код и как от него избавиться

Общий алгоритм: как избавиться от шаблонного кода

Для начала найдите похожие блоки кода или функции и посмотрите на них.

Определите одинаковые, похожие и разные шаги.

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

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

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

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

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

Основная трудность с шаблонным кодом

Многие программисты предполагают, что для удаления шаблонного кода им нужно копировать и вставлять шум JDBC в свою систему. Вот и основная его трудность. На это есть несколько причин:

  • Шаблонный код перемежается с уникальным, но разделить их сложно;
  • Можно передать SQL-запрос в качестве параметра, потому что это просто строка, но непонятно, что делать с остальным;
  • Уникальные элементы кода выглядят совершенно по-другому: способ преобразования строки набора результатов SQL в продукт сильно отличается от изменения фрагмента в клиента, заказ или любой другой из 26 объектов домена, которым специалист располагает.
  • Даже возвращаемый тип функции зависит от формы кода предметной области! Тогда создать сигнатуру стандартного типа практически невозможно.

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

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!