Putting the Develop in Development

Preview:

Citation preview

Putting the Developin Development

Jason Yingling@jason_yingling

Resources available: https://goo.gl/KaOIIn

[ ]

Who am I?IntroductionWho am I?What We’ll Cover

Organizing a Project Director of Development, Red8 Interactive

3 plugins on WordPress.org repo

3 time WordCamp Speaker

Meetup and WordCamp organizer

@jason_yingling

Developing a ProjectFurther Resources

What We’ll CoverHow we plan a project atRed8 InteractiveHow we develop projects as a teamThe tools and resources we use to improve our development workflow

Organizing a ProjectIntroductionOrganizing a Project

@jason_yingling

Developing a ProjectFurther Resources • Understanding the WordPress

template hierarchy– Main Templates– Commonly overlooked

templates• Breaking down what makes a

template• Planning a project into

templates and template parts

Template Hierarchy

@jason_yingling

How WordPress determines which template files to use when displaying a post or page.

“IntroductionOrganizing a ProjectDeveloping a ProjectFurther Resources

Template HierarchySingle Post

Template HierarchyStatic Page

The Big Three

@jason_yingling

• Index.php – everything falls back to index. Main post loop.

• Single.php – your single posts

• Page.php – your static pages

IntroductionOrganizing a ProjectDeveloping a ProjectFurther Resources

The Forgotten

@jason_yingling

• 404 page• Search Results• Archives

IntroductionOrganizing a ProjectDeveloping a ProjectFurther Resources

Template Anatomy

Breaking it Down

Developing a Project

@jason_yingling

• Code to the standards• Automate your workflow• Version control your code

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project

Coding Standards

@jason_yingling

• Learn the WordPress way• Easier for others to pick up• Easier for you to pick up

others code• Helps make code self-

documenting• Check the Codex

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project

PHP Standards

@jason_yingling

• Don’t camelCase function names. Use lowercase and “_” for spaces

• No shorthand• Use real tabs and not

spaces

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project

Automate It

@jason_yingling

• Problem: Doing things takes time.

• Solution: Make the computer do it for you!

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project

“Why use a task runner?In one word: automation. The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes.

- Gruntjs.com

Task Runners

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project

The Battle of Build Scripts: Gulp vs Grunt

Grunt for People Who Think Things Like Grunt are Weird and Hard

Some Useful Grunt Tools

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project • BrowserSync

• SASS Compiling• JS Minification• JS Concatenation• Lots more

GUI Option

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project • CodeKit

Version Control It

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project • Work collaboratively

• Track what has changed• Back everything up• Revert if needed

“What is git?Git is known as a "distributed" (rather than "centralized") version control system because you can run it locally and disconnected from the Internet, and then "push" your changes to a remote system (such as GitHub) whenever you like.

Tips for Successful Version Controlling

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project

• Write useful commit messages

• Implement features as they’re ready

• Have a strategy in place

Basic Git Workflow

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project

Git Commands

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project • git clone

• git checkout• git add• git commit• git merge• git pull• git push• git stash

More Git Resources

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project • Git4WP – Free video course

on using git with WordPress• A Successful Git Branching

Model• git docs

Further Resources

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project • Plugins to help speed up

development– Advanced Custom Fields– Form Plugins– Yoast SEO–WP Pusher

Further Resources

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project • Post Status (Blog)

• WP Tavern (Blog)• Smashing WordPress (Book)• Up and Running (Book)• Post Status Draft (Podcast)• Apply Filters (Podcast)

Further Resources

@jason_yingling

IntroductionOrganizing a Project

Further ResourcesDeveloping a Project • Community Events

–WordCamps– Local Meetups– Slack Channels• Make WordPress• Post Status• STL Meetup

Best Resources

Go make something.

Questions@jason_yingling

Resources: Google Drive

Recommended