Fwd: Re: [clubSmalltalk] refactorizacion

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Fwd: Re: [clubSmalltalk] refactorizacion

Carlos E. Ferro-2




-------- Forwarded Message --------
Subject: Re: [clubSmalltalk] refactorizacion
Date: Wed, 9 Oct 2019 09:43:31 -0300
From: Carlos E. Ferro [hidden email]
To: miguel agustin cardamone [hidden email]


On 09/10/2019 09:09, miguel agustin cardamone wrote:
priceBeforeTax
| com p p2 |
com := self isBestSeller
ifTrue: [ price / 50 ]
ifFalse: [ price / 100 ].
p := self isBestSeller
ifTrue: [ price * 1.1 ]
ifFalse: [ price ].
p2 := p + com.
^ p2

Esto es equivalente a

priceBeforeTax
    ^self isBestSeller
                    ifTrue: [ price * 1.6 ]
                    ifFalse: [ price * 1.01 ]

y el otro, es

price
    ^self isBestSeller
                    ifTrue: [ price * ( 1.1 * 1.21 +  0.5 ) ]
                    ifFalse: [ price * 1.22  ]

Más que código repetido, es una forma de hacer las cuentas paso por paso, que si operas con un poco de álgebra se resuelve más corto.

Por supuesto, puede que me haya equivocado en alguna cuenta, lo hice rápido y de memoria, Pero un par de tests pueden despejar las dudas.

Ambos se pueden refactorizar, para dejar sólo el factor en dos me'todos, y multiplicar price por self factor o por self factorBeforeTax.

Saludos

--
signature

carlos e. ferro | senior developer caesar systems

[hidden email]

--
--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
---
Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/clubsmalltalk/000007ce-2831-c166-d522-bcdba5d55da7%40gmail.com.