SlideShare une entreprise Scribd logo
1  sur  93
Télécharger pour lire hors ligne
Development Tools
Robert Deutz
Challenges
DEVELOPMENT




              G
TE




          GIN
ST




        KA
 ING



          C
       PA
5 Areas
1
Version Control
2
Code quality and consistency
Integrated Development
                         3
Environment
4
Some little tools
5
Build Tools
1
Version Control
RULE 1
Never do development without a
    version control system
CVS    SVN      Centralised




Git   Mercury   Distributed
Centralised Version Control Systems
Centralised Version Control Systems
• very popular at the end of the last century
Centralised Version Control Systems
• very popular at the end of the last century


• complicated when working in not centralised teams
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
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
Distributed
• Best thing since sliced bread
Distributed
• Best thing since sliced bread


• good for not centralised teams
Distributed
• Best thing since sliced bread


• good for not centralised teams


• Supports merging and branching in an easy way
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      Centralised




Git   Mercury   Distributed
GIT
Got 15 minutes and want to learn Git?
Got 15 minutes and want to learn Git?




 try.github.com
2
Code quality and consistency
RULE 2
Write beautiful and well documented
                code.
RULE 2
Write beautiful and well documented
                code.
          ALWAYS
We do
We do

• use brackets
We do

• use brackets


• use tabs
We do

• use brackets


• use tabs


• format code always in the same way
We do

• use brackets


• use tabs


• format code always in the same way


• use meaningful function, variable, methods and class names
We do

• use brackets


• use tabs


• format code always in the same way


• use meaningful function, variable, methods and class names


• use phpDoc Blocks
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
We write helpful comments


 As I wrote this code only
 god and I know what it is
doing, now only god knows
We write helpful comments


 As I wrote this code only
 god and I know what it is   WRONG
doing, now only god knows
We write helpful comments


 As I wrote this code only
 god and I know what it is   WRONG
doing, now only god knows




  Registers a handler to a
  particular event group.
We write helpful comments


 As I wrote this code only
 god and I know what it is   WRONG
doing, now only god knows




  Registers a handler to a
                             RIGHT
  particular event group.
3
Integrated Development
      Environment
          (IDE)
RULE 3
We are using an IDE
RULE 3
  We are using an IDE

WHEN IT MAKES SENSE
I don‘t care which one
IDEs
IDEs

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

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


• PHP Storm (free license for Joomla! developers)
IDEs

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


• PHP Storm (free license for Joomla! developers)


• NetBeans IDE
Cooler Editor: Sublime Text
Cooler Editor: Sublime Text

• Packages for almost everything we need
Cooler Editor: Sublime Text

• Packages for almost everything we need


• extremely fast
Cooler Editor: Sublime Text

• Packages for almost everything we need


• extremely fast


• Edit features from heaven
Cooler Editor: Sublime Text

• Packages for almost everything we need


• extremely fast


• Edit features from heaven


• .... but not an 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
How to chose a IDE

• Don‘t give up!
How to chose a IDE

• Don‘t give up!


• It need‘s time, so think first about your requirements
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
4
Some little tools
RULE 4
We are trying to automate steps in
   our development process
RULE 4
We are trying to automate steps in
   our development process
  DEVELOPERS ARE LAZY
Code formatting
 Code Sniffer
phpcs --standard=Joomla *
a lot
phpcs --standard=Joomla *|grep 'ERROR'|wc -l
1180
phpcs --standard=Joomla *|grep 'WARNING'|wc -l
53
find . -type f |wc -l
187
but
robert-deutzs-macbook-pro:babioon-download deutz$ phpcs --standard=Joomla *|grep 'FOUND'
FOUND 15 ERROR(S) AFFECTING 8 LINE(S)
FOUND 9 ERROR(S) AFFECTING 6 LINE(S)
FOUND 13 ERROR(S) AND 1 WARNING(S) AFFECTING 7 LINE(S)
FOUND 101 ERROR(S) AND 7 WARNING(S) AFFECTING 60 LINE(S)
FOUND 15 ERROR(S) AFFECTING 9 LINE(S)
FOUND 17 ERROR(S) AFFECTING 10 LINE(S)
FOUND 22 ERROR(S) AFFECTING 12 LINE(S)
FOUND 133 ERROR(S) AND 3 WARNING(S) AFFECTING 37 LINE(S)
FOUND 123 ERROR(S) AND 7 WARNING(S) AFFECTING 72 LINE(S)
FOUND 19 ERROR(S) AFFECTING 13 LINE(S)
FOUND 80 ERROR(S) AFFECTING 43 LINE(S)
FOUND 38 ERROR(S) AND 1 WARNING(S) AFFECTING 18 LINE(S)
FOUND 33 ERROR(S) AFFECTING 20 LINE(S)
FOUND 23 ERROR(S) AFFECTING 13 LINE(S)
FOUND 48 ERROR(S) AND 2 WARNING(S) AFFECTING 25 LINE(S)
FOUND 13 ERROR(S) AND 2 WARNING(S) AFFECTING 10 LINE(S)
FOUND 28 ERROR(S) AFFECTING 21 LINE(S)
FOUND 17 ERROR(S) AND 5 WARNING(S) AFFECTING 13 LINE(S)
FOUND 21 ERROR(S) AFFECTING 15 LINE(S)
FOUND 33 ERROR(S) AND 1 WARNING(S) AFFECTING 22 LINE(S)
FOUND 15 ERROR(S) AND 1 WARNING(S) AFFECTING 10 LINE(S)
FOUND 33 ERROR(S) AFFECTING 17 LINE(S)
FOUND 17 ERROR(S) AND 6 WARNING(S) AFFECTING 14 LINE(S)
FOUND 44 ERROR(S) AND 1 WARNING(S) AFFECTING 21 LINE(S)
FOUND 20 ERROR(S) AND 1 WARNING(S) AFFECTING 16 LINE(S)
FOUND 224 ERROR(S) AND 1 WARNING(S) AFFECTING 107 LINE(S)
PHP Documenter
Creates from your well documented
    and formated code an API
          documentation,
          with just a klick
Development tools
5
Build tools
RULE 5
Don‘t do it by yourself when a script
          can do it for you
www.PHING.info
copy files
             replace tags in files

 packaging
                   extendable

    checkout from a repository

executing commands
2 FILES
map
Development tools
Development tools
packaging
Development tools
[1] http://digitaldisseny.com/en/blog/141-setting-up-codesniffer-to-validate-joomla-coding-standards-on-ubuntu
[2] http://git-scm.com
Danke

    rdeutz


rd@rdbs.de

Contenu connexe

Tendances

How to Work Efficiently in a Hybrid Git-Perforce Environment
How to Work Efficiently in a Hybrid Git-Perforce EnvironmentHow to Work Efficiently in a Hybrid Git-Perforce Environment
How to Work Efficiently in a Hybrid Git-Perforce EnvironmentPerforce
 
Trunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsTrunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
 
How do you implement Continuous Delivery? Part 2: Code Management
How do you implement Continuous Delivery? Part 2: Code ManagementHow do you implement Continuous Delivery? Part 2: Code Management
How do you implement Continuous Delivery? Part 2: Code ManagementThoughtworks
 
Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)Perforce
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciAtlassian
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodeKris Buytaert
 
No, we can't do continuous delivery
No, we can't do continuous deliveryNo, we can't do continuous delivery
No, we can't do continuous deliveryKris Buytaert
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Peter Kofler
 
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Ontico
 
Devops is dead, Long Live Devops
Devops is dead, Long Live DevopsDevops is dead, Long Live Devops
Devops is dead, Long Live DevopsKris Buytaert
 
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.UA Mobile
 
My talk at Linux Piter 2016
My talk at Linux Piter 2016My talk at Linux Piter 2016
My talk at Linux Piter 2016Alex Chistyakov
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for BeginnersNebulaworks
 
Super-powered CI with Git - Sarah Goff-Dupont
Super-powered CI with Git - Sarah Goff-DupontSuper-powered CI with Git - Sarah Goff-Dupont
Super-powered CI with Git - Sarah Goff-DupontAtlassian
 
Porque Odeio Branches
Porque Odeio BranchesPorque Odeio Branches
Porque Odeio BranchesRafael Petry
 
CommonJS via PINF JavaScript Loader - Introduction
CommonJS via PINF JavaScript Loader - IntroductionCommonJS via PINF JavaScript Loader - Introduction
CommonJS via PINF JavaScript Loader - Introductioncadorn
 
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)Chen Cheng-Wei
 

Tendances (20)

How to Work Efficiently in a Hybrid Git-Perforce Environment
How to Work Efficiently in a Hybrid Git-Perforce EnvironmentHow to Work Efficiently in a Hybrid Git-Perforce Environment
How to Work Efficiently in a Hybrid Git-Perforce Environment
 
Trunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsTrunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and Economics
 
How do you implement Continuous Delivery? Part 2: Code Management
How do you implement Continuous Delivery? Part 2: Code ManagementHow do you implement Continuous Delivery? Part 2: Code Management
How do you implement Continuous Delivery? Part 2: Code Management
 
Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola Paolucci
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
No, we can't do continuous delivery
No, we can't do continuous deliveryNo, we can't do continuous delivery
No, we can't do continuous delivery
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)
 
The way Devs do Ops
The way Devs do OpsThe way Devs do Ops
The way Devs do Ops
 
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Devops is dead, Long Live Devops
Devops is dead, Long Live DevopsDevops is dead, Long Live Devops
Devops is dead, Long Live Devops
 
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
 
My talk at Linux Piter 2016
My talk at Linux Piter 2016My talk at Linux Piter 2016
My talk at Linux Piter 2016
 
Ti weekopenshift
Ti weekopenshiftTi weekopenshift
Ti weekopenshift
 
Trunk based development for Beginners
Trunk based development for BeginnersTrunk based development for Beginners
Trunk based development for Beginners
 
Super-powered CI with Git - Sarah Goff-Dupont
Super-powered CI with Git - Sarah Goff-DupontSuper-powered CI with Git - Sarah Goff-Dupont
Super-powered CI with Git - Sarah Goff-Dupont
 
Porque Odeio Branches
Porque Odeio BranchesPorque Odeio Branches
Porque Odeio Branches
 
CommonJS via PINF JavaScript Loader - Introduction
CommonJS via PINF JavaScript Loader - IntroductionCommonJS via PINF JavaScript Loader - Introduction
CommonJS via PINF JavaScript Loader - Introduction
 
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
DevOps:建造開發維運的跨界之橋 (@ C.C. Agile #37)
 

En vedette

Red zone offense
Red zone offenseRed zone offense
Red zone offenserauch1jh
 
7 Ways Your Brand Can Help You Raise Money
7 Ways Your Brand Can Help You Raise Money 7 Ways Your Brand Can Help You Raise Money
7 Ways Your Brand Can Help You Raise Money Parker LePla
 
Effectiveness and costs of DE
Effectiveness and costs of DEEffectiveness and costs of DE
Effectiveness and costs of DEAlaa Sadik
 
VIRTUAL APPLICATION DELIVERY CONTROLLERS
VIRTUAL APPLICATION DELIVERY CONTROLLERSVIRTUAL APPLICATION DELIVERY CONTROLLERS
VIRTUAL APPLICATION DELIVERY CONTROLLERS Array Networks
 
ROUSH CleanTech Propane Autogas Vehicles
ROUSH CleanTech Propane Autogas VehiclesROUSH CleanTech Propane Autogas Vehicles
ROUSH CleanTech Propane Autogas VehiclesWisconsin Clean Cities
 
Presentation 2020 fin
Presentation 2020 finPresentation 2020 fin
Presentation 2020 finAndrew Taylor
 
appstore_폐쇄vs개방정책
appstore_폐쇄vs개방정책appstore_폐쇄vs개방정책
appstore_폐쇄vs개방정책Gunhee Lee
 
Best Practices for Security and Governance in SharePoint 2013
Best Practices for Security and Governance in SharePoint 2013  Best Practices for Security and Governance in SharePoint 2013
Best Practices for Security and Governance in SharePoint 2013 InnoTech
 
Travel Guide - Prague, Dublin, Lisbon
Travel Guide - Prague, Dublin, LisbonTravel Guide - Prague, Dublin, Lisbon
Travel Guide - Prague, Dublin, LisbonEmily Kates
 
Ijiret ashwini-kc-deadlock-detection-in-homogeneous-distributed-database-systems
Ijiret ashwini-kc-deadlock-detection-in-homogeneous-distributed-database-systemsIjiret ashwini-kc-deadlock-detection-in-homogeneous-distributed-database-systems
Ijiret ashwini-kc-deadlock-detection-in-homogeneous-distributed-database-systemsIJIR JOURNALS IJIRUSA
 

En vedette (14)

Red zone offense
Red zone offenseRed zone offense
Red zone offense
 
7 Ways Your Brand Can Help You Raise Money
7 Ways Your Brand Can Help You Raise Money 7 Ways Your Brand Can Help You Raise Money
7 Ways Your Brand Can Help You Raise Money
 
Effectiveness and costs of DE
Effectiveness and costs of DEEffectiveness and costs of DE
Effectiveness and costs of DE
 
VIRTUAL APPLICATION DELIVERY CONTROLLERS
VIRTUAL APPLICATION DELIVERY CONTROLLERSVIRTUAL APPLICATION DELIVERY CONTROLLERS
VIRTUAL APPLICATION DELIVERY CONTROLLERS
 
ROUSH CleanTech Propane Autogas Vehicles
ROUSH CleanTech Propane Autogas VehiclesROUSH CleanTech Propane Autogas Vehicles
ROUSH CleanTech Propane Autogas Vehicles
 
Ch6 hkm
Ch6 hkmCh6 hkm
Ch6 hkm
 
Ltfa
LtfaLtfa
Ltfa
 
Paris scoccer
Paris scoccerParis scoccer
Paris scoccer
 
Presentation 2020 fin
Presentation 2020 finPresentation 2020 fin
Presentation 2020 fin
 
appstore_폐쇄vs개방정책
appstore_폐쇄vs개방정책appstore_폐쇄vs개방정책
appstore_폐쇄vs개방정책
 
Best Practices for Security and Governance in SharePoint 2013
Best Practices for Security and Governance in SharePoint 2013  Best Practices for Security and Governance in SharePoint 2013
Best Practices for Security and Governance in SharePoint 2013
 
Travel Guide - Prague, Dublin, Lisbon
Travel Guide - Prague, Dublin, LisbonTravel Guide - Prague, Dublin, Lisbon
Travel Guide - Prague, Dublin, Lisbon
 
RIMPAC 2014
RIMPAC 2014RIMPAC 2014
RIMPAC 2014
 
Ijiret ashwini-kc-deadlock-detection-in-homogeneous-distributed-database-systems
Ijiret ashwini-kc-deadlock-detection-in-homogeneous-distributed-database-systemsIjiret ashwini-kc-deadlock-detection-in-homogeneous-distributed-database-systems
Ijiret ashwini-kc-deadlock-detection-in-homogeneous-distributed-database-systems
 

Similaire à Development tools

Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environmentRobert Deutz
 
How to write good quality code
How to write good quality codeHow to write good quality code
How to write good quality codeHayden Bleasel
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucksPeter Gfader
 
IDE, Terminal and SCM to work with Ruby on Rails
IDE, Terminal and SCM to  work with Ruby on RailsIDE, Terminal and SCM to  work with Ruby on Rails
IDE, Terminal and SCM to work with Ruby on RailsHenry Le
 
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps PracticesHow HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps PracticesAtlassian
 
“One man” development process model
“One man” development process model“One man” development process model
“One man” development process modelSilicon Straits
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing codeZivtech, LLC
 
Intro to WordPress Plugins
Intro to WordPress PluginsIntro to WordPress Plugins
Intro to WordPress Pluginszamoose
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC RiversideMichael Kennedy
 
Development Environment Tips
Development Environment TipsDevelopment Environment Tips
Development Environment TipsAdam Culp
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...Simplilearn
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Danny Preussler
 
Guided Path to DevOps Career.
Guided Path to DevOps Career.Guided Path to DevOps Career.
Guided Path to DevOps Career.wahabwelcome
 

Similaire à Development tools (20)

Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environment
 
Code detox
Code detoxCode detox
Code detox
 
How to write good quality code
How to write good quality codeHow to write good quality code
How to write good quality code
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucks
 
IDE, Terminal and SCM to work with Ruby on Rails
IDE, Terminal and SCM to  work with Ruby on RailsIDE, Terminal and SCM to  work with Ruby on Rails
IDE, Terminal and SCM to work with Ruby on Rails
 
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps PracticesHow HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
 
Zend Code in ZF 2.0
Zend Code in ZF 2.0Zend Code in ZF 2.0
Zend Code in ZF 2.0
 
“One man” development process model
“One man” development process model“One man” development process model
“One man” development process model
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
Icebreaker with DevOps
Icebreaker with DevOpsIcebreaker with DevOps
Icebreaker with DevOps
 
Make a better with clean code
Make a better with clean codeMake a better with clean code
Make a better with clean code
 
Intro to WordPress Plugins
Intro to WordPress PluginsIntro to WordPress Plugins
Intro to WordPress Plugins
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
Development Environment Tips
Development Environment TipsDevelopment Environment Tips
Development Environment Tips
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
 
Guided Path to DevOps Career.
Guided Path to DevOps Career.Guided Path to DevOps Career.
Guided Path to DevOps Career.
 

Development tools

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n