Login
Может кто знает из Delphi
NEW 20.02.08 23:08
Видел и такое, но по счастью не пришлось так писать, для чего нужно то понятно, но не нравится.
in Antwort megabyte 20.02.08 22:27
В ответ на:
Угу, а if (FALSE != MyValue) еще лучше
Угу, а if (FALSE != MyValue) еще лучше
Видел и такое, но по счастью не пришлось так писать, для чего нужно то понятно, но не нравится.
NEW 21.02.08 18:17
in Antwort AlexNek 20.02.08 23:08
для чего нужно то понятно
-----
Некоторые умники считаю, что указание КОНСТАНТЫ в качестве первого операнда помогает оптимизатору... :)
но не нравится
-----
Угу... мозги плавятся когда приходится разбираться... И ведь что интересно - даешь умнику такой же код, но написанный другим умником - сидит, пыхтит, понять поймет, но к концу дня... Дашь тоже самое в нормальном виде - к обеду пережует и проглотит...
-----
Некоторые умники считаю, что указание КОНСТАНТЫ в качестве первого операнда помогает оптимизатору... :)
но не нравится
-----
Угу... мозги плавятся когда приходится разбираться... И ведь что интересно - даешь умнику такой же код, но написанный другим умником - сидит, пыхтит, понять поймет, но к концу дня... Дашь тоже самое в нормальном виде - к обеду пережует и проглотит...
NEW 21.02.08 18:43
Это делается чтоб случайно не присвоить своей переменной значение .
in Antwort Murr 21.02.08 18:17
В ответ на:
Некоторые умники считаю, что указание КОНСТАНТЫ в качестве первого операнда помогает оптимизатору... :)
Некоторые умники считаю, что указание КОНСТАНТЫ в качестве первого операнда помогает оптимизатору... :)
Это делается чтоб случайно не присвоить своей переменной значение .
NEW 21.02.08 19:13
И как они объясняют логику работы оптимизатора в данном конкретном случае? ;-)
Там же смайл в конце стоит.
in Antwort Murr 21.02.08 18:17
В ответ на:
Некоторые умники считаю, что указание КОНСТАНТЫ в качестве первого операнда помогает оптимизатору... :)
Некоторые умники считаю, что указание КОНСТАНТЫ в качестве первого операнда помогает оптимизатору... :)
И как они объясняют логику работы оптимизатора в данном конкретном случае? ;-)
В ответ на:
Это делается чтоб случайно не присвоить своей переменной значение .
Это делается чтоб случайно не присвоить своей переменной значение .
Там же смайл в конце стоит.
NEW 21.02.08 19:30
in Antwort Murr 21.02.08 18:17
Некоторые умники считаю, что указание КОНСТАНТЫ в качестве первого операнда помогает оптимизатору.
Точно, если мне надо в чужом коде разбираться, я его вначале форматирую в привычную форму.
В ответ на:
Никогда такого не слышал, но скажем, а=2 в ифе бывало, хотя ради этого писать 2==а совсем не хочется, код сильно страшно выглядит.
[цитата]мозги плавятся когда приходится разбираться
Никогда такого не слышал, но скажем, а=2 в ифе бывало, хотя ради этого писать 2==а совсем не хочется, код сильно страшно выглядит.
[цитата]мозги плавятся когда приходится разбираться
Точно, если мне надо в чужом коде разбираться, я его вначале форматирую в привычную форму.
NEW 21.02.08 21:22
in Antwort megabyte 21.02.08 19:13
И как они объясняют логику работы оптимизатора в данном конкретном случае? ;-)
------
Хммм... Из того, что удавалось из них выжать - у оптимизатора ограниченная глубина анализа... :)
------
Хммм... Из того, что удавалось из них выжать - у оптимизатора ограниченная глубина анализа... :)
NEW 21.02.08 21:27
Это 5.. :-)
in Antwort Murr 21.02.08 21:22
В ответ на:
Хммм... Из того, что удавалось из них выжать - у оптимизатора ограниченная глубина анализа... :)
Хммм... Из того, что удавалось из них выжать - у оптимизатора ограниченная глубина анализа... :)
Это 5.. :-)
NEW 21.02.08 21:37
in Antwort AlexNek 21.02.08 19:30
но скажем, а=2 в ифе бывало
-----
Вот тут Я соглашусь с Мегабайтом - человек, написавший а == 2, у меня работать не будет.
Одно из правил кодинга так и гласит - в тексте не может быть цифровых и строковых констант...
А другое его дополняет - нельзя совмещать две операции в одном выражении...
А опечатки - опечатки, да, бывают... К пятнице так вообще можно черте-что накуролесить...
Но на то и тесты и пошаговая отладка... Выживем...
я его вначале форматирую в привычную форму.
------
:))) - иногда случалось дополнительно помогать студентам. Приносят... гхмм... код... частенько
"помогал" следующим образом - форматирую в свой "стандарт"... потом спрашиваю - Продолжать?
Или уже видишь где проблема? - Шутка, но 8 из 10 обычно уже видят... :)
-----
Вот тут Я соглашусь с Мегабайтом - человек, написавший а == 2, у меня работать не будет.
Одно из правил кодинга так и гласит - в тексте не может быть цифровых и строковых констант...
А другое его дополняет - нельзя совмещать две операции в одном выражении...
А опечатки - опечатки, да, бывают... К пятнице так вообще можно черте-что накуролесить...
Но на то и тесты и пошаговая отладка... Выживем...
я его вначале форматирую в привычную форму.
------
:))) - иногда случалось дополнительно помогать студентам. Приносят... гхмм... код... частенько
"помогал" следующим образом - форматирую в свой "стандарт"... потом спрашиваю - Продолжать?
Или уже видишь где проблема? - Шутка, но 8 из 10 обычно уже видят... :)
NEW 21.02.08 22:42
А если он обоснует свои действия? ;-)
Я пошел топиться... Нашел у себя в коде строку if (strType.CmpNoCase(g_TypeMap[iCount].m_strName) == 0) { .. ;-)
stl::map cмотрелся бы лучше, но овчинка выделки не стоит.. В g_TypeMap всего пара или тройка записей.. Ну может еще пара добавится..
И такое нельзя? if (ptr != NULL && ptrl->Enabled()) {
В качестве пОнта.. ;-) Всегда умиляли люди использующие == в сравнении чисел с плавающей запятой...
in Antwort Murr 21.02.08 21:37
В ответ на:
Вот тут Я соглашусь с Мегабайтом - человек, написавший а == 2, у меня работать не будет.
Вот тут Я соглашусь с Мегабайтом - человек, написавший а == 2, у меня работать не будет.
А если он обоснует свои действия? ;-)
В ответ на:
Одно из правил кодинга так и гласит - в тексте не может быть цифровых и строковых констант...
Одно из правил кодинга так и гласит - в тексте не может быть цифровых и строковых констант...
Я пошел топиться... Нашел у себя в коде строку if (strType.CmpNoCase(g_TypeMap[iCount].m_strName) == 0) { .. ;-)
stl::map cмотрелся бы лучше, но овчинка выделки не стоит.. В g_TypeMap всего пара или тройка записей.. Ну может еще пара добавится..
В ответ на:
А другое его дополняет - нельзя совмещать две операции в одном выражении...
А другое его дополняет - нельзя совмещать две операции в одном выражении...
И такое нельзя? if (ptr != NULL && ptrl->Enabled()) {
В качестве пОнта.. ;-) Всегда умиляли люди использующие == в сравнении чисел с плавающей запятой...
NEW 21.02.08 23:06
in Antwort megabyte 21.02.08 22:42
А если он обоснует свои действия? ;-)
------
Ну если обоснует, то... ;-)
Я пошел топиться...
------
Рано. В Сишном кодинге разрешен ноль, в VB - единица...
И такое нельзя? if (ptr != NULL && ptrl->Enabled()) {
-----
:) - нельзя.
Причем по двум причинам
- ptrl таки может быть нулем (думаю - опечатка - ptr)
- Enabled() потенциально может менять состояние объекта (можно заменить пропертью или кастингом - тогда ответственность на кодере)
Всегда умиляли люди
-----
Посмотри чуток ранее - народ смеялся над тем, что одно из требований было - иметь отдельный тип для каждой сущности данных. А в результате, в частности, два врапированных float'a как раз корректно сравнивались по == :) и даже приемлемая точность задавалась без проблем...
------
Ну если обоснует, то... ;-)
Я пошел топиться...
------
Рано. В Сишном кодинге разрешен ноль, в VB - единица...
И такое нельзя? if (ptr != NULL && ptrl->Enabled()) {
-----
:) - нельзя.
Причем по двум причинам
- ptrl таки может быть нулем (думаю - опечатка - ptr)
- Enabled() потенциально может менять состояние объекта (можно заменить пропертью или кастингом - тогда ответственность на кодере)
Всегда умиляли люди
-----
Посмотри чуток ранее - народ смеялся над тем, что одно из требований было - иметь отдельный тип для каждой сущности данных. А в результате, в частности, два врапированных float'a как раз корректно сравнивались по == :) и даже приемлемая точность задавалась без проблем...
NEW 21.02.08 23:36
Я же не написал что это кусок кода, да и разве а = ХЕР было бы понятней для примера.
Да такую фигню нормальный компайлер выловит и спросит, а ты не дурак?
Да я вообще не понимаю кто их учит
in Antwort Murr 21.02.08 21:37
В ответ на:
в тексте не может быть цифровых и строковых констант
в тексте не может быть цифровых и строковых констант
Я же не написал что это кусок кода, да и разве а = ХЕР было бы понятней для примера.
В ответ на:
Но на то и тесты и пошаговая отладка
Но на то и тесты и пошаговая отладка
Да такую фигню нормальный компайлер выловит и спросит, а ты не дурак?
В ответ на:
иногда случалось дополнительно помогать студентам.
иногда случалось дополнительно помогать студентам.
Да я вообще не понимаю кто их учит
21.02.08 23:46
Так точно, опечатка..
Для этого в С++ есть замечательный описатель const.. его отсутвствие в С# меня добивает... Можно назвать паранойей, но я локальные переменные объявляю в виде const bool bEnabled = ....;
in Antwort Murr 21.02.08 23:06
В ответ на:
- ptrl таки может быть нулем (думаю - опечатка - ptr)
- ptrl таки может быть нулем (думаю - опечатка - ptr)
Так точно, опечатка..
В ответ на:
- Enabled() потенциально может менять состояние объекта (можно заменить пропертью или кастингом - тогда ответственность на кодере)
- Enabled() потенциально может менять состояние объекта (можно заменить пропертью или кастингом - тогда ответственность на кодере)
Для этого в С++ есть замечательный описатель const.. его отсутвствие в С# меня добивает... Можно назвать паранойей, но я локальные переменные объявляю в виде const bool bEnabled = ....;
NEW 22.02.08 10:24
Meyers, Effective C++:
:)
in Antwort megabyte 21.02.08 23:46
В ответ на:
Для этого в С++ есть замечательный описатель const.. его отсутвствие в С# меня добивает... Можно назвать паранойей, но я локальные переменные объявляю в виде const bool bEnabled = ....;
Для этого в С++ есть замечательный описатель const.. его отсутвствие в С# меня добивает... Можно назвать паранойей, но я локальные переменные объявляю в виде const bool bEnabled = ....;
Meyers, Effective C++:
В ответ на:
use const whenever possible
use const whenever possible
:)
NEW 22.02.08 10:25
in Antwort Chipolino 21.02.08 18:43
Это единственное объяснение?.. Мне этот стиль тоже жутко не нравится.
NEW 22.02.08 10:28
Я тоже (есть у меня макро для VC). Но как-то вышел геморрой: переформатировал я код, чтобы было легче разобраться, и добавил в него фичу. Коллега, сделавший то же, но без переформатирования, попытался добавить мои изменения в свою ветку и страшно ругался :)
in Antwort AlexNek 21.02.08 19:30
В ответ на:
Точно, если мне надо в чужом коде разбираться, я его вначале форматирую в привычную форму.
Точно, если мне надо в чужом коде разбираться, я его вначале форматирую в привычную форму.
Я тоже (есть у меня макро для VC). Но как-то вышел геморрой: переформатировал я код, чтобы было легче разобраться, и добавил в него фичу. Коллега, сделавший то же, но без переформатирования, попытался добавить мои изменения в свою ветку и страшно ругался :)
NEW 22.02.08 10:55
in Antwort Simple 22.02.08 10:24
Кстати, вопрос тем кто листал обе книжки... Effective C# такая же полезная как и Effective C++?
NEW 22.02.08 17:45
in Antwort AlexNek 21.02.08 23:36
Да такую фигню нормальный компайлер выловит и спросит, а ты не дурак?
-----
Кто же его об этом просит? :) По крайней мере в старые времена, когда Я был совсем глупым, Я это дело отключал - слишком уж много крику было... Потом одумался... пришлось... и стал писать так, что компайлеру ругаться не приходится... Так что что есть оно, что нету - одинаково... :)
было бы понятней для примера.
------
По крайней мере это бы подтверждало, что в коде нет констант. Легче без них, хотя - надо привыкнуть, но потом - много легче...
я вообще не понимаю кто их учит
------
Как всегда - тот, кто не умеет делать код...
-----
Кто же его об этом просит? :) По крайней мере в старые времена, когда Я был совсем глупым, Я это дело отключал - слишком уж много крику было... Потом одумался... пришлось... и стал писать так, что компайлеру ругаться не приходится... Так что что есть оно, что нету - одинаково... :)
было бы понятней для примера.
------
По крайней мере это бы подтверждало, что в коде нет констант. Легче без них, хотя - надо привыкнуть, но потом - много легче...
я вообще не понимаю кто их учит
------
Как всегда - тот, кто не умеет делать код...
NEW 22.02.08 17:55
Прикрутите astyle к svn.
in Antwort Simple 22.02.08 10:28
В ответ на:
Коллега, сделавший то же, но без переформатирования, попытался добавить мои изменения в свою ветку и страшно ругался :)
Коллега, сделавший то же, но без переформатирования, попытался добавить мои изменения в свою ветку и страшно ругался :)
Прикрутите astyle к svn.
NEW 22.02.08 18:01
Этого можно избежать и другим путём: 0. Активировать все предупреждения. 1. При компиляции всегда доводить программу до состояния, когда предупреждений нет вообще. 2. Никогда не присваивать в условиях. 3. Тогда эта ошибка отлавливается через - "warning C4706: assignment within conditional expression".
in Antwort Chipolino 21.02.08 18:43
В ответ на:
Это делается чтоб случайно не присвоить своей переменной значение .
Это делается чтоб случайно не присвоить своей переменной значение .
Этого можно избежать и другим путём: 0. Активировать все предупреждения. 1. При компиляции всегда доводить программу до состояния, когда предупреждений нет вообще. 2. Никогда не присваивать в условиях. 3. Тогда эта ошибка отлавливается через - "warning C4706: assignment within conditional expression".
NEW 22.02.08 18:03
in Antwort scorpi_ 22.02.08 17:55
Я бы уже давно прикрутил все мыслимое и немыслимое, если бы это зависело от меня. Даже STL толком не дают пользовать :(