Stacking a Better Joomla Application
Stacking a Better Joomla Application
When I was young, I collected baseball cards. They were multi-functional, you could trade them with your friends, save the good ones, throw the bad ones, but most of all you could create things with them. I probably had too much time on my hands, but who didn't as a child. When you stack cards, you place them on edge and lean them on another card, everything depends on each card balancing the one it is leaning on perfectly. You start with two cards, lean them on each other /\ . Then you do another set /\/\. On top of the last set you place a card flat _ and it ties everything together for your next set. You continually do this to build larger structures. But as you add more cards, the weight of the cards as a whole, begins to work against your structure....Eventually the structure falls because the weight is too much and the balance becomes unstable. As a child, the point was to build your structure as high as possible. It was a simple child's game but somehow developing open source Joomla applications reminds me of this long lost art.
When I was young, I collected baseball cards. They were multi-functional, you could trade them with your friends, save the good ones, throw the bad ones, but most of all you could create things with them. I probably had too much time on my hands, but who didn't as a child. When you stack cards, you place them on edge and lean them on another card, everything depends on each card balancing the one it is leaning on perfectly. You start with two cards, lean them on each other /\ . Then you do another set /\/\. On top of the last set you place a card flat _ and it ties everything together for your next set. You continually do this to build larger structures. But as you add more cards, the weight of the cards as a whole, begins to work against your structure.
/\
/\/\
/\/\/\
/\/\/\/\
/\/\/\/\/\
/\/\/\/\/\/\
Eventually the structure falls because the weight is too much and the balance becomes unstable. As a child, the point was to build your structure as high as possible. It was a simple child's game but somehow developing open source Joomla applications reminds me of this long lost art.
Everyone knows that Joomla is easy to install. Point, click, enter a bit of info, and you're done. You're a genius! Installing extensions are just as easy (provided your PHP environment is similar to the extension developers environment). Creating web applications with Joomla can be just as easy as stacking cards, but the one thing about stacking cards and developing web applications that many people don't understand is that the more you stack on--the more weight your structure or application gains-- the closer to failure your structure or application is.
Every extension will add to your application in some way, whether it be the addition of more time spent rendering the page or more things attached to the page (JavaScript, CSS, or html output). Everything adds weight to your page. The object of building a Joomla application is to monitor this weight and distribute it across your application. How do you do this? That answer falls under the big topic of Optimizing. We'll eventually get to that, but let me give you some practical guidelines right now that you can do with your current Joomla system without getting too technical. One thing to take from all of this before we get practical: Joomla development is like stacking cards, you need to start with a good foundation or your system will crumble under the weight of future development.
Here are some practical guidelines on how to distribute Joomla application weight.
YAGNIT! You aren't going to need it! If the extension you installed is not serving a functional use, then remove it, completely from your system. Unpublishing an extension, sometimes sad to say doesn't completely take things off your page because of poor development by the third-party developer. Remove it from your system. Have two systems, one to try out extensions (because it is fun!) and one for your serious Joomla application.
Organize: We are logical people. We organize information when we see it, this is how we understand things. Joomla gives you so many options to put on your pages that you can lose track of your original idea for creating that page. Stay focused! Keep similar things or ideas connected with each other. Don't have every module on every page, keep them specific to the idea for the page. For instance, We have a Joomla section here on Joomla Packages. On it we have three modules, all of which allow the reader to dig deeper into the Joomla section. We provide: Navigation, Latest, and Most Reviewed modules. Our approach is to give three windows into the same information so that a user can browse through our resources in a manner that they decide. In this blog section of our site, we didn't include these modules, we wanted to focus on the blog content itself. We did add the video tutorial module, which isn't part of our blog, to the right in our blog section because people do consistently ping our videos, so this isn't a hard and fast rule. Use your noggen, keep your pages organized.
Reduce the amount of html forms on a single page. You may be surprised by all the forms that you have on your pages as some are hidden from your view. Forms come at a very large cost. They are usually bulky as they are most of the time created with html tables. Developers usually include JavaScript to validate the info, which is a good development practice but it adds an additional scripts to the page, thus another HTTP request and also more page weight. There is no need to have a dozen forms on your page, try to reduce the number to 3 or less. There are other module types to focus on also, but I mentioned forms because they can be easy to spot.
Distribute your forms across your pages if you absolutely need to have them, but first, make sure they serve a functional purpose to what you are trying to accomplish with your Joomla application (YAGNIT). Secondly make sure the form is on the right page with ideas similar to it. Third and finally make sure that you don't load your pages up with forms as they seem to add a lot more than sometimes they are worth.
Once again I wrote a little too much and didn't even scratch the surface. Joomla development is like stacking cards, you need to start with a good foundation or your system will crumble under the weight of future development. I'm interested to see what you think, add a comment!



