Книга знаний

1С:Предприятие / Приемы программирования / Встроенный язык

Качество программного кода в 1С

Часто при анализе программного кода в 1С, задаешься мыслью, а можно ли улучшить код или насколько он оптимален? О том как добиться улучшения написания программ, некотрые мысли привидены в этой статье.Автор статьи: Neco | Редакторы: quest
Последняя редакция №2 от 20.12.15 | История
URL: http://kb.mista.ru/article.php?id=313

Ключевые слова: качество программного кода, анализатор программного кода, улучшение качество программ


"I Have A Dream"
Martin Luther King

У меня есть мечта, что 1С встроила в платформу анализатор качества программного кода.
Мне могут возразить но есть синтакс проверка, методических указаний по программированию и просто правила хорошего тона при написании программ. Да все это так. Но во-первых синтакс помощник проверят только правильность использования языковых конструкций, проще говоря пропустит или не пропустит компилятор данный код, более сложные ошибки он не выявит. Методики полезны, но с точки зрения программисткой гигиены, они указывают на основные правила оформления кода, правила именований процедур, функций и т.д. Но вот ошибки, которые выявляются уже при выполнении программного кода самые пожалуй неприятные.
Ошибки можно разделить на две группы: логические – когда программа написана безупречно с точки зрения правил алгоритмизации, но результат ошибочный и ошибки реализации того или иного алгоритма. Первые логические может выявить и понять только человек или искусственный интеллект, а вот поиск ошибок реализации можно и нужно автоматизировать.
Значит, мы задались целью написать анализатор кода 1С. С чего начать? Начнем с теории и общего понимания, что такое вообще анализаторы кода. По ссылке: http://itc.ua/article.phtml?ID=22091&IDw=33&pid=52 находится великолепная статья в которой на примере описана работа анализатора кода Splint (http://www.splint.org/). Анализатор работает с языком С и помогает улучить качество получаемого кода. Основной инструмент который используется это команды процессору Splint, которые помещаются в комментарий, например:
typedef /*@abstract@*/ старый_тип имя_нового_типа ;

Анализатор Split может вылавливать множество типичных для языка C ошибок. Множество подобных анализаторов существует и для других языков, например для C#:
http://sharptoolbox.com/categories/code-analysers-standards-verifiers
Что можно сделать в 1С?
Для начала, можно выявить стандартные программистские ошибки. Немного можно почитать тут:
Книга знаний: v8: Типичные ошибки на 1С 80;
или Книга знаний: v8: Забавный код 80;
Для построения анализатора нужно разбирать код программы, помочь в этом нам могут парсеры кода. Обсуждение на форумах:
v8: Грамматика 8-ки. Кто-нить делал?
http://itland.ru/forum//index.php?s=fe8b19a36b2f539141292384a0f469c5&showtopic=11213
http://itland.ru/forum//index.php?showtopic=16752
Т.е. все доступные инструменты у нас есть на руках, нужно только релизовать.
Немного работа ведется тут - https://github.com/wwall/drracket-loxy - желающие могут оставлять комменты и пожелания

Заключение


Чтобы хотелось в идеале:
1. Анализ правильной структуры кода. Т.е. соответствие кода стандартам и методикам программирования 1С
2. Выявление типичных ошибок при написании программ в 1С
3. Выявление не оптимальных конструкций, предложение по оптимизации кода

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика