Re[6]: Альтернатива
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 26.04.08 09:02
Оценка: +6
Здравствуйте, igna, Вы писали:

I>Здравствуйте, Erop, Вы писали:


E>>Всё-таки альтернатива с str_find_one_of намного милее моему сердцу. Тем более, что обычно функцию str_find_one_of реализовывать не надо, а можжно воспользоваться каким -нибудь стандартным средством поиска в списке...


I>Ты лучше нарисуй. Эту милую сердцу альтернативу моему:


I>
I>if (false
I>    || s == "Беларусь"
I>    || s == "Великобритания"
I>    || s == "Германия"
I>    || s == "Россия"
I>    || s == "Украина"
I>    || s == "Франция"
I>)
I>


Зачем козе баян? При нормальном проектировании эти списки никто не хранит напрямую в коде, они подгружаются из ресурсных конфигов.
А то, что Вы нарисовали — временная затычка до переписывания в нормальный режим (тогда пофиг, как она будет выглядеть те 1-2 изменения которые проживёт).
The God is real, unless declared integer.
Re[9]: Запись if с несколькими || или &&
От: Erop Россия  
Дата: 26.04.08 09:25
Оценка:
Здравствуйте, CreatorCray, Вы писали:

RO>>В фильме «Карты, деньги и два ствола» подробно рассказывалось, на какую именно.

CC>Эээ... Это такая тонкая шутка юмора?
Я, кстати, её не понял
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[11]: Запись if с несколькими || или &&
От: Erop Россия  
Дата: 26.04.08 09:26
Оценка:
Здравствуйте, igna, Вы писали:

I>Чтобы первое и последнее подусловия не отличались от остальных. Здесь
Автор: igna
Дата: 26.04.08
.

А это для чео?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Альтернатива
От: Erop Россия  
Дата: 26.04.08 09:32
Оценка:
Здравствуйте, igna, Вы писали:

I>Ты лучше нарисуй. Эту милую сердцу альтернативу моему:


I>
I>if (false
I>    || s == "Беларусь"
I>    || s == "Великобритания"
I>    || s == "Германия"
I>    || s == "Россия"
I>    || s == "Украина"
I>    || s == "Франция"
I>)
I>


1) Я уже рисовал тебе тут пример с функцией str_find_one_of
2) В реальности, у нормальных пацанов, это всё выглядит примерно так:
config.Load();
// ... тут многочего делается, входим в функции и т. д.
if( config.GetCountries().Find( s ) != NotFound ) {
    // тут обрабатываем s
}

3) Я вообще не понимаю подхода. Я понимаю если бы ты пропагандировал патч или плагин к какой-то популярной IDE, который позволяет удобно смотреть дифф и редактировать списки, записанные естественным способом, а не издевался бы над мозгом читателей твоего кода...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: Запись if с несколькими || или &&
От: CiViLiS Россия  
Дата: 26.04.08 10:24
Оценка: 10 (1) :)))
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, CreatorCray, Вы писали:


RO>>>В фильме «Карты, деньги и два ствола» подробно рассказывалось, на какую именно.

CC>>Эээ... Это такая тонкая шутка юмора?
E>Я, кстати, её не понял
Это чиста кывтовская шутка: Афера
Автор: kan_izh
Дата: 01.06.06
(читать все ответы на первоначальное сообщение
... << RSDN@Home 1.2.0 alpha 4 rev. 1058>>
"Бог не терпит голой сингулярности" -- Роджер Пенроуз
Re[7]: Альтернатива
От: igna Россия  
Дата: 26.04.08 11:11
Оценка:
Здравствуйте, netch80, Вы писали:

N>Зачем козе баян? При нормальном проектировании эти списки никто не хранит напрямую в коде, они подгружаются из ресурсных конфигов.


Верно. Но у такого подхода есть и недостатки. Например надо обрабатывать ситуацию, когда файл не найден. Или еще иногда нужно запретить пользователю изменять список. Не думаю, что предлагаемый тобой подход является предпочтительным в 100% всех случаев. Бывает, что предпочтительнее хранить список в исходном коде.
Re[7]: Альтернатива
От: igna Россия  
Дата: 26.04.08 11:18
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>1) Я уже рисовал тебе тут пример с функцией str_find_one_of


Да. Хотел посмотреть, запишешь ли ты и названия стран в одну строку.
Re[9]: Ну что ж. Мастер класс, так мастер класс :)
От: Left2 Украина  
Дата: 26.04.08 11:51
Оценка: +2
E>Кстати, а зачем комментировать код, если есть CSV?
Ну как сказать. Одно дело увидеть закомментированный код с комментарием типа "а вот так вот — не работает" или "было так, но так было капец как медленно" и другое дело — догадаться для этого полезть в лог VCS. Я всё же за закомментированный код. Естественно, клинические случаи (типа не удалять код вообще ) не рассматриваем.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[5]: Запись if с несколькими || или &&
От: Lloyd Россия  
Дата: 26.04.08 11:57
Оценка: :)))
Здравствуйте, andy1618, Вы писали:

GZ>>Если человек в условии пишет false, то сразу хочется узнать зачем это он делает.


A>Во-во. Лично я бы голову сломал, пытаясь осознать глубину замысла аффтара

A>Так что нужно перед такими конструкциями ещё и поясняющий коммент прилеплять — типа "Уважаемые читатели, не волнуйтесь! False в данной конструкции используется чисто из соображений удобства анализа изменений в системе контроля версий"

Да, и не забудь каждой слово в комментарии — на отдельной строке.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[7]: Запись if с несколькими || или &&
От: Roman Odaisky Украина  
Дата: 26.04.08 12:48
Оценка: 2 (1)
Здравствуйте, igna, Вы писали:

CC>>Да замените себе diff утилиту на ту, которая будет подсвечивать не только измененные строки но и что именно в строках изменилось.


I>На какую?


Лично я испольую Vim, преимущественно из-за того, что он имеет как GUI-версию, так и консольную. Там встроен режим сравнения:


(скриншот, где-то 70 КБ)

Может, это не очень хорошо видно, но он сворачивает большие куски совпадающего кода (см. самую верхнюю строчку в консольном окне).

Из того, что другие умеют, а Vim нет, можно назвать инфоскроллер и возможность отобразить две строки одну над другой для посимвольного сравнения.
До последнего не верил в пирамиду Лебедева.
Re[10]: Ну что ж. Мастер класс, так мастер класс :)
От: Erop Россия  
Дата: 26.04.08 14:18
Оценка:
Здравствуйте, Left2, Вы писали:

E>>Кстати, а зачем комментировать код, если есть CSV?

L>Ну как сказать. Одно дело увидеть закомментированный код с комментарием типа "а вот так вот — не работает" или "было так, но так было капец как медленно" и другое дело — догадаться для этого полезть в лог VCS. Я всё же за закомментированный код. Естественно, клинические случаи (типа не удалять код вообще ) не рассматриваем.

А словами/в сопроводительно йдокументации описать принятые решения не судьба?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[11]: Ну что ж. Мастер класс, так мастер класс :)
От: Left2 Украина  
Дата: 26.04.08 14:40
Оценка: +1
E>А словами/в сопроводительно йдокументации описать принятые решения не судьба?
Кинь камнем кто слышал как я говорил что-то против документации
Документация — это всегда хорошо
Но иногда проще оставить кусок кода который не работает + дописать одну строку чем долго рассказывать как и что было сделано не так
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[12]: Ну что ж. Мастер класс, так мастер класс :)
От: Erop Россия  
Дата: 26.04.08 17:16
Оценка: +1
Здравствуйте, Left2, Вы писали:

L>Но иногда проще оставить кусок кода который не работает + дописать одну строку чем долго рассказывать как и что было сделано не так

1) IMHO излагать мысли в виде связанного текста на русском языке полезно и для мыслей и для языка. Так что "проще" не значит "лучше"
2) В совсем совсем исключительных случаях такая форма объяснений конечно тоже возможна. Но это совсем не мейнстрим. Странно под такой редкий случай стандарты кодирования подстраивать.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Запись if с несколькими || или &&
От: Alex Alexandrov США  
Дата: 26.04.08 20:21
Оценка: +5 -1
Здравствуйте, Erop, Вы писали:

E>А можно и так:

E>
const char* str_find_one_of( const char* str, const char *const* patterns, int patterns_count )
E>}


Легкий офф-топик: имена типа patterns_count с множественным числом существительного, стоящего перед другим существительным, с головой выдают интерфейсы написанные людьми, для которых английский — не родной. И как правило — русскими. Очень для нас это ненатурально, но тем не менее — правильно будет pattern_count. Аналогично: getNodeCount (не getNodesCount), getModuleArray (не getModulesArray) и т.п.
It's kind of fun to do the impossible (Walt Disney)
Re[9]: Запись if с несколькими || или &&
От: Alex Alexandrov США  
Дата: 26.04.08 20:26
Оценка: +2
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Да ладно, это же элементарно. Он так делает, чтобы иметь возможность "выключать" отдельные куски условия простым однострочным комментарием. Я так, правда, не пишу, но зато в SQL скриптах очень часто делаю так:


E>Так понять хотя бы можно.

E>А просто редактировать ен рулит?

E>Ну типа copy-paste, оригинал комментим, а над копией изголяемся?

E>А если о системе контроля версий обратно вспомнить, то и от копипаста отказаться можно...

Главное — не забыть закомментаренный код убрать перед коммитом. За куски закомментаренного кода на код ревью ругаем, если только код не находится в стадии активной разработки. Да и в этом случае обязателен комментарий TODO/FIXME, из которого должно быть четко ясно, когда эти аппендиксы будут удалены.

Нет ничего хуже закомментаренных обрывков макарон в коде пятилетней давности, без комментариев кто, зачем и почему это выключил...
It's kind of fun to do the impossible (Walt Disney)
Re[7]: Запись if с несколькими || или &&
От: Erop Россия  
Дата: 26.04.08 20:27
Оценка:
Здравствуйте, Alex Alexandrov, Вы писали:

AA>Легкий офф-топик: имена типа patterns_count с множественным числом существительного, стоящего перед другим существительным, с головой выдают интерфейсы написанные людьми, для которых английский — не родной. И как правило — русскими. Очень для нас это ненатурально, но тем не менее — правильно будет pattern_count. Аналогично: getNodeCount (не getNodesCount), getModuleArray (не getModulesArray) и т.п.


Это не английский. Это глупый довольно сопи-пасте. типа ХХХ и ХХХ_count
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: И совсем не для того
От: Alex Alexandrov США  
Дата: 26.04.08 20:35
Оценка: +1
Здравствуйте, Roman Odaisky, Вы писали:

RO>Аналогично:


RO>
RO>enum SomeEnum
RO>{
RO>    value1,
RO>    value2, // <-- лопата
RO>};
RO>


Это нелегальный C++ код. Если кратко — некоторые компиляторы (GCC) будут ругаться предупреждениями, а иногда (gcc -pedantic) и ошибками. Более подробно — например, здесь
It's kind of fun to do the impossible (Walt Disney)
Re[3]: И совсем не для того
От: igna Россия  
Дата: 27.04.08 08:05
Оценка: -1
Здравствуйте, Alex Alexandrov, Вы писали:

AA>Это нелегальный C++ код.


Да, к сожалению. При инициализации массива запятая после последнего значения допускается; а тут, в синтаксически подобном месте — нет. Мне нравится, что C99 разрешил запятую после последнего члена перечисления, все-таки кому-то еще это надо, раз в C такая возможность появилась. Надеюсь появится и в C++. Кроме того можно было бы разрешить запятую после последнего аргумента/параметра и может быть даже такое:

logical-or-expression:
        logical-and-expression
        logical-and-expression ||
        logical-or-expression || logical-and-expression
Re[3]: И совсем не для того
От: Roman Odaisky Украина  
Дата: 27.04.08 08:43
Оценка: +1
Здравствуйте, Alex Alexandrov, Вы писали:

RO>>Аналогично:


RO>>
RO>>enum SomeEnum
RO>>{
RO>>    value1,
RO>>    value2, // <-- лопата
RO>>};
RO>>


AA>Это нелегальный C++ код.


Причем здесь C++?!
До последнего не верил в пирамиду Лебедева.
Re[4]: С++ всё ещё *слишком простой и понятный*? :)))
От: Erop Россия  
Дата: 27.04.08 10:08
Оценка:
Здравствуйте, igna, Вы писали:

I>
I>logical-or-expression:
I>        logical-and-expression
I>        logical-and-expression ||
I>        logical-or-expression || logical-and-expression
I>


Не, ЛЮДИ! Вам правда кажется, что синтаксис С++ всё ещё *слишком простой и понятный*?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.