--
--
To post to this group, send email to clubSm...@googlegroups.com
To unsubscribe from this group, send email to clubSmalltal...@googlegroups.com
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 clubsmalltal...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/clubsmalltalk/567e77cf-56c6-4e60-863f-0b0e137be044%40googlegroups.com.
Subject: | Re: [clubSmalltalk] refactorizacion |
---|---|
Date: | Wed, 9 Oct 2019 09:43:31 -0300 |
From: | Carlos E. Ferro <cefer...@gmail.com> |
To: | miguel agustin cardamone <macar...@gmail.com> |
priceBeforeTax| com p p2 |com := self isBestSellerifTrue: [ price / 50 ]ifFalse: [ price / 100 ].p := self isBestSellerifTrue: [ 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