YAGNI: основной принцип разработки ПО

YAGNI (You Ain't Gonna Need It) - это принцип, который гласит, что не стоит писать код для функционала, который пока не требуется (и, возможно, никогда не потребуется).

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

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

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

Вот пример кода, который демонстрирует использование YAGNI-принципа:


# Пример 1: Без применения YAGNI-принципа
def calculate_lcm(num1, num2):
    """
    Функция для нахождения наименьшего общего кратного двух чисел.
    """
    lcm = 0
    for i in range(1, (num1 * num2) + 1):
        if i % num1 == 0 and i % num2 == 0:
            lcm = i
            break
    return lcm
def main():
    num1 = int(input("Введите первое число: "))
    num2 = int(input("Введите второе число: "))
    lcm = calculate_lcm(num1, num2)
    print("НОК чисел", num1, "и", num2, "равен", lcm)
if __name__ == '__main__':
    main()

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

Вот исправленный код, который при использовании YAGNI-принципа является проще и лучше поддерживается:


# Пример 2: C применением YAGNI-принципа
import math
def calculate_lcm(num1, num2):
    """
    Функция для нахождения наименьшего общего кратного двух чисел.
    """
    gcd = math.gcd(num1, num2)
    lcm = (num1 * num2) // gcd
    return lcm
def main():
    num1 = int(input("Введите первое число: "))
    num2 = int(input("Введите второе число: "))
    lcm = calculate_lcm(num1, num2)
    print("НОК чисел", num1, "и", num2, "равен", lcm)
if __name__ == '__main__':
    main()

В этом примере использование YAGNI-принципа помогло нам упростить код и работать более эффективно.

Похожие вопросы на: "yagni "

Discord API: Руководство по работе с программным интерфейсом
Initramfs: что это такое и как работает
Regsvr32: использование командной строки для регистрации и отмены регистрации DLL и OCX библиотек на Windows
Использование функции str split в языке программирования Python
QTableWidget: простой и удобный виджет для отображения таблиц в PyQt
Text Overflow Ellipsis: изучаем CSS свойство для сокращения блоков текста
Конвертирование Base64 в файлы онлайн
Генератор Питон - создайте свой собственный скрипт за мгновение!
JS Keycode: работа с кодами клавиш
<h1>Numpy argsort: Efficient Array Sorting in Python