Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Вниз

Маленькие, разряжающие обстановку, моменты.   Найти похожие ветки 

 
Riply ©   (2007-11-04 10:41) [0]

Зравствуйте !
Смотрю исходники от линуксоидов. Вроде серьезные люди писали.
Уже не первый раз встречаю что-то типа:
if (!NT_SUCCESS(Status))
{
 DPRINT("ExAllocatePoolWithTag() failed with status %x\n", Status);
     goto ByeBye;
}
Причем они не повторяются, всегда что нибудь новое придумают.
Невольно вызывает улыбку, когда читаешь куда тебе надо пойти :)
И настроение чуть, да поднимается.

А вот у Microsoft`а я подобного не видела.
Им, наверное, не до шуток :)


 
Riply ©   (2007-11-04 10:46) [1]

>[0] Riply ©   (04.11.07 10:41)
Описка: "от линуксоидов" - читать "от ReactOS-цев"


 
Denis__ ©   (2007-11-04 11:18) [2]


> Описка: "от линуксоидов" - читать "от ReactOS-цев"

Что, руки сами уже набирают?:)


 
FeiFei   (2007-11-04 11:32) [3]

>Вроде серьезные люди писали.

Это с использованием goto то?
Шутники еще те.


 
DrPass ©   (2007-11-04 11:36) [4]


> А вот у Microsoft`а я подобного не видела

И часто ты читаешь исходники Windows?


 
DVM ©   (2007-11-04 11:37) [5]


> А вот у Microsoft`а я подобного не видела.

Так вы и исходников настоящих от MS и не видели.


 
Riply ©   (2007-11-04 11:40) [6]

> [4] DrPass ©   (04.11.07 11:36)
> [5] DVM ©   (04.11.07 11:37)

Поэтому и "подобного не видела" :)


 
guav ©   (2007-11-04 11:42) [7]

> Это с использованием goto то?

В С без ++ и без использование SEH, это может быть лучшим вариантом.


 
FeiFei   (2007-11-04 11:48) [8]

guav ©   (04.11.07 11:42) [7]

Структурирование получается трюк c do { ... break; ... } while (0);
Так что...


 
guav ©   (2007-11-04 12:00) [9]

> [8] FeiFei   (04.11.07 11:48)
> guav ©   (04.11.07 11:42) [7]
>
> Структурирование получается трюк c do { ... break; ... }
> while (0);
> Так что...

Этот трюк ничем не лучше goto, кроме того он не сработает при вложеных циклах.
Если goto не рекомендуется использовать, то это не значит что его нельзя использовать, надо понимать мотивацию этой рекомендации.
Там где действительно нужен goto, никакой выгоды от псевдоструктурирования не будет.


 
FeiFei   (2007-11-04 12:05) [10]

>Если goto не рекомендуется использовать, то это не значит что его нельзя использовать, надо понимать мотивацию этой рекомендации.

Это же очевидно.


 
isasa ©   (2007-11-04 13:59) [11]

guav ©   (04.11.07 12:00) [9]

Эта фигня (goto) первый признак плохого построения модульности программы. Ущербности логики ... Отсутствие И. интеллекта :)


 
Riply ©   (2007-11-04 14:12) [12]

Да что вы "goto" да "goto".
Мне понравилось название процедуры, куда надо goto, в случае воникновения данной ошибки :)


 
Kolan ©   (2007-11-04 14:23) [13]

> Мне понравилось название процедуры,

http://www.bash.org.ru/quote/327878
:)


 
atruhin ©   (2007-11-04 15:16) [14]

> Эта фигня (goto) первый признак плохого построения модульности
> программы.

Кто сказал? Прямо так?
Без шуток. Например в реализации автоматов, зачастую, goto сокращает объем и
повышает читабельность программы.


 
guav ©   (2007-11-04 15:18) [15]

> Эта фигня (goto) первый признак плохого построения модульности
> программы. Ущербности логики ... Отсутствие И. интеллекта
> :)

Предпочитай использование логики и интеллекта использованию признаков.
Здесь goto - лучший вариант.


> Мне понравилось название процедуры

Я понял, но тут без коментариев, а вот холиворить про гоуту можно долго.


 
isasa ©   (2007-11-04 16:12) [16]

Riply ©   (04.11.07 14:12) [12]

Да что вы "goto" да "goto".
Мне понравилось название процедуры, куда надо goto, в случае воникновения данной ошибки :)


:)

В том от и проблема, что переход не на "стандартную" точку входа в процедуру, а на метку, которую надо специально поставить ... Безысходность логики построения алгоритмя ... Как крайний случай, пойдет, но ...


 
antonn ©   (2007-11-04 16:56) [17]


> В том от и проблема, что переход не на "стандартную" точку
> входа в процедуру, а на метку, которую надо специально поставить
> ...

да дело не в проблеме, а в названии функции :)


 
Dib@zol ©   (2007-11-04 18:22) [18]

А на это вы что скажете? Было найдено при разборе исходников скринсейвера "Трубопровод". В подлинности этого можно убедиться, запустив поиск в справке SDK (Помощь -> СДК) по слову TEAPOT и выбрав в качестве подходящей статьи модуль PIPES.C

/*-----------------------------------------------------------------------
|                                                                       |
|    ChooseJointType       |
|       - Decides which type of joint to draw    |
|                                                                       |

-----------------------------------------------------------------------*/

#define BLUE_MOON 153

static int ChooseJointType()
{
   switch( jointStyle ) {
case ELBOWS:
    return ELBOW_JOINT;
case BALLS:
    return BALL_JOINT;
case EITHER:
    // draw a teapot once in a blue moon
    if( mfRand(1000) == BLUE_MOON )
 return( TEAPOT );
    // otherwise an elbow or a ball
    return( mfRand( 2 ) );
   }
}

ЗЫЖ: Мелкософтовцы тоже люди )))


 
palva ©   (2007-11-04 21:03) [19]

Я часто использую goto при обработке ошибок для выхода из программы.
Проверяю код возврата из функции Windows и goto на выдачу диагностики.
Советы "серьезных" людей игнорирую.
Правда, бывает запрет на goto в корпоративных стандартах. Тогда обхожусь без goto.


 
Riply ©   (2007-11-04 21:20) [20]

> [19] palva ©   (04.11.07 21:03)
> Советы "серьезных" людей игнорирую.

А где ты таких находишь ?
Если бы на форуме были только "серьезные люди", я бы умерла от скуки :)


 
Riply ©   (2007-11-04 21:25) [21]

> [18] Dib@zol ©   (04.11.07 18:22)
> ЗЫЖ: Мелкософтовцы тоже люди )))

Слава богу. А то я уж испугалась за их самочуствие :)


 
Petr V. Abramov ©   (2007-11-04 22:09) [22]

> Riply ©   (04.11.07 21:25) [21]
ты не читай комментарии, что на русском пишут, а то замужем для взаиморазвития поля :) не будет


 
Kerk ©   (2007-11-04 22:15) [23]


> DVM ©   (04.11.07 11:37) [5]
> Так вы и исходников настоящих от MS и не видели.

Откуда уверенность? Кому надо давно видели :)


 
Sergey Masloff   (2007-11-05 10:39) [24]

Kerk ©   (04.11.07 22:15) [23]
>Откуда уверенность? Кому надо давно видели :)
Опять же откуда уверенность что ни настоящие? Про партнерские программы MS мне известно, насколько я знаю это не совсем то.


 
iZEN ©   (2007-11-05 13:04) [25]

Что такое промежуточность

Промежуточность связана не с самой системой, как таковой, а с тем кто в ней работает. По большей части в Linux приходят "наевшеися" Windows до отрыжки, до блевотины. Но, они как правило начинали работу в Windows, а значит мозги у них "поставлены" в сторону виндозы. Приходя в Linux они несут в себе ту идеологию, в которой они долго работали и к которой привыкли. Программисты достаточно консервативные в мышлении люди, они очень неохотно меняют навыки и приемы работы. А потом, наевшиеся пингвинятины, уходят уже к чертикам. Но там система идеологически уже построена как единое целое, поэтому у линуксоидов в FreeBSD обычно происходт ломка, как у наркоманов со стажем, хотя при переходе на Linux с виндозы такой ломки обычно не бывает. Им приходится практически полностью отказываться от идеологии Windows и переходить на идеологию (навыки и приемы работы) UNIX. Я это неоднократно наблюдал при переучивании людей. Жуткая картина, когда мужики начинают чуть ли не плакать.

По этой причине FreeBSD, кто бы что ни говорил и как бы кто ее не называл, это идеологически полноценный UNIX, поскольку работает над этим проектом все-таки практически та же команда, что делала и первый BSD UNIX. А вот про Linux такое сказать я бы поостерегся. Это лишь UNIX-подобная система. Minix в нем до сих пор просматривается.

Это идеологическая двойственность очень хороша для перехода. Но она же будет тормозом в дальнейшем развитии - идеология Windows в ней останется, пусть и не в явном виде. А идеология виндозы противоречит теории программирования, поскольку предполагает лишь знание какую кнопку когда нажать, а не понимания того, что происходит.
От: http://realurix.livejournal.com/1223.html


 
KilkennyCat   (2007-11-05 15:11) [26]

Я за гото.


 
Сусл ©   (2007-11-05 16:57) [27]


> Sergey Masloff   (05.11.07 10:39) [24]
> Kerk ©   (04.11.07 22:15) [23]
> >Откуда уверенность? Кому надо давно видели :)
> Опять же откуда уверенность что ни настоящие? Про партнерские
> программы MS мне известно, насколько я знаю это не совсем
> то.


я вообще не верю в то, что МS кому-то дает исходники. но вот люди из органов утвержают, что дают - иначе win не стоял бы в этих органах.


 
Riply ©   (2007-11-05 17:02) [28]

> [27] Сусл ©   (05.11.07 16:57)
> но вот люди из органов утвержают, что дают - иначе win не стоял бы в этих органах.
Может они еще и утверждают, что полностью разобрались в коде из
десятков миллионов(если не ошибаюсь) строк, убрали все закладки, и поэтому поставили :)


 
umbra ©   (2007-11-05 17:22) [29]


> люди из органов утвержают, что дают

и даже разрешают собрать систему из этих исходников?


 
Ega23 ©   (2007-11-06 09:18) [30]


> Может они еще и утверждают, что полностью разобрались в
> коде из
> десятков миллионов(если не ошибаюсь) строк, убрали все закладки,
>  и поэтому поставили :)


Нет, но:
1. Доступ у них к исходникам есть.
2. Вполне вероятно, что билд в их присутствии проводился.
3. Такая же фигня с Oracle.


 
Игорь Шевченко ©   (2007-11-06 09:27) [31]


> А вот у Microsoft`а я подобного не видела.


плохо смотришь :)
Даже в примерах SDK есть


 
Думкин ©   (2007-11-06 09:34) [32]

А в Маткаде мужик пошутил и после обнаружения шутки занялся поисками работы. :) Разрядил обстановку.


 
Johnmen ©   (2007-11-06 10:05) [33]


> isasa ©   (04.11.07 13:59) [11]
> Эта фигня (goto) первый признак
> плохого построения модульности программы. Ущербности логики
> ... Отсутствие И. интеллекта :)

Не болтайте ерундой (с) Фома


 
Riply ©   (2007-11-06 10:49) [34]

> [31] Игорь Шевченко ©   (06.11.07 09:27)

> А вот у Microsoft`а я подобного не видела.

> плохо смотришь :)
> Даже в примерах SDK есть

Ой ! А можно носом меня ткнуть.
(Может я их тоже начну считать людьми, а не вычислительными машинами :)


 
ПостОвый терминатор ©   (2007-11-06 10:53) [35]

"жениться Вам, барин, надо" :)

© Petr V. Abramov ©   (29.10.07 14:18) [84]


 
conductor   (2007-11-06 11:43) [36]

Удалено модератором


 
Petr V. Abramov ©   (2007-11-06 12:23) [37]

> ПостОвый терминатор ©   (06.11.07 10:53) [35]
это © народное


 
pasha_golub ©   (2007-11-06 12:54) [38]

Фигня, а как вам такое:


if (!NT_SUCCESS(Status))
{
DieHard("Message ... ");
}


в исходниках postgreSQL можно встретить


 
Ega23 ©   (2007-11-06 12:56) [39]


> pasha_golub ©   (06.11.07 12:54) [38]


Павель, а нафига тебе исходники Постгреса? Или ты в коммьюнити записалсо?


 
Anatoly Podgoretsky ©   (2007-11-06 20:02) [40]

> Ega23  (06.11.2007 09:18:30)  [30]

Размер распечаток Вин2000 составляет порядка 55 метров бумаги.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.04 c
2-1194868661
cosy
2007-11-12 14:57
2007.12.09
найдите ошибку пожалуста уже 2 часа на этот сорц смотрю


15-1194461905
vasIZmax
2007-11-07 21:58
2007.12.09
Взялись бы ли вы за проект, который просто обречен на провал&#133


15-1194319585
Учитель
2007-11-06 06:26
2007.12.09
Какие есть БЕСПЛАНТЫЕ программы по созданию видеоуроков?


15-1194418999
Ламот
2007-11-07 10:03
2007.12.09
Помогите пожалуйста разобраться со строчкой.


2-1194416101
ser_tr
2007-11-07 09:15
2007.12.09
при пустой ячейке выскакивает "is not a valid floating point valu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский