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

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

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

вот собственно вопрос, кто то встречал на ИТС рекомендации по количеству строк? может кто ссылкой поделится?
Ответы
Избранное Подписка Сортировка: Древо
2. tusv 148 18.04.19 17:40 Сейчас в теме
Ну тут. пунктик на минимальную транзакцию и читабельность текста. А что собственно мешает В функция и процедурах Вызывать другие, с ограничением количества строк? Смотришь и как в учебнике, когда знаешь решение задачи. Удобно жеж
3. tusv 148 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 148 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С
Санкт-Петербург
зарплата от 115 000 руб. до 160 000 руб.
Полный день

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