Про код
От: lost_guadelenn  
Дата: 28.04.10 11:27
Оценка: :)
Добрый день.

Вот два куска кода:

раз
    // remove fields that dont exist anymore
    for (i=0; i<m_arrFieldObj.GetSize(); ++i)
    {
        for (int j=0; j<qr.names.GetSize(); ++j)
        {
            if(!qr.names[j].CompareNoCase(m_arrFieldObj[i].m_strName))
                break;
        }
        // field not found
        if (j<qr.names.GetSize())
            continue;
        m_arrFieldObj.RemoveAt(i);
        i--;
    }


два
    for(FieldVector::iterator it = m_arrFieldObj.begin();
        it != m_arrFieldObj.end();
        )
    {
        bool found = false;

        for (int j = 0; j < qr.names.GetSize(); ++j)
        {
            if(0 == qr.names[j].CompareNoCase((*it)->GetName()))
            {
                found = true;
                break;
            }
        }

        if(!found)
        {
            it = m_arrFieldObj.erase(it);
        }
        else
        {
            it ++;
        }
    }


Второй получен мной путем рефакторинга из первого.
Я считаю, что первый код ужасен и непонятен, второй еще более-менее нормален.
Человек, который писал первый код утверждает, что оба кода понятны и нормальны.

Скажите, я слишком критичен или нет?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.