I enjoyed the presentation. There were examples with each one of the patterns that were discussed which helped me understand more quickly the times when they would be most practical to use. All of them were immediately practical to almost anyone doing PHP work as those problems can come up on a regular basis.
Nice work! I would try to include some hands-on/live coding of some of your examples like the Sarah Connor one. It would have been nice to see a list and watch how greedy and lazy searches actually work against that list.
Regular Expressions: difficult to learn and even more difficult to master -- however, you showed you are well on your way! You did a great job with background, basic syntax, etc. I liked the hook of the "terminator" -- and I have no doubt I will now think of your talk the next time I use anything RegEx because of it. If you get the chance to give it again, I would like to see a little more interaction or demonstration in it. For example, I loved the use of grep at the end--that could have been a very effective way to walk though layering up some basic grep syntax. Even having a page from the made-up Sarah Conner phone book page in a text file and trying different patterns live may help learners of different styles. In all, great prep and great work! Thank you for all the effort!
Very polished presentation, and of course I love having the code in github to go play around with it! Your three patterns were excellent choices--anyone who has used nearly ANY framework has seen a factory. :-) I also liked how you showed two forms of dependency injection--I'll admit, I tend to focus on your "first" styles: DI without a container and Chaining with a loop. But by showing me what was familiar than working up to better, more OO ways to structure my solution I could really see how I could improve readability and reuse. I'm also very glad to see you made the effort to show testing--certainly more of that! Very clean, polished and well rehearsed. Thank you for all your time preparing this!
Great work with the presentation, James. I appreciate the refresher on regex. There is such power in that system, and it is challenging to know how to put the pieces together.
If I had one suggestion to offer it would be to change the end of the presentation and look at how one could parse a URL (or a phone number or something similar). For me, knowing how to put things together is still something that is being learned and I am very green at that.
Thanks for going to all the work to put the talk together!
Joseph, you did a great job delivering this talk and obviously put a lot of work into it. The effort to do a custom-created slide deck was evidence of the forethought you had. I especially liked the diagrams which helped me visualize the patterns.
I liked that the talk included some examples of writing testing. We can always benefit from more testing awareness! But it felt out of place. If I heard you correctly this was your first time writing tests. While that's fantastic and you should do more of that, I would suggest leaving the test code in the repository and not in slides unless the talk is specifically about testing. Not because you did it poorly but rather it likely went over the heads of your target audience. I remember how I felt looking at patterns for the first time... trying to wrap my head around objects and growing accustomed to PHP's object syntax. When I first started learning patterns it would take me several minutes to even read and understand a single page of code. By throwing testing into the mix I felt I was in cognitive overload.
That said, your presentation style and desire to push yourself will continue to serve you well. I look forward to seeing you talk more about what has been interesting you at future KC PHP meetups!