Coding + Development

With core Drupal 8 now in full swing and the contrib space rapidly maturing, now is an excellent time to get more deeply involved with one of the world’s largest open-source development communities. The Coding and Development track is focused on educating developers on the latest techniques and tools for increasing the quality and efficacy of their projects.

Topics will include best practices for coding and debugging in Drupal 8, making decisions and plans for migrating sites from earlier versions of Drupal or other systems, upgrading contrib to Drupal 8, engagement with other frameworks and technologies, high performance and large scale development experiences, and exploring the advantages of participating in open-source culture. Come share the vast wealth of knowledge and lessons learned and collaborate with other engineers from around the world!

Suggested Topics

  • Showcasing awesome things that contrib projects can do in Drupal 8
  • How to manage the migration of our projects to Drupal 8
  • Tools and techniques for upgrading modules
  • What both beginner and experienced developers should know
  • Project architecture
  • Caching and performance

Styleguide-Driven Development with Components & Paragraphs

The Paragraphs module has been around since 2013 and rapidly gained acclaim for being the bomb diggity. And though Panels, Panopoly, and the In-Place Editor have long been staple ingredients in Kalamuna’s awesome-sauce, our love affair is officially over. We find those tools have lost their shine and perhaps outlived their usefulness; Kalateam is moving full steam ahead with some Paragraphs-based page building workflows that represent a radical shift in editorial UX for our clients.

Modifying legacy code the right way (hint: do not add "if" statements)

So you're a developer and you're asked to make a "simple" change to a Drupal site requiring a code change in a custom 200-line legacy function which uses global variables, calls the dreaded arg() function, and for good measure, communicates with a third-party API via REST.

If your team requires that even small changes need automated tests, you need a straightforward way to test monster legacy functions with minimal effort, minimal refactoring, and minimal risk.

In this talk, we'll discuss:

Decoupled Blocks in Drupal 8

Decoupled Blocks is a javascript-framework-agnostic, progressive decoupling tool to allow custom blocks to be written by front end developers in the javascript framework of their choice, without needing to know any Drupal API's.

It keeps individual components encapsulated in their own directories containing all the css, js, and template assets necessary for them to work, and using an info.yml file to declare these components and their framework dependencies to Drupal.

Drupal & Angular 2: A Performant Team

Angular 2 is nearing an official release, and is surely one of the most hyped new javascript frameworks around right now.

This session will begin with a broad overview of Angular 2, from someone who has been working closely on the project since Alpha releases. It will cover the full suite of tooling available to application developers, from Typescript, CLI and offline template compiling to component pre-rendering or even full server side rendering with Angular Universal.

HHVM and Hack(lang): Upgrading PHP

HHVM is a major upgrade to the PHP runtime which provides major performance improvements and greatly improved analysis tools. HHVM also allows developers to use a new dialect of PHP called Hack(lang), introducing a slew of new language features such as a robust static type checking system, improved lambda support, native collections and enums, asynchronous I/O handling, and more. Come learn how to get HHVM running and see what it can offer you!

Vim can do that?

You think you know Vim, but you probably don’t. Learn how and why I switched from PHPStorm and Sublime text to Vim full time.

Deep dive into D8 through Single Sign-On Example

Object oriented structures are replacing our all too familiar hooks which enabled us to extend Drupal with new functionality without hacking core (or other contrib modules). But how does this all work?

In this session we will go through a single sign-on (SSO) example module which will help us understand how OOP works its magic into our modules, making them easier to write, understand and debug. Concepts applied will show how to use event listeners, overwriting routes and other tools.

 

Demystifying access control

This session will explain what goes on behind the scenes regarding access control in D8, and walk through how Drupal decides what content is available to a user.

We will start by reviewing popular access control modules, such as "Organic Groups", "TAC", "Workbench", etc., and how you can make them work together. Then we will take a step beyond "hook_node_access()" - and why you should avoid it -, and learn to use the Grant API to implement your own access control modules.

We will also cover how the Entity API plays in to control access to non-node entities.

The Drupaler's guide to Behavior Driven Development (BDD)

As engineers and developers, we tend to be passionate about building something great, which Drupal 8 is perfect for doing. Drupal 8 gave us more viable options for testing with tools like phpunit, Behat, and phpspec to name a few. These have opened the doors to more easily achieve a Behavior Driven Development (BDD) work flow.

Drupal 8: Supercharged for Modern Development

See beyond just the code changes. 

Learn how modern, full-featured development with Drupal 8 will transform your website building, testing, and deployment and skyrocket your code quality. Simply put Drupal 8 sits at the center of and effortlessly orchestrates with the open source software universe. 

Topics covered and uncovered in this info-packed session include:

Pages