Saturday, January 22, 2011

Еще раз про пользу правильного именования

В старой ветке RDSN форума обсуждалось как-то написание пословиц на C++. Вот так например:
if (flag == true)
  if (flag == true)
    if (flag == true)
      if (flag == true)
        if (flag == true)
          if (flag == true)
            if (flag == true)
              Cut();
Скороговорка:
greka.drive(river,moveType::Over);
if(greka.lookUpFirstItem(river) isinstanceof Cancer)
{
  river.insert(greka.hand);
  crayfish.grab(greka.hand);
}

И еще про рыбу:

bool IsFish(const Animal &animal)
{
    ...
    if(FishContainer.IsEmpty && IsCrawfish(animal))
        return true;
    ...
}
А вот довольно спорная по сути, но зато оформленная двумя классами:
class CBaba : public CHomoSapiens
{
public:
     bool   KonyaNaSkakuOstanovit();
     bool   VGoryazhuyIzbuVoidet();
}
class CKobila : public CAnimal
{
private:
     int    m_trudno;
public:
     bool   BabaSVozu( const CBaba&)
     {  
         m_trudno--; // Kobile legche
     }
}
Шутки-шутками, а если серьезно – подумайте, ведь правильное именование переменных и методов позволяет именно читать код, понимать его суть, т.е. бизнес-смысл! И в реальном коде должно быть тоже самое.

No comments: