Hi, coming from a dev that has done a few tours of duty with this framework, I see a couple things here;
- Interfaces can be used more - commitProperties(), meausre(), updateDisplayList() needs to be chopped into finer aggregated executions - there are suttle micro design patterns coming from the invalidation algorithm, need to implement them more. - renderers need to be used most of the time for composites and implement an interface - the data object needs to be used more for separating the model of a composite from it's parent. (not always the case) This debate really gets tiring. As a framework engineer, you have to build a damn stable base or all you other developers will start crying about something else, bugs. In my not so humble opinion, if Adobe found a balance between breaking up and aggregating core methods into protected, they could have their private vars and private functions while still maintaining what they are striving for. These types of things take major refactoring which means time. I would love to see those complaining sit down and see how long it would take them to come up with something Adobe has made thus far. With practice comes experience and then gives you the right to complain. On a last note, open source of this scares me in the fact you will have these crazy devs thinking they know what is right, but in actuality it is only right for what they are doing. This means that people that are complaining are complaining about their own subjective view and problem. They forget that true OOP is looking objectively at a problem and fixing it. This means taking your own gains out of the picture and implementing the framework for the gains of the system. You don't need an OOP book to see how this exactly plays out in real life. Peace, Mike On 6/15/07, reflexactions <[EMAIL PROTECTED]> wrote:
I agree with your statement "there really is a long way to go to make this framework component developer friendly" in fact I wonder how much thought has really been given to the use of the framework by component developers (as opposed to application developers who create components) outside of adobes own developers themselves. Given that you dont see much difference between public and protected and given there are so few protected vars and function as to be almost irrellevant for a comp developer you could make all the current protecteds public and then use protected for most of the private vars that can then be used by lunatics like me who need to develop sophisticated component at a low level and are willing to accept the API might change in a future release. -- take that tongue in cheek -- I would also add that given weve had 4 completely different component API's in 4 years from adobe that make me somewhat sceptical about being so concerned about protected APIs being cast in stone. Anyway TGIF... time for a beer... tks --- In [email protected] <flexcomponents%40yahoogroups.com>, "Michael Labriola" <[EMAIL PROTECTED]> wrote: > > I can't believe I am actually going to write this. > > You see, I have probably done more, uhm, `complaining' about the flex > framework and the private variables than even I care to remember. > With minor exception I have been doing flex component development > fulltime in one form or another since Flex 1. > > When 2.0 came about and I was suddenly restricted by private > variables, I nearly lost it. Back in the 1.5 days, we had a component > library of about 120 pieces and already knew that was going to triple > going into 2. Not being able to easily extend these classes with > private members added almost 200% to our original project cost and I > was less than happy. Even today there is still significant cost > associated with it and eliminating this practice in favor of > protected would allow us to be more effective and productive > component developers. > > All of that said, I do realize and support (now) the mantra that has > been put forth by the flex team. Any time a method or property is > exposed outside of a class (for this part of the argument there > really isn't a difference between public or protected) you have > defined an interface. Implicitly you have told developers to use > these methods and properties. > > That is a dangerous door to open as personally I want my components > to function on future frameworks and hence I want that interface to > stay exactly the same. So, I guess I am personally saying that I > believe it is worse for me as a component developer, but better for > the Flex community to have stability across releases. > > Now, truthfully, there really is a long way to go to make this > framework component developer friendly and many of the pieces, IMHO, > should have some sort of name space option. (P.S. I am not against > having to write use namespace SeriouslyThisPartIsGoingToChangeMoron; > to get what I need) but that is for another day and another time. > > I still can't believe I just admitted that, > Mike > > > --- In [email protected] <flexcomponents%40yahoogroups.com>, Bjorn Schultheiss > <bjorn.schultheiss@> wrote: > > > > Fair enough, > > > > The argument of change has been put forward and i guess that > strikes > > a cord in most developers. > > And Flex 3 is open-sourced and we can do whatever to the SDK, > beautiful. > > > > IMO, the point is quite clear. > > Private members kill the idea of a truly extensible framework and > > makes component development a pain. > > > > > > my two cents > > > > Bjorn > > > > On 15/06/2007, at 12:20 PM, Josh Tynjala wrote: > > > > > Agreed. > > > > > > As a component developer, I understand how many of you guys are > > > frustrated that it can be difficult to extend the existing Flex > > > components. I've been there myself, and it can be time consuming > to > > > find the right workaround. However, I fully support Gordon's > > > reasoning for the private variables and things. > > > > > > I have a feeling that most custom components built for Flex > 2.0.1 > > > will be able to easily transition to Flex 3 with only minor > > > changes. If all the variables and functions went from private to > > > protected or mx_internal, you'll find yourself facing many more > > > changes from one version to the next. In fact, it could be much > > > worse because such an open architecture might mean that you'll > have > > > to fully recreate your component from scratch. Right now, I know > > > that items that are public or protected probably won't change > much > > > if at all, and I like that safety. > > > > > > My two cents. > > > > > > -Josh > > > > > > Gordon Smith wrote: > > >> > > >> Object-oriented languages support private access because hiding > > >> implemention details is essential to producing evolvable code. > We > > >> try to figure out what the "interface" of a class should be, > and > > >> we expose that and no more. Otherwise the class becomes so > brittle > > >> that we can't change it without breaking compatibility... > > >> "Somebody might be calling foo() and it still has to do exactly > > >> what it did in 2.0.1 or their code will break." An alarmingly > > >> large percentage of our time is already spent on that kind of > > >> compatibility issue. > > >> > > >> If you can find a book on OO design that says "Make everything > > >> public unless you have a great reason for it to be private", > I'd > > >> like to know about it. > > >> > > >> IMHO, we've done a good job of exposing the right APIs for > > >> application developers, but a poor job of exposing the right > ones > > >> for component developers. We need to understand much more about > > >> how and why developers are extending our components in order to > > >> get the balance right. > > >> > > >> Making the framework brittle and unevolvable is one the > quickest > > >> ways I can think of to kill Flex. > > >> > > >> - Gordon > > >> > > >> From: [email protected]<flexcomponents%40yahoogroups.com> > > >> [mailto:[email protected]<flexcomponents%40yahoogroups.com>] On Behalf OfBjorn > Schultheiss > > >> Sent: Thursday, June 14, 2007 6:39 PM > > >> To: [email protected]<flexcomponents%40yahoogroups.com> > > >> Subject: Re: [flexcomponents] Re: Private vs Protected > > >> > > >> > > >> > > >> On 15/06/2007, at 11:25 AM, reflexactions wrote: > > >>> For a trully extensible framework that is supposed to form the > basis > > >>> of this whole platform it shouldnt be left that developers need > to > > >>> justify WHY something should be protected, it should be for the > > >>> framework author to justify WHY something is private. > > >> > > >> > > >> I love it!!! > > >> > > >> That 'play it safe' line was lame. > > >> Use that one for the boss but not for us, the poor devs who > might > > >> actually need to reference the private member. > > >> > > >> > > >> regards, > > >> > > >> Bjorn > > >> > > >> > > > > > > > > > > > > > Regards, > > > > Bjorn Schultheiss > > Senior Developer > > > > Personalised Communication Power > > > > Level 2, 31 Coventry St. > > South Melbourne 3205, > > VIC Australia > > > > T: +61 3 9674 7400 > > F: +61 3 9645 9160 > > W: http://www.qdc.net.au > > > > ((------------This transmission is confidential and intended > solely > > for the person or organization to whom it is addressed. It may > > contain privileged and confidential information. If you are not > the > > intended recipient, you should not copy, distribute or take any > > action in reliance on it. If you believe you received this > > transmission in error, please notify the sender.---------------)) > > >
-- Teoti Graphix http://www.teotigraphix.com Blog - Flex2Components http://www.flex2components.com You can find more by solving the problem then by 'asking the question'.
