Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Параметры по умолчанию (число прочтений - 16268 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #15 - 24. Сентября 2007 :: 13:54
Печать  
fez писал(а) 24. Сентября 2007 :: 13:52:
artbear писал(а) 24. Сентября 2007 :: 13:51:
Падает на последней строке, т.к. 1С возвращает 9, что вообще непонятно !!!!


Ну почему непонятно. Как раз понятно. Во втором параметре - пустое значение. Третий параметр берется из умолчания. 4+5 = 9

Нет, ну конечно, схема понятна Улыбка

Но ведь какой изврат, до такого самостоятельно и не додумаешься Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #16 - 24. Сентября 2007 :: 13:57
Печать  
artbear писал(а) 24. Сентября 2007 :: 13:54:
Но ведь какой изврат, до такого самостоятельно и не додумаешься Улыбка

А никто до него скорее всего и не додумывался. Просто сначала написали глючный вариант, когда пропущенный параметр равнялся пустому значению (Может быть это даже какая-нибудь обратная совместимость).
Потом поверх этого реализовали значения по умолчанию. Тщательно не протестировали. Ну и оппа.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #17 - 24. Сентября 2007 :: 14:06
Печать  
ИМХО Глючное поведение и на него нельзя равняться !
Поэтому я и предлагаю оставить все, как сейчас есть в 1С++ 2.5 - т.е вместо пропущенных параметров подставляются не пустые значения, а параметры по умолчанию.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #18 - 24. Сентября 2007 :: 14:09
Печать  
Артур, ну мы опять возвращаемся к вопросу: "как будет лучше: исправить глюк, или оставить для совместимости?"

И, повторюсь, правильный ответ уже придуман.
Цитата:
Не, ну самый правильный способ давно известен.
1. Делаем настройку: "правильная обработка параметров по умолчанию в классах 1С++".
2. По умолчанию включаем ее в режим совместимости с 1С.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #19 - 24. Сентября 2007 :: 14:14
Печать  
Артур, почитай вот это: http://russian.joelonsoftware.com/Articles/HowMicrosoftLosttheWaronA.html
Джоел умный дядька и знает о чем говорит.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #20 - 24. Сентября 2007 :: 14:26
Печать  
fez писал(а) 24. Сентября 2007 :: 14:09:
И, повторюсь, правильный ответ уже придуман.
Цитата:
Не, ну самый правильный способ давно известен.
1. Делаем настройку: "правильная обработка параметров по умолчанию в классах 1С++".
2. По умолчанию включаем ее в режим совместимости с 1С.

1) Я лично не знаю, как сделать вот этот режим совместимости с 1С Печаль
Т.е. непонятно, как отличить передачу пустого значения от параметра по умолчанию

2) это не правильный ответ.
Настройкой нельзя делать, только полной совместимостью с 1С.

Если делать настройку, кто-то ее может отключить (я Улыбка ), сделать класс, который работает правильно при другой настройке, и неправильно с 1С-совместимой настройкой, и выложить в общий доступ. И будет баг.

Давно статью читал, умные вещи говорит, согласен.
НО не в данном случае Печаль - см. выше про незнание.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #21 - 24. Сентября 2007 :: 14:42
Печать  
artbear писал(а) 24. Сентября 2007 :: 11:32:
Да, это баг, но мелкий.
Поправлю, это не проблема.
ЗЫ у родного метода ИТЗ.Показать этого недостатка нет Улыбка

С тем кодом, на который еще жаловались, уже также разобрались Улыбка

А сколько еще таких осталось?... Подмигивание
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #22 - 24. Сентября 2007 :: 14:45
Печать  
artbear писал(а) 24. Сентября 2007 :: 14:26:
1) Я лично не знаю, как сделать вот этот режим совместимости с 1С Печаль
Т.е. непонятно, как отличить передачу пустого значения от параметра по умолчанию

2) это не правильный ответ.
Настройкой нельзя делать, только полной совместимостью с 1С.

Если делать настройку, кто-то ее может отключить (я Улыбка ), сделать класс, который работает правильно при другой настройке, и неправильно с 1С-совместимой настройкой, и выложить в общий доступ. И будет баг.

Я лично считаю так: изменений, которые потенциально ломают множество уже работающего клиентского кода, быть не должно. Если в рамках этого требования можно сделать "концептуальную чистоту", то пожалуйста - никаких вопросов. Если "концептуальная чистота" ломает код - то такого однозначно не надо.
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Параметры по умолчанию
Ответ #23 - 24. Сентября 2007 :: 15:04
Печать  
Uzhast писал(а) 24. Сентября 2007 :: 14:45:
Я лично считаю так: изменений, которые потенциально ломают множество уже работающего клиентского кода, быть не должно. Если в рамках этого требования можно сделать "концептуальную чистоту", то пожалуйста - никаких вопросов. Если "концептуальная чистота" ломает код - то такого однозначно не надо.


Ну знаете!
Если у нас есть баг, то, получается, исправить его уже нельзя? А вдруг кто-то на этот баг завязался!

Такое ощущение, что не писали вы код на широкого пользователя. При промышленной раработке этот вопрос постоянно возникает. И каждый раз решается индивидуально. Просто взвешиваются все за и против.

А у вас здесь какой-то детский максимализм.

Ключевым словом здесь является _множество_ (кода). Вот это множество и надо оценить.

PS. Спросите, например, Михаила, сколько раз Майкрософт переделывал способ переназначения веток реестра.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #24 - 24. Сентября 2007 :: 15:12
Печать  
sedmin писал(а) 24. Сентября 2007 :: 15:04:
Ну знаете!
Если у нас есть баг, то, получается, исправить его уже нельзя? А вдруг кто-то на этот баг завязался!

Такое ощущение, что не писали вы код на широкого пользователя. При промышленной раработке этот вопрос постоянно возникает. И каждый раз решается индивидуально. Просто взвешиваются все за и против.

А у вас здесь какой-то детский максимализм.

Ключевым словом здесь является _множество_ (кода). Вот это множество и надо оценить.

PS. Спросите, например, Михаила, сколько раз Майкрософт переделывал способ переназначения веток реестра.

Ну, перегнул малось Улыбка А как еще вас всех на разговор вызывать? Если все время мягко, с улыбочками, то все в пустоту и уйдет - ничего не изменится.

По поводу внесенных правок. А где оценки множества поломанного кода? Где "опросы общественного мнения"? Просто взяли и поменяли. И чужой код поломался. А уж как это выглядит в свете добрых советов радостно ставить себе ночную сборку, сам понимаешь...

Это тебе хорошо - у тебя на каждый чих тест есть. А то и два. А у меня и других пользователей не все так шоколадно. Что-то может гавкнуться непосредственно у клиента. Поэтому про код для широкого пользователя я могу с тем же успехом и у тебя спросить.
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #25 - 24. Сентября 2007 :: 15:24
Печать  
artbear писал(а) 24. Сентября 2007 :: 14:26:
2) это не правильный ответ.
Настройкой нельзя делать, только полной совместимостью с 1С.

Если делать настройку, кто-то ее может отключить (я Улыбка ), сделать класс, который работает правильно при другой настройке, и неправильно с 1С-совместимой настройкой, и выложить в общий доступ. И будет баг.

Ну если ты закладываешься на некоторое состояние окружения, и при этом не проверяешь это самое окружение, то кто кому злобный баклан?
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #26 - 24. Сентября 2007 :: 15:30
Печать  
Uzhast писал(а) 24. Сентября 2007 :: 15:12:
Это тебе хорошо - у тебя на каждый чих тест есть. А то и два. А у меня и других пользователей не все так шоколадно. Что-то может гавкнуться непосредственно у клиента. Поэтому про код для широкого пользователя я могу с тем же успехом и у тебя спросить.

Кстати, про тесты. Ощущение того, что "на каждый чих тест есть. А то и два." - оно, сцуко, усыпляет.

Не далее, как на прошлой неделе отловил баг.
Мне казалось, я в этом куске все, что можно протестировал. Года три или четыре любое изменение программы в этом месте сопровождалось тестами. Хрен на блюде.
Так обидно было. Уже и не помню, когда последний раз ломал существующий функционал в проводках. Только если что-то новенькое бухи выкапывали. А тут на тебе.

И кстати, вот эта хрень с параметрами по умолчанию, это как раз тот самый тонкий момент, который может быть закопан где-то ОЧЕНЬ глубоко. И даже на покрытом тестами продукте может вылезти БАГ. Просто потому что никому в голову не придет тестировать значения по умолчанию.
  
Наверх
www  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Параметры по умолчанию
Ответ #27 - 24. Сентября 2007 :: 19:41
Печать  
fez писал(а) 24. Сентября 2007 :: 15:24:
artbear писал(а) 24. Сентября 2007 :: 14:26:
2) это не правильный ответ.
Настройкой нельзя делать, только полной совместимостью с 1С.

Если делать настройку, кто-то ее может отключить (я Улыбка ), сделать класс, который работает правильно при другой настройке, и неправильно с 1С-совместимой настройкой, и выложить в общий доступ. И будет баг.

Ну если ты закладываешься на некоторое состояние окружения, и при этом не проверяешь это самое окружение, то кто кому злобный баклан?

Ну вот, наконец то, и вы поняли, что эти настройки надо постоянно проверять и переустанавливать. Так почему же их все равно нужно делать сохраняемыми?

Цитата:
И кстати, вот эта хрень с параметрами по умолчанию, это как раз тот самый тонкий момент, который может быть закопан где-то ОЧЕНЬ глубоко. И даже на покрытом тестами продукте может вылезти БАГ. Просто потому что никому в голову не придет тестировать значения по умолчанию.

Ну так для того и пишутся тесты высокого уровня, не только простейшие. Вот если они упадут, то тогда и будешь ловить параметры по умолчанию и таращить на них глаза.
Регулярно такая ситуация возникает. Что нибудь поправишь, тесты упадут, а потом оказывется баг в древних местах, на которые уж никак не грешил.  Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #28 - 25. Сентября 2007 :: 04:46
Печать  
sedmin писал(а) 24. Сентября 2007 :: 19:41:
Ну вот, наконец то, и вы поняли, что эти настройки надо постоянно проверять и переустанавливать. Так почему же их все равно нужно делать сохраняемыми?

Не совсем верно - я лично сделал настройки только для кода, который меняет поведение 1С и может сказаться на работе системы в целом - например, ТурбоБЛ или Перехватчик ставят свои перехваты на общесистемные методы и соответственно могут повлиять на работу любых других методов!

По теме
fez писал(а) 24. Сентября 2007 :: 15:30:
И кстати, вот эта хрень с параметрами по умолчанию, это как раз тот самый тонкий момент, который может быть закопан где-то ОЧЕНЬ глубоко. И даже на покрытом тестами продукте может вылезти БАГ. Просто потому что никому в голову не придет тестировать значения по умолчанию.

Не пришло бы, если бы у 1С в этом плане была бы общепринятая совместимость, т.е. как в других языках.
Считаю любое 1С-совместимое использование параметров по умолчанию глючным.
Сам так никогда не делал, потому и не знал, кстати Улыбка

Я лично за
1) общепринятое поведение, не как у 1С
2) поведение должно соответствовать документации.

  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию
Ответ #29 - 25. Сентября 2007 :: 05:01
Печать  
Кстати, к оценке о множестве клиентского кода.
Я перевел пару организаций на последнюю сборку с учетом правки параметров по умолчанию.
Работают уже несколько дней или неделю, никаких проблем не было Улыбка
Использую свыше 100 классов
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 
ОтправитьПечать