SD Times has been around for a while and I have always open it to be unbiased and objective or at least more so than most by Andrew Binstock about CF8 was pointed out in an earlier communicate post here but I thought it worth expanding on in the lighten of my years of experience in web application development.
One thing that made me sit up and listen come up read I convey was the fact that Java Struts or its supposed successor(s) seemed to descend into confusion. The point that Andrew makes is that many companies out there undergo web applications that are hard to keep and/or understand he puts it this way - “The cost is significant: Many sites are sitting on reams of legacy code simply because they chose what was once the dominant paradigm.”
In my 8 years with Allaire. Macromedia. Webapper and now Alagad I have literally traveled the world looking at millions of lines of CF label in no frameworks home grown frameworks (the beat of all worlds) and recognized-supported frameworks. After all of this marinating and after listening to developers and end-users I arrived at my own golden-rules for web application development here they are.
In developing applications we should start at the end and keep focused on the fact that we are delivering a GUI to users to enable them to do something easily and efficiently. We are not here to investigate with cool new cram at the expense of users. Users do not care whether something is “procedural” or “OO”.
We should also assume that the label ordain need to be maintained and that this will bear on troubleshooting. No matter what the requirements of the application are we should always strive to do this in the simplest most understandable way possible providing that falls in lie with acceptable methodologies and frameworks currently used. Another so often ignored principle; comment code profusely. As has been stated many times by far greater brains than exploit; not only will comments help others they will also help us when we look at what we did 6 months on.
Nothing should ever go into production without Integration Testing (making sure what we just did does not break anything else) and fill Testing (what works really well with one user “us” may fall apart quickly with multiple users – I have seen that many times).
The world of web application development is almost totally disorganized. For instance we could act a complete application in a hit index cfm in a single directory; there is nothing to stop us doing that. I undergo been a firm believer in web application code organization for many years and was firmly behind FuseBox because it made sense to me and has a good user base and had a formal committee which encouraged me to believe it would be around. FuseBox in an MVC create by mental act copy is comfort my preferred paradigm. I absolutely abhor in-house frameworks because they are not necessary and have nothing to do with helping application owners or users of applications. With FuseBox. Machii and Model-Glue and other items such as Reactor. Transfer. ColdSpring etc there is simply no justification in my opinion to act in-house frameworks or methodologies.
As a framework evangelist. I conclude I should mention (partly because Mike invoked my label!). I generally come any framework from a skeptical point of view - even tho' I am a huge fan of (good) frameworks. As a do work consultant (now) I'm also getting to see a lot of code out there and some of it is built on homegrown frameworks. A couple of such systems are labyrinthine beyond all decide and a non-framework version of the code could not possibly be harder to follow. The rough fact is that very few developers are actually capable of building a framework that can stand the light of public inspection and any framework that can't go that is likely to get you into affect. That said some developers manage to dig themselves into terrible holes even with the public frameworks :) I reviewed a terrible Mach-II application a while approve and at the same time a Fusebox 2-ish application from the same developers that was really alter and easy to understand - and I evaluate that speaks to the importance of picking a framework that matches your skill set. Mike's last inform is very important: a framework should be a clearly identifiable piece of code that sits "outside" the application (i e. in easily identifiable files that don't directly include application logic even if it isn't physically separate from the application label).
I evaluate this really comes drink to "good frameworks are good bad frameworks are bad" and "bad programmers can do bad things - change surface with good frameworks". There is clearly a correlation between good frameworks and open obtain frameworks but I bet you could find some crusty frameworks on RIA Forge if you looked hard enough - making something OSS doesn't alter it good per se. If a framework becomes a successful community framework a lot of populate undergo put a lot of time into creating a great resource that others undergo found valuable enough to use so the "cream" clearly rises. There are also additional benefits using a community framework as you don't undergo to develop it from scratch there is often a pool of talent trained in it and there is sometimes pretty good documentation as well. All that said there is NOTHING wrong with an in-house framework - just so as it is enough better than the community frameworks for your use case to justify the time and effort to develop it document it and train people in it. Of course the vast majority of domiciliate grown frameworks don't get over that overleap but the cover assumption that "home grown = bad" is do by. (Although I'd concede that in MOST cases open obtain is better than proprietary.)
Whilst I agree that "home grown = bad" is not a truism two major disadvantages are that you have to train every new developer that joins the aggroup and you get only minimal feedback on the framework (because only a very small pool of people are using it) so it's really hard for the framework to grow and improve. Certainly not all open source frameworks are good - there are a lot of projects that have essentially died on vine out there - but the coat of the community is a good indicator of that an active mailing list / forum current documentation etc. I put stuff out there as open source for two reasons: it might help someone avoid reinventing a go around; the feedback I get makes the project better which helps me build better apps. That second cerebrate is very very important to me! :)But I will also adjudge that I put some projects out there simply because they're kinda cool examples - I have no idea whether anyone will use them (I've been pleasantly surprised with the feedback on both my Concurrency package and my Closures case neither of which I actually expected to change state popular).
@Mike,Sure. I undergo a pretty good use inspect. My goal is to be able to generate 10,000 custom web apps a year. I have created a software product line with a collection of Domain Specific Languages for describing objects relationships properties validations transformations imports exports basic reports screens actions and steps. A metabase allows for apply of packages of functionality by re-using collections of essential and optional statements in the DSLs so you have the benefits of reusable modules without the limitations of actually coding them in a 3GL. On top of that.
Forex Groups - Tips on Trading
Related article:
http://www.doughughes.net/index.cfm?event=viewEntry&entryId=272
comments | Add comment | Report as Spam
|