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

Cowboy Coding to Professional Development

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

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/

Avatar for Andy Brudtkuhl

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