setting up your development environment

59
Development Tools Joomladagen 2013 Robert Deutz

Upload: robert-deutz

Post on 04-Jun-2015

849 views

Category:

Technology


2 download

DESCRIPTION

This presentation is a snapshot how I have setup my development environment. I am constantly evaluating, so this presentation is constantly changing. It gives developers and people that are planning to start with development practical tips, I am presenting in some way best practicals. Because it is my view and what I have found it is also questionable. I am talking about coding styles, Editors, IDE, build tools like phing, git and all that stuff.

TRANSCRIPT

Page 1: Setting up your development environment

Development ToolsJoomladagen 2013

Robert Deutz

Page 2: Setting up your development environment

Challenges

Page 3: Setting up your development environment

DEVELOPMENT

TESTINGPA

CKAG

ING

Page 4: Setting up your development environment

5 Areas

Page 5: Setting up your development environment

Version Control

1

Page 6: Setting up your development environment

Code quality and consistency

2

Page 7: Setting up your development environment

Integrated Development Environment

3

Page 8: Setting up your development environment

Some little tools

4

Page 9: Setting up your development environment

Build tools

5

Page 10: Setting up your development environment

1

Page 11: Setting up your development environment

Version Control

Page 12: Setting up your development environment

Never do development without a version control system

RULE 1

Page 13: Setting up your development environment

CVS SVN

MercuryGit

Centralised

Distributed

Page 14: Setting up your development environment

Centralised Version Control Systems

• very popular at the end of the last century

• complicated when working in not centralised teams

• merging and working on different things at the same moment is complicated

• still room for using it but NOT in an Open Source Project like Joomla!

Page 15: Setting up your development environment

Distributed

• Best thing since sliced bread

• good for not centralised teams

• Supports merging and branching in an easy way

• It allows a group of people to work on different ideas and in parallel on a single codebase

Page 16: Setting up your development environment

CVS SVN

MercuryGit

Centralised

Distributed

Page 17: Setting up your development environment

GIT

Page 18: Setting up your development environment

try.github.com

Got 15 minutes and want to learn Git?

Page 19: Setting up your development environment

Tools if you don‘t like the command line

Page 20: Setting up your development environment

Tower (MAC)

Page 21: Setting up your development environment

Source Tree (MAC)

Page 22: Setting up your development environment

2

Page 23: Setting up your development environment

Code quality and consistency

Page 24: Setting up your development environment

Write beautiful and well documented code.

RULE 2

ALWAYS

Page 25: Setting up your development environment

We do

• use brackets

• use tabs

• format code always in the same way

• use meaningful function, variable, methods and class names

• use phpDoc Blocks

• not copy code (DRY: don‘t repeat yourself)

Page 26: Setting up your development environment

We write helpful comments

As I wrote this code only god and I know what it is

doing, now only god knowsWRONG

Registers a handler to a particular event group. RIGHT

Page 27: Setting up your development environment

3

Page 28: Setting up your development environment

Integrated Development Environment

(IDE)

Page 29: Setting up your development environment

We are using an IDE

RULE 3

WHEN IT MAKES SENSE

Page 30: Setting up your development environment

I don‘t care which one

Page 31: Setting up your development environment

IDEs

• Eclipse (Zend Studio, phpEclipse, .....)

• PHP Storm (free license for Joomla! developers)

• NetBeans IDE

• ......

Page 32: Setting up your development environment

Cooler Editor: Sublime Text

• Packages for almost everything we need

• extremely fast

• Edit features from heaven

• .... but not an IDE

• comes closer and closer

Page 33: Setting up your development environment

How to chose a IDE

• Don‘t give up!

• It need‘s time, so think first about your requirements

• Think about your development process, what you have to do to make sure that you can support your process properly

Page 34: Setting up your development environment

My Setup

Page 35: Setting up your development environment

4

Page 36: Setting up your development environment

Some little tools

Page 37: Setting up your development environment

We are trying to automate steps in our development process

RULE 4

DEVELOPERS ARE LAZY

Page 38: Setting up your development environment

Code formattingCode Sniffer

Page 39: Setting up your development environment

phpcs --standard=Joomla *

Page 40: Setting up your development environment

OR

Page 41: Setting up your development environment

integrate it in editor / IDE

Page 42: Setting up your development environment

PHP Documenter

Page 43: Setting up your development environment

Creates from your well documented and formated code an API

documentation, with just a klick

Page 44: Setting up your development environment
Page 45: Setting up your development environment

5

Page 46: Setting up your development environment

Build tools

Page 47: Setting up your development environment

Don‘t do it by yourself when a script can do it for you

RULE 5

Page 48: Setting up your development environment

PHING(phing.info)

Page 49: Setting up your development environment

extendable

executing commands

packaging

checkout from a repository

copy filesreplace tags in files

Page 50: Setting up your development environment

extendable

executing commands

packaging

checkout from a repository

copy filesreplace tags in files

Page 51: Setting up your development environment

Extendable

Page 52: Setting up your development environment

2 FILES

Page 53: Setting up your development environment

map

Page 54: Setting up your development environment
Page 55: Setting up your development environment
Page 56: Setting up your development environment

packaging

Page 57: Setting up your development environment