SlideShare a Scribd company logo
TOWARDS A BETTER DEVELOPMENT WORKFLOW
Eric Andrew Lewis

Lead Developer at
Small-time core contributor
Brooklyn-based, greater Philly-native
WHAT I TALK ABOUT WHEN I TALK
    ABOUT DEVELOPMENT


Code creation, not design. Creation of adam?
WORKFLOW IS PARAMOUNT
WORKFLOW IS A DIALOG


A collection of tricks, accumulated piecemeal.
       Small improvements over time.
   Workflow is a dialog with your peers.
LOCAL DEVELOPMENT ( __ AMP )
YOUR CODE EDITOR
BASIC CODE EDITORS
IDEs
and pseudo-IDEs




                            *	
  
                    *	
  
                  vim
CONNECTING WITH YOUR CODE
          BASE


   Easy access to WordPress core
  WordPress core function suggestion
DIAGRAM MODELING OF CODE



  Plan out your code before you write.
DIAGRAM MODELING OF CODE
DIAGRAM MODELING OF CODE,
        EXAMPLE

                      User sends message

     Browser                                     Server

                                   WP AJAX
                                    handler
    User hits enter                function
     in textarea
                                                            Recent
                                                          Messages File
                                  Sanitize and
                                 save message
     AJAX POST                                            All messages
       request                                                 File
LINTING
Fatal Error: Call to undefined function get_psots() in index.php on line 34
LINTING



Preprocess your code for syntax errors from
               your editor.
SNIFFING
Scan code for violations of a coding standard from your
                         editor.

Coding Standard Example:
•  One space after an if statement
•  Indentation rules
•  Require specific syntax for commenting
SNIFFING
Scan code for violations of a coding standard.

if(!$sniff){
$your_code="ugly"; }

if ( $sniff ) {
     $your_code = 'elegant';
}
	
  
CODE FIXER


Fix coding standards violations from your editor.
                  Kinda lame.
XDEBUG
         PHP extension




Heavy artillery for debugging
XDEBUG
                 PHP extension




Code profiling (code
 efficiency testing)
XDEBUG
     PHP extension




Stack traces on errors
XDEBUG
     PHP extension




Breakpoint Analysis
VERSION CONTROL



SVN, GIT, Hosted Solutions
Q&A

More Related Content

What's hot

Building a mobile application for dot netnuke
Building a mobile application for dot netnukeBuilding a mobile application for dot netnuke
Building a mobile application for dot netnuke
brchapman
 
DNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With XamarinDNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With Xamarin
Mark Allan
 
Extend sdk
Extend sdkExtend sdk
Extend sdk
Harsha Nagaraj
 
Cincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 RoadmapCincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 Roadmap
ESUG
 
intoduction to java
intoduction to javaintoduction to java
intoduction to java
SIVASHANKARIRAJAN
 
Ja coco ignite
Ja coco igniteJa coco ignite
Ja coco ignite
Aleksandr Zhuikov
 
Alfresco tech talk live mobile sdks
Alfresco tech talk live mobile sdksAlfresco tech talk live mobile sdks
Alfresco tech talk live mobile sdks
Alfresco Software
 
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Using the latest Java Persistence API 2 Features - Tech Days 2010 IndiaUsing the latest Java Persistence API 2 Features - Tech Days 2010 India
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Arun Gupta
 
Introduction to Core Java Programming
Introduction to Core Java ProgrammingIntroduction to Core Java Programming
Introduction to Core Java Programming
Collaboration Technologies
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
Dmytro Mindra
 

What's hot (10)

Building a mobile application for dot netnuke
Building a mobile application for dot netnukeBuilding a mobile application for dot netnuke
Building a mobile application for dot netnuke
 
DNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With XamarinDNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With Xamarin
 
Extend sdk
Extend sdkExtend sdk
Extend sdk
 
Cincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 RoadmapCincom Smalltalk 2017 Roadmap
Cincom Smalltalk 2017 Roadmap
 
intoduction to java
intoduction to javaintoduction to java
intoduction to java
 
Ja coco ignite
Ja coco igniteJa coco ignite
Ja coco ignite
 
Alfresco tech talk live mobile sdks
Alfresco tech talk live mobile sdksAlfresco tech talk live mobile sdks
Alfresco tech talk live mobile sdks
 
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
Using the latest Java Persistence API 2 Features - Tech Days 2010 IndiaUsing the latest Java Persistence API 2 Features - Tech Days 2010 India
Using the latest Java Persistence API 2 Features - Tech Days 2010 India
 
Introduction to Core Java Programming
Introduction to Core Java ProgrammingIntroduction to Core Java Programming
Introduction to Core Java Programming
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
 

Viewers also liked

Emoji mosaic: How a Quadtree Works
Emoji mosaic: How a Quadtree WorksEmoji mosaic: How a Quadtree Works
Emoji mosaic: How a Quadtree Works
Eric Lewis
 
Making Tools for Tracing Patterns in Software
Making Tools for Tracing Patterns in SoftwareMaking Tools for Tracing Patterns in Software
Making Tools for Tracing Patterns in Software
Eric Lewis
 
Rheumatic fever
Rheumatic feverRheumatic fever
Rheumatic fever
Mohammed Alsheikh
 
Antibiotic choices
Antibiotic choicesAntibiotic choices
Antibiotic choices
Mohammed Alsheikh
 
Osteoporosis
OsteoporosisOsteoporosis
Osteoporosis
Mohammed Alsheikh
 
Acute coronary syndrome
Acute coronary syndromeAcute coronary syndrome
Acute coronary syndrome
Mohammed Alsheikh
 
Questionnaire on training and development
Questionnaire on training and developmentQuestionnaire on training and development
Questionnaire on training and development
Susmitha Chowdary
 

Viewers also liked (8)

Emoji mosaic: How a Quadtree Works
Emoji mosaic: How a Quadtree WorksEmoji mosaic: How a Quadtree Works
Emoji mosaic: How a Quadtree Works
 
Making Tools for Tracing Patterns in Software
Making Tools for Tracing Patterns in SoftwareMaking Tools for Tracing Patterns in Software
Making Tools for Tracing Patterns in Software
 
Rheumatic fever
Rheumatic feverRheumatic fever
Rheumatic fever
 
Antibiotic choices
Antibiotic choicesAntibiotic choices
Antibiotic choices
 
5klas urok 18_site
5klas urok 18_site5klas urok 18_site
5klas urok 18_site
 
Osteoporosis
OsteoporosisOsteoporosis
Osteoporosis
 
Acute coronary syndrome
Acute coronary syndromeAcute coronary syndrome
Acute coronary syndrome
 
Questionnaire on training and development
Questionnaire on training and developmentQuestionnaire on training and development
Questionnaire on training and development
 

Similar to Mad development

Class 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurshipClass 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurship
allanchao
 
Java compilation
Java compilationJava compilation
Java compilation
Mike Kucera
 
What’s New and Hot in .NET 4.0
What’s New and Hot in .NET 4.0What’s New and Hot in .NET 4.0
What’s New and Hot in .NET 4.0
Jess Chadwick
 
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
dpc
 
내꺼내꺼
내꺼내꺼내꺼내꺼
내꺼내꺼
misty915
 
Everything PHP Developers Need To Be Productive
Everything PHP Developers Need To Be ProductiveEverything PHP Developers Need To Be Productive
Everything PHP Developers Need To Be Productive
Michael Findling
 
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor EditionAd102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
ddrschiw
 
AWS Lambda and the Serverless Cloud
AWS Lambda and the Serverless CloudAWS Lambda and the Serverless Cloud
AWS Lambda and the Serverless Cloud
Amazon Web Services
 
Building a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger HuntBuilding a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger Hunt
Ashley Roach
 
Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)
Sung Kim
 
How to double .net code value
How to double .net code valueHow to double .net code value
How to double .net code value
javOnet
 
SAP hands on lab_en
SAP hands on lab_enSAP hands on lab_en
SAP hands on lab_en
Positive Hack Days
 
Development workflow
Development workflowDevelopment workflow
Development workflow
Sigsiu.NET
 
Babel.pptx
Babel.pptxBabel.pptx
Babel.pptx
Parham Abolghasemi
 
API workshop by AWS and 3scale
API workshop by AWS and 3scaleAPI workshop by AWS and 3scale
API workshop by AWS and 3scale
3scale
 
Overview Of .Net 4.0 Sanjay Vyas
Overview Of .Net 4.0   Sanjay VyasOverview Of .Net 4.0   Sanjay Vyas
Overview Of .Net 4.0 Sanjay Vyas
rsnarayanan
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
Tom Johnson
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Amazon Web Services
 
Jcon 2017 How to use Swagger to develop REST applications
Jcon 2017 How to use Swagger to develop REST applicationsJcon 2017 How to use Swagger to develop REST applications
Jcon 2017 How to use Swagger to develop REST applications
johannes_fiala
 
Introduction to Programming Lesson 01
Introduction to Programming Lesson 01Introduction to Programming Lesson 01
Introduction to Programming Lesson 01
A-Tech and Software Development
 

Similar to Mad development (20)

Class 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurshipClass 6: Introduction to web technology entrepreneurship
Class 6: Introduction to web technology entrepreneurship
 
Java compilation
Java compilationJava compilation
Java compilation
 
What’s New and Hot in .NET 4.0
What’s New and Hot in .NET 4.0What’s New and Hot in .NET 4.0
What’s New and Hot in .NET 4.0
 
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
 
내꺼내꺼
내꺼내꺼내꺼내꺼
내꺼내꺼
 
Everything PHP Developers Need To Be Productive
Everything PHP Developers Need To Be ProductiveEverything PHP Developers Need To Be Productive
Everything PHP Developers Need To Be Productive
 
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor EditionAd102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
 
AWS Lambda and the Serverless Cloud
AWS Lambda and the Serverless CloudAWS Lambda and the Serverless Cloud
AWS Lambda and the Serverless Cloud
 
Building a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger HuntBuilding a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger Hunt
 
Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)
 
How to double .net code value
How to double .net code valueHow to double .net code value
How to double .net code value
 
SAP hands on lab_en
SAP hands on lab_enSAP hands on lab_en
SAP hands on lab_en
 
Development workflow
Development workflowDevelopment workflow
Development workflow
 
Babel.pptx
Babel.pptxBabel.pptx
Babel.pptx
 
API workshop by AWS and 3scale
API workshop by AWS and 3scaleAPI workshop by AWS and 3scale
API workshop by AWS and 3scale
 
Overview Of .Net 4.0 Sanjay Vyas
Overview Of .Net 4.0   Sanjay VyasOverview Of .Net 4.0   Sanjay Vyas
Overview Of .Net 4.0 Sanjay Vyas
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
Jcon 2017 How to use Swagger to develop REST applications
Jcon 2017 How to use Swagger to develop REST applicationsJcon 2017 How to use Swagger to develop REST applications
Jcon 2017 How to use Swagger to develop REST applications
 
Introduction to Programming Lesson 01
Introduction to Programming Lesson 01Introduction to Programming Lesson 01
Introduction to Programming Lesson 01
 

Mad development