Здравствуйте, nen777w, Вы писали:
N>Только что после компиляции проекта обнаружил варнинг а пройдя за ним вот такой шедевр:
N>int CTestcasehelper_Pim::compareStrings(std::string str1,std::string str2)
Ужос
Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, nen777w, Вы писали:
N>>Только что после компиляции проекта обнаружил варнинг а пройдя за ним вот такой шедевр:
N>>int CTestcasehelper_Pim::compareStrings(std::string str1,std::string str2) NBN>Ужос
Здравствуйте, jhfrek, Вы писали:
J>в 3 раза замедлить скорость в худшем случае, зато повысить надежность
Какая надёжность? Функция может пройти все if'ы мимо, судя по всему авторс словил варнинг "control reaches end of non-void function".
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, игппук, Вы писали:
И>>поддерживаю. смысл в функции не понятен.
J>в 3 раза замедлить скорость в худшем случае, зато повысить надежность
Как это надежность повысилась? То что функция может выдать случайный результат это повышение надежности? А что будет если str1.compare(str2) вернет -3? Случайный результат?
Здравствуйте, jhfrek, Вы писали:
J>Здравствуйте, Arsenicum, Вы писали:
J>>>в 3 раза замедлить скорость в худшем случае, зато повысить надежность A>>Какая надёжность?
J>имеется в виду, надежность для 0 — если уж 3 раза сравнение выдало 0, значит строки наверняка равны
Эм позволю попроавить — там сравнивается с 0, 1 и -1... Кстати видел гже то реалзиации compare, кооторые возрващали 0, если равно, и дальше не -1 или +1 а >0 или < 0... в таком случае данная функция будет выдавать 0 если строки равны и случайный результат ( в том числе и 0, и даже чаще всего 0 ) если не равны.
Здравствуйте, nen777w, Вы писали:
N>Только что после компиляции проекта обнаружил варнинг а пройдя за ним вот такой шедевр:
А мне нравится.
Есть что оптимизировать, а в последствии объяснить
начальству, что вы отнюдь н фигней занимаетесь, а
очень даже нужны.
PS:
Главное, что в коде нет ниодной ошибки,
все понятно и достойно.
Здравствуйте, Ведмедь, Вы писали:
В>Эм позволю попроавить — там сравнивается с 0, 1 и -1... Кстати видел гже то реалзиации compare, В>кооторые возрващали 0, если равно, и дальше не -1 или +1 а >0 или < 0... в таком случае В>данная функция будет выдавать 0 если строки равны и случайный результат В>( в том числе и 0, и даже чаще всего 0 ) если не равны.
Здравствуйте, NikeByNike, Вы писали:
>> Делать проекты большие 1000 строк, пользуясь языком С, всёравно что строить кирпичный
В нашем текущем проекте, порядка 500 тыс строк си кода
и никто не чувствует себя ребенком в песочнице.
Все зависит от опыта и качества участников проекта
M>Жуть как интересно , это в вашей команде пишут или код третьей стороны ?
Это, индусы пишут... у нас же часть проектов теперь индусы делают
Там ещё Я пару шедевров нашёл, просто выкладывать эти длинные колбаски не хочется.
D>При вызове функции с такой сигнатурой, будут произведены копирования строк, что ухудшит скорость вызова итак испорченной функции.
О господи.....
Строки будут переданы верно?
Копирование строки приводит к ошибке, пермутации букв, слов
или потере информации?
Об остальном читайте секцию оптимизации.
Благо изменение метаданных функции, приведет к возможно
большим изменениям в приложении....
Здравствуйте, Dwarffy, Вы писали:
D>В нашем текущем проекте, порядка 500 тыс строк си кода D>и никто не чувствует себя ребенком в песочнице. D>Все зависит от опыта и качества участников проекта
То-то и оно. Этот тезис не в пользу С.
Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, Dwarffy, Вы писали:
D>>В нашем текущем проекте, порядка 500 тыс строк си кода D>>и никто не чувствует себя ребенком в песочнице. D>>Все зависит от опыта и качества участников проекта NBN>То-то и оно. Этот тезис не в пользу С.
Я согласен, что на шарпе писать на порядок быстрее
и проще. Но отнюдь ли проще... Вот на
плюсах, тем паче на си, куда всякие там руки не суют,
вот тут радость для мозгов и сердца....
И работа в радость и жизнь в сласть
Здравствуйте, nen777w, Вы писали:
N>Только что после компиляции проекта обнаружил варнинг а пройдя за ним вот такой шедевр:
Варнинг был "possible Hindu code"?
Здравствуйте, nen777w, Вы писали:
N>Это, индусы пишут... у нас же часть проектов теперь индусы делают N>Там ещё Я пару шедевров нашёл, просто выкладывать эти длинные колбаски не хочется.
Над индусами смеяться, это все равно что детей обижать. У них весь код такой, читаешь и не знаешь — плакать или смеяться. Вот например, надергал немного из того, что на глаза попалось:
bool flag = false;
if (MessageBox.Show(Common.Handle, resourceManager.GetString(userMessageID),
USER_MESSAGE_BOX_CAPTION, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
flag = true;
else
flag = false;
return flag;
//По смыслу использования это должен быть именно Trim.public static string TrimString(string str, char ch)
{
string temp = string.Empty;
for (int count = 0; count < str.Length; count++)
{
if (str[count] != ch)
temp = temp + str[count];
}
return temp;
}
//Первые штук пять if..else if пропущены, там то же самое.else if (Constant.MC_DET.Equals(reportName) || Constant.MC_DET_RQ.Equals(reportName))
{
if (period_type.ToLower().Contains(CALENDAR))
period_type = Constant.BY_CALENDAR_YEAR;
else if (period_type.ToLower().Contains(FISCAL))
period_type = Constant.BY_FISCAL_YEAR;
else
period_type = Constant.BY_QUARTERS;
estUserSelection.PeriodType = period_type;
estUserSelection.Period = string.Empty;
estUserSelection.ReportType = Constant.MULTIPLE;
}
else if (Constant.MC_RATING.Equals(reportName) || Constant.MC_TARGET.Equals(reportName))
{
if (period_type.ToLower().Contains(CALENDAR))
period_type = Constant.BY_CALENDAR_YEAR;
else if (period_type.ToLower().Contains(FISCAL))
period_type = Constant.BY_FISCAL_YEAR;
else
period_type = Constant.BY_QUARTERS;
estUserSelection.PeriodType = period_type;
estUserSelection.Period = string.Empty;
estUserSelection.ReportType = Constant.MULTIPLE;
}
else if (Constant.SC_RATING.Equals(reportName) || Constant.SC_TARGET.Equals(reportName))
{
if (period_type.ToLower().Contains(CALENDAR))
period_type = Constant.BY_CALENDAR_YEAR;
else if (period_type.ToLower().Contains(FISCAL))
period_type = Constant.BY_FISCAL_YEAR;
else
period_type = Constant.BY_QUARTERS;
estUserSelection.PeriodType = period_type;
estUserSelection.Period = string.Empty;
estUserSelection.ReportType = Constant.SINGLE;
}
И это не студент на коленке слабал, а крупная известная компания. В защиту индусов должен сказать, что несмотря ни на что, такой код обычно работает.
А вот не-индусский код иногда вызывает совсем другие эмоции. Угадайте, сколько раз мне хотелось выматериться, когда обнаружил следующие строчки (из довольно известного опенсорсного продукта на sourceforge):
Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, Dwarffy, Вы писали:
D>>В нашем текущем проекте, порядка 500 тыс строк си кода D>>и никто не чувствует себя ребенком в песочнице. D>>Все зависит от опыта и качества участников проекта NBN>То-то и оно. Этот тезис не в пользу С.
У меня в САПРе (1 exe 7 DLL) 4581 модулей 780 000 строк (будет еще)
Делаю один. Начинал в 1976 году еще на АЛГОЛе на М220
Потом ЕС 1020 1033 1055 (DOS , OS на PL/1), Borland 3.1-5, CBuilder 1-3
Теперь на CBuilder 5 (EXE) и для DLL Borland Developer Studio 2006
Кроме нашей конторы не кому это не надо
В 80-х годах было передано с переделками в еще два института у нас и один
В Киеве, И только в одном месте заплатили 250 рублей (платили 6 месяцев по 40 рублей)
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, assad, Вы писали:
A>>1. последнее время все чаще платят за строчки кода
B>За строчки кода нигде не платят.
платят. сейчас стала модной аттестация и в компаниях,
где она проводиться уровень зарплаты определяется написанными строчками.
Чел просто отлаживался под тестами и не нашел как поставить (либо просто не знал о существовании) conditional breakpoint. Очевидно, что он хотел поставить точку останова на одном из return-ов.
Здравствуйте, Bandy11, Вы писали:
B>У меня в САПРе (1 exe 7 DLL) 4581 модулей 780 000 строк (будет еще) B>Делаю один. Начинал в 1976 году еще на АЛГОЛе на М220 B>Потом ЕС 1020 1033 1055 (DOS , OS на PL/1), Borland 3.1-5, CBuilder 1-3 B>Теперь на CBuilder 5 (EXE) и для DLL Borland Developer Studio 2006 B>Кроме нашей конторы не кому это не надо B>В 80-х годах было передано с переделками в еще два института у нас и один B>В Киеве, И только в одном месте заплатили 250 рублей (платили 6 месяцев по 40 рублей)
Ну вот ещё одно великолепное подтверждение моего тезиса!
P.S.
А мой отец в 89 году за год работы заработал 5000р не считая зп (100 или 120р) написав прогу для каких-то геологов
Здравствуйте, Bandy11, Вы писали:
B>Здравствуйте, NikeByNike, Вы писали:
NBN>>Здравствуйте, Dwarffy, Вы писали:
D>>>В нашем текущем проекте, порядка 500 тыс строк си кода D>>>и никто не чувствует себя ребенком в песочнице. D>>>Все зависит от опыта и качества участников проекта NBN>>То-то и оно. Этот тезис не в пользу С.
B>У меня в САПРе (1 exe 7 DLL) 4581 модулей 780 000 строк (будет еще) B>Делаю один.
Кошмар. 30 лет вариться одному в одном и том же проекте — это ж смерть программистского мозга.
B>Начинал в 1976 году еще на АЛГОЛе на М220 B>Потом ЕС 1020 1033 1055 (DOS , OS на PL/1), Borland 3.1-5, CBuilder 1-3 B>Теперь на CBuilder 5 (EXE) и для DLL Borland Developer Studio 2006 B>Кроме нашей конторы не кому это не надо
30 лет жизни вложить в какую-то поделку, которая никому не нужна. Зачем вы этим занимаетесь, это же тупик?
S>Чел просто отлаживался под тестами и не нашел как поставить (либо просто не знал о существовании) conditional breakpoint. Очевидно, что он хотел поставить точку останова на одном из return-ов. S>А потом забыл замести следы
Не верно. Это код из системы для тестов так что это никак не отладка.
Здравствуйте, NikeByNike, Вы писали:
NBN>P.S. NBN>А мой отец в 89 году за год работы заработал 5000р не считая зп (100 или 120р) написав прогу для каких-то геологов
Какие деньги. У меня отделались медалью и кучей грамот, а денег шиш
Здравствуйте, assad, Вы писали:
A>платят. сейчас стала модной аттестация и в компаниях, A>где она проводиться уровень зарплаты определяется написанными строчками.
Это где, если не секрет, такой маразм?
Но в принципе мотивы такого идиотского подхода понятны.
Начальство боится ответственности и сваливает ответственность
за оценку подчиненного на формулу, которую типа спустили сверху.
Практика совершенно порочная.
Здравствуйте, Bandy11, Вы писали:
B>Здравствуйте, alsemm, Вы писали:
A>>30 лет жизни вложить в какую-то поделку, которая никому не нужна. Зачем вы этим занимаетесь, это же тупик?
B>зато все это время свободный график, и уже скоро пенсия
Вот то-то и оно, что скоро пенсия. И что будет делать ваша лавка, когда вы не сможете сапортить ваш САПР? Лавка, подозреваю, что государственная. Начальству, судя по всему на все плевать, а то бы быстро расходы-то оптимизировали, еще лет 20 назад . Недобитые остатки совдепии какие-то
Здравствуйте, assad, Вы писали:
B>>За строчки кода нигде не платят.
A>платят. сейчас стала модной аттестация и в компаниях, A>где она проводиться уровень зарплаты определяется написанными строчками.
Так и вижу: нанимают программиста код рефакторить, а потом он еще и доплачивает
Здравствуйте, Bandy11, Вы писали:
B>Здравствуйте, alsemm, Вы писали: A>>Вы же сами типичный совок.
B>Оскорбление Ну-ну
Вы-то сами как считаете — это нормально 30 лет делать САПР в одиночку? Это ж 100% лубок и кустарщина, т.к. один человек просто физически не может тянуть такой сложный проект с приемлемым уровнем качества.
B>Смотрели готовые САПРы, для наших штучных изделий ничего из них не подходит
Если не секрет, что за изделия такие уникальные, что ни один САПР в мире для них не подходит?
B>Заказчики газпром и много инстраных государств
А ваши заказчики знают, что для них изделия проектируют на самопальном САПРе который сапортит один инженер предпенсионного возвраста?
Я что то не понял, какое вам до этого дело, вообще?
Ну работает человек, делает САПР знает тему вдоль и поперек лучше вашего.
У вас в квартире газ есть?
Ну вот значит хорошо человек работает.
Здравствуйте, nen777w, Вы писали:
S>>Чел просто отлаживался под тестами и не нашел как поставить (либо просто не знал о существовании) conditional breakpoint. Очевидно, что он хотел поставить точку останова на одном из return-ов. S>>А потом забыл замести следы
N>Не верно. Это код из системы для тестов так что это никак не отладка.
Было дело с системой для тестов — такие же приёмчики применялись...
Так как особо никто не выделял времени для тестирования самой системы + пофигистичное отношение к ней
Здравствуйте, nen777w, Вы писали:
N>Я что то не понял, какое вам до этого дело, вообще?
Я и сам что то не понял, какое вам дело, какое мне до этого дело?
N>Ну работает человек, делает САПР знает тему вдоль и поперек лучше вашего.
Есть что по http://rsdn.ru/forum/message/3376658.1.aspx
посту прокомментировать?
Bandy11 сам признается, что вся его деятельность — это переливать из пустого в порожнее.
N>У вас в квартире газ есть? N>Ну вот значит хорошо человек работает.
Наличие/отсутствие в моей квартире газа к работе этого человека никакого отношения не имеет.
Да, есть — про свободный график: офигеннно, рад за человека.
Про возраст — какое мне до этого дело вообще может быть, если он спец в своём САПР'е значит так оно и есть.
Кстати в его видели, САПР?
A>Bandy11 сам признается, что вся его деятельность — это переливать из пустого в порожнее.
Где?
А даже если так. Сделал человек систему, теперь только сапортит, имеет много времени для себя, и деньги за саппорт.
Ну и отлично ведь!
посту прокомментировать?
N>Да, есть — про свободный график: офигеннно, рад за человека. N>Про возраст — какое мне до этого дело вообще может быть, если он спец в своём САПР'е значит так оно и есть. N>Кстати в его видели, САПР?
Нет, не видел
A>>Bandy11 сам признается, что вся его деятельность — это переливать из пустого в порожнее.
N>Где? http://rsdn.ru/forum/message/3376658.1.aspx
Только вы в этом сообщении почему-то совершенно другое прочитали.
N>А даже если так. Сделал человек систему, теперь только сапортит, имеет много времени для себя, и деньги за саппорт. N>Ну и отлично ведь!
Для человек конечно отлично. Только что будет с этой системой, когда человек уйдет на пенсию и не сможет/не захочет ее сапортить? Я вот за себя начинаю волноваться, а ну как и вправду от работы Bandy11 зависит наличие газа в моей квартире. Уйдет он на пенсию, САПР его закиснет после этого лет через пять и чего, мне без газа сидеть?
Здравствуйте, assad, Вы писали:
A>платят. сейчас стала модной аттестация и в компаниях, A>где она проводиться уровень зарплаты определяется написанными строчками.
Скажите, где? Я хочу туда! Ух, я б там развернулся по полной
Lisp is not dead. It’s just the URL that has changed: http://clojure.org
Здравствуйте, alsemm, Вы писали:
N>>А даже если так. Сделал человек систему, теперь только сапортит, имеет много времени для себя, и деньги за саппорт. N>>Ну и отлично ведь! A>Для человек конечно отлично. Только что будет с этой системой, когда человек уйдет на пенсию и не сможет/не захочет ее сапортить? Я вот за себя начинаю волноваться, а ну как и вправду от работы Bandy11 зависит наличие газа в моей квартире. Уйдет он на пенсию, САПР его закиснет после этого лет через пять и чего, мне без газа сидеть?
Пригласят лично Вас. А Вы сядете, все перепишете и только потом будете учить жизни других. Не волнуйтесь
Здравствуйте, Dwarffy, Вы писали:
D>Здравствуйте, Ведмедь, Вы писали:
D>PS: D>Кстати в таком случае
D>
D>if (TRUE == foo())
D>{
D>}
D>
D>то же неверно, потому как умник может вернуть -1, 34, и ваще бог зает что как TRUE
Вот тут да. Согласен. Блин. Функция Func(), результат BOOL. Моя функция возвращает bool (маленькими) Ну и в общем написал
return (Func() == TRUE)
Мудохался 2 часа
Здравствуйте, vitasr, Вы писали:
V>Дополнительные скобки наверное появились после того, как где-то выше один умник написал
V>#define full_year semi_full_year + 7
V>)
Это был код SQL.
Если нам не помогут, то мы тоже никого не пощадим.
Сегодня с утра разгребая почту: ответ индуса-девелопера бд админу:
For this error (Cannot drop the partition scheme 'DateToPScheme', because it does not exist or you do not have permission.),
I think, the partition scheme doesn’t exist or you don’t have the permission. Please try once again.
Здравствуйте, Альт, Вы писали:
А>Здравствуйте, alsemm, Вы писали:
N>>>А даже если так. Сделал человек систему, теперь только сапортит, имеет много времени для себя, и деньги за саппорт. N>>>Ну и отлично ведь! A>>Для человек конечно отлично. Только что будет с этой системой, когда человек уйдет на пенсию и не сможет/не захочет ее сапортить? Я вот за себя начинаю волноваться, а ну как и вправду от работы Bandy11 зависит наличие газа в моей квартире. Уйдет он на пенсию, САПР его закиснет после этого лет через пять и чего, мне без газа сидеть?
А>Пригласят лично Вас. А Вы сядете, все перепишете и только потом будете учить жизни других. Не волнуйтесь
Волноваваться будете вы, когда у вас в квартире газа не будет после моих переписываний
Здравствуйте, Brick_1, Вы писали:
B_>Весть пост не читал,может кто додумался, но я бы написал так ))))))
B_>int CTestcasehelper_Pim::compareStrings(std::string str1,std::string str2) B_>{ B_> if (str1.compare(str2) == -1) B_> { B_> return -1; B_> }
Здравствуйте, Brick_1, Вы писали:
B_>Доброго ! B_>Весть пост не читал,может кто додумался, но я бы написал так ))))))
Тогда уж так:
int CTestcasehelper_Pim::compareStrings(std::string str1,std::string str2)
{
switch(str1.compare(str2))
{
case -1:
return str1.compare(str2);
case 0:
return str1.compare(str2);
case 1:
return str1.compare(str2);
case 2: // на всякий случайreturn str1.compare(str2);
case 3:
return str1.compare(str2);
case 4:
return str1.compare(str2);
// потом много копипаста, потом создание макроса чтобы расставить нужные значенияdefault:
return str1.compare(str2);
}
}