Study Guide

Tools to Know for Drupal Development

Drupal Coding Standards

An overview of coding best practices and standards as they are applied in the Drupal community can be found here:

https://www.drupal.org/docs/develop/standards

These coding standards, detailed for every area in which code might be produced during Drupal development, represent the broadly established best practices of the community. Adhering to these best practices will make development go more smoothly, and your contributions to Drupal core or modules to be more readily and easily accepted. If you are working on a project with Acquia technical support, these are the coding standards to which pull requests must adhere.

Drush

Drush is considered a basic skill for Drupal site development.

https://github.com/drush-ops/drush

Section 1 : Fundamental Web Development Concepts

1.1 Demonstrate knowledge of HTML, CSS and Javascript

Resources:

https://developer.mozilla.org/en-US/docs/Web

http://html5doctor.com/

http://www.webplatform.org/

https://css-tricks.com/almanac/

https://www.drupal.org/docs/8/theming-drupal-8/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-theme

https://www.drupal.org/docs/8/api/javascript-api/javascript-api-overview

1.2 Demonstrate knowlwdge of OO PHP programing concepts

http://codepen.io/

http://php.net

https://developer.mozilla.org/en-US/docs/Web/JavaScript

http://api.jquery.com/

1.3 Demonstrate knowledge of managing dependencies using Composer

https://www.drupal.org/docs/develop/using-composer

1.4 Demonstrate the use of Git for version control

https://confluence.atlassian.com/bitbucket/tutorial-learn-bitbucket-with-git-759857287.html

https://www.atlassian.com/git/workflows

1.5 Demonstrate knowledge of Automated Testing concepts

https://www.drupal.org/docs/8/phpunit

https://api.drupal.org/api/drupal/core!core.api.php/group/testing/8

Section 2 : Drupal core API

2.1 Demonstrate an ability to register paths to define how URL requests are handled in Drupal using Routing system and Menu API

https://www.drupal.org/docs/8/creating-custom-modules

https://www.drupal.org/docs/8/creating-custom-modules/getting-started-background-prerequisites-drupal-8

https://www.drupal.org/node/1353118

https://www.drupal.org/node/2156625

http://php.net/manual/en/language.namespaces.rationale.php

2.2 Demonstrate ability to build, alter, validate and submit forms using Form API

https://www.drupal.org/docs/8/api/form-api

2.3 Demonstrate ability to interact with the Entity system using Entity API

https://www.drupal.org/docs/8/api/entity-api

2.4 Demonstrate ability to use Core APIs for building and extending Drupal functionality

https://api.drupal.org/api/drupal/core!lib!Drupal.php/function/Drupal%3A%3Aservice/8

https://api.drupal.org/api/drupal/core!core.services.yml/8

https://www.drupal.org/docs/8/api/block-api

https://www.drupal.org/docs/8/api/cache-api

https://www.drupal.org/node/2133171

https://api.drupal.org/api/drupal/core!core.api.php/group/container/8

https://www.drupal.org/docs/8/api/plugin-api

https://api.drupal.org/api/drupal/core!modules!views!views.api.php/8.2.x

And all other core APIs listed on https://www.drupal.org/docs/8/api

https://docs.acquia.com/tutorials/fast-track-drupal-8-coding/

Section 3 : Debug code and troubleshooting

3.1 Demonstrate ability to debug code

https://www.drupal.org/docs/develop/development-tools

https://www.drupal.org/docs/develop/development-tools/xdebug-debugger

3.2 Demonstrate ability to troubleshoot site problems

https://www.drupal.org/project/devel

https://www.drupal.org/troubleshooting

Section 4 : Theme Integration

4.1 Demonstrate ability to work with Drupal's theme system using Render API and JavaScript APIs.

https://www.drupal.org/docs/8/theming

https://www.drupal.org/docs/8/theming-drupal-8/adding-stylesheets-css-and-javascript-js-to-a-drupal-8-theme

https://www.drupal.org/docs/8/api/javascript-api/javascript-api-overview

https://github.com/acquia-pso/cog

4.2 Demostrate ability to work with Twig templates and syntax

https://www.drupal.org/docs/8/theming/twig

https://www.drupal.org/docs/8/theming/twig/debugging-twig-templates

Section 5 : Performance

5.1 Demonstrate ability to analyze and resolve site performance issues arising from site configuration

http://buytaert.net/making-drupal-8-fly

5.2 Demonstrate ability to analyze and resolve site performance issues arising from custom code

https://www.drupal.org/docs/develop/profiling-drupal

5.3 Implement Drupal caching strategies using Cache API

https://www.drupal.org/docs/8/api/cache-api/cache-api

https://api.drupal.org/api/drupal/core!core.api.php/group/cache/8.2.x

Section 6 : Security

6.1 Demonstrate ability to analyze and resolve security issues arising from site configuration

https://www.drupal.org/documentation/modules/filter

https://dev.acquia.com/blog/drupal-8/10-ways-drupal-8-will-be-more-secure/2015/08/27/6621

6.2 Demonstrate ability to analyze and resolve security issues arising from site custom code

https://www.drupal.org/docs/8/security/writing-secure-code-for-drupal-8

6.3 Demonstrate the abilty to implement Drupal core security mechanisms

https://www.drupal.org/docs/8/security

Section 7 : Leveraging Community

7.1 Demonstrate the ability to contribute to the community

https://www.drupal.org/contribute

7.2 Demonstrate ability to write code using Drupal Coding Standards

https://www.drupal.org/docs/develop/standards

Drupalize.me Resources

Drupalize.me has published a concise list of the Drupalize.Me tutorials, and other resources, that will help you prepare for Acquia's Certified Back End Specialist exam for Drupal 8. The list is available at:

https://drupalize.me/series/module-development-guide

Learn more about the Acquia Certification Program at https://acquia.com/certification

Last updated