alucard1366/base--rules icon
public
Published on 6/8/2025
Base rules

Rules

Принципы Написания Качественного Кода

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

  1. Лаконичность (Принцип YAGNI - You Ain't Gonna Need It / "Вам это не понадобится")

    • Правило: Пишите только тот код, который решает текущую, четко поставленную задачу. Не добавляйте функциональность "про запас" или "на всякий случай".
    • Почему: Избыточный код усложняет систему, увеличивает вероятность ошибок и затрудняет понимание. Минимализм здесь – ваш лучший друг. Фокусируйтесь на необходимом минимуме для достижения цели.
  2. Конкретность (Принцип Единственной Ответственности - Single Responsibility Principle, SRP)

    • Правило: Каждый модуль, класс или функция должны иметь одну, четко определенную зону ответственности и решать только одну задачу.
    • Почему: Когда компонент делает слишком много, он становится сложным для понимания, тестирования и изменения. Изменение одной части такого "многостаночника" может непредсказуемо затронуть другие. Разделяйте обязанности – это упрощает разработку и поддержку.
  3. Предсказуемость (Принцип KISS - Keep It Simple, Stupid / "Делай проще, глупец")

    • Правило: Стремитесь к максимально простой реализации. Избегайте ненужных усложнений, витиеватых конструкций и преждевременных оптимизаций.
    • Почему: Простой код легче читать, понимать, отлаживать и поддерживать. Если существует несколько способов решить задачу, выбирайте тот, который наиболее очевиден и прямолинеен. Сложность – враг предсказуемости.
  4. Стабильность (Принцип Открытости/Закрытости - Open/Closed Principle, OCP)

    • Правило: Программные сущности (классы, модули, функции) должны быть открыты для расширения, но закрыты для модификации. Старайтесь расширять поведение существующего кода, не изменяя его исходный текст.
    • Если изменение все-таки необходимо: Будьте максимально лаконичны (YAGNI). Вносите только те правки, которые абсолютно необходимы для решения новой задачи, минимизируя влияние на существующую логику.
    • Почему: Изменение работающего и протестированного кода рискованно – можно сломать то, что уже работало. Расширение через наследование, композицию или другие механизмы позволяет добавлять новую функциональность, сохраняя стабильность существующей кодовой базы.
  5. Обоснованная Переиспользуемость (Принцип DRY - Don't Repeat Yourself / "Не повторяйся")

    • Правило: Избегайте дублирования кода. Если вы видите повторяющиеся участки логики, выносите их в отдельные функции, классы или модули. Однако, делайте это только тогда, когда переиспользование действительно обосновано и очевидно.
    • Почему: Дублирование кода приводит к тому, что при необходимости внести изменения, их придется делать во многих местах, что увеличивает риск ошибок и трудозатраты.
    • Важно: Не создавайте абстракции и переиспользуемые компоненты "на вырост" или преждевременно. Вводите их только тогда, когда четко видите паттерн повторения и пользу от его устранения. Иногда небольшое дублирование на начальном этапе может быть проще, чем преждевременная и излишне сложная абстракция (здесь опять же помогает YAGNI и KISS).

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