Smartypants Progress, Release

1 view
Skip to first unread message

dtyrell

unread,
Mar 8, 2009, 10:34:01 AM3/8/09
to Smartypants IOC
Hi Josh,

Firstly, I must say that I'm loving Smartypants-IOC: it was very easy
to pick up, and has become an essential component in my toolbox. I've
successfully used it to build an MVCS architectural Flex framework
inspired by PureMVC but employing Dependency Injection (instead of the
Service/Model Locator pattern) and featuring automatic Mediator
registration/removal. It has reduced the complexity and volume of code
in my current projects tenfold!

I would like to release my little framework on Google Code, but though
it would be best to wait for the Smartypants 1.0 release in case the
API changes at all. Also, I'm thinking of waiting until Constructor
injection has been addressed - this would tighten up my framework
quite a bit - but I believe that's a fairly complex matter.

So, just wondering how things are coming along, and if there is
anything that an amateur programmer could do to help?

Josh McDonald

unread,
Mar 8, 2009, 10:24:54 PM3/8/09
to smartyp...@googlegroups.com
Hey, glad to hear it's helping out :)

I am planning on changing the API slightly before 1.0:

* I'm going to add a parameter to the request DSL for the injectee
* I'm adding "injectee" as a parameter to Provider.getInstance()

If you're only using the Rules DSL (and using annotations for all your requests), and you don't have any custom Provider implementations you should be right API-wise.

As for time, the answer is "soon". As for features, I'm going to push back the reflection changes to 1.1 alongside some other work that needs to be done in that area. I want to get the API changes, a couple more tests ([InjectInto] and [InjectIntoItems], and fixes for issues 14 and 15 completed before I call it 1.0

Constructor injection doesn't need to be too hard, but I do want to wait until I've made the changes to the reflection code before I implement it. If you've any ideas about how you'd like the API / annotations for it to look, post them here.

If you'd like to help with code, that'd be great. The "live rule" engine is pretty gnarly in order to (attempt to) dodge memory leaks, but the rest of the code should be pretty easy to follow, or I'm not doing it right ;-)

If there's anything else I can do to help you get your project out into the world let me know! I'd love to see what you've cooked up, because I'm planning on building something similar alongside some Warp+Guice+Blaze glue to make Java->Flex easier than it is at the moment.

Cheers,
-Josh

2009/3/9 dtyrell <Dar...@gmail.com>



--
"Therefore, send not to know For whom the bell tolls. It tolls for thee."

Josh 'G-Funk' McDonald
  -  jo...@joshmcdonald.info
  -  http://twitter.com/sophistifunk
  -  http://flex.joshmcdonald.info/

dtyrell

unread,
Mar 9, 2009, 10:58:11 AM3/9/09
to Smartypants IOC
To be honest, I've only really made use of the Rules DSL and
annotations - they cover everything I've needed to do so far.

The framework I've built will probably only really be useful for
people familiar with PureMVC who are looking for something a little
easier to work with. It might not be useful for developers who already
have their own mechanisms for separating application concerns. More
specifically, developers who make use of MVVM (Model-View-ViewModel)
or the Presenter pattern likely wouldn't find much use for it: it
revolves largely around the Mediator pattern. It is mostly suited to
projects where the view component object graph is largely outside of
the developers control: lots of lazily instantiated, deeply nested,
composite view components.

Before I release it I'll need to build an example application and
write some documentation for it. This may take a little while as I'm
right in the middle of a fairly large Flex application.

I have taken a look through some of the SmartyPants code, but I wasn't
kidding when I said I was an amateur programmer - most of the code
flew right over my head!

As a matter of interest, what bugs cropped up due to the use of "if
(foo)" instead of "if (foo != null)"? I tend to use that style quite a
bit when dealing with instances.

Cheers,
> 2009/3/9 dtyrell <Dars...@gmail.com>
>
>
>
>
>
> > Hi Josh,
>
> > Firstly, I must say that I'm loving Smartypants-IOC: it was very easy
> > to pick up, and has become an essential component in my toolbox. I've
> > successfully used it to build an MVCS architectural Flex framework
> > inspired by PureMVC but employing Dependency Injection (instead of the
> > Service/Model Locator pattern) and featuring automatic Mediator
> > registration/removal. It has reduced the complexity and volume of code
> > in my current projects tenfold!
>
> > I would like to release my little framework on Google Code, but though
> > it would be best to wait for the Smartypants 1.0 release in case the
> > API changes at all. Also, I'm thinking of waiting until Constructor
> > injection has been addressed - this would tighten up my framework
> > quite a bit - but I believe that's a fairly complex matter.
>
> > So, just wondering how things are coming along, and if there is
> > anything that an amateur programmer could do to help?
>
> --
> "Therefore, send not to know For whom the bell tolls. It tolls for thee."
>
> Josh 'G-Funk' McDonald
>   -  j...@joshmcdonald.info
Reply all
Reply to author
Forward
0 new messages