Best Practices best-practices

Best Practices for Developers - Getting Started best-practices-for-developers-getting-started

Adobe Engineering and Consulting teams have developed a comprehensive set of best practices for AEM developers. Adobe developer’s adhere to these best practices as they develop core AEM product updates and customer code for customer implementations.

Before you start your AEM development project, first review these best practices:

Additional Best Practices Information additional-best-practices-information

The following areas have documentation available specific to developing best practices:

Specific documents are described and linked to in the tables that follow.

For best practices on administering, deploying and maintaining, or authoring, see one of the following:

Sites sites

Managing and authoring your website content has some best practices outlined as follows:

Some of the theory behind the standard, touch-enabled UI.

Touch-Enabled UI: Concepts

Touch-Enabled UI: Structure

These documents provide an overview of the concepts, and structure, of the touch-enabled UI.
Touch-Enabled UI: Customizing consoles
Customizing touch-enabled UI consoles
This document describes the best way to extend the consoles for the touch-enabled UI.
Touch-enabled UI: Customizing page authoring
Customizing touch-enabled UI page authoring
Describes how to extend page authoring for the touch-enabled UI.
Developing and Extending Workflows
Workflows enable you to automate Adobe Experience Manager (AEM) activities and can represent a large amount of the processing that occurs in an AEM environment, so it is highly recommended to plan your workflows implementations carefully.

Communities communities

AEM Communities simplifies the creation and management of on-premise Communities.

Some best practices for Communities are described here:

Best practices for working with user generated content (UGC)
Coding Guidelines
Guidelines for developing flexible, portable code for the social component framework (SCF).
Example usage of Communities components
Community Components Guide
An interactive development tool.

Tooling/HTL tooling-htl

HTML Template Language (HTL) is a new HTML templating system, introduced with AEM 6.0. It replaces JSP and ESP as the preferred templating system of AEM.

HTL overview
HTL overview and syntax
This document describes what HTL is, how to move to HTL, a sample project, syntax, expressions, and statements
Using API in java
HTL Java Use-API
The HTL Java Use-API enables a HTL file to access helper methods in a custom Java class.
Following multi-part tutorial might be of interest for the best practice to setup a new AEM project, detailing the Core Components, Editable Templates, Client Libraries and component development:
Getting Started with AEM Sites - WKND Tutorial