|
Стиль написания кода | ☑ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
В тылу врага
26.04.13
✎
13:10
|
Что вы скажите о стиле кода:
Возврат Запрос.Выполнить().Выгрузить()[0].СуммаДолга; |
||||||||||||||||
1
drcrasher
26.04.13
✎
13:11
|
дурдом. если запрос пустой, то Выгрузить()[0] свалится с ошибкой
Мне пох |
||||||||||||||||
2
zak555
26.04.13
✎
13:11
|
может проще не запросом, а объектной техникой получить сумму долга ?
|
||||||||||||||||
3
Волшебник
26.04.13
✎
13:12
|
(1)
Попытка Возврат Запрос.Выполнить().Выгрузить()[0].СуммаДолга; Исключение Возврат 0; КонецПопытки |
||||||||||||||||
4
В тылу врага
26.04.13
✎
13:13
|
(1) будем считать, что запрос гарантированно не пуст, например
ВЫБРАТЬ ЕСТЬNULL(СУММА(Сумма),0) КАК СуммаДолга ИЗ РегистрНакопления.Чтото.Остатки(....) |
||||||||||||||||
5
Alex S D
26.04.13
✎
13:13
|
.
Отлично |
||||||||||||||||
6
МихаилМ
26.04.13
✎
13:13
|
не вясните профилеровщиком, какой метод ресурсоемкий
Плохо |
||||||||||||||||
7
shuhard
26.04.13
✎
13:13
|
(0) руки резать
Плохо |
||||||||||||||||
8
В тылу врага
26.04.13
✎
13:13
|
(3) вот попытка тут точно не оправдана
|
||||||||||||||||
9
Господин ПЖ
26.04.13
✎
13:14
|
(3) ламерюга...
|
||||||||||||||||
10
GANR
26.04.13
✎
13:14
|
Один оператор - одна строчка!
Плохо |
||||||||||||||||
11
Волшебник
26.04.13
✎
13:14
|
(8) Тебя забыли спросить
|
||||||||||||||||
12
бомболюк
26.04.13
✎
13:15
|
я так конечно не пишу никогда но в общем то
Пойдет |
||||||||||||||||
13
Alex S D
26.04.13
✎
13:15
|
(10) нахрена? ты лисп юзал?
|
||||||||||||||||
14
В тылу врага
26.04.13
✎
13:16
|
(11) это мое мнение, можешь оставаться при своем
|
||||||||||||||||
15
andreymongol82
26.04.13
✎
13:16
|
(10) бэйсик что ли?
|
||||||||||||||||
16
jsmith82
26.04.13
✎
13:18
|
Сумма = 0;
Выборка = Запрос.Выполнить.Выбрать(); Если Выборка.Следующий() Тогда Сумма = Выборка.Сумма; КонецЕсли; Возврат Сумма; Плохо |
||||||||||||||||
17
Maxus43
26.04.13
✎
13:18
|
Даже если работает - то плохо, ибо копрокод. Код должен красив и гармоничен
Плохо |
||||||||||||||||
18
le_
26.04.13
✎
13:18
|
ВозвращаемоеЗначение = 0;
|
||||||||||||||||
19
Alex S D
26.04.13
✎
13:18
|
(14) свое мнение озвучь... для порядка)
|
||||||||||||||||
20
Rie
26.04.13
✎
13:18
|
Коротко и понятно.
Отлично |
||||||||||||||||
21
Лефмихалыч
26.04.13
✎
13:19
|
(0) отличный способ сделать плохо
|
||||||||||||||||
22
Maxus43
26.04.13
✎
13:19
|
Выборка = Запрос.Выполнить.Выбрать();
Если Выборка.Следующий() Тогда Возврат Выборка.Сумма; Иначе Возврат 0; КонецЕсли; |
||||||||||||||||
23
В тылу врага
26.04.13
✎
13:19
|
(16) много букв
|
||||||||||||||||
24
В тылу врага
26.04.13
✎
13:20
|
(19) по поводу (3)? я озвучил - оператор Попытка неуместен тут
|
||||||||||||||||
25
Лефмихалыч
26.04.13
✎
13:20
|
хуже только, если на это гогно что-нибудь разделить без проверки на ноль
Плохо |
||||||||||||||||
26
Alex S D
26.04.13
✎
13:20
|
(24) по поводу (0)
|
||||||||||||||||
27
andreymongol82
26.04.13
✎
13:20
|
(0) при таком гм... стиле, есть вероятность ошибик
Плохо |
||||||||||||||||
28
Лефмихалыч
26.04.13
✎
13:20
|
(16) садись, 2
проверку нудно выполнять так Если Результат.Пустой() |
||||||||||||||||
29
Rie
26.04.13
✎
13:21
|
(3) Не факт. Этот код, скорее всего, - лишь часть более общего кода. И в Попытка куда лучше завернуть весь (представляющий законченную операцию) код, чем на каждый фрагмент "попытаться".
|
||||||||||||||||
30
Necessitudo
26.04.13
✎
13:21
|
Лучше расскажите, как вы комментарии в коде пишите. Прям перед процедурой описываете ее(процедуры) смысл?
|
||||||||||||||||
31
andreymongol82
26.04.13
✎
13:21
|
(28) Почему?
|
||||||||||||||||
32
jsmith82
26.04.13
✎
13:21
|
(28) poker face
|
||||||||||||||||
33
Лефмихалыч
26.04.13
✎
13:22
|
(4) если запрос на блокировке скопытится, то ты все равно получишь пустотень
|
||||||||||||||||
34
Rie
26.04.13
✎
13:22
|
Мне кажется - или все действительно считают, что в (0) приведена логически завершённая операция, а не кусочек оной?
|
||||||||||||||||
35
GANR
26.04.13
✎
13:22
|
(13)(15) Это просто культура программирования.
|
||||||||||||||||
36
almar
26.04.13
✎
13:23
|
Я всегда так пишу
Отлично |
||||||||||||||||
37
Лефмихалыч
26.04.13
✎
13:25
|
(31) потому, что быстрее и потому, что компания 1С этого требует от прикладных решений
|
||||||||||||||||
38
NS
26.04.13
✎
13:25
|
Всё зависит от уровня. Для программиста, который будет час вникать что-же делает это строка это слишком перегруженная строка.
Для того кто сразу понимает что он делает - это совершенно нормальный код, вместо того чтоб читать несколько строк достаточно прочитать одну строку кода. |
||||||||||||||||
39
В тылу врага
26.04.13
✎
13:26
|
(33) скопытиться запрос, то будет исключение как раз, чего не нужно
|
||||||||||||||||
40
SherifSP
26.04.13
✎
13:26
|
(0) Cамый оптимальный вариант, на мой взгляд
Выборка = Запрос.Выполнить().Выгрузить(); Если Выборка.Количество() > 0 Тогда Возврат Выборка[0].СуммаДолга; Иначе Возврат 0; КонецЕсли; Пойдет |
||||||||||||||||
41
NS
26.04.13
✎
13:26
|
(10) В этой строчке ровно один оператор. "Возврат"
|
||||||||||||||||
42
jsmith82
26.04.13
✎
13:27
|
в средах развитого программирования возврат должен происходить как минимум в теле функции, а не в блоке
|
||||||||||||||||
44
Rie
26.04.13
✎
13:27
|
(42) Э?
|
||||||||||||||||
45
Rie
26.04.13
✎
13:27
|
(39) А исключение ты поймаешь "наверху", где реализуется содержательная часть.
|
||||||||||||||||
46
Лефмихалыч
26.04.13
✎
13:28
|
(38) если говорить об восьмибитных программистах, которые читают код построчно и компилят в голове, то да. А квалифицированный специалист, чтобы разобраться в принципах функционирования читает бегло блоками и конструкциями, так что пофиг - одна строка будет или 3
|
||||||||||||||||
47
Lexusss
26.04.13
✎
13:28
|
Красиво, мне нравится.
Ошибок не бывает, если выбирается агрегированная функция без группировки Отлично |
||||||||||||||||
48
Rie
26.04.13
✎
13:29
|
Это в Питоне принято всё, что не попадя, в исключения обёртывать. А у нас тут - не Питон :-)
|
||||||||||||||||
49
SherifSP
26.04.13
✎
13:30
|
Какой вариант лучше (3) Или (40) ?
|
||||||||||||||||
50
Rie
26.04.13
✎
13:30
|
(46) Не по фиг. Одна строка - _при прочих равных_ - легче воспринимается.
|
||||||||||||||||
51
Джинн
26.04.13
✎
13:30
|
Быдлокод
Плохо |
||||||||||||||||
52
Rie
26.04.13
✎
13:30
|
(49) Оба хуэйвэй.
|
||||||||||||||||
53
Rie
26.04.13
✎
13:31
|
(51) Да ну? А в чём именно "быдло"?
|
||||||||||||||||
54
В тылу врага
26.04.13
✎
13:31
|
(45) про обертывания в попытку я давно создавал тему - про случай, когда все работало без ошибок, но неправильно - большой кусок был в попытке
|
||||||||||||||||
55
SherifSP
26.04.13
✎
13:31
|
(52) Аргументируйте)
|
||||||||||||||||
56
rs_trade
26.04.13
✎
13:33
|
(40) я так пишу
Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.СуммаДолга; Иначе Возврат 0; КонецЕсли; |
||||||||||||||||
57
andreymongol82
26.04.13
✎
13:34
|
(37) От оно че. А в типовых таки на Следующий() частенько видется. Таки надо посравнивать на досуге.
Я, кстати, частенько пишу типа такого Если Отказ Тогда Возврат; КонецЕсли; Нафига загромождать 3-мя? |
||||||||||||||||
58
orefkov
26.04.13
✎
13:34
|
Если платят не за количество строк кода, то
Отлично |
||||||||||||||||
59
SherifSP
26.04.13
✎
13:35
|
Если ТС нужно минимум кода и чтобы что то возвращало, тогда возвращай текст запроса%)
|
||||||||||||||||
60
Полотенчик
26.04.13
✎
13:35
|
(28) зачем специально проверять Результат.Пустой(), а затем брать первый элемент, если выборкой Следующий() уже будет понятно что результат не пустой?
(40) зачем таким образом создавать таблицу значений, функционал которой использоваться не будет? имхо оптимальнее делать выборку, а не выгрузку Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Выборка.СуммаДолга; Иначе Возврат 0; КонецЕсли; Плохо |
||||||||||||||||
61
NS
26.04.13
✎
13:35
|
(46) Учитывая что размер экрана ограничен,
и что чтоб разбить этот оператор нужно вводить несколько дополнительных переменных - разделение его на строки сразу снизит читабельность. Выше было сказано правильно - одна строчка - как правило один оператор (есть исключения, например switch/case - в случае одного оператора, break как правило пишут в той-же строке вторым оператором) В этой строчке - один оператор. "Одна строка - один метод" как предлагается многими в этой ветке - это маразм. |
||||||||||||||||
62
Wobland
26.04.13
✎
13:35
|
строк может не быть совсем
Плохо |
||||||||||||||||
63
Rie
26.04.13
✎
13:36
|
(55) Попытка - операция, мягко говоря,
а) дорогостоящая; б) _максирующая_ ошибку (поскольку после неё продолжается нормальное исполнение). Поэтому в Попытка имеет смысл заворачивать законченные операции (в некотором роде - транзакции). В (0) - явно не законченная, а промежуточная операция. Поэтому оборачивать её в Попытка - нецензурно (в предположении, что операция в целом - контролируется Попытка или ещё чем). |
||||||||||||||||
64
orefkov
26.04.13
✎
13:37
|
+(58)
Естественно, это если запрос правильный, т.е. гарантировано возвращает ровно одну строку. |
||||||||||||||||
65
andreymongol82
26.04.13
✎
13:37
|
(60) А так можно:
Возврат ?(Выборка.Следующий(),Выборка.СуммаДолга,0) |
||||||||||||||||
66
NS
26.04.13
✎
13:37
|
Забыл проголосовать.
Естественно: Отлично |
||||||||||||||||
67
SherifSP
26.04.13
✎
13:38
|
(63) А (40) в (60) Уже объяснили, но пошел тестировать выгрузить() и выбрать()
|
||||||||||||||||
68
Rie
26.04.13
✎
13:39
|
(67) А можно пояснить - какая задача решается-то? :-)
|
||||||||||||||||
69
Alex S D
26.04.13
✎
13:40
|
(68) задача - убить время в пятницу)
|
||||||||||||||||
70
SherifSP
26.04.13
✎
13:41
|
(68) Оптимизация скорости)
|
||||||||||||||||
71
ptiz
26.04.13
✎
13:42
|
(0) Часто так делаю.
Отлично |
||||||||||||||||
72
NS
26.04.13
✎
13:43
|
(70) Странно, а в (0) вроде шла речь не о скорости и экономии ресурсов, а о стиле и читабельности.
|
||||||||||||||||
73
Rie
26.04.13
✎
13:43
|
(69) Тогда правильный код
Попытка Попытка Попытка Если Х="время убито" Тогда ВызватьИсключение "Ну, звиздец!" КонецЕсли; Исключение Сообщить("Заколебали"); КонецПопытки; Исключение Сообщить("Со второго тоже"); КонецПопытки; Исключение Сообщить("С первого раза не удалось"); КонецПопытки; |
||||||||||||||||
74
fisher
26.04.13
✎
13:43
|
(0) Если запрос гарантированно не пуст, то нормально. Я примерно так и делаю обычно. Только возвращаемое выражение все же стараюсь отдельно прописывать, чтоб читабельнее было.
Чаще всего бывает как-то так: СуммаДолга = 0; ........... СуммаДолга = Запрос.Выполнить().Выгрузить()[0].СуммаДолга; Возврат СуммаДолга; Хорошо |
||||||||||||||||
75
Полотенчик
26.04.13
✎
13:44
|
(63) +1
зачем ховнокодом специально провоцировать на ошибку и обрабатывать это исключением, если можно написать нормально? (67) сам не проверял, но просто логически, таблица значений со своими столбцами, коллекцией столбцов, индексами и пр. должна памяти отжирать больше чем просто выборка. наверняка, разница мизерная, но и та не в пользу ТЗ |
||||||||||||||||
76
live in sky dreams
26.04.13
✎
13:46
|
А сама задача хде?
"СуммаДолга", как я понимаю, подразумевает под собой дебиторку\кредиторку. Ежели так, то, опять же в зависимости от задачи, наверное вернее будет собрать дебиторов\кредиторов с необходимой аналитикой в запросе. А затем или искать в выборке\таблице или.... х.з. Нужна задача! |
||||||||||||||||
77
ssh2006
26.04.13
✎
13:46
|
Порой годно
Отлично |
||||||||||||||||
78
rs_trade
26.04.13
✎
13:47
|
(70) о да... работает быстрее на 0.00000000000001 сек
|
||||||||||||||||
79
fisher
26.04.13
✎
13:47
|
(75) Гы. На однострочной выборке - далеко не факт что мизерная разница будет не в пользу ТЗ. Однострочная запись может перевесить эту мизерную разницу в свою пользу.
|
||||||||||||||||
80
_Atilla
26.04.13
✎
13:49
|
(3) Вариант лучше.
Если сравнить с кодом С... Отлично |
||||||||||||||||
81
В тылу врага
26.04.13
✎
13:50
|
(76) ну считай, что это некоторая функция, которая на входе получает договор, а на выходе сумму просроченного долга по этому договору, согласно условий договора
|
||||||||||||||||
82
SherifSP
26.04.13
✎
13:52
|
(78) Если знать все фишки, только тогда можно себя гордо называть специалист)
|
||||||||||||||||
83
Rie
26.04.13
✎
13:52
|
(81) Вот и показал бы функцию...
А то задал вопрос по висящему в глубоком вакууме оператору... |
||||||||||||||||
84
SherifSP
26.04.13
✎
13:53
|
ТекДата = ТекущаяДата();
Для А = 1 По 10000 Цикл ТЗ1 = Выгрузить(); КонецЦикла; Сообщить(ТекущаяДата() - ТекДата); ТекДата = ТекущаяДата(); Для А = 1 По 10000 Цикл ТЗ2 = Выбрать(); КонецЦикла; Сообщить(ТекущаяДата() - ТекДата); 70 69 |
||||||||||||||||
85
В тылу врага
26.04.13
✎
13:53
|
(83) так интереснее
|
||||||||||||||||
86
VladZ
26.04.13
✎
13:54
|
Плохо. Код должен быть не только "коротким и понятным", но и максимально надежным.
Плохо |
||||||||||||||||
87
SherifSP
26.04.13
✎
13:55
|
(86) Не всегда надежность может сочетаться с читабельностью
|
||||||||||||||||
88
SherifSP
26.04.13
✎
13:56
|
+(87) Нужно выбрать или то, или другое)
|
||||||||||||||||
89
Rie
26.04.13
✎
13:56
|
(86) Не поверишь, но приведенный в (0) код - надёжен на все 100% (а временами - даже на 146%).
|
||||||||||||||||
90
Полотенчик
26.04.13
✎
13:57
|
(84) я подразумевал не скорость выполнения в секундах, а, в первую очередь, количество оперативки для ТЗ со всеми ее прелестями и выборкой. Это как на Камазе перевозить один листок бумаги.
|
||||||||||||||||
91
NS
26.04.13
✎
13:59
|
(90) И сколько памяти требуется для хранения ТЗ из одной строки? Тем более что сразу после выполнения оператора память будет освобождена.
|
||||||||||||||||
92
badboychik
26.04.13
✎
14:01
|
У меня так (когда надо всю таблицу а не поле):
Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Отказ = Истина; Сообщить("Не найдены затраты на выпуск полуфабрикатов"); Возврат Неопределено; Иначе Возврат Результат.Выгрузить(); КонецЕсли; Плохо |
||||||||||||||||
93
Полотенчик
26.04.13
✎
14:12
|
(91): (75) "сам не проверял, но просто логически"
|
||||||||||||||||
94
NS
26.04.13
✎
14:14
|
(93) Просто логически если на переменную нет ссылок, то память высвобождается сборщиком мусора.
|
||||||||||||||||
95
CoolCat
26.04.13
✎
14:16
|
красивый код все гениально просто
Отлично |
||||||||||||||||
96
bruss007
26.04.13
✎
14:25
|
Если только для.
Мне пох |
||||||||||||||||
97
mikecool
26.04.13
✎
14:27
|
(4) не факт, что такой запрос вернет хотя бы одну запись
|
||||||||||||||||
98
mikecool
26.04.13
✎
14:27
|
+97 и вообще - весь код, написанный не мною - г_овно_код!
|
||||||||||||||||
99
badboychik
26.04.13
✎
14:27
|
Надо в 1С добавить функционального стиля. Особенно функций Map и Reduce не хватает, а ведь с обработкой числовых списков и массивов довольно часто приходится встречаться
|
||||||||||||||||
100
Alex S D
26.04.13
✎
14:28
|
100
|
||||||||||||||||
101
В тылу врага
26.04.13
✎
14:30
|
(97) аргументируй ))
|
||||||||||||||||
102
Бывший адинэсник
26.04.13
✎
14:39
|
(3) "Возврат Запрос.Выполнить().Выгрузить()[0].СуммаДолга;" по всем канонам это моветон..
|
||||||||||||||||
103
NS
26.04.13
✎
14:40
|
(102) Дашь пример "канона" по которому этот код моветон?
|
||||||||||||||||
104
megabax
26.04.13
✎
14:49
|
Правльно в 1 сказали, если запрос пустой, то вывалится с ошибкой. Кто так пишет, надо пальцы пообрывать!!!
Надо так: ТЗ=Запрос.Выполнить().Выгрузить(); если ТЗ.Количество()>0 тогда Возврат ТЗ[0].СуммаДолга; иначе //что то делать на случай если запрос пустой конецесли; Плохо |
||||||||||||||||
105
Alex S D
26.04.13
✎
14:50
|
(104) разуй глаза и читай всю ветку. При условии, что запрос гарантировано не пустой
|
||||||||||||||||
106
megabax
26.04.13
✎
14:51
|
+104
а еще лучше так Выборка=Запрос.Выполнить().Выбрать(); если Выборка.Следующий() возврат Выборка.СуммаДолга; иначе //что то делать на случай если запрос пустой конецесли; |
||||||||||||||||
107
megabax
26.04.13
✎
14:52
|
105 не может такого быть, что запрос гарантированно не пустой. Все не предусморишь, а элементарная защита от дурака доложна быть.
|
||||||||||||||||
108
В тылу врага
26.04.13
✎
14:54
|
(107) запрос (4) гарантированно не путой
|
||||||||||||||||
109
AlexITGround
26.04.13
✎
14:55
|
в (18) уже был правильный ответ и выборку сделал после проверки
|
||||||||||||||||
110
Вик72
26.04.13
✎
14:56
|
Вы что, угораете??
Правильно писать так: Возврат Запрос.Выполнить().Выгрузить().Итог("СуммаДолга"); |
||||||||||||||||
111
megabax
26.04.13
✎
14:57
|
110, ну и так в принципе тоже правильно, но не оптимально, будет доп. время тратить на подсчет итогов
|
||||||||||||||||
112
Эмбеддер
26.04.13
✎
15:04
|
Напишешь по-другому - найдется кто-то, который скажет что лучше в одну строку и наоборот
Мне пох |
||||||||||||||||
113
Hawk_1c
26.04.13
✎
15:04
|
Плохо.
Плохо |
||||||||||||||||
114
mikecool
26.04.13
✎
15:05
|
(101) пустой результат запроса
|
||||||||||||||||
115
mikecool
26.04.13
✎
15:06
|
(104) а если там больше одной строки? о ужас!!!!
|
||||||||||||||||
116
В тылу врага
26.04.13
✎
15:06
|
(114) этот в (4) не может быть пустым по определению
|
||||||||||||||||
117
Бывший адинэсник
26.04.13
✎
15:07
|
(103) вот например как это прописано в проекте samba https://github.com/jkstrick/samba/blob/master/README.Coding#L352
|
||||||||||||||||
118
В тылу врага
26.04.13
✎
15:07
|
(115) и больше 1 не может быть
|
||||||||||||||||
119
Эмбеддер
26.04.13
✎
15:08
|
(106) ну тогда уж возврат делать не по иначе, а то бывают такие языки программирования, которые сообщат, что возвращаемое значение не указано
Выборка=Запрос.Выполнить().Выбрать(); если Выборка.Следующий() возврат Выборка.СуммаДолга; конецесли; //что то делать на случай если запрос пустой возврат 0; |
||||||||||||||||
120
В тылу врага
26.04.13
✎
15:09
|
(119) если есть возврат во всех ветках ветвления, то они не ругаются
|
||||||||||||||||
121
AlexITGround
26.04.13
✎
15:11
|
зачем вы все выборку делаете до того, как проверите есть там что или нет?
Пойдет |
||||||||||||||||
122
rs_trade
26.04.13
✎
15:13
|
(118) из пустых таблиц запрос тоже гарантированно возвращает 1 строку?
|
||||||||||||||||
123
Вик72
26.04.13
✎
15:16
|
(111)
И ты туда же? Основные затраты ресурсов - это обращение к БД и обмен между сервером-клиентом. "Итог()" даже для ТЗ из 100000 строк - это сотые доли секунды. |
||||||||||||||||
124
n0ther
26.04.13
✎
15:19
|
для удобства чтения кода, надо еще и переменные "правильно" называть
Возврат з.Выполнить().Выгрузить()[0].сд; Плохо |
||||||||||||||||
125
organizm
26.04.13
✎
15:19
|
Если НЕ РезультатЗапроса.Пустой() Тогда
... лучше всегда делать, менее ресурсоемко. "Выборка" это все-таки таблица в памяти компьютера,с большим размером Байт, а "РезультатЗапроса.Пустой()" от силы Байт. Все ничего, когда мало данных, а когда уйма - ахтунг! Поэтому лучше не привыкать к плохому стилю. Мне пох |
||||||||||||||||
126
jk3
26.04.13
✎
15:25
|
(18) Идеальный вариант с точки зрения скорости и безопасности.
|
||||||||||||||||
127
rs_trade
26.04.13
✎
15:27
|
(124)
инд = МоиСуперФункции.ПолучитьИндексСтрокиЗапроса(); ....... Возврат з.Выполнить().Выгрузить()[инд].сд; Плохо |
||||||||||||||||
128
JesteR
26.04.13
✎
15:32
|
(3)Если такое выполнится в транзакции, то она отвалится.
Плохо |
||||||||||||||||
129
NcSteel
26.04.13
✎
15:42
|
Плохой код.
Плохо |
||||||||||||||||
130
fyn
26.04.13
✎
15:50
|
Возврат Запрос.Выполнить().Выгрузить().Итог("СуммаДолга")
уже было? Пойдет |
||||||||||||||||
131
В тылу врага
26.04.13
✎
15:55
|
(122) этот да
|
||||||||||||||||
132
Karavanych
26.04.13
✎
15:57
|
Нормальный код, однозначно сразу видно что возвращает, читаемо.
автор еще скажи что вот такие штуки надо построчно разворачивать: etPosition.setText(Integer.toString((Integer.parseInt(cr.getString(nameIdIndex))+1))); ты по программируй в языках со строгой типизацией и успокойся, еще не такое увидишь. Хорошо |
||||||||||||||||
133
Бывший адинэсник
26.04.13
✎
16:04
|
>etPosition.setText(Integer.toString((Integer.parseInt(cr.getString(nameIdIndex))+1)));
ну если для себя пишешь то можешь не разворачивать, а если кто-то будет сопровождать после тебя. То это некрасиво по отношению к коллегам. |
||||||||||||||||
134
Wern
26.04.13
✎
16:06
|
На то чтоб понять что делает код в (0) надо меньше времени, чем на то чтобы понять что делают остальные приведенные тут варианты. А это самое главное, в тех случаях когда оптимизация не критична.
Отлично |
||||||||||||||||
135
Бывший адинэсник
26.04.13
✎
16:10
|
(132) вот один из предшественников написал
return(if(persons.disdate=date(0,0,0) or persons.disdate>=date(1,01,2004), if(day(servlen.fromdate)>1,if((2004-year(servlen.fromdate)-1)<1,0.00,if((2004-year(servlen.fromdate)-1)<3,1.00, if((2004-year(servlen.fromdate)-1)<5,1.5,if((2004-year(servlen.fromdate)-1)<8,1.75,2.00)))), if(month(servlen.fromdate)>1,if((2004-year(servlen.fromdate)-1)<1,0.00,if((2004-year(servlen.fromdate)-1)<3,1.00, if((2004-year(servlen.fromdate)-1)<5,1.5,if((2004-year(servlen.fromdate)-1)<8,1.75,2.00)))), if((2004-year(servlen.fromdate))<1,0.00,if((2004-year(servlen.fromdate))<3,1.00, if((2004-year(servlen.fromdate)-1)<5,1.5,if((2004-year(servlen.fromdate)-1)<8,1.75,2.00)))))), if(day(servlen.fromdate)>day(persons.disdate),if(month(servlen.fromdate)>month(persons.disdate)-1, if((year(persons.disdate)-year(servlen.fromdate)-1)<1,0.00,if((year(persons.disdate)-year(servlen.fromdate)-1)<3,1.00, if((year(persons.disdate)-year(servlen.fromdate)-1)<5,1.5,if((year(persons.disdate)-year(servlen.fromdate)-1)<8,1.75,2.00)))), if((year(persons.disdate)-year(servlen.fromdate))<1,0.00,if((year(persons.disdate)-year(servlen.fromdate))<3,1.00, if((year(persons.disdate)-year(servlen.fromdate))<5,1.5,if((year(persons.disdate)-year(servlen.fromdate))<8,1.75,2.00))))), if(month(servlen.fromdate)>month(persons.disdate),if((year(persons.disdate)-year(servlen.fromdate)-1)<1,0.00, if((year(persons.disdate)-year(servlen.fromdate)-1)<3,1.00,if((year(persons.disdate)-year(servlen.fromdate)-1)<5,1.5, if((year(persons.disdate)-year(servlen.fromdate)-1)<8,1.75,2.00)))), if((year(persons.disdate)-year(servlen.fromdate))<1,0.00,if((year(persons.disdate)-year(servlen.fromdate))<3,1.00, if((year(persons.disdate)-year(servlen.fromdate))<5,1.5,if((year(persons.disdate)-year(servlen.fromdate))<8,1.75,2.00)))))))) Убивать надо за такое... |
||||||||||||||||
136
pumbaEO
26.04.13
✎
16:11
|
(134) что бы вычистить такие участки каленым железом понадобиться потом очень много времени.
|
||||||||||||||||
137
Иде я?
26.04.13
✎
16:14
|
Программировать по русски...фу какая гадость.
Вы какие паттерны используете ? |
||||||||||||||||
138
DexterMorgan
26.04.13
✎
16:19
|
Выборка = Запрос.Выполнить().Выбрать();
Возврат ?(Выборка.Следующий(), Выборка.СуммаДолга, 0) |
||||||||||||||||
139
DexterMorgan
26.04.13
✎
16:19
|
и
Мне пох |
||||||||||||||||
140
wowik
26.04.13
✎
16:24
|
на специалиста не сдашь.
Плохо |
||||||||||||||||
141
Stella0608
26.04.13
✎
16:45
|
По поводу "много строчек"...
Как вам такое условие? Если ((Пользователь.СотрФилиала = 1)) и (ТекущийЭлемент().ПринадлежитГруппе(Константа.ГруппаТорговыхМарок) = 0) и (ТекущийЭлемент().ИгнорироватьФильтры=0) Тогда Если (((НазваниеНабораПрав() = "Менеджер") или (НазваниеНабораПрав() = "НОП")) и (ТекущийЭлемент().ПринадлежитГруппе(Пользователь.ГруппаКлиентовДляРаботы) = 0) и (ТекущийЭлемент() <> Пользователь.КлиентДляФилиала) и (ТекущийЭлемент() <> Пользователь.ГруппаКлиентовДляРаботы)) или (Не((НазваниеНабораПрав() = "Менеджер") или (НазваниеНабораПрав() = "НОП")) и (((ТекущийЭлемент().ПринадлежитГруппе(Пользователь.ГруппаКлиентовДляРаботы) = 0) и (ТекущийЭлемент() <> Пользователь.ГруппаКлиентовДляРаботы)) или ((ТекущийЭлемент().Сотрудник.СкладПоУмолчанию.ГруппаСкладов <> Пользователь.СкладПоУмолчанию.ГруппаСкладов) и (ТекущийЭлемент().ЭтоГруппа()=0)))) и НЕ((РазрешатьВыборСвоейГруппы = 1) и ((НазваниеНабораПрав() = "Менеджер_Розница") или (НазваниеНабораПрав() = "Менеджер_Старший_Розница")) и (ТекущийЭлемент().ПринадлежитГруппе(Пользователь.ГруппаКлиентовДляРаботы) = 1)) Тогда ... Сейчас пытаюсь переписать в более удобоваримой форме, выходит явно больше строчек + комментарии, чтобы крыша не съехала при чтении условия. :) |
||||||||||||||||
142
Stella0608
26.04.13
✎
16:46
|
По теме - то что написано - не айс, но по кр. мере читабельно :).
Мне пох |
||||||||||||||||
143
Classic
26.04.13
✎
16:46
|
до тех пор пока не будет пустого результата
Мне пох |
||||||||||||||||
144
mikecool
26.04.13
✎
16:48
|
(116) аргументы?
ВЫБРАТЬ ЕСТЬNULL(СУММА(Сумма),0) КАК СуммаДолга ИЗ РегистрНакопления.Чтото.Остатки(, Номенклатура = "херня какая то") вернет пустой результат |
||||||||||||||||
145
Xatori
26.04.13
✎
16:48
|
Решений тут описали достаточно, и почти каждое имеет право на жизнь, стиль написания кода довольно часто диктуют условия.
Вот пример, надо посчитать колонку некой таблицы, при этом необходимо подтягивать данные из других n-таблиц, какой то из этих таблиц может не быть, у какой то не найдётся нужного значения, а в какой то значение просто нам не подходит и что писать n-раз условия которые по своей сути будут характеризовать отсутствие каких либо данных и возврат 0 или ещё чего то там, проще в Попытку обернуть, отработал хорошо, нет всё равно выгодней чем 100500 проверок понятных только автору. Сколько людей, столько мнений :) Хорошо |
||||||||||||||||
146
В тылу врага
26.04.13
✎
16:51
|
(144) не поверишь, но нет - будет 1 строка
|
||||||||||||||||
147
rs_trade
26.04.13
✎
16:58
|
(131) Тогда другой вопрос. Зачем очевидную логику делать не очевидной? Выполнение запроса, и потом очевидная проверка результатов гораздо понятнее же чем, вариант в (0). Я вижу этот код впервые, сразу мысль, вот автор гомнокодер, лезу в запрос проверять, сможет ли он вернуть пустой результат. Убеждаюсь что все ок, но в другом варианте мне бы и не пришлось этого делать.
|
||||||||||||||||
148
В тылу врага
26.04.13
✎
17:00
|
(147) а ты головой думай, хотя конечно и твое мнение имеет право на жизнь
я не категорично же отстаиваю |
||||||||||||||||
149
Wern
26.04.13
✎
17:04
|
(147) чем вариант в (0) не очевиден? Как раз наоборот с первого взгляда понятно что он делает, не нужно думать, а не используются ли где нибудь ниже по коду эти выборки или тз еще раз.
|
||||||||||||||||
150
almar
26.04.13
✎
17:07
|
Вот классика: функция склонения ФИО. По-моему, гениально
Функция обПадежОдногоСлова(Знач Слово,Знач Падеж=2,Знач Пол="*",ВидСклонения=0) Экспорт z5=Найти(Слово,"-"); z6=?(z5=0,"","-"+обПадежОдногоСлова(Сред(Слово,z5+1,СтрДлина(Слово)-z5+1),Падеж,Пол,ВидСклонения)); Слово=НРег(?(z5=0,Слово,Лев(Слово,z5-1))); z7=Прав(Слово,3);z8=Прав(z7,2);z9=Прав(z8,1); z5=СтрДлина(Слово); za=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8); zb=Найти("аеёийоуэюяжнгхкчшщ",Лев(z7,1)); zc=Макс(Падеж,-Падеж); zd=?(za=4,5,Найти("айяь",z9)); zd=?((zc=1)или(z9=".")или((ВидСклонения=2)и(Найти("оиеу"+?(Пол="ч","","бвгджзклмнпрстфхцчшщъ"),z9)>0))или((ВидСклонения=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),9,?((zd=4)и(Пол="ч"),2,?(ВидСклонения=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,9,?(Пол<>"ч",?(za=1,7,?(z9="а",?(za>18,1,6),9)),?(((Найти("ой ый",z8)>0)и(z5>4)и(Прав(Слово,4)<>"опой"))или((zb>10)и(za=16)),8,zd))),zd))); ze=Найти("лец вей бей дец пец мец нец рец вец аец иец ыец бер",z7); zf=?((zd=8)и(zc<>5),?((zb>15)или(Найти("жий ний",z7)>0),"е","о"),?(Слово="лев","ьв",?((Найти("аеёийоуэюя",Сред(Слово,z5-3 ,1))=0)и((zb>11)или(zb=0))и(ze<>45),"",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,"",?(ze<12,"ь"+?(ze=1,"ц",""),?(ze<37,"ц",?(ze<49,"йц","р")))))))))); zf=?((zd=9)или((ВидСклонения=3)и(Прав(Слово,1)="ы")),Слово,Лев(Слово,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+Сред("оыые",Найти("внч",z9)+1,1)+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2))); Возврат ?(""=Слово,"",?(ВидСклонения>0,ВРег(Лев(zf,1))+?((Падеж<0)и(ВидСклонения>1),".",Сред(zf,2)),zf)+z6); КонецФункции |
||||||||||||||||
151
NS
26.04.13
✎
17:12
|
Вот за такое нужно расстреливать на месте.
|
||||||||||||||||
152
Ненавижу 1С
гуру
26.04.13
✎
17:19
|
Всем спасибо, поехал я отдыхать на моря, удачи!
|
||||||||||||||||
153
c00Lo
26.04.13
✎
17:42
|
Каждый дрочит как он хочет =)))
Мне пох |
||||||||||||||||
154
zak555
26.04.13
✎
17:56
|
(152) кто тебя разбанил ? о_О
|
||||||||||||||||
155
Alex S D
26.04.13
✎
17:57
|
(154) вот что пятница животворящая делает...
|
||||||||||||||||
156
Aprobator
26.04.13
✎
18:14
|
(3) просто фи какое фу.
|
||||||||||||||||
157
Гобсек
26.04.13
✎
18:16
|
Иногда сам так делаю, но считаю, что надо проверять, чтобы процедура не вывалилась по ошибке.
Пойдет |
||||||||||||||||
158
Mafoni
26.04.13
✎
19:02
|
я бы сказал отвратительно
Плохо |
||||||||||||||||
159
Волчара2010
26.04.13
✎
19:06
|
(0) буквоед-идеалист?
|
||||||||||||||||
160
Сияющий Асинхраль
26.04.13
✎
19:34
|
Если не учитывать (1), то нормально, но, сказать честно, лучше бы удостоверится, что при отсутствии строк в запросе програ отработает
Пойдет |
||||||||||||||||
161
фобка
26.04.13
✎
19:39
|
писать в одну строчку - продвинутый быдлокод
Плохо |
||||||||||||||||
162
Speshuric
27.04.13
✎
16:51
|
Для небольшого одноразового скрипта или редконужной обработки - вполне допустимы такие выражения. Но с точки зрения продуктного кода, лучше не злоупотреблять откровенно лишней выгрузкой в ТЗ.
Пойдет |
||||||||||||||||
163
Rie
27.04.13
✎
16:53
|
(162) Ты ж не знаешь, что там в запросе. Может, там "ПЕРВЫЕ 1".
|
||||||||||||||||
164
Steel_Wheel
27.04.13
✎
17:02
|
(61) >>"Одна строка - один метод" как предлагается многими в этой ветке - это маразм.
Это Code Conventions. Если программист о них не знает, то лио он узнает и рефакторт то, что написал, или на его место приходит человек, знакомый с Code Conventions |
||||||||||||||||
165
Torquader
27.04.13
✎
17:06
|
(164) На самом деле - вполне нормально - если все предыдущие процедуры и функции считать не методами, а способами доступа к методу или параметру.
Например, в Visual Basic мы имеем некоторую странность: Obj.GetCOntroller.GetServiceTable.Run(1) Выглядит более хорошо, но GetController - это метод, а не поле. Так что в 1С: Выполнить().Выбрать выглядит вполне приемлемо. А если кому-то стыдно, когда возникают ошибки, то можно весь код обернуть в попытку - не только выполнить().Выбрать() а вообще всю работу с запросом. |
||||||||||||||||
166
NS
27.04.13
✎
17:15
|
(165) Есть простое правило - в одной строке не больше одного оператора.
Насчет методов и вычислений - разбивание на удобные для восприятия порции. Если для кого-либо три метода (через три точки) тяжело для восприятия, то ИМХО нужно задуматься о смене профессии. (164) Ссылку дашь? Никогда не было такого правило, что один метод, одна строка. Бред. Delta.X=Point1.X-Point2.X; Не нравится так, другой пример Delta.X=Point1.GetX()-Point2.GetX(); Перепиши с одной точкой в строке. Некоторых клинит настолько, что методы путают с операторами. |
||||||||||||||||
167
Torquader
27.04.13
✎
17:25
|
(166) Таки для интерпретатора всё равно, что методы, что функции, что операторы.
Простая строка Номенклатура.ЕдиницаИзмерения.Коэффициент может вызывать ошибку, если не проверить, что Номенклатура.ЭтоГруппа=Истина Просто в 1С установили правила названий методов, которые в один экран не всегда помещаются - и если их будет много, то просто неудобно читать. P.S. Результат= лЗпр. Выполнить(). Выгрузить(). [0].Кол1; Вполне удовлетворяет правилу - одна строка - один параметр. |
||||||||||||||||
168
NS
27.04.13
✎
17:27
|
(167) Ссылку дай на это правило? Нет такого правила, и никогда не было.
m_is = new BufferedReader(new java.io.InputStreamReader(m_socket.getInputStream())); Вот это нормальная строка, из примеров JAVA. Если кто её разбивает - это уже невминяемость. Бзик на почве непонимания разницы между методом и оператором. Метод, и допустим арифметическая операция - суть одно и тоже. И разбиваются арифметические операции - не по одной опреции в строке, а так чтоб формула была читабельна. И с методами тоже самое. |
||||||||||||||||
169
NS
27.04.13
✎
17:42
|
1С это по сути VB
http://msdn.microsoft.com/ru-ru/library/h63fsef3(v=vs.90).aspx Вот например от Майкрософт. Один оператор (инструкция) в строке - рекомендация есть. Один метод в строке - конечно-же такой рекомендации нет. |
||||||||||||||||
170
Torquader
27.04.13
✎
17:52
|
(169) Есть рекомендации, которые остались от языков прошлого уровня - например - в ассемблере по-другому просто не напишешь.
Что касается Си подобных языков, то там конструкции бывают и более сложные, и никто ничего не говорит. |
||||||||||||||||
171
NS
27.04.13
✎
18:00
|
(170) Но никто не говорит что одна арифметическая операция в строке, так ведь. Так чего вдруг 1Сников смутило написание в одной строке через три точки?
В (0) абсолютно нормальная конструкция. Нормальней просто не бывает. И как можно сходу не понять что там написано - для меня загадка. И зачем её делить, мне никогда не понять. |
||||||||||||||||
172
NS
27.04.13
✎
18:02
|
Dim closeItem As New ToolStripMenuItem( _
"Close", Nothing, AddressOf ToolStripMenuItem1_Click) Me.MainMenuStrip.Items.Add(closeItem) Это пример от Майкрософт, со страницы "Соглашения о написании кода в Visual Basic" Точно так-же через три точки. |
||||||||||||||||
173
NS
27.04.13
✎
18:04
|
MessageBox.Show(((MouseEventArgs)e).Location.ToString());
http://msdn.microsoft.com/en-us/library/vstudio/ff926074.aspx Та-же фигня, только C# |
||||||||||||||||
174
Steel_Wheel
27.04.13
✎
18:13
|
>> (166) Ссылку дашь? Никогда не было такого правило, что один метод, одна строка. Бред.
Читай, просвещайся. Java Code Conventions September 12, 1997 Copyright Information (c) 1997, Sun Microsystems, Inc. All rights reserved. 2550 Garcia Avenue, Mountain View, California 94043-1100 U.S.A. |
||||||||||||||||
175
NS
27.04.13
✎
18:14
|
(174) Я в этой цитате ничего не вижу про один метод в одной строке. Цитату дай.
|
||||||||||||||||
176
NS
27.04.13
✎
18:20
|
(174) Даже скачал. Зачем врешь-то? Нет там ничего подобного.
http://www.oracle.com/technetwork/java/codeconventions-150003.pdf Один оператор в одной строке - есть. Один метод в одной строке - естественно и близко ничего к этому нет. |
||||||||||||||||
177
Speshuric
27.04.13
✎
18:31
|
(163) Даже если в запросе "первые 1". ТЗ зря создаётся. Но в целом - даже исправлять бы не стал без большой нужды.
|
||||||||||||||||
178
Rie
27.04.13
✎
18:50
|
(177) Читаемость vs. эффективность. (0) - читаемо. Для запросов, выдающих немного значений - можно пожертвовать эффективностью. (Особенно если рядом стоят МойЭлемент.МойРеквизит.ЕщёОдинРеквизит.НуИУглубимся :-)
|
||||||||||||||||
179
Mustang
27.04.13
✎
18:53
|
Выборка = Запрос.Выполнить().Выбрать();
Возврат ?((Выборка.Следующий()), Выборка.СуммаДолга, 0); Пойдет |
||||||||||||||||
180
Rie
27.04.13
✎
19:14
|
(179) Да всё пойдёт. В зависимости от задачи.
|
||||||||||||||||
181
Steel_Wheel
27.04.13
✎
20:57
|
(175), (176) Ты дочитал до 4-ой главы.
Глава 7.1: |
||||||||||||||||
182
NS
27.04.13
✎
20:57
|
(181) Дальше, дальше. Где Цитата?
|
||||||||||||||||
183
Steel_Wheel
27.04.13
✎
20:58
|
7.1 Simple Statements
Each line should contain at most one statement http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-142311.html#431 Браузер гугл-хром умееть переводить с английского на русский, если английский не понятен. Ссылка дана на сайт фирмы Оракл, подразделением которой является Sun Microsystems |
||||||||||||||||
184
Steel_Wheel
27.04.13
✎
21:00
|
Т.е. для operator и statement -- одна строчка по соглашению.
Что такое statement объяснять тадо такому великому специалисту? |
||||||||||||||||
185
Rie
27.04.13
✎
21:00
|
(183) И чо? По теме - 0 без палочки.
|
||||||||||||||||
186
NS
27.04.13
✎
21:00
|
(183) (184) Раскрой свою мысль.
Что ты хочешь сказать я никак не могу понять. |
||||||||||||||||
187
Rie
27.04.13
✎
21:01
|
Не, ну с NS можете бодаться до посинения :-)
|
||||||||||||||||
188
NS
27.04.13
✎
21:02
|
Этот пункт как раз о том что в строке должно быть не больше одного оператора.
Где ты видишь несколько операторов в (0)? Тебе объяснить что такое оператор? |
||||||||||||||||
189
Steel_Wheel
27.04.13
✎
21:07
|
(185) NS не знает, что такое statement в ЯВУ. Печаль...
(186) Внимательно читай и ты постигнешь смысл: http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-142311.html#431 (188) Запрос.Выполнить() // statement 1 Выгрузить() // statement 2 [0].СуммаДолга; // stetement 3 |
||||||||||||||||
190
NS
27.04.13
✎
21:08
|
(189) Я в шоке. У тебя по ссылке опертор с методом в одной строке. В примере. Ты этого не видишь?
В примере как НУЖНО делать. |
||||||||||||||||
191
Steel_Wheel
27.04.13
✎
21:10
|
(190) А что ты хочешь видеть в примере?
Вот соглашение: Each line should contain at most ONE STATEMENT. Залание домашнее: найди определение что такое statemet. Принимаю ссылки на Оракл/Сан/МСДН/ANSI |
||||||||||||||||
192
Rie
27.04.13
✎
21:11
|
Ребятки, а идите на йух. Все оставшиеся в этой ветке прекрасно понимают, что такое statement и с чем его едят. Далее пошла фаллометрия. (Если я не прав - жду аргументированных возражений).
|
||||||||||||||||
193
NS
27.04.13
✎
21:13
|
statements - синоним русского слова оператор.
В него входит вызов функции (но вложенный вызов функции не противоречит нормальному стилю) обяъвление переменной (возможно с присваиванием) управляющие операторы и т.д. Никогда в жизни написание нескольких методов через точку не было несколькими операторами. А равносильно вложенным вызовам функции. например sin(pow(x,3)) В (0) ровно один оператор - возврат функции значения выражения. |
||||||||||||||||
194
NS
27.04.13
✎
21:15
|
(191) Молодец, ты мало того что незнаком с азами программирования, но из-за подмены терминологии у тебя уже вложенные функции типа sin(pow(x,3)) стали запрещенными.
А вызов метода через точку равносилен вызову функции в процедурном программировании. |
||||||||||||||||
195
NS
27.04.13
✎
21:20
|
updateSales.setInt(1, e.getValue().intValue());
Откуда эта строчка? Да естественно с оракла. http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html |
||||||||||||||||
196
Steel_Wheel
27.04.13
✎
21:23
|
(194) Бу-га-га..
NS ты это про себя. Прямо в точку: ты не знаком с азами программирования. (195) В туториале уровня advanced ты такого не найдешь )) Вот, NS -- твой уровень basic. Студент-практикант )) |
||||||||||||||||
197
Steel_Wheel
27.04.13
✎
21:25
|
Открою секрет: уровень basic -- это уровень студента или джуниора. Им соглашений можно не придерживаться. Как и индусам
|
||||||||||||||||
198
NS
27.04.13
✎
21:25
|
if (jrs.getString("SUP_NAME").equals(supplierName)) {
http://docs.oracle.com/javase/tutorial/jdbc/basics/joinrowset.html Один оператор if <выражение> Один оператор return <выражение> Естественно выражение может сожержать и вложенные функции, и вложенные методы. И нигде, ни в каких правилах не написано что это плохо. |
||||||||||||||||
199
NS
27.04.13
✎
21:27
|
(196) Мой уровень - призер и участников чемпионатов мира.
И уж поверь, может я не всегда сам пишу красиво, но с соглашениями я уж всяко за 25 лет опыта ознакомился, и не на таком поверхностном уровне как ты. |
||||||||||||||||
200
Steel_Wheel
27.04.13
✎
21:30
|
В (194) ты перешел на личности. Не считаю достойным себя спорить с троллем. Слив засчитан
(199) Первый с конца? Охотно верю |
||||||||||||||||
201
NS
27.04.13
✎
21:31
|
(200) Ты еще и читать не умеешь.
|
||||||||||||||||
202
Steel_Wheel
27.04.13
✎
21:31
|
Вообще, когда говорят "Я призер больших и малых театров", прикладывают ссылку на сертификат или скан.
|
||||||||||||||||
203
Steel_Wheel
27.04.13
✎
21:31
|
(201) С троллями не разговариваю, это был последний пост тебе
|
||||||||||||||||
204
NS
27.04.13
✎
21:34
|
wiki:Оператор_(программирование)
Инструкция или оператор (англ. statement) — наименьшая автономная часть языка программирования; команда. Программа обычно представляет собой последовательность инструкций. return <выражение> - это один оператор. Естественно выражение может иметь вложенные функции и вложенные вызовы методов. Ты даже азов не знаешь. Не знаешь что такое оператор, и что statements - это оператор. |
||||||||||||||||
205
NS
27.04.13
✎
21:40
|
(202) NS
Всё есть в личке, в разделе "достижения" |
||||||||||||||||
206
anastasia1188
27.04.13
✎
21:46
|
РезультатЗапроса = Выборка.Выполнить().Выгрузить();
РезультатФункции = ?(РезультатЗапроса.Количество()> 0, РезультатЗапроса[0].СуммаДолга, 0); Возврат РезультатФункции; |
||||||||||||||||
207
bolder
27.04.13
✎
22:42
|
(203) Да, прокололся насчет statement , уделал NS тебя, признайся, что ошибался)).
Мне пох |
||||||||||||||||
208
Steel_Wheel
28.04.13
✎
00:19
|
(207) Не уделал. Не вижу понимая со стороны NS что такое statement.
Ну раз NS болеет звездной болезнью, то я предлагаю независимый арбитраж. NS, я регаюсь под своим ником на форуме разработчиков и задаю провокационный вопрос насчет кода в нулевом посте и соглашению написания кода. Если комменты в твою пользу -- с меня публичные извинения (такую тему отдельно заведу). Устраивает? |
||||||||||||||||
209
Steel_Wheel
28.04.13
✎
00:20
|
*я регаюсь под своим ником = я регаюсь под ником NS
|
||||||||||||||||
210
NS
28.04.13
✎
00:24
|
(208) При чем тут звездная болезнь? Ты нахватался вершков по Си и Java, половину не усвоил, половину понял не так как надо. И сразу лезешь со своим определением оператора. Даже не смешно. Это надо-же перепутать выражение с оператором, и обвинить оракл в запрете вложенных вызовов методов!!!
Когда на сайте оракла полно примеров вложенных вызовов. |
||||||||||||||||
211
Волчара2010
28.04.13
✎
00:28
|
Пилять, эстеты собрались
|
||||||||||||||||
212
Волчара2010
28.04.13
✎
00:31
|
> Возврат Запрос.Выполнить().Выгрузить()[0].СуммаДолга;
И что тут страшного? Разработчик подразумевает, что запрос всегда возвращает хоть одну строку. Если это так, то все нормально. |
||||||||||||||||
213
Steel_Wheel
28.04.13
✎
00:39
|
(210) 10 лет работаю и " половину не усвоил, половину понял не так как надо"? Смешно. Хотя нет, смотрю на тебя и грустно становится
(210) Для тех, кто страдает дизлексией, у Оракла написано что - statement один на строку - operator один на строку - Object.getProperty(..) -- это как раз statement - Object.publicVariable -- не statement NS, ты в самом деле боишься проверить меня способом, указанным в (208) и (209)? |
||||||||||||||||
214
NS
28.04.13
✎
00:41
|
Прежде чем лезть на какие-то форумы, и что-то спрашивать - неплохо бы уяснить что такое оператор, statement.
И как определить где он начинается и где заканчивается. Для школьников объяснение - оператор начинается и заканчивается либо операторными скобками, либо точкой с запятой. В Java. И Вызов нескольких методов через точки - это один оператор. return <выражение>; - это один оператор. В выражении могут быть и вложенные вызовы. От этого несколько операторов у тебя не станет. И нигде, и никогда вложенные вызовы не считались плохим тоном, и не в каких рекомендациях по написанию красивого кода никогда они не были запрещены. Есть ограничения по длине выражения, есть ограничения по читабельности выражения. Но никогда не запрещались вызовы через точку. Кучу примеров я тебе привел. (213) Именно так. Ты 10 лет работаешь, и нифига не усвоил. |
||||||||||||||||
215
NS
28.04.13
✎
00:54
|
Каждая команда (оператор) в языке Java должна заканчиваться точкой с запятой.
http://math.sgu.ru/sites/chairs/prinf/materials/java/lesson1.htm Занятие 1 по Java. // Это какого же клина нужно словить, чтоб сказать что в возврате выражения состоящего из вложенного метода через точку - больше одного оператора (statement)? |
||||||||||||||||
216
Steel_Wheel
28.04.13
✎
01:05
|
(214), (215) Я тебя понял. Ты напрудил в штанишки. За сим к тебе просьба не лезть в дискуссии к серьезнм людям. Твое мнение не стоит и ломанного гроша
|
||||||||||||||||
217
Steel_Wheel
28.04.13
✎
01:05
|
Ты копрокодер 80-го левела. Что и требовалось доказать
|
||||||||||||||||
218
bolder
28.04.13
✎
01:12
|
(217) вот нафлудил то..И все изза Гугла, вывел тебя на 7 Главу Соглашения, где Simple Statement )))
Вот, полюбился, документ Oracle: <code> public void updateCoffeeSales(HashMap<String, Integer> salesForWeek) throws SQLException { PreparedStatement updateSales = null; PreparedStatement updateTotal = null; String updateString = "update " + dbName + ".COFFEES " + "set SALES = ? where COF_NAME = ?"; String updateStatement = "update " + dbName + ".COFFEES " + "set TOTAL = TOTAL + ? " + "where COF_NAME = ?"; try { con.setAutoCommit(false); updateSales = con.prepareStatement(updateString); updateTotal = con.prepareStatement(updateStatement); for (Map.Entry<String, Integer> e : salesForWeek.entrySet()) { updateSales.setInt(1, e.getValue().intValue()); updateSales.setString(2, e.getKey()); updateSales.executeUpdate(); updateTotal.setInt(1, e.getValue().intValue()); updateTotal.setString(2, e.getKey()); updateTotal.executeUpdate(); con.commit(); } } catch (SQLException e ) { JDBCTutorialUtilities.printSQLException(e); if (con != null) { try { System.err.print("Transaction is being rolled back"); con.rollback(); } catch(SQLException excep) { JDBCTutorialUtilities.printSQLException(excep); } } } finally { if (updateSales != null) { updateSales.close(); } if (updateTotal != null) { updateTotal.close(); } con.setAutoCommit(true); } } </code> |
||||||||||||||||
219
bolder
28.04.13
✎
01:14
|
(217) надеюсь , насчет statement больше вопросов нет?Урыл тебя NS, урыл...
|
||||||||||||||||
220
NS
28.04.13
✎
01:20
|
(216)(217) Без комментариев. Хуже программиста словившего клина уж точно ничего на свете быть не может. А уж когда ему в голову взбрело что нельзя в одной строке два метода через точку использовать - это уж вообще полный алес.
dx = Point1.getX() - point2.getX(); У такого горе-программиста станет вдруг запрещенной конструкцией, и всё из-за неумения читать и вникать в написанное. Хоть бы сил хватило на код на сайте оракла посмотреть, где кругом и всюду несколько методов через точку, но и на это ума не хватает. |
||||||||||||||||
221
xReason
28.04.13
✎
01:21
|
Попытка он же Try надо использовать только тогда, когда не может проверить значение стандартными средствами
|
||||||||||||||||
222
NS
28.04.13
✎
01:32
|
Это ссылка на tutorials по Java, азы, без знания которых - языка ты не знаешь.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/expressions.html Statements are roughly equivalent to sentences in natural languages. A statement forms a complete unit of execution. The following types of expressions can be made into a statement by terminating the expression with a semicolon (;). До точки с запятой. Один statement. - Method invocations statement в себя включает не вызов метода, а вызовЫ методов! |
||||||||||||||||
223
NS
28.04.13
✎
01:40
|
А теперь смотрим (189) Steel_Wheel:
Запрос.Выполнить() // statement 1 Выгрузить() // statement 2 [0].СуммаДолга; // stetement 3 - 10 лет говоришь? Как можно за десять лет не уяснить себе что такое оператор?! Жесть! |
||||||||||||||||
224
bolder
28.04.13
✎
01:48
|
(221) Ну не скажи.Try широко используется, но не для чтения одного значения, а всего контекста:
public static void viewTable(Connection con, String dbName) throws SQLException { Statement stmt = null; String query = "select COF_NAME, SUP_ID, PRICE, " + "SALES, TOTAL " + "from " + dbName + ".COFFEES"; try { stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String coffeeName = rs.getString("COF_NAME"); int supplierID = rs.getInt("SUP_ID"); float price = rs.getFloat("PRICE"); int sales = rs.getInt("SALES"); int total = rs.getInt("TOTAL"); System.out.println(coffeeName + "\t" + supplierID + "\t" + price + "\t" + sales + "\t" + total); } } catch (SQLException e ) { JDBCTutorialUtilities.printSQLException(e); } finally { if (stmt != null) { stmt.close(); } } } |
||||||||||||||||
225
xReason
28.04.13
✎
01:53
|
(224) а это не выпадает из моего контекста.
НО в реальности, этот кусок кода надо переписывать узкое место только в получение запроса(зактык будет в коннекшене), потом уже можно справиться стандартами методами |
||||||||||||||||
226
NS
28.04.13
✎
01:58
|
(225) Это учебный пример oracle :)
http://docs.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html |
||||||||||||||||
227
NS
28.04.13
✎
02:00
|
|||||||||||||||||
228
xReason
28.04.13
✎
02:13
|
(226) Если Оракал написал, то на это молиться надо? К слову ваша Ява меня никогда не радовала своим стилем
|
||||||||||||||||
229
xReason
28.04.13
✎
02:15
|
Все зависит от задач, вам а если там будет таблица, где есть часть полей (а другую часть с дефолтом), то нужно вернуть данные или лучше вернуть ошибку?
|
||||||||||||||||
230
Бывший адинэсник
28.04.13
✎
02:28
|
(212)
>> Возврат Запрос.Выполнить().Выгрузить()[0].СуммаДолга; >И что тут страшного? в общем случае это усложняет отладку. |
||||||||||||||||
231
bolder
28.04.13
✎
02:37
|
(230) Не усложняет, сумма получается гарантированно)), даже без захода в эту функцию, ее не нужно отлаживать.
|
||||||||||||||||
232
Steel_Wheel
28.04.13
✎
02:56
|
(226) Учебный для студентов 4-го курса. Это твой уровень.
(219) Не урыл. Он ведь сам не знает. Ты тоже не знаешь, наверное... (226) И еще один пример студента 4-го курса из серии "Как стать нубом на Джаве" NS, ты копрокодер 80-уровня потому что а) не понимаешь разницы между продакшеном и туториалом -- поясню, ты ссылаешься на копрокод для новичков с 4-го курса б) ты понимаешь, что на спец. форумах меня под твоим ником (читай, тебя) просто закопают -- я бы этому не мешал. Рейтинг -1000 на RSDN тебя бы порадовал в) ты ремесленник 1-це, который никогда не выходил за рамки своей системы. То, что ты из ховна и пал.. извини, из желудей и спичек мастеришь для себя -- не имеет никакого отношения к реальной жизни Dixi. |
||||||||||||||||
233
NS
28.04.13
✎
03:00
|
(232) Совсем упоротый что-ли?
Тебе определение statement с сайта оракла дали, а ты всё-равно не въезжаешь чем оператор отличается от операции. |
||||||||||||||||
234
NS
28.04.13
✎
03:03
|
Горе жава-недопрограммист.
Я то хоть успешно в чемпионатах по программированию выступаю. В пару википедий вписан. Причем никак не на 1С, а на нормальных языках. А тебе базовые сертификаты не получить по одной причине - ты даже основы програмирования, определение оператора не способен усвоить. |
||||||||||||||||
235
Steel_Wheel
28.04.13
✎
03:06
|
(234) Я их все получил. А ты -- ссылку в студию, о "виликий" погромист.
И хватит слюной брызгать. Как спец -- твой потолок - junior coder. И ты себе это ставишь в достижение. Я просто ржу |
||||||||||||||||
236
Steel_Wheel
28.04.13
✎
03:08
|
(233) Еще раз, пожалуйста.
В твоем определнии написано, что я прав и (0) надо разбивать на 3 строки. Умник, ты сам себя опускаешь. И с каждым твоим пуокм -- все ниже и ниже |
||||||||||||||||
237
Steel_Wheel
28.04.13
✎
03:09
|
NS, ты пукай, не стесняйся...
Но о тебе уже есть четкое представление: ты никогда не пойдешь на публичное обсуждение этого вопроса. Потому что ты тупо боишься, что твое решение сравняют с копрокодом (ты правильно боишься, хочу я тебе сказать -- это копрокод и есть) |
||||||||||||||||
238
NS
28.04.13
✎
03:11
|
(236) Читай определение оракла - statement заканчивается точкой с запятой, и может в себя включать вызовы методов.
Одна точка с запятой - один statement. return object.metod().metod().metod(); - это один оператор, один statement. |
||||||||||||||||
239
Steel_Wheel
28.04.13
✎
03:11
|
Кстати, ты можешь иметь какие угодно "награды", если они уровня "Нограда града Забдыщинска в ....", то можешь ими просто подтереться. Котируются награды от MS, Oracle... что у тебя есть из них?
Ничего? Вали лесом, стажер-копрокодер. Изучи уже что-нибудь сложнее опы-Одина |
||||||||||||||||
240
Steel_Wheel
28.04.13
✎
03:12
|
(238) Увы и ах. Ты не прав. И ты трус. Что мне тебе объяснять, стажер?
|
||||||||||||||||
241
NS
28.04.13
✎
03:13
|
(237) Любого, за один такой вопрос заминусуют по полной программе. Потому что видимо ты едиснтвенный в мире кто не отличает оператор от операции, и считаешь каждый вызов метода в выражении отдельным оператором. Главное даже читать не умеешь. Ссылку дали. На русскую википедию, на оракл - всё-равно не въезжаешь.
|
||||||||||||||||
242
Steel_Wheel
28.04.13
✎
03:13
|
NS, ты тут как "знотог" уже оборсался пятикратно. Может, стоит не вонять, или принять мое предложение о дуэли с арбитражем?
|
||||||||||||||||
243
NS
28.04.13
✎
03:14
|
(239) Придурок, читай внимательно - я в олимпиадах и чемпионатах участвую не на 1С.
|
||||||||||||||||
244
Steel_Wheel
28.04.13
✎
03:15
|
NS, я третий и последний раз бросаю тебе вызов: умолкни или пусть сообщество нас рассудит!
|
||||||||||||||||
245
NS
28.04.13
✎
03:16
|
(242) Ладно, с тобой всё понятно. Упорот в хлам, читать не умеешь. В ссылку с сайта оракла въехать не можешь, оператор от операции и метода тоже отличить не можешь. Если честно, я вообще не верю что ты что-либо в жизни на жаве написал.
|
||||||||||||||||
246
Steel_Wheel
28.04.13
✎
03:16
|
(248) Ну, что сказать NS.
Участие в 4 на школьных олимпиадах -- это круто и показатель какчества |
||||||||||||||||
247
NS
28.04.13
✎
03:16
|
(244) Делай ветку под своим ником. Кто-же тебе запрещает? И дай на неё сюда ссылку.
|
||||||||||||||||
248
Steel_Wheel
28.04.13
✎
03:16
|
(245) NS, Извини ты нуб и опозорился
|
||||||||||||||||
249
Steel_Wheel
28.04.13
✎
03:17
|
Ты гуманитарий, скорее всего.
|
||||||||||||||||
250
NS
28.04.13
✎
03:17
|
(246) Чемпионат мира, Голландии, России - это не школьные олимпиады.
|
||||||||||||||||
251
Steel_Wheel
28.04.13
✎
03:17
|
(250) В чем? В зафейливании? Я верю. Охотно
|
||||||||||||||||
252
Steel_Wheel
28.04.13
✎
03:18
|
(250) Ну или в 1-це. Тоже верю. Там любое решение катит -- родных нет
|
||||||||||||||||
253
NS
28.04.13
✎
03:18
|
Интересно, когда и насколько тебя забанят?
|
||||||||||||||||
254
NS
28.04.13
✎
03:19
|
Чемпионат Голландии по 1С - звучит. :)
Пить меньше надо. |
||||||||||||||||
255
Steel_Wheel
28.04.13
✎
03:20
|
(253) Если ты модератор, то это у тебя спрашивать надо. Судя по твоему ЧСВ лет на 10 бан будет
(254) Согласен, не пей столько. А "Чемпионат Голландии по 1с" -- это звучит |
||||||||||||||||
256
NS
28.04.13
✎
03:20
|
Statements
Statements are roughly equivalent to sentences in natural languages. A statement forms a complete unit of execution. The following types of expressions can be made into a statement by terminating the expression with a semicolon (;). •Assignment expressions •Any use of ++ or -- •Method invocations •Object creation expressions http://docs.oracle.com/javase/tutorial/java/nutsandbolts/expressions.html Повторю ссылку с сайта оракла. (255) обгадился неуч? Не знаешь что такое оператор? Как тебя на работу взяли? |
||||||||||||||||
257
Steel_Wheel
28.04.13
✎
03:24
|
NS, я тебе скронейше напомню, что ты перешел на личности 100 постов назад....
Ты не смог ничего ответить по существу насчет различий operators и statements. Ты говоришь, что ты велик, и что ты призер черт-знает-чего.... Короче, ты страдаешь дизлексией в самой острой форме. Ты шизофреник -- твоих лже-наград нет либо они не котируются Ты не обучаем, ибо не приемлешь критику. Даже конструктивную В общем, мой прогноз: дорабатывай на своем заводике спецом по учету, а потом иди на пенсию. Чтобы твой код никто не видел |
||||||||||||||||
258
NS
28.04.13
✎
03:25
|
statement - переводится русским словом Оператор.
operator - переводится русским словом операция. Тебе ссылку на википедию дали, неуч. |
||||||||||||||||
259
Steel_Wheel
28.04.13
✎
03:25
|
(256) Кстати, своей ссылкой ты сам себя "обгадил" =)
|
||||||||||||||||
260
NS
28.04.13
✎
03:28
|
wiki:Операция_(программирование)
Английское слово operator, соответствующее термину «операция», иногда ошибочно переводят как «оператор». На самом деле (по историческим причинам) русский термин «оператор» обозначает то же, что и «инструкция», которой соответствует английское statement[1]. Путаница усугубилась тем, что в C присваивание и инкремент/декремент являются и операторами, и операциями. (259) В смысле? Там прямым английским языком сказано что statement - это полное выражение, до точки с запятой. Ты же утверждал, что несколько методов в выражении, это отдельные statement. А я кончено обгадился, тем что с таким неучем как ты общаться в принципе начал. |
||||||||||||||||
261
Steel_Wheel
28.04.13
✎
03:28
|
1) The following types of expressions can be made into a statement by terminating the expression with a semicolon (;).
Assignment expressions Any use of ++ or -- Method invocations Object creation expressions 2) 7.1 Simple Statements Each line should contain at most one statement. Ты умеешь читать: в твоей ссылке statement -- это любое обращение к методу. В (0) их аж 3. А по Соглашению, их надо делить на строки |
||||||||||||||||
262
Steel_Wheel
28.04.13
✎
03:29
|
В общем NS нуб и опозорился )))))
|
||||||||||||||||
263
Steel_Wheel
28.04.13
✎
03:30
|
(260) Вот, ты нек учишь английский, и из правильных текстов делаешь фиг знает пойми какие выводы. А я с этим 10 лет работаю
|
||||||||||||||||
264
NS
28.04.13
✎
03:31
|
(261) Ты идиот? В моей ссылке написано что statement это аналог предложения, и продолжается до ";"
И может включать в себе кучу всего, в том числе и вызовы методов. Ты по-английски вообще читать умеешь? |
||||||||||||||||
265
NS
28.04.13
✎
03:32
|
Statements are roughly equivalent to sentences in natural languages. A statement forms a complete unit of execution. The following types of expressions can be made into a statement by terminating the expression with a semicolon (;).
|
||||||||||||||||
266
Steel_Wheel
28.04.13
✎
03:33
|
(264) Пожалуйста, переведи фразу
Method invocations Это фраза про то, где заканчивается ОДИН STATEMENT Я не буду тебе помогать, найми уже репетитора,о Вилихий |
||||||||||||||||
267
Steel_Wheel
28.04.13
✎
03:33
|
в (0) 3 Method Invocation...
NS, ты нуб и опозорился уже в 8-ой раз |
||||||||||||||||
268
Steel_Wheel
28.04.13
✎
03:34
|
Из-за уважения к твоим седым патлам, я бы предпочел не разивать тему до абсурда
|
||||||||||||||||
269
NS
28.04.13
✎
03:34
|
Вызовы методов это переводится. И это перечисление того, что может в себя включать statement.
|
||||||||||||||||
270
Steel_Wheel
28.04.13
✎
03:35
|
А еще, есть соглашение "трех точек"......
|
||||||||||||||||
271
Steel_Wheel
28.04.13
✎
03:35
|
(269) Замечательно!!!!!!
Что такое метод? |
||||||||||||||||
272
Steel_Wheel
28.04.13
✎
03:35
|
Запрос.Выполнить() -- это метод
|
||||||||||||||||
273
Steel_Wheel
28.04.13
✎
03:36
|
РезультатЗапроса.Выгрузить() -- это тоже метод
|
||||||||||||||||
274
NS
28.04.13
✎
03:36
|
(271) Ты больной? В этой фразе написано что stement включается в себя ваыражение, которое заканчивается точкой с запятой, которое может включать в себя вызовы методов.
Вызовы, сколько угодно вызовов до точки с запятой - это один оператор. |
||||||||||||||||
275
Steel_Wheel
28.04.13
✎
03:37
|
РезультатЗапрос[0].СуммаДолга -- уже не метод
|
||||||||||||||||
276
NS
28.04.13
✎
03:37
|
(272) Поздравляю! Ты наконец понял что это метод! А не оператор.
|
||||||||||||||||
277
NS
28.04.13
✎
03:38
|
Всё что идет до точки с запятой в выражении - это один оператор. Одно предложение, один statement.
|
||||||||||||||||
278
Steel_Wheel
28.04.13
✎
03:38
|
(277) Epic Fail
|
||||||||||||||||
279
Steel_Wheel
28.04.13
✎
03:39
|
Когда ты уже прочитаешь Code Conventions?
|
||||||||||||||||
280
NS
28.04.13
✎
03:40
|
(279) Я то давно прочел. Ты прочитать не в состоянии, так как у тебя даже унарные операции превратились в оператор, и должны выводиться каждая в отдельной строке.
|
||||||||||||||||
281
Steel_Wheel
28.04.13
✎
03:41
|
(276) Я уже 150 постов тебе толкую, но до тебя не доходит.. Ты не в области Искуственного Интеллекта имеешь награды?
(274) Это все твоя больная фантазия. |
||||||||||||||||
282
NS
28.04.13
✎
03:41
|
Statements are roughly equivalent to sentences in natural languages. A statement forms a complete unit of execution. The following types of expressions can be made into a statement by terminating the expression with a semicolon (;).
Это цитата с сайта оракла. |
||||||||||||||||
283
NS
28.04.13
✎
03:42
|
Операторы примерно эквивалентны предложениям на естественных языках. Оператор формирует полную единицу выполнения. Следующие типы выражений могут быть превращены в оператор, заканчивая выражение с точкой с запятой (;).
|
||||||||||||||||
284
Steel_Wheel
28.04.13
✎
03:43
|
(282) Еще раз (261) прочти.
Ты противоречишь сам себе |
||||||||||||||||
285
NS
28.04.13
✎
03:44
|
оператор - естественно в оригинале statement.
Любое выражение ты можешь превратить в оператор, завершив его точкой с запятой. выражение может включать в себе вызовы методов. |
||||||||||||||||
286
Steel_Wheel
28.04.13
✎
03:44
|
(283) Ну, ты же понел: могут быть, а могут и не быть. Второй случай -- это твой..
Какой же ты деревяннй |
||||||||||||||||
287
NS
28.04.13
✎
03:45
|
(284) Дальше перечисляется что может входить в выражение. Как я могу противоречить сам себе - просто скопировав законченный текст с сайта оракла?
|
||||||||||||||||
288
Steel_Wheel
28.04.13
✎
03:45
|
(285) Это косяк перевода ))))))))))))))))))))
|
||||||||||||||||
289
Steel_Wheel
28.04.13
✎
03:45
|
гугл тебе это не переведет ))
|
||||||||||||||||
290
NS
28.04.13
✎
03:45
|
(286) Да, в опреторе может и не быть вызовов методов.
Но пока нет точки с запятой - оператор не закончился. Это один оператор. На чистом английском языке вроде написано. |
||||||||||||||||
291
Steel_Wheel
28.04.13
✎
03:46
|
там не "может", а "есть" -- разницу видишь, ленхфист?
|
||||||||||||||||
292
NS
28.04.13
✎
03:47
|
(288) Объясни, каким образом ты умудрился десять лет числиться программистом, не зная что такое statement?
|
||||||||||||||||
293
Steel_Wheel
28.04.13
✎
03:47
|
(290) оператор -- вызов метода. По твоим же данным. Все.
|
||||||||||||||||
294
Steel_Wheel
28.04.13
✎
03:48
|
(292) Да просто ты живешьв своем мирке, копрокодер. Делаешь никому не нужные вещи. Участвуешь в ничего не значащих конкурсах
|
||||||||||||||||
295
NS
28.04.13
✎
03:48
|
Путая операцию с оператором, и считаю что каждая операция должна писаться на отдельной строке? Это ведь просто анекдот. Тебя на баш нужно, а не банить. Где Семен Семеныч?
|
||||||||||||||||
296
NS
28.04.13
✎
03:49
|
(293) Клиника. До свидания, а то я наберусь от тебя опилок в голову, и таким-же как ты стану.
|
||||||||||||||||
297
Steel_Wheel
28.04.13
✎
03:52
|
(295) (296) Ты слился 200 постов назад.
Кстати, я тебя поздравляю: я озвучу твое мнение под твоим ником на форуме нормальных специалисов, а потом просто буду копировать твои реплики отсюда. Я пропиарю тебя и ты станешь УЗНАВАЕМЫМ А если серьезно, то ты НИКТО c завышенным ЧСВ. Вот, скажи, например: что ты делал серьезнее закрытия месяца? Ничего? Я так и думал |
||||||||||||||||
298
NS
28.04.13
✎
04:12
|
(297) Закрытие месяца на Java? Круто.
Вообще-то я написал одну из сильнейших в мире шашечных программ http://tinyurl.com/WorldChessChampionship4AI-2008 Где-то третью по силе в России на момент написания шахматную программу. http://chessprogramming.wikispaces.com/search/view/Nefedov Был на первом месте среди тысяч участников в Russian AI code cup, отыграл на первом месте несколько первых этапов codecup.nl - открытый чемпионат Голландии по AI программированию. http://www.codecup.nl/competitionlist.php А ты путаешь оператор с операцией, и считаешь что каждую операцию следует писать в отдельной строке :) |
||||||||||||||||
299
NS
28.04.13
✎
04:19
|
http://chessprogramming.wikispaces.com/CCCCISC+2008
Занял седьмое место своей шахматной программой в чемпионате СНГ. Выиграл чемпионат Ленинграда по программированию среди школьников 89/90-го учебного года. |
||||||||||||||||
300
NS
28.04.13
✎
04:22
|
(297) А ты всё продолжаешь путать операцию с оператором, и даже не в состоянии прочитать соглашение оракла, ибо считаешь метод - оператором. Как последний нуб :)
|
||||||||||||||||
301
Туц
28.04.13
✎
08:37
|
Палка о двух концах. Где-то хорошо, где-то плохо.
Мне пох |
||||||||||||||||
302
tararam
28.04.13
✎
09:32
|
(224) в яве try используется где надо, и где не надо (в вашем примере не хватает еще нескольких). Ваш пример какой-то студенческий. кому вы собираетесь делать систем.аут.принтлн? консольке? волшебник вообще с попыткой отмочил (может с бодуна): в 1С попытки не работают, это проверено уже миллирад раз.
|
||||||||||||||||
303
Бывший адинэсник
28.04.13
✎
09:36
|
(231) я сказал в общем случае а не в частности.
|
||||||||||||||||
304
tararam
28.04.13
✎
09:43
|
(0) а вообше код имеет право на жизнь. как правило, ядро прогаммы пишется под конкретую СУБД с конкретными таблицами. т.е. дефакто, данные поля существуют. поэтому не парься.
|
||||||||||||||||
305
YV
28.04.13
✎
10:20
|
(0) Считаю что пойдет, но только в том случае, если в результате запроса гарантированно будет минимум одна строка. Иначе это просто быдлокод.
Пойдет |
||||||||||||||||
306
Hans
28.04.13
✎
10:52
|
Код из нуля считаю нормальным.
А вот пример того кода который мне не нравится: Попытка Возврат Запрос.Выполнить().Выгрузить()[0].СуммаДолга; Исключение Возврат 0; КонецПопытки Не люблю когда много выходов из функции. Пойдет |
||||||||||||||||
307
Wern
28.04.13
✎
10:59
|
(302) Интересно это где попытка не работает? Сколько пользовался всегда и везде отрабатывала как положено.
|
||||||||||||||||
308
tararam
28.04.13
✎
11:14
|
(307) мдяяяя... No comments.
|
||||||||||||||||
309
SoulPower
28.04.13
✎
11:32
|
Из результатов голосовалки мне наконец стало понятно откуда такое нехорошее мнение об одинэсниках в сфере программистов.
Отлично |
||||||||||||||||
310
vde69
28.04.13
✎
11:36
|
как вариант
Результат = Запрос.Выполнить().Выгрузить().Итог("СуммаДолга"); Возврат Результат; |
||||||||||||||||
311
vde69
28.04.13
✎
11:40
|
вообще считаю хорошим тоном для функций должно соблюдатся 2 правила
1. Возврат всегда один и всегда самым последним оператором 2. возвращаемый результат лежит в отдельной переменной |
||||||||||||||||
312
tararam
28.04.13
✎
11:48
|
(311) ну наконец-то нрамотный пост. меня, допустим, вырубают возвраты прямо из тела цикла (типовые, кстати, этим очень грешат. ну сделай ты переменную с флагом успешного прохождения цикла, собери все ошибки и выдай. так нет же, глНеПроводитьДокумент под каждым кустом. Руки повыдергивать за такое)
|
||||||||||||||||
313
pavig
28.04.13
✎
12:10
|
(92) тоже так делаю.
(0) - плохо. Плохо |
||||||||||||||||
314
pavig
28.04.13
✎
12:12
|
(312) если нет никаких сложностей в функции, то почему бы не воспользоваться Возвратом хоть откуда? ускоряет разработку, не усложняет чтение кода...
согласен конечно если функция сложная и возвраты не читаются - тогда - Да, согласен полностью. |
||||||||||||||||
315
_Atilla
30.04.13
✎
23:02
|
(300) Тот, кто дает упрямцу совет, сам нуждается в совете. :-)
|
||||||||||||||||
316
Джордж Вашингтон
01.05.13
✎
02:20
|
Когда-то писал софт, где одной из главных переменных было "подлетное время"... Здесь же: работает или нет...
Отлично |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |