Качество кода: слабое связывание и высокая сопряженность (Low coupling and High Cohesion)

Публикация № 1191718 10.02.20

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

Высокое сопряжение Слабое связывание Паттерны проектирования Low coupling High Cohesion

Поговорим о некоторых общепринятых подходах и принципах разработки кода.

Вступление:

И так здравствуйте меня зовут Крючков Владимир Вячеславович. Сегодня я хочу поднять актуальный и фундаментальный вопрос в процессе разработки – Слабое связывание и Высокое сопряжение/зацепление. Узнаем что из себя представляет спагетти-код и как от него избавиться. И в конце приведу 7-8 принципов для создания хорошего и качественного кода в разработке.

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

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

О чем речь?

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

На самом деле это принцип взят и теории ООП. Эти два принципа входят в аббревиатуру GRASP. В 1С нет как таковы классов, но описанные принципы можно применить и к языку 1С Enterprise.

Шаблоны GRASP.

Это два шаблона из GRASP (англ. general responsibility assignment software patterns — общие шаблоны распределения ответственностей). 

Их всего девять. Некоторые выделяют 5 основных и 4 дополнительных.

  • Информационный эксперт (Information expert)
  • Создатель (Creator)
  • Контроллер (Controller)
  • Слабое связывание (Low Coupling)
  • Высокое сопряжение (High Cohesion) 
  • Полиморфизм (Polymorphism)
  • Чистая выдумка (Pure Fabrication)
  • Посредник (Indirection)
  • Устойчивость к изменениям (Protected Variation)

Мы сегодня поговорим про два из них – слабое связывание и высокое сопряжение.

Что за сущность класс в 1С?

Прежде чем продолжим давайте попробуем провести некоторую аналогию с классом и будем называть ее сущность. К сущности я отношу набор понятий и каждый раз может меняться в зависимости от ситуации.

  • Обработка (реквизиты, ТЧ, модуль объекта)
  • Комбинацию из общих модулей и объектов метаданных (справочники, документы, регистры)
  • Отдельный общий модуль, отдельный объект метаданных
  • Расширения – вот это на текущий момент самая близкая аналогия

И так начнем!

Слабое связывание.

Картинка у вас надеюсь вызывает ассоциацию перехода от клубка запутанных и ветвистых нитей к их упорядочиваю и переходу. Попробуйте себя ассоциировать с тем человечком «программистом», достигшим просветления :-)

Проблема

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

Как обеспечить независимость, незначительное влияние изменений и повысить возможность повторного использования?

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

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

Пример: все знают БСП? Вот я вспоминаю один случай, когда они изменили местоположение функции «Текущий пользователь» из общего модуля «Общего Назначения» в «Пользователи», то пришлось перелопатить всю конфигурацию, когда мы накатывали обновление БСП, т.е. они нарушили принцип «открытый/закрытый» об этом речь пойдет ниже.

Что значит повторное использование кода – это значит, что я пишу функцию или процедуру не для одного случая и называю ее «Получить Реквизит Сумма Заказа Клиента», а «Получить Реквизиты Объекта». В результате я смогу вызывать ее многократно и не писать каждый раз новый код, замусоривая конфигурацию (вспоминаем про рефакторинг).

Решение.

Требуется распределять обязанности, чтобы степень связанности осталась низкой.

 

I) Слабая связанность. 

Что такое слабая связанность? 

Это мера на сколько жестко связан один элемент с другими, либо каким количеством данных/информации обладает о других элементах.

Ниже приведу примеры по типу плохо и хорошо.

Найди нужную нить!

Если элементы сильно связаны, то любое их изменение приводит к изменению во всех связанных объектах. Слабо проследить нить решения?

Возможен взрыв мозга.

Особенно в некоторых ситуациях. И я думаю вы встречались с ситуацией, а фиг его знает, что там происходит, давайте напишем в стороне? И тем самым мы добавляем еще одну нитку в этот клубок.

Если все распутать

Чем меньше элемент знает о соседях, тем лучше. 

Но вот котику видимо не понять. Уверен, что первая ситуация с клубком нитей -  его работа!

Проблемы высокой связанности.

Идем дальше и поговорим о высокой связанности. И к основным проблемам высокой связанности можно отнести следующие утверждения:

  • Изменения в других модулях/объектах приводят к изменению в локальном текущем и наоборот.
  • Затрудняет понимание каждого модуля в отдельности
  • Усложняет повторное использование, так как требует анализа взаимосвязей

Сильное связывание. Пример.

Посмотрите на пример и увидите одну из самых плохих ситуаций, которые вызывает следование принципу создание высоких связей в коде. Оба модуля переплетены максимально и взывают функции и процедуры из друг друга. А теперь представьте, что этих модулей 1000 как в ERP! 

Лучше слабое связывание. Пример.

Смотрим на картинку ниже и видим, что перекрестные ссылки исчезли. Появилась прозрачность и исчезла запутанность для понимания кода и последовательности операций.


Хочу отметить, что четкого требования делать все слабо связанно нет, но стремиться к такой ситуации необходимо всегда.

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

II) Высокая сопряженность.

И так вторая сущность — это высокая сопряженность или зацепление – перевод с английского. Текущая заставка должна направить ваше мышление на то, о чем пойдет далее речь.

Проблема

Рассмотрим проблему/задачу, сформулированную следующим образом:

Как обеспечить возможность управления сложностью?

Хотим обеспечить возможность управления сложностью? Звучит фантастически, но хорошо)

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

Решение.

Распределять обязанности, поддерживающие высокую сопряженность/зацепление (сгруппированность).

Сильное сопряжение. Определение.

Сопряженность/зацепление (в основном функциональное зацепление) – это мера связанности и сфокусированности обязанностей. 

Т.е. у нас есть группировка по функциональному (самый оптимальный), логической, структурной и др. принципу.

Пример Бардак.

Представьте себе магазин, в который вы пришли за покупками (пончики, лимоны и кофе). А у них пронесся ураган, и вместо сгруппированных по полочкам и отделам/рядам стеллажам валяется как попало и вперемешку. И вот в этом бардаке вам надо найти лимон, кофе и пончики. А магазин размером с АШАН?

Ваш код тоже похож на вот это?

Порядок.

Но лучше все же так. Вон видите указатель на кофе, а вон бакалея и пончики!

Слабое сопряжение проблемы.

Слабое сопряжение привносит нам следующий перечень проблем:

  • Трудность понимания
  • Сложность при повторном использовании
  • Сложность поддержки
  • Ненадежность, постоянная подверженность изменениям

Пример код слабая сопряженность.

Смотрим и видим, что не понятно какую функциональную обязанность выполняет данный модуль, всего понемножку. На мой взгляд этот общий модуль должен называться как «Общий модуль. Помойка», согласны?


Выдохнули. Немного котиков, чашку чая, отвлекитесь. 

Сейчас было тяжело. Не так конечно, как мне вчера в 23 часа вечера, но тоже не просто) Вопросы? Передохнули? Продолжаем?

Как вы думаете к чему приведет использование антирекомендаций – сильное связывание и слабое сопряжение? Смотрите ниже, чтобы знать ответ.

III) Спагетти код и распутывание

Спагетти код и макаронная архитектура.

Ага это спагетти код и макаронная архитектура - «bone appétit».

Рецепт

И так вот вам рецепт хороших макарон, но плохого кода. 

Распутываем. Иерархическая декомпозиция.

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

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


 
Распутываем. Модульность.

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

 
Распутываем. Дао хорошей разработки.

И так переходим к заключительной части. Это некоторые правила хорошего тона, которые вы должны помнить и всегда вспомнить при разработке кода. Я специально нашел картинки и придумал/нашел ассоциации чтобы они вам запомнились.


 

Поехали… 

1) Будь скромным

Не вставляйте на показ процедуры, функции, переменные, объекты и данные

К примеру, мы сделали экспортную в модуле формы или глобальную переменную. Теперь ее начали использовать в коде и что получаем? Если мы захотим ее переименовать, то придется менять ее вызовы и использование во всех точках кода!

Правильно сделать экспортную функцию, которую вызвать. В ООП – это запрет использовать public везде, у нас это экспорт и непосредственное обращение к регистрам и т.д.

 

Будь скромным. Пример плохой

Вот так делать нельзя. Пример с усилением акцента, но так тоже пишут.


Будь скромным. Пример правильно

Вот так делать правильнее! Используем шаблон наблюдатель.


2) Принцип минимальности.
 

Идеальная функция, процедура обладает следующими свойствами:

  • Один вход и один выход;
  • Одна решаемая задача

 

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


3) Закон Деметры.

Если «А» знает «Б», а «Б» знает «С», то «А» не должна знать про «С».

Это один из принципов противодействия запутыванию кода.

 
Закон Деметры. Пример

 

Если модуль «Заказ клиента» вызывает модуль «Продажи», а «Продажи» вызывает модуль «Лимиты», то «Заказ клиента» не должен вызывать функции модуля «Лимиты».

 

4) Не смотри на медузу Горгону
 

Смотри на объекты через «зеркало» интерфейсов

Суть в том, что если ваш код не опирается на подготовленные блоки, а изобилует велосипедами, то он можно сказать «окаменевает», становится тяжелым на изменения. 

 

Не смотри на медузу Горгону. Пример плохой код

Плохо непосредственно обращаться к данным. Т.е. этим образом вы сразу нарушаете принцип слабого связывания.


Не смотри на медузу Горгону. Пример хороший код

Правильно работать через интерфейсы.

 
5) Разделяй и властвуй.

 

Используй декомпозицию - разделяй сложные/огромные функции монстры на части

Не стоит писать мега функции, разделяем на части и получаем профит.

 

6) Гусь свинье не товарищ.

 

Процедуры и функции должны группироваться или объединяться по некоторой общности.

Тут думаю понятно свалка и бардак всегда плохо. Высокое сопряжение нам тут поможет.

 

7) Принцип открытости и закрытости.
 

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

Это мой любимый принцип. Суть в том, чтобы при модификации приложений мы не переписывали старые функции, а только добавляли новые. Иными словами, мы должны всегда писать новый код. 

 

8) Мысли паттернами.

 

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

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

 

Заключение. Инь и Янь.
 

Связывание и зацепление — это «Инь» и «Янь» проектирования ПО.

И так как вы поняли, то эти два подхода идут вместе, и они как Инь и Янь. Только с опытом приходит понятие тонкой грани баланса. Для достижения качественного и сбалансированного кода применяйте к разработке принципы, которые мы рассмотрели выше и прибудет с нами сила! 

Про качество кода я рассказывал в этих статьях:


 

Специальные предложения

Автор запретил комментарии

См. также

Шаблоны для применения cтандартов и методик разработки конфигураций 1С

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

Готовые шаблоны текста для применения cтандартов и методик разработки конфигураций 1С, инструментарий. Версия платформы 8.3.22.1851.

5 стартмани

04.06.2023    3833    13    improg    17    

25

Ревьювер. Инструмент для проведения code review

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

16.05.2023    2542    leobrn    11    

46

Применение cтандартов и методик разработки конфигураций на практике

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

Практические кейсы для того, чтобы не устать применять стандарты и методики разработки конфигураций.

15.05.2023    3818    improg    53    

55

5 недостатков кода, из-за которых его сопровождение превращается в ад

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

О сопровождаемости кода. Коротко и в легкой форме. Какие проблемы с кодом бывают, как их решать.

27.04.2023    1672    wonderboy    18    

9

Анализ контекстных вызовов

Инструментарий разработчика Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка предназначена для поиска контекстных серверных вызовов в произвольном модуле формы объекта конфигурации.

1 стартмани

11.03.2023    1609    1    Sirruf    0    

3

SonarQube: про объемы, ветки, покрытие кода и интеграцию с Gitlab

DevOps и автоматизация разработки Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Опыт применения SonarQube в нескольких командах. Плюс некоторые тонкости: уменьшение объемов базы SQ, интеграция, покрытие кода.

26.02.2023    2574    kraynev-navi    10    

47

Зачем и как читать чужой код? Какой результат ожидаем получить? Основные подходы

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Данная статья является кратким содержанием статей цикла "Как читать чужой код". Цель такой публикации: создать чек-лист различных подходов для чтения непонятного кода. Более подробно каждый из методов можно прочитать в исходной статьей. Последовательность изложения материала полностью совпадает с исходными статьями, и разделена на 4 части.

06.02.2023    3095    biimmap    9    

29

Как проверять код на языке 1С с помощью BSL Language Server

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

Некоторые разработчики на платформе 1С не проверяют свой код ни на соответствие стандартам 1С, ни на самые распространённые ошибки кодирования. И если раньше они могли оправдываться отсутствием инструментов для этого, то с появлением BSL Language Server оправданий больше нет.

13.01.2023    3877    aleksei_adamov    10    

45

Без комментариев!

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

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

05.01.2023    5408    ardn    161    

40

Оптимизация хардкода

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

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

1 стартмани

07.12.2022    1748    1    shard    44    

5

Правила работы с транзакциями 1С

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Список правил при работе с транзакциями из BSL Language Server и SonarQube 1C (BSL) Plugin. Переработка и осмысление материала.

01.12.2022    4888    kuzyara    42    

78

Как избавиться от большого количества комментариев в коде с использованием EDT + Git

Рефакторинг и качество кода DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Публикация освещает вопрос улучшения качества и читабельности кода путем отказа от излишних комментариев. Рассматривается пример из опыта работы команды разработки на EDT + Git. Команда работает в EDT меньше года. Конфигурация сильно доработана и не обновляется типовыми релизами.

15.11.2022    1147    shastin87    5    

9

Вскрытие статического анализа кода проектов 1С

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

Для анализа кода многие используют SonarQube с плагинами для 1С, 1С: АПК и т. д. Но не многие знают, как все это работает. Олег Тымко на конференции Infostart Event 2021 Post-Apocalypse рассказал о внутреннем устройстве статического анализа кода и рассмотрел интересные ошибки, которые можно найти в проектах на 1С.

18.10.2022    3103    olegtymko    7    

22

Рефакторинг и реинжиниринг в повседневной практике

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В этой статье будут затронуты многие темы. Использование WS ссылок, HTTP запросов, асинхронных запросов к внешним сервисам, работа с XML, методики интеграции. Но лишь попутно. Для наглядности. На технических вопросах реализации останавливаться не буду. Все примеры работы с этими объектами есть в коде. Файлы обработки и расширения доступны. Главная цель - рассмотреть рефакторинг и реинжиниринг как инструменты для достижения вполне конкретных практических целей.

20.06.2022    1315    user1374747    0    

7

Модульность в 1С – как следовать принципам DRY в реалиях 1С: Предприятие 8.3

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

Принцип DRY – Don't repeat yourself (не повторяйся) – один из классических принципов программирования. Краеугольным камнем реализации этого принципа является модульная архитектура, которую можно реализовать в 1С с помощью расширений. Но экосистемы модулей общего назначения, сравнимой с существующими в других языках, в 1С пока что нет. О том, как спроектировать архитектуру таких модулей и управлять ими с помощью менеджера пакетов, на митапе «Путь к идеальному коду» рассказал технический директор компании «А1» Арсений Геращенко.

03.06.2022    3159    Enigma    3    

22

Красота разработки в 1С, или художественная верстка кода

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рекомендации по верстке и организации кода в 1С, которые я вывел для себя. P.S. Нет, это не про комментарии и номера версий.

02.06.2022    7639    TimofeySin    67    

65

Проверка программного кода посредством BSL LS

Рефакторинг и качество кода Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Во время разработки необходимо следить за качеством кода и соответствием его стандартам. Да, есть SonarQube, но его использование не всегда удобно. Проверка будет происходить только после того, как код пушится в git и делается пул реквест, что увеличивает время обнаружения ошибок Для решения таких проблем и была создана эта обработка. Она позволяет проверять код практически на лету. Достаточно скопировать текст модуля и вставить его в соответствующее поле обработки, задать параметры проверки (при необходимости) и запустить проверку.

1 стартмани

30.05.2022    2897    6    burlakov    3    

9

Мастер-класс SonarQube. В омут с головой

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

Поговорим про SonarQube – не только о том, что он может дать, но и о том, как его установить, быстро запустить и произвести в нем базовые настройки.

19.05.2022    11597    nixel    84    

132

Как выжить, если у тебя в базе 1С 50+ расширений

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

Расширения – это простой способ делать доработки на лету. Но администрировать большое количество расширений и не допустить бардак – очень сложно. О том, как выжить в такой ситуации, реализовать управление доработками и установкой актуальных версий расширений, на митапе «Путь к идеальному коду» рассказал Юрий Былинкин – архитектор 1С в компании Аскона.

16.05.2022    6155    ardn    44    

56

Phoenix BSL: правим ошибки "не отходя от кассы"

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

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

11.05.2022    4645    mas_kot    11    

46

Про простой и понятный код

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

Внимание! Данная публикация с большой долей вероятности не добавит ничего нового к Вашим знаниям и Вашему опыту, поэтому если Вы читаете Инфостарт исключительно для целей "прокачки" своих навыков, не тратьте на её чтение своё время и перейдите сразу к следующей!

03.12.2021    5523    q_i    161    

71

Стек технологий для 1С

Инструментарий разработчика Рефакторинг и качество кода Групповая разработка (Git, хранилище) Механизмы платформы 1С Бесплатно (free)

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

29.11.2021    32537    mrXoxot    63    

429

Как читать чужой код? Часть 3. Разбор и доработка запросов

Запросы Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Во всех вакансиях есть требование - умение читать чужой код. Но ни на одних курсах специально этому не учат. Чтобы устранить это противоречие, пишу данную статью. Рассмотрю случаи, в которых нам необходимо разбирать чужой код, поймём, чей код мы пытаемся разобрать, зачем и, главное, как. В статье описан личный опыт длиною в 18 лет начиная с версии платформы 7.7. Статья будет большой, набираемся терпения). Статья содержит в себе описание сценариев разбора кода, т.е. набор шагов. В статье не получится показать это на практике. Для этого планирую сделать онлайн или оффлайн курс, где на примерах будет показан разбор незнакомого кода. Статья разбита на 4 публикации для удобства изучения.

20.09.2021    5197    biimmap    35    

39

Как читать чужой код? Часть 1. Общие вопросы. Доработка чужого кода. Code review

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Во всех вакансиях есть требование - умение читать чужой код. Но ни на одних курсах специально этому не учат. Чтобы устранить это противоречие, пишу данную статью. Рассмотрю случаи, в которых нам необходимо разбирать чужой код, поймём, чей код мы пытаемся разобрать, зачем и, главное, как. В статье описан личный опыт длиною в 18 лет начиная с версии платформы 7.7. Статья будет большой, набираемся терпения). Статья содержит в себе описание сценариев разбора кода, т.е. набор шагов. В статье не получится показать это на практике. Для этого планирую сделать онлайн или оффлайн курс, где на примерах будет показан разбор незнакомого кода. Статья разбита на 4 публикации для удобства изучения.

20.09.2021    13337    biimmap    55    

139

Где баланс между производительностью и возможностями программы ? Исправление автоподбора контрагента в УНФ

Рефакторинг и качество кода HighLoad оптимизация Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Россия Управленческий учет Абонемент ($m)

Как и у многих ко мне стали поступать обращения от менеджеров о медленной работе 1с (эта ваша один с не дает нормально работать), и чтоб быть объективным, и не основываться на человеческом, субъективном восприятии решил вооружиться цифрами, а именно произвести анализ медленных запросов, и проблема была найдена, где я ее не ожидал.

1 стартмани

27.08.2021    6541    0    con-men    0    

8

Распространенные ошибки разработчиков, приводящие к проблемам производительности

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

Рассмотрим примеры ошибок, анализ, исправление и мероприятия по недопущению подобного в будущем. Всего будет 18 примеров.

02.08.2021    16595    ivanov660    77    

142

Антипаттерны программирования в 1С

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

Поговорим про плохой стиль программирования и рассмотрим 17 часто встречающихся антипаттернов.

19.07.2021    13123    ivanov660    121    

69

Автоматизация расчета покрытия кода тестами

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

На Infostart Meetup, посвященном DevOps-технологиям, с докладом о том, как автоматизировать расчет покрытия кода, выступил программист компании 42Clouds Станислав Косолапов. Станислав рассказал об инструменте собственной разработки для таких задач и показал работу решения на практике.

21.05.2021    6686    amoarok    14    

67

Чек-листы для проведения Code Review

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

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

17.05.2021    11702    Shining_ninja    99    

129

Как контролировать качество внешних обработок, отчетов, правил обмена, расширений 1С и поставить это на поток

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

Если код написан качественно, его легче развивать и дешевле поддерживать. О том, как организовать контроль качества кода в ручном и автоматическом режиме, и какие инструменты могут в этом помочь, на INFOSTART MEETUP Новосибирск.Online рассказал Олег Тымко.

09.04.2021    8804    olegtymko    26    

112

Эффективные приемы разработки

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

На Infostart Meetup Ekaterinburg.Online выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами приемами разработки, которые помогут избежать потенциальных проблем при реализации сложных проектов.

07.04.2021    5351    SergeyN    13    

39

Как быстро развернуть автоматическую линию проверки своего решения на 1С, затратив 8 часов и получив выигрыш в 1 человеко/месяц

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

У разработчиков 1С уже есть все инструменты, позволяющие использовать современные инженерные практики в 1С. О том, как за 8 часов внедрить автоматические проверки для решений на 1С, снизить в них количество глупых ошибок, а также высвободить ресурсы на более интеллектуальную работу на INFOSTART MEETUP Ekaterinburg.Online рассказал Артур Аюханов.

05.04.2021    8867    artbear    16    

111

Повышение качества разработки. Статья 4. Почему код становится плохим, и как с этим бороться

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

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Статья 4. Эта статья посвящена причинам возникновения проблем с качеством кода и методикам их преодоления.

22.03.2021    3068    Артано    6    

17

Ускорение расчета себестоимости УПП 1.3 в несколько раз

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

Как определить причину медленного расчёта себестоимости в УПП 1.3, один из вариантов поиска проблем производительности с помощью инструментов 1С и ускорения расчёта средствами встроенного языка

02.02.2021    5758    RPGrigorev    23    

40

Практика применения DevOps. Работа с SonarQube

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Во второй части мастер-класса «Практика применения DevOps» на конференции Infostart Event 2019 Inception выступил Виталий Подымников – он рассказал про процесс проверки качества кода и использование SonarQube для работы с ним.

07.12.2020    16485    arcius_7012    21    

84

Операторы перехода в программном коде: использовать или нет?

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим ситуации использования операторов перехода Перейти (GoTo), Возврат (Return), Прервать (Break), Продолжить (Continue). Как вы считаете - это дурной тон, нормальная практика или зависит от ситуации?

16.11.2020    10069    ivanov660    23    

11

Чистый кот (Clean cat)

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От автора легендарного бестселлера "Совершенный кот".

04.11.2020    2476    vasilev2015    25    

5

Доработайте это "немедленно", или как уменьшить доработки конфигурации

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

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

25.09.2020    5054    Богатырев Артур    24    

14