Вопросы с тегом «dry»

DRY - это сокращение от «Не повторяйся». Эта парадигма призывает избегать избыточности кода и данных.

102
Лучшие практики для совместного использования крошечных фрагментов кода между проектами

Я всегда стараюсь строго следовать принципу СУХОЙ на работе; каждый раз, когда я повторяю код из-за лени, он кусается позже, когда мне нужно сохранить этот код в двух местах. Но часто я пишу небольшие методы (возможно, 10–15 строк кода), которые необходимо повторно использовать в двух проектах,...

81
Почему СУХОЙ важно?

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

36
Является ли «композиция над наследством» нарушением «сухого принципа»?

Например, предположим, у меня есть класс для расширения других классов: public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } и некоторые подклассы: public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { }...

34
СУХОЙ не связанный, но почти идентичный код

У меня есть некоторый код, который почти идентичен, но использует абсолютно разные типы, без наследования между ними, в основной переменной. В частности, я пишу анализатор с Roslyn для C # и VB.NET следующих типов: Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax...

24
Добавление сложности для удаления дублирующего кода

У меня есть несколько классов, которые все наследуются от общего базового класса. Базовый класс содержит коллекцию из нескольких объектов типа T. Каждый дочерний класс должен иметь возможность вычислять интерполированные значения из коллекции объектов, но, поскольку дочерние классы используют...

24
Много маленьких классов против логического (но) сложного наследования

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

19
Есть ли развязка козыря СУХОЙ в ОТДЫХЕ?

Я строю REST API, чтобы показать большую часть функциональности существующего Java API. Оба API предназначены для внутреннего использования в моей организации; Я не должен проектировать для внешнего использования. Я имею влияние на оба API, но я использую REST. Java API будет по-прежнему...

17
Управление проверками на стороне клиента и на стороне сервера в одном месте

Я на 100% согласен с тем, что нужно обязательно использовать проверки данных как на стороне клиента, так и на стороне сервера. Однако в рамках и средах, в которых я работал, подходы, которые я видел, никогда не были СУХОЙ. В большинстве случаев нет плана или шаблона - проверки записываются в...

16
Проверка входного параметра в вызывающей стороне: дублирование кода?

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

16
Рассуждаете подождать до третьего раза в правиле трех?

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

14
Кодовая связь введена DRY и OOD

Я ищу руководство по соединению DRY vs Code. Я не люблю дублировать мой код, а также мне не нравится связывание кода между несвязанными модулями. Поэтому я реорганизую дублирующий код, если найду идентично дублирующий код через год после того, как дублирование было введено. Однако я все чаще...

14
Можно ли применять DRY без увеличения сцепления?

Предположим, у нас есть программный модуль A, который реализует функцию F. Другой модуль B реализует ту же функцию, что и F '. Есть несколько способов избавиться от дубликата кода: Пусть A использует F 'из B. Пусть B использует F из A. Поместите F в его собственный модуль C и позвольте A и B...

14
Const C ++ DRY Стратегии

Чтобы избежать нетривиального дублирования, связанного с константой в C ++, существуют ли случаи, когда const_cast будет работать, но частная константная функция, возвращающая non-const, не будет? В пункте 3 « Эффективного C ++» Скотта Мейерса он предполагает, что const_cast в сочетании со...

13
Для ORM, поддерживающего проверку данных, должны ли ограничения также применяться в базе данных?

Я всегда применял ограничения на уровне базы данных в дополнение к моим (ActiveRecord) моделям. Но мне было интересно, действительно ли это требуется? Немного фона Недавно мне пришлось провести модульное тестирование базового метода автоматической генерации меток времени для модели. Обычно тест...

12
Разве единичное тестирование не подтверждает принцип DRY?

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

11
Является ли документ описания архитектуры нарушением принципа СУХОЙ?

Принцип СУХОГО (не повторяй себя) гласит, что «каждое знание должно иметь одно, однозначное, авторитетное представление в системе». В большинстве случаев это относится к коду, но часто оно распространяется и на документацию. Говорят, что каждая программная система имеет архитектуру независимо от...

11
Тестирование против не повторяйся (СУХОЙ)

Почему повторение при написании тестов так сильно поощряется? Кажется, что тесты в основном выражают то же самое, что и код, и, следовательно, являются дубликатом (в концепции, а не реализацией) кода. Не будет ли конечная цель DRY включать в себя устранение всего тестового...

10
Я должен пойти на компромисс: СУХОЙ или Command-Query-Separation?

Недавно я проводил рефакторинг метода, который был и командой, и методом запроса. Разделив его на один метод команды и один метод запроса, я обнаружил, что в коде теперь есть несколько мест, где я вызываю команду, а затем получаю значение из запроса, что выглядит как нарушение принципа СУХОЙ. Но...

10
Нарушение принципа СУХОЙ

Я уверен, что где-то есть название для этого анти-паттерна; однако я не достаточно знаком с литературой по анти-шаблонам, чтобы знать это. Рассмотрим следующий сценарий: or0является функцией-членом в классе Что бы там ни было, это сильно зависит от переменных членов класса. Программист А приходит и...