Доброе программирование, или сказки для программистов

03.03.18

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

Я попробовал составить список хорошего и доброго, что помогает читающему код жить легче. Возможно, остальные программисты меня поддержат))

"Добрым быть совсем, совсем не просто…"

 

Однажды в сети я встретил статистику (где именно не помню), что программисты примерно 80% времени читают код и 20% времени код пишут.

Сложно сказать, насколько это правда, но если говорить про 1С - то можно с уверенностью сказать, что читать приходится много и в основном чужого кода.

Через год порой уже и на свой код смотришь как в первый раз.

Когда код читаешь, кажется, что его написал хороший, но не очень добрый программист, т.к. понять, как работает программа бывает трудно.

Можно сказать, что Доброе программирование - это написание кода с заботой о том, кто его будет читать.

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

Я попробовал составить список хорошего и доброго, что помогает читающему код жить легче. Возможно, остальные программисты меня поддержат))

 

  1. Вовка в тридевятом царстве или двое из ларца (и так сойдет).

Как правило, именно тогда, когда код написан и заработал, программист лучше всего понимает, каким должен быть код, вот только на самом деле он совсем не такой. Иногда, чтобы код стал красивым, надо его переписать почти полностью, иногда достаточно сделать рефакторинг того, что есть. В любом случае именно сейчас есть понимание того, как надо, и надо именно так и сделать. Оставить "как есть" - это зло).

 

  1. Жили были КИТ и КОТ - было все наоборот.

Теперь самое время прочитать код и проверить, действительно ли этот код понятен читающему.

Все ли имена переменных и функций означают именно то, что имелось в виду.

Нет ли слов, которые можно понять различным образом. Писать надо как можно проще - проще для читающего.

 

  1. Как зовут трех поросят - знает каждый.

Чтобы читать много - надо читать быстро, а чтобы читать быстро, надо читать нужное и пропускать остальное.

Для этого надо, чтобы код был разделен на участки, назначение которых можно понять при беглом прочтении, а количество таких участков, отображаемых за один раз, должно быть "обозримым".

Тут нам помогут числа из сказок, 3 и 7.

3 - это минимальное количество элементов, которые воспринимаются как группа.

7 - это максимальное количество элементов, которое воспринимается при  беглом прочтении. Все, что больше - трудно.

 

  1. "Казнить нельзя помиловать" или полтора землекопа.

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

Тут надо подумать о том, что может сделать читающий, чтобы "улучшить" ваш код.

Зачем он стал его читать? Может, нет сообщения об ошибке,  а может, пользователю непонятно, как работает программа.

Может быть, код применяют не по назначению, а может, его решили "улучшить", но вы уже это пробовали, и получилось плохо.

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

Самое быстрое чтение - это когда читать не надо.

 

Ну вот, теперь код стал "добрее" и тот, кто станет его читать, скажет больше добрых слов)))

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

См. также

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

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

30.10.2025    3077    user2100900    3    

15

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

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

28.10.2025    3451    vaillant    35    

13

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

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

24.10.2025    1900    1c-izh    6    

6

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

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

10 стартмани

17.10.2025    4593    21    Suker86    12    

19

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

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

1 стартмани

06.10.2025    1054    7    Alex_Smolensky    25    

4

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

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

23.09.2025    5344    AlexeyPROSTO_1C    1    

15

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

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

02.09.2025    2677    user1827916    1    

3

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

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

28.08.2025    10683    lapinio    46    

58
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. unichkin 1613 04.03.18 16:55 Сейчас в теме
"Делай добро и беги..."
корум; creatermc; tindir; brr; +4 Ответить
2. HAMMER_59 256 05.03.18 07:17 Сейчас в теме
Вспомнилась, серия из Масяни "В небе ангелочки летают по цветочкам ... а на земле полная ОПА, всё плохо сделано..."
Читаешь Инфостарт, прямо все за документирование, правильный код (перед работой, обычно, читаю статьи на Инфостарт), а потом начинается непосредственно работа, эти бесконечные вопросы:
"А почему здесь так, а тут этак?"
"А действительно почему?" а потому, что документация конфигураций у 1С-ников хромает на обе ноги, а документации кода, в принципе нет. В итоге сидишь в отладчике, и волосы где только не шевелятся, когда пытаешься разобраться в их волшебном коде.
Так что 1С пока злое зло :)

А как вспомнишь про партнерские конфигурации :), так уже думаешь, что типовые конфигурации не такое уж и зло.
nagaitseff; корум; Award; Tangram; Бубузяка; Nelli_A86; AlekseySipaev; +7 Ответить
5. brr 184 05.03.18 09:39 Сейчас в теме
(2) Ахах, как это мне близко - 90% времени разбираешься как работает, 10% вставляешь правки.
3. dmt 69 05.03.18 08:25 Сейчас в теме
Пункт 1 радует. Особенно тогда, когда не очень-то и понятно насколько данная фича будет востребована.
4. spectre1978 61 05.03.18 08:42 Сейчас в теме
Гаишники в день экзамена: сегодня ездите по правилам. А завтра будете ездить, как все :)
creatermc; JohnConnor; brr; +3 Ответить
6. KAV2 159 07.03.18 09:56 Сейчас в теме
На самом деле очень редко когда код в мире 1С: Предприятие живет долго, его и так приходится постоянно переписывать ибо весь функционал так или иначе завязан на изменения законодательства. Таже история с покрытием тестами.
Да можно было бы делать по другому: весь функционал завязанный на законодательство выносить в отдельное, типовое решение и отдать его актуализацию всецело на откуп самой компании 1С, но это же не наш метод, мы будем все делать в одном месте, так чтобы постоянно нужно было все актуализировать.
7. DonAlPatino 171 07.03.18 10:59 Сейчас в теме
(6) "Да можно было бы делать по другому: весь функционал завязанный на законодательство выносить в отдельное, типовое решение и отдать его актуализацию всецело на откуп самой компании 1С". Уже в этом месте утопия - мне вот еще не попадался ни один работодатель, который был бы согласен хотя бы процентов на 60% с 1С на тему соответствия законодательству. А уж после перехода на ЗУП 3.1.4 меня вообще терзают смутные сомнения, что расхождение мнения 1С с мнением моей группы расчета зарплаты (поддерживаемое финдиром и главбухом) достигло всех 100 :-(
user811769; romankoav; +2 Ответить
8. Samarkan63 07.03.18 11:45 Сейчас в теме
Полезно, почему бы и нет
9. herfis 520 07.03.18 11:57 Сейчас в теме
Нужная штука. Побольше таких.
Неплохо бы еще че-нить в духе "Как хитрый фрилансер злобного франча перехитрил" и колыбельную для самых маленьких одинэсников.
user811769; nagaitseff; корум; +3 Ответить
Для отправки сообщения требуется регистрация/авторизация