<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ADAMS (Posts about refactoring)</title><link>https://adams.cms.waikato.ac.nz/</link><description></description><atom:link href="https://adams.cms.waikato.ac.nz/categories/refactoring.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Fri, 26 Jun 2026 05:22:57 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>AbstractActor -&gt; Actor - update</title><link>https://adams.cms.waikato.ac.nz/posts/abstractactor-actor-update/</link><dc:creator>FracPete</dc:creator><description>&lt;p&gt;Just finished committing and kicked off a build.&lt;/p&gt;
&lt;p&gt;All repositories should have a new tag from just before the commit:&lt;/p&gt;
&lt;p&gt;&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;2016-02-15_before_abstractactor_to_actor_refact&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Let me know if you come across any errors or weird behavior after
updating your code base.&lt;/p&gt;</description><category>refactoring</category><guid>https://adams.cms.waikato.ac.nz/posts/abstractactor-actor-update/</guid><pubDate>Mon, 15 Feb 2016 04:02:46 GMT</pubDate></item><item><title>AbstractActor -&gt; Actor</title><link>https://adams.cms.waikato.ac.nz/posts/abstractactor-actor/</link><dc:creator>FracPete</dc:creator><description>&lt;p&gt;On Friday, I embarked on a major refactoring mission, something that I've put
off for years now.&lt;/p&gt;
&lt;p&gt;A few years into the development of ADAMS, I introduced the &lt;em&gt;Actor&lt;/em&gt; interface,
attempting to make it simpler with other derived frameworks, in order to
avoid casting etc underneath the hood. However, this required touching a lot
of classes, including a lot of production code. The reason why I shied away
from doing it.&lt;/p&gt;
&lt;p&gt;But, things change and I'm in the process of developing some other commercial
frameworks from the ground up (but still based on ADAMS). Instead of using
AbstractActor in methods and member variables, I've switched to using the Actor
interface, getting rid of a lot of unnecessary (and potentially dangerous)
casts. There were about 6,500 occurrences of &lt;em&gt;AbstractActor&lt;/em&gt; in the various
code bases (including unit tests), so It took a while going through all of
them and changing the ones where it made sense. At this stage (haven't
checked anything in yet), everything compiles and the unit tests pass.
I'll be making a lot more tests still, but I'm aiming for a massive commit on
Monday night with all those changes. So, the next time you update your code,
it might take a bit longer than usual... ;-)&lt;/p&gt;
&lt;p&gt;I'll keep you posted!&lt;/p&gt;</description><category>refactoring</category><guid>https://adams.cms.waikato.ac.nz/posts/abstractactor-actor/</guid><pubDate>Sat, 13 Feb 2016 04:35:37 GMT</pubDate></item></channel></rss>