1. harvester_sorrow 10 18.04.19 17:23 Сейчас в теме

Стандарты разработки на 1С

Добрый день. Руководство решило внедрить стандарты разработки на 1С. Выдали нам чек-листы и попросили ознакомиться. Среди пунктов есть такой
"процедуры и функции не более 40 строк "
И как то маловато, если честно.

вот собственно вопрос, кто то встречал на ИТС рекомендации по количеству строк? может кто ссылкой поделится?
Ответы
Избранное Подписка Сортировка: Древо
2. tusv 147 18.04.19 17:40 Сейчас в теме
Ну тут. пунктик на минимальную транзакцию и читабельность текста. А что собственно мешает В функция и процедурах Вызывать другие, с ограничением количества строк? Смотришь и как в учебнике, когда знаешь решение задачи. Удобно жеж
3. tusv 147 18.04.19 18:01 Сейчас в теме
Кстати. Мой приятель сгонял на экскурсию в Майкрософт в махровых 90х. Так там миллионеры программисты пишут всего 5 результативных строчек в день А Вы про 40:)
4. coollerinc 39 18.04.19 18:03 Сейчас в теме
Пишите все в одну строчку))
Вот тут описаны стандарты от 1с: https://its.1c.ru/db/v8std#browse:13:-1:72:73

По длине процедур я ни чего не нашел

Тексты запросов, сложно уместить в 40 строк
5. tusv 147 18.04.19 18:39 Сейчас в теме
(4) Текст запроса по сути одна строка. Это не считается. Особенно в Зуп, где запросы, если все собрать, то можно по распечатке текста запроса в магаз сгонять:) Да и то, с Менеджером временных таблиц можно разбить по миниму.
Главное в Стандартах, это чтобы было понятно твоему коллеге. Остальное можно оспорить, как вредное оппортунистическое влияние контрреволюционных сил на развитие Программистов, как Класс:)
18. harvester_sorrow 10 19.04.19 11:25 Сейчас в теме
(4) Спасибо за ссылку, в том то и дело что ни я ни коллеги, ни окружение не вкурсе о "строках", вот и решил спросить)) и да, на ИТС пусто по этому вопросу.
6. Oldsad 19.04.19 06:05 Сейчас в теме
для идеальных разработок в вакууме текст процедуры/функции должен умещаться на экран
отсюда наверно и идет рекомендация на 40 строк кода (экраны у разработчиков разные)

для практических задач без потери читабельности и усложнения кода
рекомендуется делать текст процедур/фунцкций не более чем на три экрана

к сожалению не помню источник где читал
7. SedovSU@mail.ru 292 19.04.19 06:30 Сейчас в теме
Это какой то бред ограничивать написание процедур и функций!!!!! Вы откройте типовые конфигурации ERP БП или ЗУП где начисляется зарплата или расчет себестоимости - где там 40 строк кода?? одни запросы ого-ого сколько строк.

Стандарта по количеству строк точно нету, еще может вам введут страндарт на количество символов в коде так это еще будет бредовый. Я считаю должно быть читательно написан код
alex-l19041; ben19791010; +2 Ответить
8. Oldsad 19.04.19 07:04 Сейчас в теме
(7)

это не бред, а один из способов улучшения читаемости кода

и типовые конфы плохой пример, там нарушаются практически все рекомендации 1С к написанию кода :)
тексты запроса считаются одной строкой, и зачастую формируются отдельной функцией
9. SedovSU@mail.ru 292 19.04.19 07:24 Сейчас в теме
(8) То есть представьте у меня код процедуры на 160 строк и тогда я должен написать

Процедура Первая()
   // первые 40 строк кода
   Вторая() 
КонецПроцедуры

Процедура Вторая()
 /// следующие 40 строк кода
 Третья()
Конецпроцедуры

Процедура Третья()
    //// следющие 40 строк кода
Конецпроцедуры
Показать


ЭТО УЛУЧШАЕТ ЧИТАЕМОСТЬ КОДА.

Вот знаете кода в 60-80 года придумывали языки программирования думаю в нем не закладаывали что где то в 2019 году кто то будет делить код процедуры для читаемоести по 40 строк!!!!!!!

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

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

А вот касательно типовых конфигураций - там по крайне мере выбран единый метод/концепция к написанию и разработки. Вот к этому нужно стремится
10. dhurricane 19.04.19 07:39 Сейчас в теме
(9) Мне кажется Вы перегибаете. :) Либо я не до конца понял требования в компании автора. Ведь ограничение в 40 строк кода не может быть жестким правилом, скорее рекомендация.

Ну и Ваш пример действительно ухудшаем читаемость. Но не из-за ограничения, а из-за архитектуры. Более читаемо будет скорее так:
Процедура Основная()
   ДелаемРаз();
   ДелаемДва();
   ДелаемТри();
КонецПроцедуры

Процедура ДелаемРаз()
   // первые 40 строк кода
КонецПроцедуры

Процедура ДелаемДва()
   // следующие 40 строк кода
КонецПроцедуры

Процедура ДелаемТри()
   // последние 40 строк кода
КонецПроцедуры
Показать
12. SedovSU@mail.ru 292 19.04.19 07:49 Сейчас в теме
(10) Возможно!!! я не спорю)))))

Вот тот пример который вы привели - да он более читательный, но вот если в процедуре ДелаемРаз() будет 100 строк - ее как нужно поделить?? - вот тут ни понимаю.

Если это как за рекомендацию взять что предпочителен код процедуры в 40 строк - то да наверное так как вы пишите предпочительно. Мне кажется тут у каждого разработчика свой какой то подход и мнение.
14. ksen 19.04.19 08:20 Сейчас в теме
(9)не должно быть в коде настолько огромных процедур(хотя длина в 40 тоже странная). Реверсить подобный код другому человеку будет намного сложнее чем нормальный.
15. SedovSU@mail.ru 292 19.04.19 08:31 Сейчас в теме
(14) Это очень странная длина в 40 строк. Даже не понятно откуда она взялась из каких таких соображений. Вот я считаю что этот подход разбитие кода-процедур на 40 строк не очень вариант. А вот разбитие фрагментов кода предментно по процедурам - то это да. Одна процедура получает запрос, другая его обрабатывает, третья выводит - вот это я еще могу понять. В принципе так и пишут все/большинство
16. ksen 19.04.19 08:38 Сейчас в теме
(15)Код должен в идеале быть обозреваемый за 1 экран, чтобы посмотреть на кусок кода, глянуть аннотацию и понять что тут происходит, за 7 лет кодинга помню только 2 функции которые вылезали за 100 строк первая была оберткой из веба, вторая перепиливание одного из модулей билиотеки keros под себя.
17. SedovSU@mail.ru 292 19.04.19 09:22 Сейчас в теме
(16) Ну вот к сожелению в моей практике на крупном промышленном предприятии, с "извращенскими задачами" встречает код свыше 100 строк. Вот например даже обход циклом таблицы результата и проверки корректности расчета формул при расчете плановой себестоимости в этой таблице (а это всего лишь один фрагмент кода) превышет 100 строк кода((((( Все зависит от задачи (от масштаба задачи) и реализации. Даже вот в этом примере если я выдерну проверку в отдельную процедуру - то она все равно перевалит за 100 строк, ввиду кучу условий и куча проверяемых реквизитов((( вот как то так(
11. SedovSU@mail.ru 292 19.04.19 07:43 Сейчас в теме
(8)Дополнительно еще добавлю. Программный код - это как решение задачи. Вспомните как мы в школе или техникуме/вузе решали задачи. Представьте вам нужно решить систему линейных уровнений или более сложное задачу по оптимальности симплекс методом/траноспортную задачу что занимает чуть ли не всю 12 листовую тетрадку.

По логике кода в 40 строк я должен в тетрадке написать несколько действий. то есть я пишу решение в тетрадки (приняв что каждое действия это новая процедура/решение на другом листке бумаги)

Первое действие, Второе действие, Третье действие и т.д. И при этом говорю Первое действие на стр. 2 второе действие на стрице 5, третье на странице 1 - как преподаватель это будет проверять???? перелистывать то одну страницу, то другую??? Да он умрет это делать.

Поэтому в тетрадках делает все последовательно - так же как и алгоритм программы.

Для улучшения читаемости кода - ограничение в количестве строк не улучшить а только ухудших в виду множества процедур!!!!!!!

А вот чтобы повысить читаемость кода например вот такой код

МассивСтрок = ТабличнаяЧасть.НайтиСтроки(Новый Структура("Контрагент", Контрагент));


Лучше написать так

Отбор = Новый Структура("Контрагент", Контрагент)
МассивСтрок = ТабличнаяЧасть.НайтиСтроки(Отбор);


Вот ЭТО ТОЧНО ЧИТАЕМОСТЬ УЛУЧШИТ

Ну тут мнений может много и каждого свое! Каждый остается при своем
13. ksen 19.04.19 08:15 Сейчас в теме
пишу в 1с по pep8(с небольшими оговорками под 1с), удобно и читабельно.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата до 120 000 руб.
Полный день

Работа от Инфостарт
Санкт-Петербург
Временный (на проект)

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день