Re[5]: что нельзя делать никогда
От: мыщъх США http://nezumi-lab.org
Дата: 19.12.13 10:42
Оценка: -2
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, мыщъх, Вы писали:


М>>например, перевод фаренгейта в цельсия. вот формула. вас не затруднит написать программу?


М>>


К>А теперь рядом — обратный перевод?


вы отклонились от исходной формулы далеко на север, что затрудняет сопровождение программы. далеко не каждую формулу можно разобрать по кирпичикам, а если можно, то ненужно. в исходной формуле были "магические константы". у вас они сохранились. вы их перенесли в имена переменных. причем, в С0 от нуля легко освободиться, т.к. шкалы смещены друг относительно друга на 32 градуса в _любой_ _точке_. температуры кипения воды не было в исходной формуле и вы фактически вы выводили ее на лету.

float const C_per_F = (100-0)/(C100_in_F-C0_in_F); // 5./9.

зачем все это, если вы уже знаете, что оно 5.9 ?

при всем уважении я не могу сказать, что ваш код обладает преимуществами перед решением с использованием "магических констант". если на то пошло, то у вас _все_ неправильно. абсолютно. имена -- на свалку. переписать в обобщенном виде, где есть шкала А и Б с ключевыми отметками в двух точках. тогда однажды написанный код будет переводить не только градусы, но мили, литры, аршины и все-все-все.

в _вашей_ реализации имена переменных не отражают _подлинной_ сути. в контексте обсуждения копипасты -- это актуально.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: что нельзя делать никогда
От: TimurSPB Интернет  
Дата: 19.12.13 10:44
Оценка: +2 :)
S>Какие вещи в коде можно считать однозначно плохими и нельзя использовать никогда и ни при каких условиях?
Непонятные.
Make flame.politics Great Again!
Re[15]: что нельзя делать никогда
От: Michael7 Россия  
Дата: 19.12.13 10:46
Оценка: +1
Здравствуйте, stronk2, Вы писали:

S>

S>Вообще-то Капитан Очевидность вырастает до Адмирала Ясен Хрен (я заменил последнее слово на похожее, но пригодное для открытых источников). Генералов тут в иерархии не встречается


S>Прекращай позориться. Хотя бы сам себе не противоречь.


Меня на ржач пробило, коллеги оглядываются. Спор о воинской принадлежности Капитана Очевидность, как результат выяснения вопроса о стилях и методах программирования.
Re[5]: что нельзя делать никогда
От: Erop Россия  
Дата: 19.12.13 11:30
Оценка: +2 -1
Здравствуйте, stronk2, Вы писали:

S>Код должен быть простым и понятным безо всяких диффов. Ваш Кэп.


Копи-паста этому ничуть не мешает...
Ещё раз поясни, зачем вообще сравнивать два места в коде в принципе? предположим, что ты второе написал ен копипастой, а просто из головы...

Копи-паста, вообще не тем страшна, что трудно чот-то сравнивать, а тем, что
1) Провоцирует ошибки типа "правил, но недоправил"
2) Вообще провоцирует неосознаность действий при написании кода
3) При исправлении в одном месте, не правится само в остальных.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: что нельзя делать никогда
От: Erop Россия  
Дата: 19.12.13 11:34
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>А потом кто-то увидит одну часть и подумает, ну не страшно, будет в двух местах, и вот у нас уже 3 места.

Ну и что?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: что нельзя делать никогда
От: Erop Россия  
Дата: 19.12.13 11:50
Оценка:
Здравствуйте, stronk2, Вы писали:

М>>а вот еще. написано -- (k + 4)/10. оно заменяет кучу ресурсоемких вычислений и выдает удивительно точный результат, который долго пытались объяснить аналитическим путем, выдвинули несколько гипотез почему оно работает, но потом плюнул и забили болт. работает -- и ладно.


S>Вот примерно такие случаи говнокода я и имел в виду.


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

S>>Какие вещи в коде можно считать однозначно плохими и нельзя использовать никогда и ни при каких условиях?

TSP>Непонятные.

Это да, но это
1) Субъективно
2) Иногда всё равно надо
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: что нельзя делать никогда
От: Erop Россия  
Дата: 19.12.13 11:59
Оценка:
Здравствуйте, stronk2, Вы писали:

S>Ваши варианты?


Комментарии, не относящиеся к делу, например такие:
// Наташа из кубикла 7-q-13 ведётся на шашлычок под водочку ;)
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: что нельзя делать никогда
От: denisko http://sdeniskos.blogspot.com/
Дата: 19.12.13 12:03
Оценка: :))) :)
Здравствуйте, Erop, Вы писали:

E>Комментарии, не относящиеся к делу, например такие:

E>
// Наташа из кубикла 7-q-13 ведётся на шашлычок под водочку ;)

Ну это лучший вид комментариев при условии, что Наташа
0) Наташа имеет ярко выраженные половые признаки
1) еще работает
2) это та же самая Наташа
<Подпись удалена модератором>
Re: что нельзя делать никогда
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 19.12.13 12:06
Оценка: +2
Здравствуйте, stronk2, Вы писали:

S>1. магические константы


const int index64[64] = {
    0,  1, 48,  2, 57, 49, 28,  3,
   61, 58, 50, 42, 38, 29, 17,  4,
   62, 55, 59, 36, 53, 51, 43, 22,
   45, 39, 33, 30, 24, 18, 12,  5,
   63, 47, 56, 27, 60, 41, 37, 16,
   54, 35, 52, 21, 44, 32, 23, 11,
   46, 26, 40, 15, 34, 20, 31, 10,
   25, 14, 19,  9, 13,  8,  7,  6
};
 
/**
 * bitScanForward
 * @author Martin Läuter (1997)
 *         Charles E. Leiserson
 *         Harald Prokop
 *         Keith H. Randall
 * "Using de Bruijn Sequences to Index a 1 in a Computer Word"
 * @param bb bitboard to scan
 * @precondition bb != 0
 * @return index (0..63) of least significant one bit
 */
int bitScanForward(U64 bb) {
   const U64 debruijn64 = 0x03f79d71b4cb0a89;
   assert (bb != 0);
   return index64[((bb & -bb) * debruijn64) >> 58];
}

int bitScanForward(U64 bb) {
   assert (bb != 0);
   return index64[((bb & -bb) * 0x03f79d71b4cb0a89) >> 58];
}


В данном случае не вижу никакой разницы между двумя вариантами. Все равно константа 0x03f79d71b4cb0a89 не выйдет за пределы функции.

S>2. копи-паста

Все хорошо в меру. Если это не система, то вполне допустимо. Особенно если непонятно, куда занесет дальше. Копи-паста меньшее зло, чем попытка натянуть сову на глобус, пытаясь объединить необъеденимое.


S>Ваши варианты?

Я против догматов
Re[6]: что нельзя делать никогда
От: Кодт Россия  
Дата: 19.12.13 13:32
Оценка: +1
Здравствуйте, мыщъх, Вы писали:

К>>А теперь рядом — обратный перевод?


М>вы отклонились от исходной формулы далеко на север, что затрудняет сопровождение программы. далеко не каждую формулу можно разобрать по кирпичикам, а если можно, то ненужно. в исходной формуле были "магические константы". у вас они сохранились. вы их перенесли в имена переменных. причем, в С0 от нуля легко освободиться, т.к. шкалы смещены друг относительно друга на 32 градуса в _любой_ _точке_. температуры кипения воды не было в исходной формуле и вы фактически вы выводили ее на лету.


Ах, зачем же мы на вы? Давайте ж выкопаем закопаем топор войны и выкопаем стакан брудершафта!

М>float const C_per_F = (100-0)/(C100_in_F-C0_in_F); // 5./9.


М>зачем все это, если вы уже знаете, что оно 5.9 ?


Какая разница, хардкодить коэффициент и выводить точку кипения, или хардкодить точку кипения и выводить коэффициент?
Но лучше всего хардкодить опорные точки — например, в кельвинах. А то у нас получится слишком много зависимых пар — всех со всеми.

М>при всем уважении я не могу сказать, что ваш код обладает преимуществами перед решением с использованием "магических констант". если на то пошло, то у вас _все_ неправильно. абсолютно. имена -- на свалку. переписать в обобщенном виде, где есть шкала А и Б с ключевыми отметками в двух точках. тогда однажды написанный код будет переводить не только градусы, но мили, литры, аршины и все-все-все.


Вот ведь глупость написал, чисто, чтоб поспорить?

Поскольку у нас две формулы — туда и обратно, — то параметры в них появятся дважды.
Да ещё и в неявном виде.

Либо придётся извращаться примерно таким способом:

где dir принимает значения 1 (C->F) и -1 (F->C)

Куда и как подставлять параметры для обобщённых пересчётов — сам поймёшь.

М>в _вашей_ реализации имена переменных не отражают _подлинной_ сути. в контексте обсуждения копипасты -- это актуально.


Ещё как отражают. В отличие от загадочного делителя 2.
Перекуём баги на фичи!
Re: что нельзя делать никогда
От: minorlogic Украина  
Дата: 19.12.13 17:57
Оценка:
Здравствуйте, stronk2, Вы писали:

S>Какие вещи в коде можно считать однозначно плохими и нельзя использовать никогда и ни при каких условиях?



S>Ваши варианты?


Нелья зарекаться не делать чегонить никогда.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: что нельзя делать никогда
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.12.13 14:30
Оценка:
Здравствуйте, stronk2, Вы писали:

S>Код должен быть простым и понятным безо всяких диффов. Ваш Кэп.


А узнавать про изменения от версии к версии, в каментах штоле ? Или запретить такую активность ?
Re[8]: что нельзя делать никогда
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.12.13 14:32
Оценка:
Здравствуйте, netch80, Вы писали:

N>>>Он простой и понятный.


S>>Если ты предлагаешь использовать для его анализа дифф — очевидно, что нет.


Диф нужен не для анализа кода, а для анализа изменений в коде. Как можно получить изменения без дифа — решительно неясно.
Re: утверждение
От: Pavel Dvorkin Россия  
Дата: 22.12.13 12:43
Оценка:
Здравствуйте, stronk2, Вы писали:

S>Какие вещи в коде можно считать однозначно плохими и нельзя использовать никогда и ни при каких условиях?


Каково бы ни было правило (кроме уж совсем тривиальных), всегда найдется ситуация, в которой сделать с точностью до наоборот будет лучшим решением.
With best regards
Pavel Dvorkin
Re[5]: что нельзя делать никогда
От: Sinclair Россия https://github.com/evilguest/
Дата: 23.12.13 07:05
Оценка:
Здравствуйте, vnp, Вы писали:
vnp>А вот такого я не встречал. Пример можно?
См. тж "ряд Тейлора"

vnp>Выдыхай... что-нибудь соответствующее какой-нибудь физической реальности, желательно.

А что тут непонятного — это какое-то нелинейное вычисление, аппроксимированное при помощи случайных совпадений. Там поди ещё и реинтерпретация float k как целочисленного.

Просто про замену div 2 на shr 1 знают все, а про аппроксимации плаваюшего 1/sqrt(x) целочисленным делением — не все.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: что нельзя делать никогда
От: Sinclair Россия https://github.com/evilguest/
Дата: 23.12.13 07:13
Оценка: +1 :)
Здравствуйте, stronk2, Вы писали:

S>Ваши варианты?

Нет вариантов, юный падаван. http://rsdn.ru/forum/humour/1600906.1
Автор: Sinclair
Дата: 19.01.06
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: что нельзя делать никогда
От: stronk2  
Дата: 30.12.13 03:42
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Нет вариантов, юный падаван. http://rsdn.ru/forum/humour/1600906.1
Автор: Sinclair
Дата: 19.01.06


На вопрос обиженных учеников: "а как ее добиться?", ты говоришь: "никогда не делайте то-то".
Похоже, юный падаван здесь не я
Re[3]: что нельзя делать никогда
От: Erop Россия  
Дата: 30.12.13 09:56
Оценка:
Здравствуйте, stronk2, Вы писали:

S>Похоже, юный падаван здесь не я

Ну не дорос ещё, бывает...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: что нельзя делать никогда
От: stronk2  
Дата: 30.12.13 11:01
Оценка:
Здравствуйте, Erop, Вы писали:

S>>Похоже, юный падаван здесь не я

E>Ну не дорос ещё, бывает...

Интересно, нерелевантные ответы — это здесь такая местная мода?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.