[Cuis-dev] added push down to single subclass refactor option

Juan Vuletich juan at cuis.st
Fri Jun 2 06:10:15 PDT 2023


Nice.

Thanks Hernán for taking care of this!

Cheers,

On 6/1/2023 5:26 PM, Paolo Belforte via Cuis-dev wrote:
> Hello!
> It's even better than I thought, the list of classes instead of asking 
> for a string is great, I didn't know about that.
>
> Thanks a lot,
> Paolo
>
> El lun, 29 may 2023 a las 16:57, Hernán Wilkinson 
> (<hernan.wilkinson at 10pines.com <mailto:hernan.wilkinson at 10pines.com>>) 
> escribió:
>
>     Hi Paolo,
>      I just uploaded your code.
>      I made a few changes:
>     1) Made PushDownMethod a superclass of PushDownMethodToOneSubclass
>     (your code) and PushDownMethodToSubclasses
>     2) Renamed the appliers
>     3) Refactored the tests. There were tests in your code that did
>     not apply to this refactoring.
>     4) Based on Christian Haider comment, if applying the change is
>     not a refactoring, it will warn the user
>
>     Thank you for your suggestions!
>     I hope you liked how it ended up being and let me know any
>     questions you may have.
>
>     Cheers!
>     Hernan
>
>     On Thu, May 25, 2023 at 11:33 AM Paolo Belforte
>     <pbelforte2003 at gmail.com <mailto:pbelforte2003 at gmail.com>> wrote:
>
>         Hi, I made the changes suggested and added the tests to the
>         package, hope it works this time!
>         The classes and related names changed to
>         "PushDownMethodToSubclass..." and the applier now is
>         responsible to ask for the subclass name.
>         Also, thanks for the information about refactoring, I thought
>         any changes to code was considered a refactor.
>
>         Thanks, Paolo.
>
>         El mié, 24 may 2023 a las 18:23, Hernán Wilkinson
>         (<hernan.wilkinson at 10pines.com
>         <mailto:hernan.wilkinson at 10pines.com>>) escribió:
>
>             Hi Paolo,
>              thanks for this change set, it is a useful one and you
>             did a great job for a new smalltalker!!
>              There are some changes to be done before merging it.
>             1) The refactoring implementation, PushDownToMethod in
>             your case, should not interact with the user, therefore it
>             should not ask to witch subclass move the method to, it
>             should not do: StringRequestMorph request: ....
>              The refactoring class should receive in its instance
>             creation message all the necessary objects to do its job,
>             in this case it should receive the subclass to pushdown
>             the method to.
>             2) It should be the applier the one asking for the
>             subclass to push down the method to
>             3) There are no tests for the refactoring and we want all
>             refactoring to be tested. Please write the corresponding
>             tests that should be part of the package
>             BaseImageTests.pck.st <http://BaseImageTests.pck.st>  This
>             package is not automatically loaded in Cuis, you have to
>             load it yourself (unless you are using CuisUniversity who
>             has the tests loaded).
>             PushDownToMethod should receive the class from which to
>             push down the method, the method to push down and the
>             subclass to push down the method to. There you have many
>             things to test, like is the method implemented in the
>             class from where to push it down? Is the subclass really a
>             subclass of the class that implements the method? And then
>             you have all the assertions of the pushdown method
>             refactoring. Look at PushDownMethod class>>#for:
>
>             BTW, PushDownToMethod is not a good name for this
>             refactoring. I would call it PushDownMethoToSubclass.
>
>             Let me know if you have questions.
>             I'll wait for all these changes to integrate it!
>
>             Cheers
>             Hernan
>
>             PS: BTW, it is Smalltalk (lowercase t) not SmallTalk ...
>             just a minor thing to have in mind :-)
>
>             On Tue, May 23, 2023 at 6:02 AM Christian Haider via
>             Cuis-dev <cuis-dev at lists.cuis.st
>             <mailto:cuis-dev at lists.cuis.st>> wrote:
>
>                 Hi,
>
>                 this is not a refactoring, since it changes the
>                 behavior of the system. See Code refactoring -
>                 Wikipedia
>                 <https://en.wikipedia.org/wiki/Code_refactoring>.
>
>                 Everything is fine when you call it a code
>                 transformation. But, please, don’t shift the meaning
>                 of “refactoring”.
>
>                 Happy hacking and have fun with Smalltalk,
>
>                 Christian
>
>                 *Von:* Cuis-dev <cuis-dev-bounces at lists.cuis.st
>                 <mailto:cuis-dev-bounces at lists.cuis.st>> *Im Auftrag
>                 von *Paolo Belforte via Cuis-dev
>                 *Gesendet:* Dienstag, 23. Mai 2023 04:41
>                 *An:* cuis-dev at lists.cuis.st
>                 <mailto:cuis-dev at lists.cuis.st>
>                 *Cc:* Paolo Belforte <pbelforte2003 at gmail.com
>                 <mailto:pbelforte2003 at gmail.com>>
>                 *Betreff:* [Cuis-dev] added push down to single
>                 subclass refactor option
>
>                 Hello everyone,
>
>                 I'm still new to SmallTalk, but I've made a change to
>                 the base image of Cuis, adding this new refactor
>                 option as I find it very useful.
>                 When you click this refactor, a "StringRequestMorph"
>                 asks for a name to pass the desired method to a single
>                 subclass. You can find this option just down the "push
>                 down" refactor, it's the "push down to".
>
>
>                 Thanks,
>                 Paolo.
>
>                 -- 
>                 Cuis-dev mailing list
>                 Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
>                 https://lists.cuis.st/mailman/listinfo/cuis-dev
>
>
>
>             -- 
>             *Hernán Wilkinson
>             Agile Software Development, Teaching & Coaching*
>             *Phone: +54-011*-4893-2057
>             *Twitter: @HernanWilkinson*
>             *site: http://www.10Pines.com <http://www.10pines.com/>*
>             Address: Alem 896, Floor 6, Buenos Aires, Argentina
>
>
>
>     -- 
>     *Hernán Wilkinson
>     Agile Software Development, Teaching & Coaching*
>     *Phone: +54-011*-4893-2057
>     *Twitter: @HernanWilkinson*
>     *site: http://www.10Pines.com <http://www.10pines.com/>*
>     Address: Alem 896, Floor 6, Buenos Aires, Argentina
>


-- 
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20230602/6632c470/attachment-0001.htm>


More information about the Cuis-dev mailing list