Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building on WordPress for Enterprise

B92fd0f4dfb7ed14c1441e4f4cf56542?s=47 Jenny Wong
October 13, 2016

Building on WordPress for Enterprise

Enterprise work tends to mean bigger usage, viewing and more red tape than you know what to do with.

During this talk, Jenny will share her exposure of building custom WordPress solutions for large clients. It will include coding practices, quick scaling wins, and a collection of anecdotes so that you can learn from her experience.

B92fd0f4dfb7ed14c1441e4f4cf56542?s=128

Jenny Wong

October 13, 2016
Tweet

More Decks by Jenny Wong

Other Decks in Technology

Transcript

  1. BUilding on wordPRess for Enterprise Jenny Wong @miss_jwo

  2. @miss_jwo #phpconfph Jenny Community Advocate & WordPress Engineer

  3. @miss_jwo #phpconfph Fast talker

  4. @miss_jwo #phpconfph hmn.md

  5. @miss_jwo #phpconfph WordPress at Scale

  6. @miss_jwo #phpconfph But WordPress is just for blogs

  7. @miss_jwo #phpconfph …and blogs are small sites

  8. @miss_jwo #phpconfph So, why would you need to scale WordPress?

  9. @miss_jwo #phpconfph wHat is a blog?

  10. @miss_jwo #phpconfph Website, with content

  11. @miss_jwo #phpconfph Yet another blog

  12. @miss_jwo #phpconfph Yet another blog

  13. @miss_jwo #phpconfph Yet another site

  14. @miss_jwo #phpconfph Building for Enterprise

  15. @miss_jwo #phpconfph Red Tape

  16. @miss_jwo #phpconfph Clients can be a pain, regardless size of

    project
  17. @miss_jwo #phpconfph Understanding why is important

  18. @miss_jwo #phpconfph What is done?

  19. @miss_jwo #phpconfph Ask for the procedure to sign offs

  20. @miss_jwo #phpconfph Ask for time-scale for sign offs

  21. @miss_jwo #phpconfph This can be a long time

  22. @miss_jwo #phpconfph Technical Challenges

  23. @miss_jwo #phpconfph Technical debt

  24. @miss_jwo #phpconfph Best Practises

  25. @miss_jwo #phpconfph Best Practises

  26. @miss_jwo #phpconfph Standardize Practises

  27. @miss_jwo #phpconfph Coding standards

  28. @miss_jwo #phpconfph Testing standards

  29. @miss_jwo #phpconfph Documentation standards

  30. @miss_jwo #phpconfph WordPress standards

  31. @miss_jwo #phpconfph WordPress standards https://make.wordpress.org/core/handbook/best- practices/coding-standards/

  32. None
  33. @miss_jwo #phpconfph Pick something, document it

  34. @miss_jwo #phpconfph Version Control

  35. @miss_jwo #phpconfph There is no excuse to not version control

  36. @miss_jwo #phpconfph Standardise a version control workflow

  37. @miss_jwo #phpconfph New feature, new branch

  38. @miss_jwo #phpconfph Commit often

  39. @miss_jwo #phpconfph Write meaningful commit messages

  40. @miss_jwo #phpconfph Push ( your feature branch ) often

  41. @miss_jwo #phpconfph Pull requests

  42. @miss_jwo #phpconfph Code review

  43. @miss_jwo #phpconfph Never merge your own code in

  44. @miss_jwo #phpconfph Environments

  45. @miss_jwo #phpconfph All environments should mimic your production environment

  46. @miss_jwo #phpconfph Have more than one environment

  47. @miss_jwo #phpconfph wp-config.php

  48. @miss_jwo #phpconfph wp-config-local.php

  49. WP-CONFIG.PHP

  50. @miss_jwo #phpconfph Plugins

  51. @miss_jwo #phpconfph Add features to WordPress

  52. @miss_jwo #phpconfph One functionality in one plugin

  53. @miss_jwo #phpconfph Not your code?

  54. @miss_jwo #phpconfph Code review

  55. @miss_jwo #phpconfph Code review every time

  56. @miss_jwo #phpconfph Don’t want clients to deactivate plugins

  57. @miss_jwo #phpconfph wp-content/mu-plugins/

  58. @miss_jwo #phpconfph Client specific Code

  59. @miss_jwo #phpconfph mu-plugins/client-core/

  60. @miss_jwo #phpconfph wordpress At Scale

  61. @miss_jwo #phpconfph What is scale?

  62. @miss_jwo #phpconfph Does it matter it’s WordPress?

  63. @miss_jwo #phpconfph The core is PHP

  64. @miss_jwo #phpconfph Any way to scale PHP, is a way

    to scale WordPress* *Some work better than others
  65. @miss_jwo #phpconfph Useful server plugins

  66. USEFUL PLUGINS S3 Uploads uploads folder in an S3 bucket

  67. USEFUL PLUGINS AWS SES wp_mail() Drop-in sending mail via Amazon’s

    SES infrastructure
  68. USEFUL PLUGINS Batcache full-page caching solution for WordPress

  69. USEFUL PLUGINS Memcache Object Cache persistent object caching in WordPress

  70. USEFUL PLUGINS Cavalcade replacement for WordPress’ built-in cron system

  71. USEFUL PLUGINS Tachyon image resizing processor built with Amazon S3

    & CloudFront
  72. USEFUL PLUGINS LudicrousDB supports replication, failover, load balancing, & partitioning

  73. @miss_jwo #phpconfph Useful Dev tools

  74. QUERY MONITOR

  75. USER SWITCHER

  76. WP CLI

  77. 10up.github.io/Engineering-Best-Practices

  78. engineering.hmn.md

  79. @miss_jwo #phpconfph summary

  80. @miss_jwo #phpconfph Consistency

  81. @miss_jwo #phpconfph Standards & quality

  82. Maraming salamat

  83. @miss_jwo #phpconfph Questions

  84. Jenny Wong t: @miss_jwo jenny@hmn.md