Главная страница
    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 метров бумаги.


 
engine ©   (2007-11-06 20:09) [41]

> [40] Anatoly Podgoretsky ©   (06.11.07 20:02)

Ну это от размера шрифта еще зависит. )))


 
Galinka ©   (2007-11-06 22:57) [42]

Anatoly Podgoretsky ©   (06.11.07 20:02) [40]

а что так мало? Всего около 200 страниц.


 
Anatoly Podgoretsky ©   (2007-11-06 23:00) [43]

Ты не в длину меряй, это высота стопки


 
DVM ©   (2007-11-06 23:06) [44]


> 2. Вполне вероятно, что билд в их присутствии проводился.

Наверное всю ночь пьянствовали по этому поводу пока билда дожидались.


> 1. Доступ у них к исходникам есть.

Я в этом сильно сомневаюсь. Если доступ и есть, то не ко всем исходникам.


 
Германн ©   (2007-11-07 01:52) [45]


> Petr V. Abramov ©   (06.11.07 12:23) [37]
>
> > ПостОвый терминатор ©   (06.11.07 10:53) [35]
> это © народное
>

Бедный Николай Васильевич перевернулся не один раз в гробу. Его не спасает ДАЖЕ то, что его бессмертные слова упомянули (пусть и в перефразированном виде, но не скрывая копирайта) Ильф и Петров :-)


 
Хельг ©   (2007-11-07 09:29) [46]


> Германн ©   (07.11.07 01:52) [45]

а я наивно пологал что это из "Гардемаринов".....


 
Ega23 ©   (2007-11-07 09:33) [47]


> а я наивно пологал что это из "Гардемаринов".....


> Бедный Николай Васильевич перевернулся не один раз в гробу.
>  Его не спасает ДАЖЕ то, что его бессмертные слова упомянули
> (пусть и в перефразированном виде, но не скрывая копирайта)
> Ильф и Петров :-)
>


Знатоки...
"Формула Любви" это.


 
clickmaker ©   (2007-11-07 10:56) [48]


> [43] Anatoly Podgoretsky ©   (06.11.07 23:00)
> Ты не в длину меряй, это высота стопки

высота стопки - 100 грамм
а это - длина рулона. С тиснением и перфорацией


 
DVM ©   (2007-11-07 12:06) [49]


> а это - длина рулона. С тиснением и перфорацией

не это его радиус


 
Riply ©   (2007-11-13 07:00) [50]

> [31] Игорь Шевченко ©   (06.11.07 09:27)
> плохо смотришь :)
> Даже в примерах SDK есть

Именно там и натолкнулась:

// One way to do that is to build an associative array, which we
// will "leave as an exercise for the student."


:)


 
Lafiel   (2007-11-13 08:44) [51]

А представляете, как ролевики-реконструкторы пишут.

CEmpoweredSpell acidSplash;

acidSplash.prepare(((CCaster *)this)->concentrate());
acidSplash.UmbasarakHigonSatavurBentor(m_pWindow);
m_pWindow->SawingThrow();


 
Petr V. Abramov ©   (2007-11-13 10:01) [52]

> Германн ©   (07.11.07 01:52) [45]
> Хельг ©   (07.11.07 09:29) [46]
> Ega23 ©   (07.11.07 09:33) [47]

это из одного анекдота, который цитировать тут неуместно



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

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

Наверх




Память: 0.59 MB
Время: 0.21 c
15-1194465471
Jolik
2007-11-07 22:57
2007.12.09
Макроязык как в 1С:Бухгалтерии...


2-1195214661
allucard
2007-11-16 15:04
2007.12.09
Delphi + firebird


15-1194944354
Ega23
2007-11-13 11:59
2007.12.09
конкурс на имя класса


15-1194499862
gn
2007-11-08 08:31
2007.12.09
windows vista


3-1185952264
dimaL
2007-08-01 11:11
2007.12.09
Хранимые процедуры Interbase





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский