1.
harvester_sorrow
2418.04.19 17:23 Сейчас в теме
Добрый день. Руководство решило внедрить стандарты разработки на 1С. Выдали нам чек-листы и попросили ознакомиться. Среди пунктов есть такой
"процедуры и функции не более 40 строк "
И как то маловато, если честно.
вот собственно вопрос, кто то встречал на ИТС рекомендации по количеству строк? может кто ссылкой поделится?
Ну тут. пунктик на минимальную транзакцию и читабельность текста. А что собственно мешает В функция и процедурах Вызывать другие, с ограничением количества строк? Смотришь и как в учебнике, когда знаешь решение задачи. Удобно жеж
Кстати. Мой приятель сгонял на экскурсию в Майкрософт в махровых 90х. Так там миллионеры программисты пишут всего 5 результативных строчек в день А Вы про 40:)
(4) Текст запроса по сути одна строка. Это не считается. Особенно в Зуп, где запросы, если все собрать, то можно по распечатке текста запроса в магаз сгонять:) Да и то, с Менеджером временных таблиц можно разбить по миниму.
Главное в Стандартах, это чтобы было понятно твоему коллеге. Остальное можно оспорить, как вредное оппортунистическое влияние контрреволюционных сил на развитие Программистов, как Класс:)
18.
harvester_sorrow
2419.04.19 11:25 Сейчас в теме
(4) Спасибо за ссылку, в том то и дело что ни я ни коллеги, ни окружение не вкурсе о "строках", вот и решил спросить)) и да, на ИТС пусто по этому вопросу.
для идеальных разработок в вакууме текст процедуры/функции должен умещаться на экран
отсюда наверно и идет рекомендация на 40 строк кода (экраны у разработчиков разные)
для практических задач без потери читабельности и усложнения кода
рекомендуется делать текст процедур/фунцкций не более чем на три экрана
7.
SedovSU@mail.ru
29719.04.19 06:30 Сейчас в теме
Это какой то бред ограничивать написание процедур и функций!!!!! Вы откройте типовые конфигурации ERP БП или ЗУП где начисляется зарплата или расчет себестоимости - где там 40 строк кода?? одни запросы ого-ого сколько строк.
Стандарта по количеству строк точно нету, еще может вам введут страндарт на количество символов в коде так это еще будет бредовый. Я считаю должно быть читательно написан код
это не бред, а один из способов улучшения читаемости кода
и типовые конфы плохой пример, там нарушаются практически все рекомендации 1С к написанию кода :)
тексты запроса считаются одной строкой, и зачастую формируются отдельной функцией
Вот знаете кода в 60-80 года придумывали языки программирования думаю в нем не закладаывали что где то в 2019 году кто то будет делить код процедуры для читаемоести по 40 строк!!!!!!!
Если прям нужно поделить так в коде добавьте области на каждый код блока всяко будет лучше.
Я вам точно скажу - читаемость кода не увеличиться если ограничить ее на 40 строк - она их усложнить путем чтения не одной процедуры и десяток процедур. Представьте книгу - текст который был написан на разных страница. То есть на первой страницы начало, а на третье продолжение, на второй продолжение то что в третьей написано!
А вот касательно типовых конфигураций - там по крайне мере выбран единый метод/концепция к написанию и разработки. Вот к этому нужно стремится
(9) Мне кажется Вы перегибаете. :) Либо я не до конца понял требования в компании автора. Ведь ограничение в 40 строк кода не может быть жестким правилом, скорее рекомендация.
Ну и Ваш пример действительно ухудшаем читаемость. Но не из-за ограничения, а из-за архитектуры. Более читаемо будет скорее так:
Процедура Основная()
ДелаемРаз();
ДелаемДва();
ДелаемТри();
КонецПроцедуры
Процедура ДелаемРаз()
// первые 40 строк кода
КонецПроцедуры
Процедура ДелаемДва()
// следующие 40 строк кода
КонецПроцедуры
Процедура ДелаемТри()
// последние 40 строк кода
КонецПроцедуры
Вот тот пример который вы привели - да он более читательный, но вот если в процедуре ДелаемРаз() будет 100 строк - ее как нужно поделить?? - вот тут ни понимаю.
Если это как за рекомендацию взять что предпочителен код процедуры в 40 строк - то да наверное так как вы пишите предпочительно. Мне кажется тут у каждого разработчика свой какой то подход и мнение.
(9)не должно быть в коде настолько огромных процедур(хотя длина в 40 тоже странная). Реверсить подобный код другому человеку будет намного сложнее чем нормальный.
15.
SedovSU@mail.ru
29719.04.19 08:31 Сейчас в теме
(14) Это очень странная длина в 40 строк. Даже не понятно откуда она взялась из каких таких соображений. Вот я считаю что этот подход разбитие кода-процедур на 40 строк не очень вариант. А вот разбитие фрагментов кода предментно по процедурам - то это да. Одна процедура получает запрос, другая его обрабатывает, третья выводит - вот это я еще могу понять. В принципе так и пишут все/большинство
(15)Код должен в идеале быть обозреваемый за 1 экран, чтобы посмотреть на кусок кода, глянуть аннотацию и понять что тут происходит, за 7 лет кодинга помню только 2 функции которые вылезали за 100 строк первая была оберткой из веба, вторая перепиливание одного из модулей билиотеки keros под себя.
17.
SedovSU@mail.ru
29719.04.19 09:22 Сейчас в теме
(16) Ну вот к сожелению в моей практике на крупном промышленном предприятии, с "извращенскими задачами" встречает код свыше 100 строк. Вот например даже обход циклом таблицы результата и проверки корректности расчета формул при расчете плановой себестоимости в этой таблице (а это всего лишь один фрагмент кода) превышет 100 строк кода((((( Все зависит от задачи (от масштаба задачи) и реализации. Даже вот в этом примере если я выдерну проверку в отдельную процедуру - то она все равно перевалит за 100 строк, ввиду кучу условий и куча проверяемых реквизитов((( вот как то так(
11.
SedovSU@mail.ru
29719.04.19 07:43 Сейчас в теме
(8)Дополнительно еще добавлю. Программный код - это как решение задачи. Вспомните как мы в школе или техникуме/вузе решали задачи. Представьте вам нужно решить систему линейных уровнений или более сложное задачу по оптимальности симплекс методом/траноспортную задачу что занимает чуть ли не всю 12 листовую тетрадку.
По логике кода в 40 строк я должен в тетрадке написать несколько действий. то есть я пишу решение в тетрадки (приняв что каждое действия это новая процедура/решение на другом листке бумаги)
Первое действие, Второе действие, Третье действие и т.д. И при этом говорю Первое действие на стр. 2 второе действие на стрице 5, третье на странице 1 - как преподаватель это будет проверять???? перелистывать то одну страницу, то другую??? Да он умрет это делать.
Поэтому в тетрадках делает все последовательно - так же как и алгоритм программы.
Для улучшения читаемости кода - ограничение в количестве строк не улучшить а только ухудших в виду множества процедур!!!!!!!
А вот чтобы повысить читаемость кода например вот такой код