|
v7: Эстетика. | ☑ | ||
---|---|---|---|---|
0
Eeakie
22.05.14
✎
01:59
|
Сильно затупило на небольшом примере.
В запросе есть условие: А (обычная галка в элементе) = 0. Так вот встал вопрос как правильнее написать: А <> 1 или А = 0? Склоняюсь к первому варианту. Есть какие-то реальные "понятия" по этому поводу? ;) |
|||
1
Eeakie
22.05.14
✎
02:03
|
Наверное, надо объяснить зачем мне это.
Пока "зелёный" хотелось бы сразу учиться писать нормальный код... |
|||
2
Web00001
22.05.14
✎
02:06
|
Пока "зеленый" сразу учись писать под 8ку
|
|||
3
Мигало
22.05.14
✎
02:07
|
(2) Выбор должен быть
|
|||
4
Eeakie
22.05.14
✎
02:08
|
(2) Тоже верно. Уже учусь. Там, между прочим, тоже пригодится. Никогда не знаешь кто будет смотреть твой код. Сам проклинаю "прошлых" программистов очень часто и что-то не хочется чтоб и меня тоже кто-то так люто ненавидел ;)
|
|||
5
Eeakie
22.05.14
✎
02:10
|
Несколько "спасибо прошлому программисту за понятный код" и карму может поправить ;)
|
|||
6
Web00001
22.05.14
✎
02:11
|
(4) за А <> 1 о тебе точно не вспомнят, не плохим, не хорошим словом.
|
|||
7
Злопчинский
22.05.14
✎
02:22
|
(0) присвой галке значение = 2 - посмотри на результат на форме.. попробуй 3. 4, 5... дл яинтереса - попробуй с отрицательными числами...
|
|||
8
Eeakie
22.05.14
✎
02:27
|
(6) Ну, вот Вы, как бы написали?
|
|||
9
Eeakie
22.05.14
✎
02:28
|
(7) Я думал у галки может быть только 2 значения О_О
|
|||
10
Eeakie
22.05.14
✎
02:40
|
Хоть кто-нибудь может оставить коммент, типа:
"Делал бы =/<>, потому что <хоть какой-то аргумент>"? |
|||
11
Злой Бобр
22.05.14
✎
03:39
|
Что б научиться, нужно сначала прилично набыдлокодить.
А "правильно" пишут только разрабы 1С. Правда платформа как была кривой так и осталась. Поэтому несоветую с них брать пример - вдруг это заразно ... |
|||
12
Web00001
22.05.14
✎
03:39
|
Делал бы а = 0, потому что лень переключать раскладку.
|
|||
13
Web00001
22.05.14
✎
03:40
|
а вообще это правильный пример для подражания:
>>Хоть кто-нибудь может оставить коммент |
|||
14
jsmith82
22.05.14
✎
03:54
|
НЕ (А=1)
|
|||
15
Balabass
22.05.14
✎
03:54
|
Вообще кошерно делать так:
Если А = 0 или Если НЕ (А = 0) тогда, но это для 8. Или Если А Тогда или Если НЕ А Тогда Для 7 и так и так пойдет. Если А=1 Тогда или Если А=0 Тогда. Юзать <> не очень красиво. 2 знака вместо 1. |
|||
16
jsmith82
22.05.14
✎
03:54
|
а, 7 же
|
|||
17
Balabass
22.05.14
✎
03:55
|
(15) *2 символа
|
|||
18
Balabass
22.05.14
✎
03:57
|
(0) А вообще 7 лучше не изучать, а сразу брать 8.3 и УФ.
А то моск поломаешь. Будешь изгоем в нашем обществе гламурных программиздов... |
|||
19
ADirks
22.05.14
✎
07:10
|
(0) В условиях отсутствия булева типа принято считать, что Истина == 1, а всё остальное - Ложь. Поэтому лучше А <> 1 и А = 1 - это более строгое условие, и защита от потенциальных косяков в данных. А то галка галкой, но оказаться там может что угодно. Кроме того, это просто хорошая привычка, полезная в более сложных случаях, типа фЭтоЗеленаяЛягушка(Жевотное) <> 1 - здесь строгое условие защищает программиста от самого себя, если он накосячит с возвратом из ф-ции.
2all: чё вы заладили: семёрка... восьмёрка... Тема то вообще про хорошие привычки. Во многих языках нет булева типа. |
|||
20
Chai Nic
22.05.14
✎
07:23
|
(19) Главное, не впасть в ересь, называя функции логического возврата как императивные процедуры... типа так:
"Если ПроверитьЗначениеПараметраНаУдовлетворениеУсловию(Параметр)=1 Тогда" Реально бесит своей непонятностью в перспективе.. это логические грабли. К сожалению, писатели типовых так делают сплошь и рядом! :( |
|||
21
Эмбеддер
22.05.14
✎
07:24
|
(0) главное чтобы везде было одинаково
|
|||
22
Balabass
22.05.14
✎
07:26
|
(19) Нет языка кроме 1С и Нуралиев, создатель его.
|
|||
23
ADirks
22.05.14
✎
07:30
|
(20) Это да. А ещё методики пишут...
Есть неплохая статейка, про то как чего называть: http://www.joelonsoftware.com/articles/Wrong.html |
|||
24
an-korot
22.05.14
✎
11:59
|
(0) А <> 1 тут осуществляется 2 операции и при 1 млн пополнениях она будет работать медленнее чем А=1 ;))
операцию <> правильней заменить на НЕ (А=1) тогда тут система выполняет одну команду и реагирует на отрицание, вроде должно выполнятся так же быстро как и просто равно ;) но я еще ни разу не встречал в 7.7 кода - где команда "НЕ" используется ))) |
|||
25
Злопчинский
22.05.14
✎
12:13
|
(22) маладой патамушта
|
|||
26
ADirks
22.05.14
✎
12:30
|
(24) учитывая то, как операции с числами реализованы в 1С, подобная "оптимизация" лишена всякого смысла
В восьмёрке, кстати, тоже. |
|||
27
Chai Nic
22.05.14
✎
12:46
|
(24) Нет никакой разницы, сравнивать на равенство или неравенство по крайней мере в x68, команды jne и je эквивалентны по быстродействию.
|
|||
28
an-korot
22.05.14
✎
13:29
|
(27) точно ))) и даже больше ))) при цикле 100млн команда НЕ (А=1) работает на секунду дольше чем просто = или <>
о.О получается я неправ был. |
|||
29
PR
22.05.14
✎
16:07
|
(0) Правильнее сначала сложный вариант, а потом другой.
Пример
Но это сугубое имхо. А вообще при прочих равных условиях = конечно же лучше, чем <>. В твоем же случае нужно писать то, что говорится словами. А словами "Если элемент не выбран". А это значит, что значение = 0, потому что для значков с тремя значениями есть 0, 1 и 2. |
|||
30
fisher
22.05.14
✎
16:08
|
(29) ППКС
|
|||
31
PZh
22.05.14
✎
17:45
|
Правильно так:
|
|||
32
beholder
22.05.14
✎
18:10
|
(0) НЕ (А*1=А-1)
|
|||
33
Sj
22.05.14
✎
18:42
|
Когда А
|
|||
34
Sj
22.05.14
✎
18:43
|
Если А Тогда
|
|||
35
GreyK
22.05.14
✎
20:51
|
Те, кто на вопросы по 8ке отвечать не могут, тролят клюшки.
Я не заметил разницы в использовании "А<>1" и "НЕ (А=1)". Не знаю как на низком уровне эти команды отрабатывает 7ка, но отладчик этой замены не замечает. |
|||
36
Mr_Rm
23.05.14
✎
00:06
|
(35) На низком уровне на байткоде платформы 7.7 это выглядит так (здесь А - флажок на форме):
Если А<>1 Тогда 00000001: [0E 000003] PUSHCNTX #3 00000002: [0D 000000] PUSHCONST #0 00000003: [2F 000000] NE 00000004: [2D 000006] JZ 00000006 Если НЕ (А=1) Тогда 00000001: [0E 000003] PUSHCNTX #3 00000002: [0D 000000] PUSHCONST #0 00000003: [2E 000000] EQ 00000004: [29 000000] NOT 00000005: [2D 000007] JZ 00000007 Т.е. сравнение с отрицанием на команду длиннее, как и можно было предположить. Разница, хоть в какие-то миллисекунды, но будет. |
|||
37
Eeakie
23.05.14
✎
00:50
|
(19),(29) Спасибо.
(36) А "<>" рассматривается как две операции сравнения? |
|||
38
Eeakie
23.05.14
✎
00:50
|
+(36) Сорри, туплю.
|
|||
39
Wobland
23.05.14
✎
04:53
|
встретил тут прекрасное
Все эстеты — гомосексуалисты. Это проистекает из самой сущности эстетизма //повар-оккультист Юрайда, "Похождения бравого солдата Швейка" |
|||
40
Wobland
23.05.14
✎
04:54
|
(37) конечно, это же два оператора. и ещё чем короче имя переменной, тем меньше отводится под неё памяти
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |