Whenever you use a general purpose CMS and compare it to the systems built for one particular purpose, you will always miss a lot of details. This stands true when you are building an ecommerce website, a blog, a forum, and so on. However, the great thing about Drupal is that you can usually find a contrib module that provides such functionality, you can build it yourself using something like Rules or Views, or ultimately, write that in your custom module.
Views is probably one of the most useful Drupal modules for both developers and website builders. Chances are that you will rely on using Views even when you store the data in your custom tables, because of the additional features you get - from user interface, to caching and filtering.
This article will be a short example showing how to create a custom field handler that can be used for generating content for views header.
I reinstalled MAMP recently, in order to get PHP7 and latest updates in MAMP. At first, everything worked out of the box and even the previous databases were recognized without any issues. However, after I started working, I realized that there was a lag before my code would be recognized.
Conventions save your time and make it easier to work with more people and more projects. I find that conventions for naming files outside of any computer-related system are rarely standardized, and can cause confusion and delays.
Backups should be automated whenever possible, but even then it's a good practice to do this manually from time to time. Scheduled backups might include only the most important parts and sometimes cannot include additional data, such as software configuration files.
Having a launch checklist is always a good idea, especially if you develop it over time. It will narrow down the chances of having issues before the launch and make sure that everything is in order.
This is an extensive list of settings and other details that should be checked before a Drupal website goes live. Most of the items are applicable for Drupal 6, 7 and 8.
There are certain cases in which caching is not desirable because it can cause conflicts with the way certain pages work.
The best example is Captcha module, which automatically disables the page/block cache wherever it is displayed. This is necessary because Captcha output should never be cached. The code has to be regenerated for every visitor, in order to be unique and prevent bots from automatic submissions.
Unless you are working with a templating engine that streamlines HTML, chances are that you have to write pure HTML often - from testing snippets and forms to full layouts. This is because most of the template engines will not change the way you write HTML itself, but will just limit the amount of logic you have available.