Открытая просьба разработчикам подсистем

02.12.11

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

Давайте жить дружно. Письмо - буквально, мольба человека который приобрел несколько подсистем и теперь пытается их банально внедрить. Итого 4 подсистемы 1 приобретена тут одна поставлена франчами и 2 открытые с ограниченным функционалом.

Давайте жить дружно. Письмо буквально мольба человека который приобрел несколько подсистем и теперь пытается их банально внедрить. Итого 4 подсистемы 1 приобретена тут одна поставлена франчами и 2 открытые с ограниченным функционалом.

И из 4 только две имеют префиксы подсистем и объектов для них.

Только 1 документацию по которой удалось поставит не беспокоя разработчиков

И у двух оказались одинаковым  имя объекта справочника

Результат 2 недели разнообразного и утомительного секса.

Я прошу ВАС 

Делайте префиксы и документацию! ПОЖАЛСТА!!! 

Если есть функции и процедуры - ОБЯЗАТЕЛЬНО КОММЕНТИРУЙТЕ (бывает версия разработчика системы отстает от актуальной на 2-3 обновления) И в документацию их.

Для своих подсистем делайте доп интерфейсы.  

Пишите версии к файлам обновления (и если не сильно сложно - изменения основные).

Давайте придерживаться хоть каких-то правил...

И как от продавца ПЛИЗЗЗ ДОГОВОРА И ДОКУМЕНТЫ оформляйте правильно . их не принимают вы же сами знаете что бухгалтерам хоть танк купи но чтоб с документами. Мне трижды пришлось писать самому то что было в продаже но без документов (за исключением ООО "Инфостарт", вот у них все в порядке, документы принимаются без проблем). 

Записывайте видео презентации такие продукты берут в РАЗЫ больше чем просто текстовое описание. И это 2-3 минутные ролики для быстрой презентации продукта и 6-9 минут для более глубокой демонстрации.

Я очень прошу не смотреть на грамматику просто 2 недели бесполезного труда для того чтобы запустить продукты "готовые" к использованию. 

Я продаю ВАШИ продукты , я пишу свои но я не изобретаю велосипеды я ищу подходящие.

Я даже проценты не прошу.

Я прошу делать продукты Удобные не только Пользователям.

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

УТОЧНЕНИЕ - Я НИЧЕГО НЕ ИМЕЮ С ПРОДАЖИ ГОТОВЫХ РЕШЕНИЙ - ТОЛЬКО ЗА ДОРАБОТКИ. 

А теперь конкретика на основе форума и личных сообщений пользователей.

ВСТУПИТЬ В ГРУППУ

 

Что есть стандартизация это -[URL=http://ru.wikipedia.org/wiki/Стандартизация]http://ru.wikipedia.org/wiki/стандартизация[/URL]

Вообщем для получения более качественного и совместимого товара нужно делать так чтобы этот товар был максимально удобен.

Стандарты не всегда- удобно но привычно. (как то раз я наткнулся на ручку установленную "наоборот" для открытия её нужно было поднять вверх. дело было в гос учреждении в итоге я был 5 в очереди из 20 человек. Пока оттуда не вышла баба МанЯ уборщица. Итого - 45 минут жизни из-за того что не стандарт).А сколько времени тратите вы на разбирательства с не стандартом?

 

(Наполнение по принципу вики будет беру из каментов пишу сюда- обсуждается- исправляю на победивший вариант)

 

Итак  приступим.

1 [U][B]Прописные истины[/B][/U]

- Комментирование кода.// Без комментариев

- Комментирование переменных. // ВЕЗДЕ

- Комментирование вызовов процедур и функций // расписываем параметры и возвращаемые значения!!!

- Указание версий конфигураций для которых работоспособность проверена // зачастую обновления опаздывают от версии основной конфигурации  !!!Критично!!!

- Указание версии подсистемы или обработки //как на форме (если есть форма) так и через переменные или константы (переменные - более желательно)

- Содержание пакета поставки ("продукт" + справка + тех данные (версия дата выпуска изменения по версиям контакты для указания ошибок) ).

- Архивирование в zip (rar - платный продукт если что) и в имени архива ОБЯЗАТЕЛЬНО версию и наименование продукта.

- У infostart.ru есть возможность создавать группы - создавайте как например группу и форум пожелания- ошибки - доработки - примеры. (ибо искать ответ пороше в структурированной системе).

 

2 [B][U]НЕ очевидное - Вероятное[/U] [/B]

 

- Префиксы к полям, ролям, процедурам, справочникам, документам // Вообщем везде везде Все что при обновлении необходимо ручками корректировать - ПРЕФИКСЫ.

 -- И не просто префиксы а например МПР_001_Номенклатура 

--- МПР (моя первая разработка) (любая комбинация букв)

--- 0001 (версия глобальная)

---- пример 0002 - (платформа 8.1) 0003- (платформа 8.1) 0012- (платформа 8.1 УТ ) 0022 (платформа 8.1 БП) и так далее...

0000 - первая цифра (пользовательская) -вторая и третья (код конфигурации) - четвертая (код платформы)

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

- [I][B]Глобальные изменения в подсистеме[/B][/I] (с изменением/удалением/реструктуризацией объектов метаданных ).

-- не удаляйте сразу  добавьте префикс (del_6.13.5) что дословно будет удалено в версии  6.13.5 // это позволит тем кто что-то дописал под себя- не потерять данные (при добавлении объектов метаданных не разработчиком подсистемы).

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

-- реструктуризация (изменение взаимосвязей/подчиненностей и иных критичных данных ) ОБЯЗАТЕЛЬНОЕ УКАЗАНИЕ  НА такой тип изменений.// желательно еще на стадии решения изменения.

 

Итак первые сформулированные тезисы

Промышленное производство - это не 40 прогеров а ПОДХОД.  И совершенно верный - сначала документация - потом код!

 

{awk} 

Что отличает кустарное программирование от промышленного? На мой взгляд в подходе. Кустарное программирование это: сначала код, а потом по коду документация (если успею). Промышленное программирование: документация, и только потом код. 

 

 Кустарное программирование: "Комментарий не соответствует функции". Промышленное программирование: "Функция не соответствует документации". В кустарном варианте будет исправлен комментарий, в промышленном - код.

 

 

с разрешения автора (Алексей Иванов) добавляю его статью без изменений 

Предлагается система префиксов для именования переменных при написании программ на 1С. Сам пользуюсь этой системой более 10 лет

 Префиксы имен переменных в программных модулях

Правила именования переменных при разработке конфигураций на платформе 1С:Предприятие 7.7.

Префикс отделяется от основного имени переменной символом «_» для лучшей читаемости программы.
Гл_ - глобальная переменная, процедура или функция. Описана в глобальном модуле с ключевым словом ЭКСПОРТ.
м_ - переменная, описанная явно или неявно в текущем программном модуле. Рекомендуется всегда явно описывать переменные модуля в начале текста модуля с помощью оператора Перем.
л_ - переменная, описанная явно или неявно в текущей процедуре или функции. Рекомендуется никогда явно не описывать локальные переменные процедур и функций, а создавать их с помощью оператора присваивания, например: л_НомерСтроки=0.
п_ - параметр текущей процедуры или функции.
рд_ - реквизит диалога. Описан в форме диалога.
яч_ - ячейка таблицы в режиме ввода данных. Определена в таблице. Может использоваться в тексте программы в качестве переменных. Является первичной ячейкой и/или группой соседних ячеек, объединенных командой "объединить ячейки". Представляет собой единую неделимую единицу ввода и/или отображения информации в таблице.
от_ - область таблицы. Определена в таблице. Представляет собой группу ячеек таблицы. Используется, как правило, для форматирования ячеек области.
Отсутствие префикса означает, что переменная является реквизитом того объекта (справочника, документа, …), модулем которого является фрагмент программы. Как следствие, в модулях отчетов и обработок, в том числе и внешних, не должны встречаться переменные без префикса.

Правила именования переменных при разработке конфигураций на платформе 1С:Предприятие 8.

Гл_ - глобальная переменная, процедура или функция для основного режима работы конфигурации. Описана в модуле приложения с ключевым словом ЭКСПОРТ.
ГлВС_ - глобальная переменная, процедура или функция для работы конфигурации в режиме внешнего соединения. Описана в модуле внешнего соединения с ключевым словом ЭКСПОРТ.
м_ - (переменная модуля) переменная, описанная явно или неявно в текущем программном модуле. Рекомендуется всегда явно описывать переменные модуля в начале текста модуля с помощью оператора Перем.
л_ - переменная, описанная явно или неявно в текущей процедуре или функции. Рекомендуется никогда явно не описывать локальные переменные процедур и функций, а создавать их с помощью оператора присваивания, например: л_НомерСтроки=0. 
п_ - параметр текущей процедуры или функции.
рф_ - реквизит формы. Определен как реквизит формы (на закладке «Реквизиты»).
Отсутствие префикса означает, что переменная является реквизитом того объекта (справочника, документа, …), модулем которого является фрагмент программы. Как следствие, в модулях отчетов и обработок, в том числе и внешних, не должны встречаться переменные без префикса.

Комментарий.
Давно пользуюсь этой системой и уже не могу с ней расстаться.
Природа префиксов - "по месту рождения" переменной. Префикс отлично дополняет смысл, который можно узнать из имени переменной. Потому что всегда полезно знать, является переменная локальной или объявлена в модуле или это параметр процедуры (функции) или вообще является реквизитом объекта, к которому модуль относится. Когда писал на 7.7 до этой системы,был у меня случай (и потом еще пара случаев, когда другим помогал), когда объявлена переменная в модуле формы и с таким же именем реквизит диалога на форме. Первый раз очень трудно такую ошибку найти. 
При использовании префиксов такое просто невозможно.
Когда ко мне обращались за помощью в поиске ошибки и показывают модуль без префиксов, я часто говорю: "префиксов нет, поэтому и не работает". И на самом деле ошибка находится сама, стоит только расставить префиксы в модуле. Ну не все ошибки, конечно, а те, которые не позволяли двигаться дальше.

Для 8-ки практически все то же самое, что и для 7.7. Только в 8 реквизит диалога отделен от данных, поэтому префикса "рд_" нет. Обращение к элементам формы возможно только через свойство формы "ЭлементыФормы", так что префикс не нужен, и так ни с чем не спутаешь. Зато в форме могут быть реквизиты (которые определены на закладке формы "реквизиты"). Для них префикс "рф_".
Еще пока не пришлось пользоваться префиксами "Гл_" и "ГлВС_" - для этого надо конфигурацию с нуля писать.

Хотел еще суффиксы ввести, "Ссылка" и "Объект". Но не прижились: писать долго, и хотя для смысла они очень полезны, но острой проблемы нет. Поэтому я их использую, но только в случаях, когда это необходимо, поэтому в систему для обязательного применения они не записаны. Но требуются они довольно часто, потому что все-таки важно понимать, переменная "л_Контрагент", например, является "л_КонтрагентСсылка" или "л_КонтрагентОбъект".

8-ка правда немного мешает применению этой системе. В 8-ке помощник ввода текстов гораздо мощнее, чем в 7.7. Например, при вставке предопределенных процедур модуля мы получаем заголовок процедуры вместе с параметрами, которые, к сожалению моему, без префиксов «п_». И ставить их мне иногда лень, Поэтому в текстах моих можно встретить небольшие процедуры без префиксов, если очень тороплюсь. Но в большинстве случаев все-таки меняю. И чем больше и сложнее текст процедуры, тем больше важно поставить префиксы у параметров.

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

В общем, попробуйте сами, не пожалеете.

 

См. также

Результаты ревью кода 1500+ решений каталога Инфостарт: наиболее частые ошибки разработчиков в коде

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

Поделюсь своим опытом аудита кода авторских продуктов с Infostart.ru как одним из элементов применения DevOps-практик внутри Инфостарт. Будет настоящий код, боевые скриншоты, внутренние мемы от команды ИТ-лаборатории Инфостарт и прочее мясо – все, что любят разработчики.

10.04.2024    5678    artbear    80    

75

Ниндзя-код

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

Предлагаю вашему вниманию советы мастеров древности. Программисты прошлого использовали их, чтобы заострить разум тех, кто после них будет поддерживать код. Гуру разработки при найме старательно ищут их применение в тестовых заданиях. Новички иногда используют их ещё лучше, чем матёрые ниндзя. Прочитайте их и решите, кто вы: ниндзя, новичок или, может быть, гуру? (Адаптация статьи "Ниндзя-код" из учебника JavaScript)

01.04.2024    2321    DrAku1a    15    

33

Практическое программирование: когда скорость важнее совершенства

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

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

01.04.2024    601    Prepod2003    6    

2

Когда понадобился новый оператор

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

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

18.03.2024    1356    ZhokhovM    4    

4

Когда разработчик платформы не добавил проверку препроцессоров

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

Когда разработчик платформы решил пойти на кухню за кофе, а проверку препроцессоров не добавил, и вот тут-то и началось: "Что, опять все сломалось? Ну и кофе же я забыл сделать!".😅

18.03.2024    3010    ZhokhovM    4    

9

Реструктуризация - бесконечная история

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

При разработке программ требуемый функционал ставят на первое место, но есть еще и архитектура программы. На горизонте 5-10 лет она становится важнее функционала, который должен работать при масштабировании и росте данных. Реструктуризация 5 терабайтной базы 1С 8.2 в формат 1С 8.3, складывает весь пазл архитектурных просчетов, которые сделали ради функционала. Как это исправить? - для разработки правильной архитектуры, нужно всего лишь сместить фокус с функционала и подумать о «вечном».

29.09.2023    2080    1CUnlimited    15    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
94. adhocprog 1140 20.02.12 16:32 Сейчас в теме
спасибо за статью! куда отвечать? :)
95. iov 406 20.02.12 17:40 Сейчас в теме
96. electronik 28.05.12 15:43 Сейчас в теме
Большое спасибо автору она стоит потраченого времени все понятно, все получается, все работает. Автору респект таких бы статей побольше. Ставлю заслуженое 5+
97. root901 03.10.12 18:18 Сейчас в теме
98. AlexO 135 04.10.12 10:42 Сейчас в теме
(0)
Делайте префиксы и документацию!

1С сама делает документацию из рук вон плохо, и всячески подталкивает и программистов поступать также, а то и вообще ничего не писать.
На префиксы 1С тоже забила, и до сих пор нет одинаково-встроенного типового механизма контроля-получения префиксов чего-либо. Делайте выводы из этого по поводу префиксов.
Если есть функции и процедуры - ОБЯЗАТЕЛЬНО КОММЕНТИРУЙТЕ. И в документацию их.
1С всячески поощряет ничего не делать такого, а только плодить и плодить безумный код.

Для своих подсистем делайте доп интерфейсы.

Исходя из того, что в !С так и не сделали нормальную работу с интерфейсами, не сделали механизмы работы/объединения/совместного использования интерфейсов - делайте выводы, чем будут заниматься разработчики на местах.

Пишите версии к файлам обновления (и если не сильно сложно - изменения основные).
1С в 10% своих типовых обработок пишет номер версии, и никогда - что и где и зачем в них поменялось.
Делайте вывод.

Давайте придерживаться хоть каких-то правил...
1С вообще не придерживается никаких правил, куроча платформы и кладя на любую логику, опыт мирового программинга и совместимость.
Кто-то еще, кроме таких динозавров как я, хочет придерживаться каких-то там правил?

И как от продавца ПЛИЗЗЗ ДОГОВОРА И ДОКУМЕНТЫ оформляйте правильно
ну это и без 1С общая деградация, а 1С её еще усугубляет...

Я продаю ВАШИ продукты , я пишу свои но я не изобретаю велосипеды я ищу подходящие.

Скажите это 1С, у которой в типовых 30% кода - повторы и дубли одних и тех же действий. А уж про интерфейс программ можно и не говорить - десятки способов сделать прсотую операцию (копировать, удалить), и ни одного - проверить правильность.
Я прошу делать продукты Удобные не только Пользователям.
сначала убедите 1С делать удобные продукты, как для пользоватеелей так и для программистов.
А уж там будет видно, на кого равняться...
Так что не с того краю начали - тут система такая и гниющая голова рыбы.
105. iov 406 04.10.12 15:38 Сейчас в теме
AlexO из всего выше сказанного как то напрашивается вывод - ничего не делать? Да 1С не заботится о многом , но это не значит что все должны забить и ничего не делать...
106. vde69 925 01.11.12 08:42 Сейчас в теме
дополнение к префиксам использую отдельных префикс "о" для обьектов

например в коде
Контрагент - ссылка
оКонтрагент - объект

очень удобно в плане избегания передачи мутабельных объектов
107. Atori-kun 04.12.14 05:55 Сейчас в теме
Извините, не удержался...
108. Bukaska 140 04.12.14 09:50 Сейчас в теме
(107) Atori-kun, Спасибо! Поржала)))
109. Bell 36 03.08.19 17:55 Сейчас в теме
Я так понимаю, речь идет о стиле программирования в 1С...
110. Fox-trot 158 04.08.19 08:04 Сейчас в теме
(109) аж три года думал?! или больше?
Оставьте свое сообщение