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

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: Имена должны описывать побочные эффекты

 

Для чего файл

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

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

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

См. также

Инструментарий разработчика Рефакторинг и качество кода Программист 1С 8.3 1С 8.5 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Россия Абонемент ($m)

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

2 стартмани

08.07.2026    298    2    NikolayMaerov    0    

4

Рефакторинг и качество кода Обновление 1С Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

На проекте сложного обновления 1С:ERP 2.4.14.181 до версии 2.5.22.106 нам было нужно уложить обновление в технологическое окно 48 часов (выходные). Исходный замер, с учетом промежуточных релизов 2.5.8.443, 2.5.12.270, 2.5.17.234, 2.5.22.106, показал требуемое время в 659 часов…

07.07.2026    2008    1c-izh    18    

19

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

Обновление ролей в расширении 1С отличается от аналогичного процесса в основной конфигурации. Ситуация осложняется, когда доработки вносятся не в «обычное», а в поставляемое расширение.

26.06.2026    751    1c-izh    3    

5

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

Code review в 1С часто превращается в спор вкусов: “мне не нравится”, “переделай”, “так не делают”. В статье разбираю другой подход: проверять не разработчика, а риск для системы. Показываю, как формулировать замечания без токсичности, где заканчивается личное предпочтение и начинается реальная проблема, почему ревью должно развивать разработчика, а не только исправлять код

24.06.2026    718    NikolayMaerov    4    

6

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

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

17.06.2026    969    NVyunova    1    

3

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

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

09.06.2026    1911    Repich    5    

9

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

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

04.06.2026    1011    IgorVasilyev    29    

5

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

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

7 стартмани

19.05.2026    3327    35    KHoroshulinAV    7    

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

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