neděle 28. června 2015

Uspěli byste na pohovoru?

Při pohovorech s uchazeči upřednostňuji spíše rozhovor nad kouskem kódu - pokud možno, nevyhledávám žádné záludnosti a snažím se o maximálně jednoduchý a srozumitelný kód. I tak jsem ale býval často nemile překvapen - kandidát nebyl schopen říci, co kód vlastně dělá, obvykle zvládl jen nalézt vytvoření objektu a následovali různé teorie, co se vlastně vůbec bude následně odehrávat. 
Jednalo se o nějaký takovýto kód:

  class Program
  {
      static void Main(string[] args)
      {
          var dog = new Dog();
          var animal = dog as Animal;

          animal.SayMyKind();
          animal.SayMyName();
          dog.SayMyName();
      }
  }
  
  class Animal
  {     
      public Animal()
      {
          this.SayMyKind();
          this.SayMyName();
      }

        public virtual void SayMyKind()
      {
          Console.WriteLine("I am an animal");
      }

      public void SayMyName()
      {
          Console.WriteLine("Bob");
      }
  }

  class Dog: Animal
  {
      public Dog()
      {
          this.SayMyKind();
          this.SayMyName();
      }

      public override void SayMyKind()
      {
          Console.WriteLine("I am a dog");
      }

        public new void SayMyName()
      {
          Console.WriteLine("Astor");
      }
  }

Myslíte, že je to vážně tak těžké? Zkusit, co to doopravdy provede lze on line zde

Žádné komentáře:

Okomentovat