Development tools

755 views

Published on

If you create Joomla! extensions you have to do some not complicated but time consuming tasks. It is easy to make a mistake and you have to start over again. I'll show how I have setup my environment and how this is integrated in the development process and package creating process. You can learn how a tool like phing can make you life easier.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
755
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Development tools

    1. 1. Development ToolsRobert Deutz
    2. 2. Challenges
    3. 3. DEVELOPMENT GTE GINST KA ING C PA
    4. 4. 5 Areas
    5. 5. 1Version Control
    6. 6. 2Code quality and consistency
    7. 7. Integrated Development 3Environment
    8. 8. 4Some little tools
    9. 9. 5Build Tools
    10. 10. 1
    11. 11. Version Control
    12. 12. RULE 1Never do development without a version control system
    13. 13. CVS SVN CentralisedGit Mercury Distributed
    14. 14. Centralised Version Control Systems
    15. 15. Centralised Version Control Systems• very popular at the end of the last century
    16. 16. Centralised Version Control Systems• very popular at the end of the last century• complicated when working in not centralised teams
    17. 17. 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
    18. 18. 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!
    19. 19. Distributed
    20. 20. Distributed• Best thing since sliced bread
    21. 21. Distributed• Best thing since sliced bread• good for not centralised teams
    22. 22. Distributed• Best thing since sliced bread• good for not centralised teams• Supports merging and branching in an easy way
    23. 23. 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
    24. 24. CVS SVN CentralisedGit Mercury Distributed
    25. 25. GIT
    26. 26. Got 15 minutes and want to learn Git?
    27. 27. Got 15 minutes and want to learn Git? try.github.com
    28. 28. 2
    29. 29. Code quality and consistency
    30. 30. RULE 2Write beautiful and well documented code.
    31. 31. RULE 2Write beautiful and well documented code. ALWAYS
    32. 32. We do
    33. 33. We do• use brackets
    34. 34. We do• use brackets• use tabs
    35. 35. We do• use brackets• use tabs• format code always in the same way
    36. 36. We do• use brackets• use tabs• format code always in the same way• use meaningful function, variable, methods and class names
    37. 37. We do• use brackets• use tabs• format code always in the same way• use meaningful function, variable, methods and class names• use phpDoc Blocks
    38. 38. 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)
    39. 39. We write helpful comments
    40. 40. We write helpful comments As I wrote this code only god and I know what it isdoing, now only god knows
    41. 41. We write helpful comments As I wrote this code only god and I know what it is WRONGdoing, now only god knows
    42. 42. We write helpful comments As I wrote this code only god and I know what it is WRONGdoing, now only god knows Registers a handler to a particular event group.
    43. 43. We write helpful comments As I wrote this code only god and I know what it is WRONGdoing, now only god knows Registers a handler to a RIGHT particular event group.
    44. 44. 3
    45. 45. Integrated Development Environment (IDE)
    46. 46. RULE 3We are using an IDE
    47. 47. RULE 3 We are using an IDEWHEN IT MAKES SENSE
    48. 48. I don‘t care which one
    49. 49. IDEs
    50. 50. IDEs• Eclipse (Zend Studio, phpEclipse, .....)
    51. 51. IDEs• Eclipse (Zend Studio, phpEclipse, .....)• PHP Storm (free license for Joomla! developers)
    52. 52. IDEs• Eclipse (Zend Studio, phpEclipse, .....)• PHP Storm (free license for Joomla! developers)• NetBeans IDE
    53. 53. Cooler Editor: Sublime Text
    54. 54. Cooler Editor: Sublime Text• Packages for almost everything we need
    55. 55. Cooler Editor: Sublime Text• Packages for almost everything we need• extremely fast
    56. 56. Cooler Editor: Sublime Text• Packages for almost everything we need• extremely fast• Edit features from heaven
    57. 57. Cooler Editor: Sublime Text• Packages for almost everything we need• extremely fast• Edit features from heaven• .... but not an IDE
    58. 58. Cooler Editor: Sublime Text• Packages for almost everything we need• extremely fast• Edit features from heaven• .... but not an IDE• comes closer and closer
    59. 59. How to chose a IDE
    60. 60. How to chose a IDE• Don‘t give up!
    61. 61. How to chose a IDE• Don‘t give up!• It need‘s time, so think first about your requirements
    62. 62. 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
    63. 63. 4
    64. 64. Some little tools
    65. 65. RULE 4We are trying to automate steps in our development process
    66. 66. RULE 4We are trying to automate steps in our development process DEVELOPERS ARE LAZY
    67. 67. Code formatting Code Sniffer
    68. 68. phpcs --standard=Joomla *
    69. 69. a lot
    70. 70. phpcs --standard=Joomla *|grep ERROR|wc -l
    71. 71. 1180
    72. 72. phpcs --standard=Joomla *|grep WARNING|wc -l
    73. 73. 53
    74. 74. find . -type f |wc -l
    75. 75. 187
    76. 76. but
    77. 77. robert-deutzs-macbook-pro:babioon-download deutz$ phpcs --standard=Joomla *|grep FOUNDFOUND 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)
    78. 78. PHP Documenter
    79. 79. Creates from your well documented and formated code an API documentation, with just a klick
    80. 80. 5
    81. 81. Build tools
    82. 82. RULE 5Don‘t do it by yourself when a script can do it for you
    83. 83. www.PHING.info
    84. 84. copy files replace tags in files packaging extendable checkout from a repositoryexecuting commands
    85. 85. 2 FILES
    86. 86. map
    87. 87. packaging
    88. 88. [1] http://digitaldisseny.com/en/blog/141-setting-up-codesniffer-to-validate-joomla-coding-standards-on-ubuntu[2] http://git-scm.com
    89. 89. Danke rdeutzrd@rdbs.de

    ×