Назад к вопросам
Junior
119
questionbank
Что такое принципы DRY и KISS в программировании?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Принцип DRY (Don't Repeat Yourself) означает "Не повторяйся". Его суть в том, чтобы избегать дублирования кода и данных. Вместо копирования логики, ее выносят в переиспользуемые функции, компоненты или модули. Это упрощает поддержку, снижает вероятность ошибок при изменениях и улучшает читаемость кода.
Принцип KISS (Keep It Simple, Stupid) означает "Делай проще, дурачок". Он призывает к созданию максимально простых и понятных решений. Избегайте излишней сложности, преждевременной оптимизации или использования сложных паттернов, если можно обойтись более простыми. Простой код легче понимать, тестировать и отлаживать.
Пример DRY в React:
// Дублирование в двух компонентах
function ButtonPrimary({ text, onClick }) {
return <button className="button button--primary" onClick={onClick}>{text}</button>;
}
function LinkPrimary({ text, href }) {
// Часть стилей дублируется
return <a className="button button--primary" href={href}>{text}</a>;
}
// Применение DRY с помощью общего компонента
function PrimaryStyling({ children, as: Component = 'button', ...props }) {
return <Component className="button button--primary" {...props}>{children}</Component>;
}
function ButtonPrimaryDRY({ text, onClick }) {
return <PrimaryStyling onClick={onClick}>{text}</PrimaryStyling>;
}
function LinkPrimaryDRY({ text, href }) {
return <PrimaryStyling as="a" href={href}>{text}</PrimaryStyling>;
}
Пример KISS на JavaScript:
// Излишне сложное решение подсчета суммы
function calculateSumComplex(numbers) {
let sum = 0;
if (Array.isArray(numbers)) {
for (let i = 0; i < numbers.length; i++) {
if (typeof numbers[i] === 'number' && !isNaN(numbers[i])) {
sum += numbers[i];
}
}
}
return sum;
}
// Простое и понятное решение подсчета суммы (если входные данные ожидаемы)
function calculateSumKISS(numbers) {
return numbers.reduce((sum, current) => sum + current, 0);
}