Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cowboy Coding to Professional Development

Cowboy Coding to Professional Development

WordCamp Kansas City 2015 Presentation on moving from cowboy coding to professional development.

Slide notes and links available at http://brudtkuhl.com/cowboy-coding-to-professional-developer-wckc-2015/

Andy Brudtkuhl

June 13, 2015
Tweet

More Decks by Andy Brudtkuhl

Other Decks in Programming

Transcript

  1. TL;DR Don’t code live on your production server. Use version

    control. Be nice, use standards, and avoid shiny object syndrome.
  2. 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
  3. WP DB Migrate Pro • Use WP DB Migrate Pro

    • Migrate Data • Push / Pull Sync Data • Use WP_CLI addon to automate
  4. 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
  5. Separate Concerns • Use Plugins for functionality and Themes for

    design • Don’t abuse functions.php • Use functionality plugins
  6. Follow WordPress Standards • Read the Codex • Follow WordPress

    developer standards for Themes, Plugins, and Core Contribution
  7. Use Core Features • Theme Customizer • Settings API •

    Options API • Image Thumbnails • Menu System • Widgets, Shortcodes • Custom Post Types & Taxonomies
  8. Enqueue All The Things • Include scripts and stylesheets in

    Themes and Plugins by enqueuing them • NEVER include your own version of jQuery
  9. Use Template Parts • Create reusable template parts • Build

    reusable loops • Reduce and Reuse code
  10. Validate, Sanitize, Escape • Validate = check user input •

    Sanitize = clean user input • Escape = securing user generated output
  11. Know variable scope • Don’t define your own Globals •

    Use namespaces and classes to properly scope your variables
  12. 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
  13. 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
  14. My Workflow 1. 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
  15. 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