- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
while (true)
{
m_CurrentDevice += delta;
if (m_CurrentDevice < 0)
m_CurrentDevice = devices[DEV_PLATE]-1;
if (m_CurrentDevice > devices[DEV_PLATE]-1)
m_CurrentDevice = 0;
break;
}
guest 21.09.2009 13:46 # 0
Dimarius 21.09.2009 18:43 # 0
interested 22.09.2009 09:14 # +1
TObject 22.09.2009 12:01 # 0
2Dimarius
ээ, а действительно?..
interested 22.09.2009 13:04 # 0
Вообще "заплаточное" программирование -- это самый большой источник невразумительного кода вида
<выходной параметр> public method1(<входные параметры>) {
<здесь делаем дело>
}
<выходной параметр> public method2(<входные параметры>) {
<здесь делаем тоже самое дело>
}
То есть, два метода с разными названиями делают одно и тоже, и сигнатура одинакова.
Оказывается, что сначала эти методы делали разные вещи, предназначались для использования в разных местах, но после очередной заплаты возникла необходимость в том, чтобы они делали одно и тоже, но выносить это "одно" нельзя в отдельный метод, потому что следующая заплатка вновь может потребовать различного поведения.
Всякие там случаи, когда сначала переменные определяются, а затем перекладываются в другие без изменений. Возникают конструкции, которые имеют инвариантом что угодно, как приведённый цикл: что в него не брось, он ни на что не повлияет.
Зато, в большинстве случаев, можно быстро писать "приблизительный" код. Который что-то там делает, но точно его контракт не известен (тем более невозможно точно знать, что внутри него происходит). Мы думаем, что "потом залатаем".
TObject 23.09.2009 17:21 # 0