Title: signature




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


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

--

carlos e. ferro | senior developer caesar systems

[email protected]

--
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
 
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 [email protected].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/clubsmalltalk/000007ce-2831-c166-d522-bcdba5d55da7%40gmail.com.

Responder a