Имя: Пароль:
1C
1С v8
Использование функций вместо процедур. Подмена понятий или..?
, ,
0 lxs
 
23.12.19
17:10
1. Следует строго разграничивать proc(x) и func(x) 44% (12)
2. Свой вариант 44% (12)
3. Без разницы, говнокод - наше всё 11% (3)
Всего мнений: 27

Приветствую всех.

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

То есть код

РассчитатьЗадолженность(); //где РассчитатьЗадолженность() - функция

Повсеместно.

У кого какой опыт, кто какой методологии придерживается? Может быть я консервативен, но зачем использовать не по назначению конструкции?
50 lodger
 
24.12.19
10:54
(13)
Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    // Инициализация дополнительных свойств для проведения документа
ПроведениеВыполнено=Ложь;
   Если ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения) Тогда
    
    
    // Движения по денежным средствам.

    Если ДенежныеСредстваСервер.ОтразитьДенежныеСредстваУПодотчетныхЛиц(ДополнительныеСвойства, Движения) Тогда
     Если ДенежныеСредстваСервер.ОтразитьДенежныеСредстваКСписаниюСПодотчетныхЛиц(ДополнительныеСвойства, Движения) Тогда

        ПроведениеВыполнено=Истина;
     КонецЕсли;
    КонецЕсли;
   КонецЕсли;
...
Если ПроведениеВыполнено Тогда
// тут можно обработать какие-то действия при успехе проведения
Иначе
// тут нужно обработать какие-то действия при неуспехе проведения
отказ = истина;
КонецЕсли;

КонецПроцедуры

Без разницы, говнокод - наше всё
93 fisher
 
24.12.19
13:11
Не вижу в этом особой проблемы, хотя и довольно странно в ряде случаев. Процедура - частный случай функции и добавлена чисто для удобства. И довольно странно этими удобствами не пользоваться. Использование процедуры к месту позволяет больше понять уже по сигнатуре.

Без разницы, говнокод - наше всё
142 Bigbro
 
25.12.19
06:00
главное - чтобы в рамках решения все было более-менее единообразно.
при этом будет там процедурный или функциональный или объектный подход не так уж важно, главное чтобы применение выбранного варианта было уместным и решало поставленные задачи.
проблемы начинаются когда разные куски выполнены с использованием различных подходов и это все в рамках одного решения.
тогда конечно порой мозг взрывается когда все идет вперемешку.

Без разницы, говнокод - наше всё