Coder Social home page Coder Social logo

dds-monedero-java8's Introduction

Monedero

Code smells

  • Cuenta.setSaldo() no deberíamos querer cambiar el Saldo de un Cuenta sin realizar un movimiento.
  • Dos constructores de Cuenta, uno no era utilizado.
  • Cuenta.setSaldo(), ¿está bien poder cambiar la lista de Movimientos de una Cuenta ?
  • Cuenta.sacar() no decrementa el valor del atributo Saldo de la Clase Cuenta.
  • Cuenta.poner() no incrementa el valor del atributo Saldo de la Clase Cuenta.
  • el Atributo Saldo sería una especie de Cache, este valor podría calcularse haciendo una Sumatoria de los montos de todos los movimientos, teniendo en cuenta que las extracciones tendrian monto negativo, de ser numerosos Movimientos podría justificarse el guardado del Saldo en cada extraccion/depósito
  • Cuenta.sacar() y Cuenta.poner() vs Cuenta.extraer() y Cuenta.depositar(), los segundos nombres parecen ser mas acordes al dominio.
  • Las validaciones en Cuenta.sacar() y Cuenta.poner() incomodan la lectura de los metodos, se abstraen las validaciones a metodos separados.
  • ¿ Tiene sentido Separar la idea de un Movimiento en clases Extraccion y Deposito en lugar de manejar un boolean isDeposito dentro de Movimiento.

Contexto

Este repositorio contiene el código de un monedero virtual, al que podemos agregarle y quitarle dinero, a través de los métodos Monedero.sacar y Monedero.poner, respectivamente. Pero hay algunos problemas: por un lado el código no está muy bien testeado, y por el otro, hay numerosos code smells.

Consigna

Tienes seis tareas:

  1. 🍴 Haz un fork de este repositorio (presionando desde Github el botón Fork)
  2. ⬇️ Descargalo y construye el proyecto, utilizando maven
  3. 👃 Identifica y anota todos los code smells que encuentres
  4. 🧪 Agrega los tests faltantes y mejora los existentes.
    • 👀 Ojo: ¡un test sin ningún tipo de aserción está incompleto!
  5. ⛑️ Corrige smells, de a un commit por vez.
  6. ⬆️ Sube todos los cambios a tu fork
  7. 🐛 Activa los issues de Github desde https://github.com/TU_GITHUB_USERNAME/dds-monedero-java8/settings así podemos darte nuestras devoluciones

Tecnologías usadas

dds-monedero-java8's People

Contributors

juanfsc avatar flbulgarelli avatar gastonprieto avatar nanderson87 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.