Capa para posts sobre Coding Dojo

4º Dojo da disciplina de OO (2º sem. de 2013)

  • Data: 04/11/2013
  • Horário: 21:15
  • Linguagem: C#
  • Problema: O problema proposto foi o exercício da Lista 7 que se encontra no site do Prof. Ramon Folha de Pagamento.
  • Formato: Randori
  • Participantes: Caio de Arruda Campos Coan, David Anderson da Silva Rocha, Denis Martos, Edson Antônio de Almeida Júnior, Emerson Gaudino Garcia, Érika Lima Vila Nova, Francisco Gregório da Silva Júnior, Guilherme Cardoso da Silva, Isaac Eliape Ferreira de Brito, Osmar de Souza Queiroz,Patrícia de Lima Santos, Rafael Godinho dos Santos Lima, Ramon Chiara, William Silva de Souza.
  • Código: GitHub

Narrativa

Como de costume, o professor começou criando os testes. Nesse caso, testes foram criados para cada um dos tipos de programador (jr, pl, sr). Nesse ponto, foi feito um refactoring de forma a juntar o que era comum aos programadores em uma classe base que foi chamada de Programador. A questão de classe abstrata (matéria da noite) surgiu quando foi preciso desenvolver o método de cálculo do salário nessa nova classe.

Logo após, o professor chamou a atenção para o fato de que o método que calcula salário é igual em cada sub-classe, mudando apenas o valor da hora. A idéia era comentar sobre o pattern chamado Template, mas os alunos sugeriram a passagem do valor da hora pelo construtor. Isso acabou com a necessidade de se ter um método abstrato, apesar da classe permanencer abstrata.

Também foi visto que o método GetNome, que é concreto, podia ser movido para a classe abstrata. Conforme explicado na aula de teoria, isso é perfeitamente possível.

No momento de criar a classe Gerente, foi percebida a necessidade de chamar a classe Programador de Funcionário, o que foi feito usando-se as ferramentas de refactoring do Visual Studio .Net. Após isso, foi a vez de desenvolver a classeVendedor e, com isso, a necessidade de dividir a classe Funcionario, já que começou a haver discrepância no comportamento das classes (vendedor não trabalha por hora). Foi discutida a proposta de herdar a classeFuncionarioHorista de Funcionario. Assim, foi visto que, conforme vai havendo necessidade, toda uma hierarquia de classes pode ser criada. Provavelmente a hierarquia de classes ficaria assim:

Possível hierarquia de classes.

O tempo estava se esgotando e o professor propôs um último teste para o que seria a classe que calcula a folha de pagamento para vários funcionários. Perdemos um pouco de tempo tentando fazer o teste passar porque foi difícil detectar que o método CalculaSalario não estava como virtual na classe base. Talvez isso teria sido evitado fazendo os testes desde o início de forma polimórfica (variável base, objeto da sub-classe).

Fotos

Retrospectiva

  • O que deu certo? / O que aprendemos?
    • Conseguimos melhorar a lógica x3 / Trabalho em duplas / Exemplos do teste.
    • Aplicar os conhecimentos passados na aula e nas aulas passadas x5.
  • O que pode melhorar? / O que dificultou o aprendizado?
    • Precisamos praticar mais exercícios x2.
    • Aumentar o tempo mais 5 min.
    • Não pode dormir no Dojo!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *