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

06.10.23

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Введение

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

 

Ссылки

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

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

 

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

Комментарии

К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)

Показываем, как встроить ИИ-помощника в code review 1С без Git, SonarQube и EDT – только с Конфигуратором, RAG-контекстом и набором MCP-инструментов. Разбираем архитектуру решения на Open Web UI и OpenRouter, методику сравнения моделей по Precision, Recall, BonusRate и PenaltyRate, а также объясняем, почему контекст влияет на качество ревью сильнее, чем выбор самой модели. На реальных примерах показываем, какие ошибки ИИ находит хорошо, где все еще нужен архитектор и почему на старте пилота время ревью может не сократиться, а вырасти. В финале делимся метриками внедрения и выводами для команд, которые хотят повторить такой подход у себя.

17.06.2026    320    NVyunova    0    

2

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

Кажется, что code-review с помощью искусственного интеллекта устроено просто: достаточно отправить код в LLM, задать промт и получить список замечаний. На практике такой подход быстро упирается в недетерминированность результата, неверную оценку критичности ошибок в 1С-коде и рекомендации, которые сложно отличить от полезных замечаний. Описываем гибридный подход к автокод-ревью: статический анализатор работает вместе с LLM, а база знаний из стандартов 1С превращается в набор машиночитаемых норм. Такая архитектура помогает снизить количество галлюцинаций, точнее определять критичность нарушений и постепенно развивать качество ревью через итеративное пополнение правил.

09.06.2026    1076    Repich    5    

9

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

Чем активнее развивается старая система, тем страшнее бывает её менять. Снаружи всё выглядит живым: релизы выходят, бизнес получает новые функции, пользователи работают. Но внутри уже появляются фразы, после которых разговор заканчивается: «это лучше не трогать», «там когда-то всё упало», «давайте сделаем рядом». И в какой-то момент становится непонятно: система ещё развивается — или команда уже просто учится обходить опасные места.

04.06.2026    765    IgorVasilyev    29    

4

Инструментарий разработчика Рефакторинг и качество кода Программист Руководитель проекта 1С:Предприятие 8 Абонемент ($m)

MetaVision for 1C PRO — профессиональная версия статического анализатора и визуализатора кода. Загружает выгрузки конфигураций, расширения и внешние файлы, за секунды строит графы функций, находит уязвимости безопасности и подсвечивает проблемы производительности. В арсенале: визуализация логики в виде графов условий, циклов, транзакций и вызовов, статический аудит безопасности с поиском RCE, SSRF, COM-инъекций и паролей в коде, выявление запросов в циклах и вложенных блокировок, полнотекстовый поиск по всем модулям, встроенный редактор с конвертером запросов и автоформатированием, а также честная статистика по объектам и функциям. Главное новшество PRO — до пяти конфигураций одновременно с мгновенным переключением, наложение до пяти расширений как в конфигураторе, анализ внешних файлов в единой связке с основной конфигурацией и пять тем оформления. Инструмент для тех, кто ведёт несколько проектов параллельно и хочет видеть полную картину в одном окне — быстро, наглядно и безопасно.

7 стартмани

19.05.2026    3052    31    KHoroshulinAV    7    

13

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

Есть запросы, которые сразу вызывают подозрение: десятки соединений, множество временных таблиц, объединения, группировки и длинный список условий. Но чаще проблемы прячутся в другом месте — в запросах, которые выглядят вполне приемлемо. Пара обращений через точку, отбор после виртуальной таблицы, РАЗЛИЧНЫЕ «чтобы убрать дубли», большой список в параметре, реквизит регистратора через составной тип — и вот уже на тестовой базе все летает, а в рабочей базе отчет открывается минуту. Разберу такие случаи из практики: не синтаксические ошибки, а именно запросы, которые формально нормальные, но на больших данных начинают вести себя плохо.

04.05.2026    2042    YA_2060655612    11    

9

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

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

29.04.2026    1062    _apelsin4ik    0    

5

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

Код в 1С редко начинает тормозить сразу. Намного чаще он долго выглядит нормальным, а проблемы проявляются позже — когда растут данные, пользователи и количество доработок. В статье разбираю типичные причины такой деградации: запросы в цикле, лишние ПолучитьОбъект(), тяжёлые формы и обработку “по одному”. Статья практическая: с примерами, типичными ошибками и понятными признаками того, что код уже плохо масштабируется.

21.04.2026    2134    YA_2060655612    6    

11

Инструментарий разработчика Рефакторинг и качество кода Программист 1С:Предприятие 8 Бесплатно (free)

Инструмент для тех, кто устал читать модули по 50 тысяч строк и искать ошибки глазами. MetaVision загружает выгруженные файлы конфигурации и за секунды строит графы функций, находит уязвимости и подсвечивает проблемы производительности. Ключевые возможности: Визуализация логики функций (графы условий, циклов, транзакций и вызовов). Статический аудит безопасности (RCE, SSRF, COM-инъекции, пароли в коде). Поиск проблем производительности (запросы в циклах, вложенные блокировки). Полнотекстовый поиск по всем модулям конфигурации. Статистика по объектам и функциям. Безопасность: Программа работает строго локально. Код вашей конфигурации не отправляется в интернет и не анализируется на сторонних серверах. Попробуйте MetaVision сегодня — узнайте, что скрывает ваш код.

20.04.2026    12013    1259    KHoroshulinAV    56    

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

Такие камменты прямо очень помогают для обновления. Это своего рода акт программистской вежливости и заботы о других
2. Lemmonbri 173 06.10.23 16:29 Сейчас в теме
(1) Для этого расширения есть.
DrAku1a; sandr13; +2 Ответить
3. sandr13 35 07.10.23 09:29 Сейчас в теме
(2) Жаль журналов в них нет
5. DrAku1a 1797 16.10.23 05:20 Сейчас в теме
(1) Мне больше понравился стиль:
//ит Вася Пупкин 2008-05-02 (#000000065) вниз
//ит Вася Пупкин 2008-05-02 (#000000065) вверх
где
ит = Префикс изменений организации/ИТ-команды
Вася Пупкин - автор
2005-05-02 - дата
#000000065 - номер тикета/задачи в "тетрадке у Чуня" системе учета задач
вниз / вверх - направление, куда смотреть относительно текущей строки (вместо начало / конец)
6. Serg O. 323 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 Сейчас в теме
Спасибо за чек лист. Плюсую.
Для отправки сообщения требуется регистрация/авторизация