I WANT TO BE
A MORE
EFFICIENT
DEVELOPER
TALK BY
@WAXZCE – QUENTIN ADAM
AT MIX IT 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, JAV...
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
BUILD A
FRAMEWORK TO
PRODUCE CODE
EASILY AND
SHOW IT EASILY
RELEASE
EARLY
RELEASE
OFTEN
RELEASE
EARLY
DEPLOY
OFTEN
FOCUS ON YOUR OWN
ADDED VALUE
DEPLOYMENT HAS TO
BE EASY !
BE FOCUS WHEN YOU
CODE
GIT PUSH
<YOUR_FAVORITE_HOSTING_
PROVIDER> MASTER
GIT PUSH <YOUR_FAVORITE_
CONTINUOUS_INTEGRATION_
SYSTEM> MASTER
OR NOT ;-)
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
OTHERS
HTTP 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...
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 C...
DO NOT CREATE MONSTERS
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
MAKE ALL
DEPLOYMENTS ASYNC
MODULE BY MODULE
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 A...
SCALE YOUR TEAM
MODULARIZE YOUR TEAM
SOA IS BACK
TIME WILL TRASH YOUR CODE
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
NOSQL JSON DATA
NEED VERSION
Get doc on
DB
Version check
: is there an
update to do
?
Use it at last
code version
USE HTTP
AND ALL THE
GOODNESS
IT BRING ON
YOUR APP
200 OK
BODY : { TYPE :
ERROR,
MESSAGE : I
CAN’T FIND THE
FILE }
REALLY ?
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
AND
SOMETHING
WILL MAKE
YOU HAPPY
A DOCUMENTATION SLIM AS POSSIBLE
WRITE EVERYTHING
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
I want to be an efficient developper. Mix-IT version
Upcoming SlideShare
Loading in...5
×

I want to be an efficient developper. Mix-IT version

6,138

Published on

talk given at http://mix-it.fr/

Published in: Engineering, Internet, Technology

I want to be an efficient developper. Mix-IT version

  1. 1. I WANT TO BE A MORE EFFICIENT DEVELOPER TALK BY @WAXZCE – QUENTIN ADAM AT MIX IT 2014
  2. 2. MY DAY TO DAY WORK : CLEVER CLOUD, MAKE YOUR APP RUN ALL THE TIME
  3. 3. 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…
  4. 4. DEVELOPERS ARE MORE AND MORE CREATIVE
  5. 5. DEVS LEADS A LOT OF BUSINESS
  6. 6. SHIP QUICKLY WORKING APPS
  7. 7. VALUE IS ON PEOPLE MARKET KNOWLEDGE, TEAM MANAGEMENT, PRODUCT OWNERSHIP…
  8. 8. HOW MAKE THEM BE MORE EFFICIENT ?
  9. 9. DEVELOPER HAPPINESS IS KEY
  10. 10. HAPPY PEOPLE PRODUCE BETTER WORK
  11. 11. OPTIMIZE CODE AND PROCESS TO BE HAPPY OF WHAT YOU ARE DOING
  12. 12. OPEN SOURCES WORK PROCESSES ARE BETTER
  13. 13. PEOPLE WRITING CODE BECAUSE THEY JUST WANT TO DO IT THINK ABOUT
  14. 14. BECAUSE THEY CAN SOLVE PROBLEM OF THE WORLD
  15. 15. BUILD A FRAMEWORK TO PRODUCE CODE EASILY AND SHOW IT EASILY
  16. 16. RELEASE EARLY RELEASE OFTEN
  17. 17. RELEASE EARLY DEPLOY OFTEN
  18. 18. FOCUS ON YOUR OWN ADDED VALUE
  19. 19. DEPLOYMENT HAS TO BE EASY !
  20. 20. BE FOCUS WHEN YOU CODE
  21. 21. GIT PUSH <YOUR_FAVORITE_HOSTING_ PROVIDER> MASTER
  22. 22. GIT PUSH <YOUR_FAVORITE_ CONTINUOUS_INTEGRATION_ SYSTEM> MASTER
  23. 23. OR NOT ;-)
  24. 24. ALL THE TEAM HAVE TO BE READY TO DEPLOY
  25. 25. YOU HAVE TO DEPLOY YOUR APP SEVERAL TIMES A DAY
  26. 26. SPLIT YOUR APP
  27. 27. SPLIT THE CODE : MODULES
  28. 28. SMALLEST CODE BASE POSSIBLE FOR EACH PROGRAM
  29. 29. EACH MODULE IS VIEWED AS A SERVICE BY OTHERS HTTP OR AMQP COMUNICATION OR AS A CLIENT
  30. 30. USE EVENT BROKER TO MODULARIZE YOUR APP • AMQP • Celery • 0MQ • Redis • JMS • Some case : hadoop, akka… • … CRON is not an event queue
  31. 31. FOCUS ON THE BEST TOOL TO SOLVE YOUR PROBLEM
  32. 32. DON’T BE THAT GUY
  33. 33. 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
  34. 34. DO NOT CREATE MONSTERS
  35. 35. LEAR NEW THINGS & INNOVATE
  36. 36. {P, DB, S} aaS USE OPS FREE SOLUTION TO LEARN AND START
  37. 37. USE ONLINE DATABASE / BE READY TO TEST IN JUST A FEW MINUTES NO NEED TO TRASH YOUR COMPUTER
  38. 38. MAKE ALL DEPLOYMENTS ASYNC MODULE BY MODULE
  39. 39. Statelessness everywhere AVOID HOST SPECIFIC THINGS
  40. 40. 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
  41. 41. SCALE YOUR TEAM MODULARIZE YOUR TEAM
  42. 42. SOA IS BACK
  43. 43. TIME WILL TRASH YOUR CODE
  44. 44. THE POWER OF REWRITE EVERYTHING
  45. 45. SMALL CODE BASE + MULTIPLE TECHNOLOGIES = LEGACY KILLER
  46. 46. REWRITE IS QUICK BECAUSE YOU KNOW ALL THE PROBLEMS BEFORE IT HAPPENS
  47. 47. HAPPY DEVELOPER WORKS BETTER : ARE YOU HAPPY WHEN YOU START YOUR IDE?
  48. 48. VERSION EVERYTHING ! Data & API
  49. 49. NOSQL JSON DATA NEED VERSION Get doc on DB Version check : is there an update to do ? Use it at last code version
  50. 50. USE HTTP AND ALL THE GOODNESS IT BRING ON YOUR APP
  51. 51. 200 OK BODY : { TYPE : ERROR, MESSAGE : I CAN’T FIND THE FILE }
  52. 52. REALLY ?
  53. 53. PUT SOME TOOLS IN YOUR CODE
  54. 54. USE BUILD MANAGER
  55. 55. LET PEOPLES FREE TO CHOOSE THEIR IDE
  56. 56. USE A CONFIGURATION MANAGER / LIBRARY
  57. 57. LEARN GIT “LIKE A BOSS”
  58. 58. I MEAN : USE GIT WITH CLI
  59. 59. FOCUS ON CODE READABILITY
  60. 60. AVOID EARLY PERFORMANCES OPTIMIZATION
  61. 61. YOU HAVE TO THINK IT’S YOUR FIRST DAY ON THE CODE BASE
  62. 62. AND SOMETHING WILL MAKE YOU HAPPY
  63. 63. A DOCUMENTATION SLIM AS POSSIBLE
  64. 64. WRITE EVERYTHING
  65. 65. DO YOU WORK LIKE THIS ?
  66. 66. EXAMPLE : HOW DOES CLEVER CLOUD WORK ?
  67. 67. SOME OF TECHNOLOGY WE USE C
  68. 68. ALL TOGETHER USING HTTP & AMQP
  69. 69. THE FAST DEVELOPER WAY • Statup weekends • Hackatons • Coding dojo • Lean startup machine
  70. 70. I’m @waxzce on twitter I’m the CEO of A PaaS provider, give it a try ;-) THX FOR LISTENING & QUESTIONS TIME
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×