cowboy coding to professional developer

Post on 04-Aug-2015

68 Views

Category:

Software

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

From Cowboy Coding to Professional Developer

Andy Brudtkuhl @abrudtkuhl

YouMetAndy.com/wckc

What Is Cowboy Coding?… and why it is a necessary evil

TL;DRDon’t code live on your production server. Use version control.

Be nice, use standards, and avoid shiny object syndrome.

What makes a better developer?

Be pragmatic.

Be empathetic. (this is not easy)

Use standards. (please)

Tools Don’t Matter. Tools Mean Everything

Be a good teammate.

Avoid Shiny Objects

Be verbose. (comment your code, describe your commits)

Automate your busy work.

Test your software (because someone else will)

Don’t Repeat Yourself.

Setup a local dev environment.

Local Dev Environment

• MAMP Pro

• Desktop Server

• VVV

Use version control.

What goes in Git?

• Entire Site

• Single Plugins and Themes

• Never commit your wp-config.php file

• Google “Git Ignore WordPress” for an example .gitignore file

Sync your data.

WP DB Migrate Pro

• Use WP DB Migrate Pro

• Migrate Data

• Push / Pull Sync Data

• Use WP_CLI addon to automate

Deploy with sanity.

Deploy with sanity• Dev / Test / Production environments

• Stop doing things manually

• Use WP-DB-MIGRATE to move data

• Use WP-Pusher to deploy updates (no FTP, yay!)

• Use Git on your server

• Capistrano or Chef

Being A Better WordPress Developer

Tips and tools to be a better WordPress developer

define( 'WP_DEBUG', true );

Separate Concerns

• Use Plugins for functionality and Themes for design

• Don’t abuse functions.php

• Use functionality plugins

the loop.

Follow WordPress Standards

• Read the Codex

• Follow WordPress developer standards for Themes, Plugins, and Core Contribution

Use Core Features• Theme Customizer

• Settings API

• Options API

• Image Thumbnails

• Menu System

• Widgets, Shortcodes

• Custom Post Types & Taxonomies

Enqueue All The Things

• Include scripts and stylesheets in Themes and Plugins by enqueuing them

• NEVER include your own version of jQuery

Use Template Parts

• Create reusable template parts

• Build reusable loops

• Reduce and Reuse code

Validate, Sanitize, Escape

• Validate = check user input

• Sanitize = clean user input

• Escape = securing user generated output

Transients FTW

• Simple Caching

• Big Performance

• Store data you expect to expire

Use Starter Templates

• WordPress Plugin Boilerplate

• Theme templates like sage, roots, _s

• GenerateWP.com

Know variable scope

• Don’t define your own Globals

• Use namespaces and classes to properly scope your variables

WP-CLI

• A WordPress command line interface

• Setup, install, configure sites from your terminal

• Easily create scripts to spin up new sites

• Automate Database migrations

• Schedule Database Migrations

Manage Dependencies

• Use plugin_exists( ‘my-plugin’ ), class_exists( ‘MyClass’ ), or function_exists( ‘my_awesome_function’ )

• TGM Plugin Activation

• Require / Recommend dependencies in your custom themes and plugins

• Use composer

• custom plugin or theme with third party dependencies

My Workflow1. Grab a task (Jira or Trello)

2. Pull latest version of project from Bitbucket

3. Pull latest version of data from Staging / Production

4. Code feature / fix bug

5. Commit and push updated code with comment and link back to ticket in Jira/Trello

6. Deploy with WP Pusher or Git

My Tools• Editor: Atom.io

• Local Dev: MAMP Pro

• Terminal: iTerm

• Source Control: Git with Bitbucket

• Data Management: WP DB Migrate Pro

• Deployment: WP Pusher

• Site Management: InfiniteWP

YouMetAndy.com/wckc @abrudtkuhl

top related