Upload
jason-yingling
View
115
Download
1
Embed Size (px)
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