Чистый код. Мой взгляд на жизнь в макаронных джунглях. Чек-лист

06.10.23

Разработка - Рефакторинг и качество кода

Чек-лист для простого и быстрого проведения рефакторинга кода.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Рефакторинг кода
.zip 318,90Kb
14 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Введение

Данная статья является настольным чек-листом при рефакторинге когда, который я и моя команда использует. Не призываю никого использовать его, а только знакомлю. Использовать его или нет, частично или полностью - полностью дело читателя. Рекомендуется первоначально ознакомиться с предыдущими статьями (хотя бы со второй).

 

Ссылки

Ссылка на первую часть.

Ссылка на вторую часть.

 

Сводка правил, чек лист

Комментарии

К1: Неуместная информация

В комментариях неуместно размещать информацию, которую удобнее хранить в других источниках.

К2: Устаревший комментарий

К3: Избыточный комментарий

К4: Плохо написанный комментарий (непонятный, не поясняющий)

К5: Закомментированный код

 

Функции

Ф1: Слишком много аргументов

Ф2: Выходные аргументы в методах (используйте возврат)

Ф3: Флаги в аргументах в методах (больше 1 действия в методе)

Ф4: Мертвые функции (не вызывающиеся нигде)

 

Разное

Р1: Некорректное граничное поведение

Р2: Очевидное поведение не реализовано

Р3: Дублирование

Р4: Код на неверном уровне абстракции

Р5: Слишком много информации

Чем меньше экспортных методов – тем проще программный интерфейс. Минимум экспортных методов для максимум эффективности.

Р6: Мертвый код (не выполняется в теле программы)

Р7: Вертикальное разделение

Р8: Непоследовательность

Если некая операция выполняется определенным образом, то и все похожие операции должны выполняться так же.

Р9: Балласт (Мусор, неисполняемый код, неиспользуемые переменные)

Р10: Непонятные намерения

Р11: Используйте пояснительные переменные

Р12: Имена функций должны описывать выполняемую операцию

Р13: Понимание алгоритма

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

Р14: Заменяйте «волшебные числа» именованными константами и переменными

Р15: Будьте точны

Наивно ожидать, что первая запись, возвращаемая по запросу, является единственной и подобное.

Р16: Инкапсулируйте условные конструкции

Выделяйте сложные условия в отдельные методы.

Р17: Функции должны выполнять одну операцию

 

Имена

И1: Используйте содержательные имена

И2: Выбирайте имена на подходящем уровне абстракции

И3: По возможности используйте принятые в отрасли термины

И4: Недвусмысленные имена

И5: Используйте длинные имена для длинных областей видимости

И6: Избегайте кодирования

И7: Имена должны описывать побочные эффекты

 

Для чего файл

В файле находится полный текст всех статей + чек-лист с комментариями. Именно этот файл мы используем для подготовки специалистов и проведения рефакторинга. Если хотите поддержать автора - можете приобрести файл.

Вступайте в нашу телеграмм-группу Инфостарт

чистый код рефакторинг Роберт Мартин качество кода статья стандарты написания кода

См. также

Нейросети Рефакторинг и качество кода Программист Бесплатно (free)

ИИ для код-ревью – не просто модный тренд, а реальный инструмент, который уже помогает разработчикам экономить время и повышать качество кода. В статье разбираемся, как запустить локальную LLM на базе Ollama, подключить ее к Git через Webhook и Python-скрипт, а также какие параметры модели отвечают за точность и галлюцинации. Делимся схемой работы, настройками и результатами тестирования, доказывая, что автоматизированное код-ревью действительно может работать – даже без космического бюджета.

30.10.2025    2198    user2100900    3    

5

Запросы Рефакторинг и качество кода Программист Запросы Бесплатно (free)

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

28.10.2025    2110    vaillant    35    

10

Нейросети Рефакторинг и качество кода Обновление 1С Программист Бесплатно (free)

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

24.10.2025    1491    1c-izh    6    

6

Обновление 1С Рефакторинг и качество кода 1С v8.3 Абонемент ($m)

Представляю вашему вниманию конфигурацию "Проверка конфигураций (версия 3)", которая позволяет проверять любые конфигурации и расширения на наличие ошибок, связанных с вызовом экспортных функций и процедур общих модулей и модулей менеджеров объектов. Проверяются ошибки: 1) Метод объекта не обнаружен 2) Недостаточно фактических параметров. 3) Слишком много фактических параметров. Рекомендуется выполнять при подготовке обновлений.

10 стартмани

17.10.2025    4226    19    Suker86    12    

19

Рефакторинг и качество кода Программист 1С v8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

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

1 стартмани

06.10.2025    720    3    Alex_Smolensky    15    

4

Рефакторинг и качество кода БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист 1С v8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Использование Библиотеки стандартных подсистем позволяет разработчикам 1С значительно ускорить процесс создания решений за счет готового универсального кода, поддерживаемого и обновляемого официальным вендором. В статье рассказывается про роль и применение «Библиотеки стандартных подсистем» (БСП), примеры интеграции и подключения подсистем.

23.09.2025    4566    AlexeyPROSTO_1C    1    

14

HighLoad оптимизация Рефакторинг и качество кода Программист Бесплатно (free)

Рассказываем о том, как не ухудшить производительность интеграционного решения в процессе разработки и рефакторинга, когда новых фич в коробке все больше, а требования по производительности все выше. На живом примере покажем реализованный подход с использованием таких инструментов, как Docker, Redash, Vanessa Automation.

02.09.2025    2530    user1827916    1    

3

Рефакторинг и качество кода Программист Россия Бесплатно (free)

GRASP-паттерны в 1С: меньше хаоса, больше архитектуры.

28.08.2025    10166    lapinio    46    

58
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. lev6975 06.10.23 14:42 Сейчас в теме
Кстати, по поводу камментов описания функций и модулей в шапке перед функцией бытует мнение что они вообще излишни потому что очень быстро устаревают ну и как бы мешают читать код. И вообще от камментов нужно отходить по возможности совсем в пользу более грамотного написания кода и названия переменных и методов. Но я с ними не согласен В 1С без этого сильно никак - то же обновление внедренной программистом не знакомым с конфой. Он тучу времени потратит на то чтобы понять где код 1С - ный а где внедренный, поскольку зачастую обновления проводят небрежно для экономии времени просто "снимая галочки" с конфликтных объектов, не удаляя старые объекты (галочка "Разрешить удаление объектов" снята), и сравнение с конфой поставщика тут не работает, стравнивать придется с кучей цф - ников поставщика всех прошлых релизов. К нам такая база поступила, вся переписанная и обновленная кое - как, плюс еще и конфа поставщика не обновлена была несколько раз, помучились знатно... поэтому программисты часто оставляют метки типа:
//Вася Пупкин Начало 02.05.2008
//Вася Пупкин Конец 02.05.2008

Такие камменты прямо очень помогают для обновления. Это своего рода акт программистской вежливости и заботы о других
2. Lemmonbri 161 06.10.23 16:29 Сейчас в теме
(1) Для этого расширения есть.
DrAku1a; sandr13; +2 Ответить
3. sandr13 35 07.10.23 09:29 Сейчас в теме
(2) Жаль журналов в них нет
5. DrAku1a 1775 16.10.23 05:20 Сейчас в теме
(1) Мне больше понравился стиль:
//ит Вася Пупкин 2008-05-02 (#000000065) вниз
//ит Вася Пупкин 2008-05-02 (#000000065) вверх
где
ит = Префикс изменений организации/ИТ-команды
Вася Пупкин - автор
2005-05-02 - дата
#000000065 - номер тикета/задачи в "тетрадке у Чуня" системе учета задач
вниз / вверх - направление, куда смотреть относительно текущей строки (вместо начало / конец)
6. Serg O. 314 19.10.23 10:55 Сейчас в теме
(5) некоторые комментарии
1) после // нужен "пробел" - см. Соглашения при написании кода: Тексты модулей, пункт 7.3
при использовании Visual Studio Code - "дефект кода"
Phoenix BSL - так же показывает это как Информацию

2) дату лучше в "нормальном" написании использовать 02.05.2008 (главное одинаково для всех команды)

3) скобки у номера задачи - не нужны - вместо (#000000065) достаточно #65

4) вниз - вверх не очень понятно что и зачем так писать, лучше +++( в начале и ---) в конце для блока изменений ( и в конце уже дату и номер задачи можно не писать, она "врёт" потому что бывают изменения внутри изменений!)

т.е. из вашего примера получается более лаконичный

 // +++( ИТ Вася Пупкин 02.05.2008 #65

// ... Код изменения

// ---) ИТ Вася Пупкин 


а если меняется только 1 строка / условие / цикл - то вообще лучше 1 раз комментарий в конце строки
Соглашения при написании кода: Тексты модулей, пункт 7.2

 Если Количество > 0 Тогда // ИТ Вася Пупкин 02.05.2008 #65
// ... Код
КонецЕсли; 
4. sandr13 35 07.10.23 09:29 Сейчас в теме
Спасибо за чек лист. Плюсую.
Для отправки сообщения требуется регистрация/авторизация