Setting up your development environment

Preview:

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.

Citation preview

Development ToolsJoomladagen 2013

Robert Deutz

Challenges

DEVELOPMENT

TESTINGPA

CKAG

ING

5 Areas

Version Control

1

Code quality and consistency

2

Integrated Development Environment

3

Some little tools

4

Build tools

5

1

Version Control

Never do development without a version control system

RULE 1

CVS SVN

MercuryGit

Centralised

Distributed

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!

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

CVS SVN

MercuryGit

Centralised

Distributed

GIT

try.github.com

Got 15 minutes and want to learn Git?

Tools if you don‘t like the command line

Tower (MAC)

Source Tree (MAC)

2

Code quality and consistency

Write beautiful and well documented code.

RULE 2

ALWAYS

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)

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

3

Integrated Development Environment

(IDE)

We are using an IDE

RULE 3

WHEN IT MAKES SENSE

I don‘t care which one

IDEs

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

• PHP Storm (free license for Joomla! developers)

• NetBeans IDE

• ......

Cooler Editor: Sublime Text

• Packages for almost everything we need

• extremely fast

• Edit features from heaven

• .... but not an IDE

• comes closer and closer

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

My Setup

4

Some little tools

We are trying to automate steps in our development process

RULE 4

DEVELOPERS ARE LAZY

Code formattingCode Sniffer

phpcs --standard=Joomla *

OR

integrate it in editor / IDE

PHP Documenter

Creates from your well documented and formated code an API

documentation, with just a klick

5

Build tools

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

RULE 5

PHING(phing.info)

extendable

executing commands

packaging

checkout from a repository

copy filesreplace tags in files

extendable

executing commands

packaging

checkout from a repository

copy filesreplace tags in files

Extendable

2 FILES

map

packaging

Recommended