|
Использование функций вместо процедур. Подмена понятий или..? | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
lxs
23.12.19
✎
17:10
|
Приветствую всех.
Некоторое время назад довелось заниматься code review команды разработчиков. Наткнулся на то, что в коллективе была принята методология использования вызова функций вместо процедур независимо от того, возвращает ли что-то данная функция или нет. То есть код РассчитатьЗадолженность(); //где РассчитатьЗадолженность() - функция Повсеместно. У кого какой опыт, кто какой методологии придерживается? Может быть я консервативен, но зачем использовать не по назначению конструкции? |
||||||||||
4
SalavatUlaev
23.12.19
✎
17:16
|
Уверен, что правильно пункты назвал, не думаешь что разграничивать - это говнокод или ты самый умный?
В некоторых языках программирования нет вообще процедур, там все методы возвращают значения, в чем есть свои плюсы Свой вариант |
||||||||||
5
1С Ассенизатор ПРОФ
24.12.19
✎
08:10
|
(3) Плюс
(4) И тебе тоже Не вижу проблемы, кроме конечно понимания при чтении. Свой вариант |
||||||||||
7
dmpl
24.12.19
✎
08:21
|
Если в процедуре происходит ошибка - логично вернуть ее как результат функции. Поэтому любая процедура есть недоделанная функция.
Свой вариант |
||||||||||
14
Garykom
гуру
24.12.19
✎
08:49
|
Процедура это функция которая возвращает 0 значений.
Должно быть как в Golang, только функции которые возвращают от нуля до сколько надо значений, не обязательно одно. Искусственное разделение на процедуры и функции глупо и только вносит путаницу и усложняет изучение и применение ЯП. Свой вариант |
||||||||||
26
Lama12
24.12.19
✎
09:00
|
Поддержу (4).
Использование в качестве процедур, функций очень удобно, хотя и заставляет думать о том, как использовать результаты :-) Свой вариант |
||||||||||
74
mikecool
24.12.19
✎
12:20
|
в чем, кроме идейного, разделение между процедурой и функцией?
или это как спор, с какой стороны сосиску есть? или автор - фузиновец? ) Свой вариант |
||||||||||
81
H A D G E H O G s
24.12.19
✎
12:44
|
1) Процедуры не нужны.
2) Функция должна возвращать структуру. 3) Скорее всего функция должна принимать структуру, но это не точно. Свой вариант |
||||||||||
122
MetaDon
24.12.19
✎
19:51
|
1. одни функции
2. функция без возврата в окончании, возвращают 0 3. булевы - ложь и истина тоже заменить на 0 и иное, тоесть Ложь это константа =1 4. код в функцию разрешать вставлять как текст динамически, тоесть код может сам вписываться в основной код, и получать его как func.text, 5. прикладным обьектам разрешать копировать функции от одного к другому; например; кодф=Справочник.ТМЦ.Функция.Расчет.Текст; далее программно ...изменяем/удаляем строки и присваиваем текст функции другому обьекту, это простейшая замена наследованию в 1с)) Свой вариант |
||||||||||
131
Лефмихалыч
24.12.19
✎
20:42
|
(0) я не имею ничего против, если вся команда так делает. Просто локальная особенность соглашения о кодировании. Нормальная тема.
Свой вариант |
||||||||||
132
DomovoiAtakue
24.12.19
✎
20:46
|
(0)Пока еще не перестраивался, но сам пришел к выводу что процедуры не нужны. Написал Процедуру, которая делает ряд действий с данными. Потом решил абгрейдить и вернуть с какими данными все норм проделано, а с какими нет. Можно пойти двумя способами: 1) в процедуре докинуть параметр и в него возвращать, 2) сделать из процедуры функцию и возвращать структуру с чем уже хочешь. Первый вариант мне не нравится, т.к. глупо функцию заменять искусственным костылем. Во втором варианте получается мне надо переписывать слово процедура на функция желательно менять ее название и лазить везде его менять. На мой взгляд логичнее сразу писать функции: когда надо вы используете как процедуру, но если вдруг что приперло вы уже можете возвращать значения. С названиями думаю можно выработать систему. Деление на процедры и функции только дело привычки, которую нам когда-то навязали. Вызов процедуры на очень малое время быстрее чем вызов функции: может давным давно это и важно было, но сейчас - нет.
Свой вариант |
||||||||||
146
Дык ё
25.12.19
✎
09:22
|
а еще функцию можно вызвать из табло
Свой вариант |
||||||||||
233
uno-group
25.12.19
✎
12:36
|
Ну дык процедура на 28% длиннее функции. Соответственно кто вместо процедуры пишет функция, работает на 28% эффективнее перфекционистов.
Свой вариант |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |