Upload
quentin-adam
View
881
Download
0
Embed Size (px)
DESCRIPTION
some practices to be a more efficient developer
Citation preview
I WANT TO BE A MORE EFFICIENT DEVELOPER TALK BY
@WAXZCE – QUENTIN ADAM
AT APIDAYS BARCELONA 2014
MY DAY TO DAY WORK : CLEVER CLOUD, MAKE YOUR APP RUN ALL THE TIME
And learn a lot of things about your code, apps, and good/bad design…
KEEP YOUR APPS ONLINE. MADE WITH NODE.JS, SCALA, JAVA, RUBY, PHP, PYTHON, GO…
AND LEARN A LOT OF THINGS ABOUT YOUR CODE, APPS, AND GOOD/BAD DESIGN…
DEVELOPERS ARE MORE AND MORE CREATIVE
DEVS LEADS A LOT OF BUSINESS
SHIP QUICKLY WORKING APPS
VALUE IS ON PEOPLE MARKET KNOWLEDGE, TEAM MANAGEMENT, PRODUCT OWNERSHIP…
HOW MAKE THEM BE MORE EFFICIENT ?
DEVELOPER HAPPINESS IS KEY
HAPPY PEOPLE PRODUCE BETTER WORK
OPTIMIZE CODE AND PROCESS TO BE HAPPY OF WHAT YOU ARE DOING
OPEN SOURCES WORK PROCESSES ARE BETTER
PEOPLE WRITING CODE BECAUSE THEY JUST WANT TO DO IT
THINK ABOUT
BECAUSE THEY CAN SOLVE PROBLEM OF THE WORLD
OPEN SOURCES SHOW A VERY SUCCESSFUL TRACK RECORDS
BUILD A FRAMEWORK TO PRODUCE CODE EASILY AND SHOW IT EASILY
RELEASE EARLYRELEASE OFTEN
YOU HAVE TO REMOVE ALL DISTURBING / DISTRACTING ACTIONS
FOCUS ON YOUR OWN ADDED VALUE
BE FOCUS WHEN YOU CODE
RELEASE EARLYDEPLOYOFTEN
DEPLOYMENT HAS TO BE EASY !
GIT PUSH <YOUR_FAVORITE_HOSTING_PROVIDER> MASTER
GIT PUSH <YOUR_FAVORITE_CONTINUOUS_INTEGRATION_SYSTEM> MASTER
ALL THE TEAM HAVE TO BE READY TO DEPLOY
YOU HAVE TO DEPLOY YOUR APP SEVERAL TIMES A DAY
SPLIT YOUR APP
SPLIT THE CODE : MODULES
SMALLEST CODE BASE POSSIBLE FOR EACH PROGRAM
EACH MODULE IS VIEWED AS A SERVICE BY OTHERSHTTP OR AMQP COMUNICATION
OR AS A CLIENT
USE EVENT BROKER TO MODULARIZE YOUR APP• AMQP
• Celery
• 0MQ
• Redis
• JMS
• Some case : hadoop, akka…
• …
CRON is not an event queue
FOCUS ON THE BEST TOOL TO SOLVE YOUR PROBLEM
DON’T BE THAT GUY
DO NOT USE A TECHNOLOGY BECAUSE YOU <3 IT OR BECAUSE IT’S HYPE : USE IT BECAUSE IT FITS YOUR NEEDS
BALANCE YOUR LEARNING CURVE WITH THE TIME SAVED
DO NOT CREATE MONSTERS
SCALE YOUR TEAMMODULARIZE YOUR TEAM
LEAR NEW THINGS & INNOVATE
{P, DB, S} aaS
USE OPS FREE SOLUTION TO LEARN AND START
USE ONLINE DATABASE / BE READY TO TEST IN JUST A FEW MINUTES NO NEED TO TRASH YOUR COMPUTER
Statelessness everywhere
AVOID HOST SPECIFIC THINGS
DO NOT USE FILE SYSTEM TO STORE SOMETHING • It doesn’t scale
• It’s hard to expose as a service
• It’s a SPOF
• There is ALWAYS a better option
TIME WILL TRASH YOUR CODE
SOMETIMES YOU NEED TO CLEAN UP
THE POWER OF REWRITE EVERYTHING
SMALL CODE BASE + MULTIPLE TECHNOLOGIES = LEGACY KILLER
REWRITE IS QUICK BECAUSE YOU KNOW ALL THE PROBLEMS BEFORE IT HAPPENS
HAPPY DEVELOPER WORKS BETTER : ARE YOU HAPPY WHEN YOU START YOUR IDE?
VERSION EVERYTHING !Data & API
USE HTTPAND ALL THE GOODNESS IT BRING ON YOUR APP
200 OKBODY : { TYPE : ERROR, MESSAGE : I CAN’T FIND THE FILE }
REALLY ?
WRITE EVERYTHING
PUT SOME TOOLS IN YOUR CODE
USE BUILD MANAGER
LET PEOPLES FREE TO CHOOSE THEIR IDE
USE A CONFIGURATION MANAGER / LIBRARY
LEARN GIT “LIKE A BOSS”
I MEAN : USE GIT WITH CLI
FOCUS ON CODE READABILITY
AVOID EARLY PERFORMANCES OPTIMIZATION
YOU HAVE TO THINK IT’S YOUR FIRST DAY ON THE CODE BASE
DO YOU WORK LIKE THIS ?
EXAMPLE : HOW DOES CLEVER CLOUD WORK ?
SOME OF TECHNOLOGY WE USE
C
ALL TOGETHER USING HTTP & AMQP
THE FAST DEVELOPER WAY
• Statup weekends
• Hackatons
• Coding dojo
• Lean startup machine
I’m @waxzce on twitter
I’m the CEO of
A PaaS provider, give it a try ;-)
THX FOR LISTENING & QUESTIONS TIME