Hi Chris,

Joe Emenaker already made a refactoring branch:
branches/UIRefactor

It may be best if you two sync each other.

Joachim

Am 16.12.2011 13:16, schrieb [email protected]:
> Hi folks,
>
> I've committed my working copy as a new branch, as I've been making a large 
> number of changes that I didn't want to apply to the trunk without approval. 
> A summary is below.
>
> 1 - Deleted the incomplete code in the existing org.jsynthlib package - I 
> wonder why this was not committed originally to a branch.
> 1 - Moved all remaining source code into a src subdirectory.
> 2 - Moved the core and synthdrivers packages to src/org/jsynthlib/.
> 3 - Deleted Makefiles as maintaining a parallel build system seems pointless 
> since Ant is available on Windows, Mac OS X and other Unix platforms.
> 4 - Deleted the stale META-INF directory that was presumably from a commit of 
> an expanded JAR file of the project.
> 5 - Rewrote the Ant build script and properties file from scratch to match 
> current best practices.
> 6 - Added targets and third party JAR files for the Checkstyle and PMD code 
> analysis tools.
> 7 - Made a huge number of changes to the core and synthdrivers code, see 
> below.
>
> The code changes I have made started with an attempt to remove a lone setter 
> from the Device interface. It required changes to all the synth driver device 
> classes, as the device is now a constructor argument for devices since it 
> should be initialised once. While looking through the synth drivers I noticed 
> a lot of either cut and paste code or else cargo cult programming. A typical 
> example is the setPatchName methods, where a byte array was being allocated 
> then immediately derefernced and a StringBuilder was then being initialised 
> with a string but immediately having toString called on it as part of a 
> return statement.
>
> Overall, I think the code can be refactored into something clean and elegant 
> in a top down manner. This should result in no casts if the inheritance 
> hierarchy is cleaned up, better encapsulation and a removal of Swing code 
> from drivers that would facilitate a move to unit testing. A lot of code 
> duplication in the synth drivers could be removed with careful refactoring, 
> making the job of writing new drivers much easier. Sorting out the 
> inheritance hierarchy will be my next project, and I'll try to improve 
> encapsulation as I go since far too many data members are public or 
> package-private, expose modifiable Collections or pass around array 
> references in ways that introduce fragility.
>
> Regards,
>
> Chris
>
>
>
> ------------------------------------------------------------------------------
> Learn Windows Azure Live!  Tuesday, Dec 13, 2011
> Microsoft is holding a special Learn Windows Azure training event for
> developers. It will provide a great way to learn Windows Azure and what it
> provides. You can attend the event by watching it streamed LIVE online.
> Learn more at http://p.sf.net/sfu/ms-windowsazure
> _______________________________________________
> Jsynthlib-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jsynthlib-devel
>


------------------------------------------------------------------------------
Learn Windows Azure Live!  Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for 
developers. It will provide a great way to learn Windows Azure and what it 
provides. You can attend the event by watching it streamed LIVE online.  
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Jsynthlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jsynthlib-devel

Reply via email to