We here at LevelTen work with Drupal every day so as you can imagine we've seen a few horror stories unfold where clients have hired an inexperienced developer to build their site for them. Here's a list of the top 5 most common mistakes that inexperienced developers make, and a few tips on how you can avoid them.
5. No Man is an Island
Drupal has a pretty steep learning curve, and can be downright frustrating at times. If you're new to Drupal and don't have an account on drupal.org then the world can be a pretty lonely place. There are literally thousands of people all over the world willing and ready to help you learn your new craft, and the more you contribute back to the community the more likely they will want to help you. Hours of tearing your hair out can be saved simply by doing a Google search or checking the drupal.org issue queues for module bugs and patches.
- Create an account at drupal.org and get involved as much as possible. Part of Drupal’s strength is having users who give back to the community.
- Attend Drupal Meetups and Camps to find out what’s new, and what the Drupal rockstars are using.
4. Reinventing the Wheel
So you've taken the time to learn all about Drupal’s hook system and some of the basic APIs that it uses and you're ready to dive in head first, right? Wrong. As an already experienced developer, your knee-jerk reaction to any challenge may be to jump directly into the code and start doing what you do best, but in doing so you will quickly eat up any budget allocated to the project. There's no sense reinventing the wheel if someone else has already done most of the legwork. Modules take little time to install and configure, and they're FREE.
- Before you jump into building a module from scratch, always research what’s already out there to prevent extra work in the beginning – you’re likely to get a head start with an existing module.
- Use Google to search “How-To” tutorials. A 5 minute video can save you hours of fumbling around admin screens trying to figure it out on your own.
- Set up a sandbox, an environment you can break and test modules on, before using them on a real website.
3. PHP in the WYSIWYG
This is really more of a pet peeve than anything else, but every time I see PHP entered in from the Drupal interface I throw up in my mouth a little bit. PHP belongs on the backend, not in the database. WYSIWYGs are fine for basic (and I mean, basic) content formatting; however, inserting anything more advanced than late-1990's HTML will cause it to be wiped out as soon as the WYSIWYG attempts to format the code. Since you probably don’t want all your hard work to disappear, taking the extra time to do it the right way might be appropriate.
- Check out the Block API, hook_menu(), and hook_theme().
- Create a module specifically for the site that will handle any one-off customizations. This can also be used to create pages and blocks that require programmatic code that you would otherwise enter into the WYSIWYG.
- As a last resort, disable the WYSIWYG and restrict access to users if possible.
2. Killing Kittens
Someone who is unfamiliar with Drupal, or the use of content management systems in general, may think that it is perfectly OK to play around with the code in Drupal’s core. Among the Drupal community, we refer to this as hacking core, or "killing kittens". While it may address an immediate need and be a little bit faster than writing a custom module, or creating a theme override, don't be tempted. You'll be opening yourself up to some serious issues. Drupal releases regular updates for core, and developers are constantly updating modules, which you won't be able to install because they will overwrite any changes you have made. Now try to imagine finding out that the high-profile website you've been working on has been hijacked and is at the mercy of the hacker because you weren't able to install the updates needed to fix those security holes after you edited core.
- For God's sake… think about the kittens!
1. The Rube Goldberg Website
One of the easiest and worst traps for a budding Drupal developer to fall into is that of code/configuration fragmentation. If the backend of your site looks like a Rube Goldberg machine and requires a Ph.D. or some bizarre wizardry to make edits to then you’re probably doing something wrong. One of the brilliant features of Drupal is its highly modular construction. In the right hands this construction can be extremely powerful; however, in the case of an inexperienced developer it lends its self to some very complex, and often unnecessary, configuration setups. One rule of thumb is that if it takes several hours to track down all of the steps required to make a simple change, then try doing it a different way.
- If you think you might forget how you did something, then you probably will.
- Your theme should be used strictly for display purposes only, leave the functional components to the modules.
- You should be able to toggle modules on and off without causing any major breakage.
Have you experienced any of these horror stories or challenges?
Are there any other tips you'd offer to beginner Drupal developers?
Share your comments below.