$30 off During Our Annual Pro Sale. View Details »

How To Roll Your Own

Ixudra
January 13, 2016

How To Roll Your Own

As we mature as software developers, it becomes more and more important to increase the speed with which we are able to develop or applications. This can be done in a number of different ways, e.g. use a new IDE, use a new framework, pull in a specific package via composer, … .

In the last couple of years however, I have felt the need to take this concept one step further by creating a set of custom PHP packages that are perfectly in line with my own preferences and work flow. These packages have allowed me to significantly speed up the development of my projects by reducing the amount of repetitive actions and boiler plate code.

In this talk, I would like to give you a brief demonstration of the tools and techniques I have used to accomplish this and show you can do the same for your projects, be it Laravel, Symfony, Drupal or Wordpress. Additionally, I will highlight some of the lessons I learned over the last couple of years while taking this approach.

Ixudra

January 13, 2016
Tweet

More Decks by Ixudra

Other Decks in Programming

Transcript

  1. How To Roll Your Own
    Building your own development tools

    View Slide

  2. www.ixudra.be - @ixudra

    View Slide

  3. First website

    View Slide

  4. Latest work

    View Slide

  5. Lots of progress

    View Slide

  6. View Slide

  7. A
    utom
    ation
    R
    educe
    errors
    Increase
    flow
    Development speed

    View Slide

  8. #1: Reduce errors

    View Slide

  9. Increase technical knowledge

    View Slide

  10. Increase functional knowledge

    View Slide

  11. View Slide

  12. View Slide

  13. #2: Increase
    flow

    View Slide

  14. Better tools

    View Slide

  15. - Dave Barry
    “Meetings are an addictive, highly self-
    indulgent activity that corporations and other
    large organizations habitually engage in only
    because they cannot actually masturbate.”

    View Slide

  16. – New York Times, 2004-10-11 (i.e. BEFORE Facebook)
    On a typical day office workers are interrupted
    about seven times an hour, which adds up to 56
    interruptions a day, 80% of which are
    considered trivial, according to time-
    management experts.

    View Slide

  17. How to reduce interruptions
    • Buy noise cancelling headphones
    • Shut off email notifications
    • Shut off Skype/Slack/Facebook notifications

    View Slide

  18. How to reduce interruptions
    • Buy noise cancelling headphones
    • Shut off email notifications
    • Shut off Skype/Slack/Facebook notifications

    View Slide

  19. View Slide

  20. – Bill Gates
    The first rule of any technology used in a
    business is that automation applied to an
    efficient operation will magnify the efficiency.
    The second is that automation applied to an
    inefficient operation will magnify the
    inefficiency.

    View Slide

  21. Automation

    View Slide

  22. View Slide

  23. A
    utom
    ation
    R
    educe
    errors
    Increase
    flow
    My personal growth

    View Slide

  24. A
    utom
    ation
    For this talk

    View Slide

  25. Disclaimer

    View Slide

  26. How it all started

    View Slide

  27. /ixudra/ixd-template
    • Custom project template
    • Preferred file and directory structure
    • Project config
    • Commonly used composer packages

    View Slide

  28. View Slide

  29. Custom Laravel packages
    /ixudra/generators

    View Slide

  30. Custom Laravel packages

    View Slide

  31. /ixudra/portfolio

    View Slide

  32. View Slide

  33. /ixudra/csi

    View Slide

  34. /ixudra/curl

    View Slide

  35. View Slide

  36. In retrospect
    • Very time intensive but very much worth it.
    • Focus is on reusability

    View Slide

  37. Other examples

    View Slide

  38. Other examples

    View Slide

  39. Benefits
    • Huge gains in development speed
    • Increased consistency in all of my projects
    • New skills and and techniques can easily be
    transferred to other projects
    • Learned lots of new things in doing so

    View Slide

  40. Benefits
    • Huge gains in development speed
    • Increased consistency in all of my projects
    • New skills and and techniques can easily be
    transferred to other projects
    • Learned lots of new things in doing so

    View Slide

  41. Benefits
    • Huge gains in development speed
    • Increased consistency in all of my projects
    • New skills and and techniques can easily be
    transferred to other projects
    • Learned lots of new things in doing so

    View Slide

  42. Benefits
    • Huge gains in development speed
    • Increased consistency in all of my projects
    • New skills and and techniques can easily be
    transferred to other projects
    • Learned lots of new things in doing so

    View Slide

  43. Disadvantages
    • Being stuck in the same routines makes it more
    difficult to learn new things
    • More difficult to jump into a new project that
    doesn’t follow your workflow
    • Developing packages is hard
    • Very easily for packages to become obsolete

    View Slide

  44. Disadvantages
    • Being stuck in the same routines makes it more
    difficult to learn new things
    • More difficult to jump into a new project that
    doesn’t follow your workflow
    • Developing packages is hard
    • Very easily for packages to become obsolete

    View Slide

  45. Disadvantages
    • Being stuck in the same routines makes it more
    difficult to learn new things
    • More difficult to jump into a new project that
    doesn’t follow your workflow
    • Developing packages is hard
    • Very easily for packages to become obsolete

    View Slide

  46. Disadvantages
    • Being stuck in the same routines makes it more
    difficult to learn new things
    • More difficult to jump into a new project that
    doesn’t follow your workflow
    • Developing packages is hard
    • Very easily for packages to become obsolete

    View Slide

  47. How to start your own?

    View Slide

  48. Time vs effort

    View Slide

  49. Step one: check the competition

    View Slide

  50. Step one: check the competition

    View Slide

  51. Step one: check the competition

    View Slide

  52. Step two: environment setup

    View Slide

  53. Step three: research best
    practices

    View Slide

  54. Step three: research best
    practices
    http://phppackagechecklist.com

    View Slide

  55. Step four: implementation

    View Slide

  56. Step five: documentation

    View Slide

  57. Step six: set up reminders

    View Slide

  58. Closing remarks
    • Call for action
    • Create one or more of your own packages and
    let me know how it all worked out
    • Take a look at my packages and tell me what
    you think
    • Rate this talk to help me improve my speaking
    abilities

    View Slide

  59. Closing remarks
    • Call for action
    • Create one or more of your own packages and
    let me know how it all worked out
    • Take a look at my packages and tell me what
    you think (http://github.com/ixudra)
    • Rate this talk to help me improve my speaking
    abilities

    View Slide

  60. Closing remarks
    • Call for action
    • Create one or more of your own packages and
    let me know how it all worked out
    • Take a look at my packages and tell me what
    you think (http://github.com/ixudra)
    • Rate this talk to help me improve my speaking
    abilities

    View Slide

  61. www.ixudra.be - @ixudra
    Thank you all for listening
    http://github.com/ixudra

    View Slide

  62. Thank you all for listening
    https://www.youtube.com/watch?v=KTdA7kf2cUM
    https://joind.in/talk/c4100

    View Slide