Laracon DB
Laracon DB
Talks for "design-patterns" (20)
YAGNI With Laravel

A talk about YAGNI (You Aren't Gonna Need It) principle in Laravel development. The speaker discusses how to avoid over-engineering by only implementing features when they're actually needed, while maintaining balance between simplicity and necessary complexity. He covers the stages of adopting YAGNI, from initial resistance through to confidence, and provides practical examples of when to apply or not apply YAGNI in Laravel applications.

Keeping Eloquent Eloquent

A comprehensive talk about writing better Laravel code by focusing on proper use of Eloquent ORM features. The speaker discusses model defaults, relationship management, custom collections, and report generation patterns. He emphasizes the importance of making code readable and semantic, using real-world furniture-making analogies to illustrate concepts of craftsmanship in software development.

Cruddy by Design

Adam Wathan presents strategies for simplifying Laravel controllers by following the 'Never Write Custom Actions' (NWCA) rule. He demonstrates how to break down large controllers with many custom actions into smaller, more focused controllers that only use standard CRUD/REST actions. Through examples from a podcast management application, he shows how to model seemingly custom operations as standard resource actions by thinking creatively about your domain models and resources.

Slay the Beast

Jeffrey Way shares 9 code refactoring techniques to improve Laravel applications, focusing on simplicity and practical solutions. He emphasizes letting code 'grossness' guide refactoring decisions rather than premature optimization, and advocates for optimizing code for deletion rather than trying to future-proof everything. The talk provides concrete examples of patterns like decorators, query objects, and event handling while warning against over-engineering.

Patterns That Pay Off

A detailed talk about practical design patterns and code organization in Laravel applications, focusing on when and how to implement different patterns. The speaker emphasizes writing maintainable code by making strategic decisions about pattern usage based on actual needs rather than prematurely implementing complex architectures. He covers both preventative and reactive patterns, from code organization to scaling solutions.

Design Patterns with Laravel

The speaker presents a practical guide to understanding and implementing design patterns in Laravel applications. Starting with a story about a junior developer struggling with the Gang of Four design patterns book, he demonstrates how to make patterns more accessible by showing real-world implementations of the Adapter, Strategy, and Factory patterns using Laravel examples. The talk focuses on practical refactoring techniques and how to properly structure code using these patterns.

The Clean Coder

Bob Martin gives a talk about clean architecture, discussing how frameworks like Rails (and by extension Laravel) should not dominate application design. He emphasizes that web frameworks are just I/O devices and should be treated as plugins to the core business logic. He discusses the importance of proper architecture that allows deferring major decisions, separates business logic from delivery mechanisms, and enables easy testing. He also touches on the growing responsibility of software developers in society and the need for self-regulation through practices like TDD.

Laravel Design Patterns 2.0

A comprehensive talk about design patterns in Laravel, focusing on three key patterns: Singleton, Observer, and Bridge. The speaker explains each pattern using real-world analogies (like pizza-making) and shows how Laravel implements them differently from traditional PHP implementations. The talk demonstrates how Laravel uses these patterns in its core functionality, including service containers, event systems, and database migrations.

Time Driven Development

The talk discusses time-driven development and software architecture decisions, using real-world examples from building a user profile management system. The speaker emphasizes the importance of balancing proper software design principles with practical time constraints. They demonstrate how over-engineering can sometimes waste time, while strategic architecture decisions can save time in the long run. The talk includes examples of transitioning from a CRM-based system to a local database, and lessons learned from over-engineering a GitHub integration.

State Machines

Jake Bennett presents his first conference talk on implementing State Machines and the State Pattern in Laravel applications. He demonstrates how to refactor complex conditional logic around invoice status management into a cleaner, more maintainable state machine implementation using PHP classes. The talk walks through creating a state diagram, implementing state classes, and delegating behavior through a state machine pattern rather than traditional event-action controllers.

Software Design Patterns in Laravel 4

A technical talk about software design patterns used in Laravel framework. The speaker covers several key design patterns including Iterators, Observers, Singletons, Facades, and Decorators, explaining how they are implemented in Laravel and their practical applications. The talk includes detailed explanations of each pattern's structure, purpose, and real-world examples from Laravel's codebase.

Design How Your Objects Talk Through Mocking

The talk focuses on Test-Driven Development (TDD) and behavioral design patterns, particularly emphasizing the importance of object communication and mocking in software design. The speaker discusses how exposing object communications through tests can help identify design problems and SOLID principle violations. He argues that mocks should be used as design tools rather than just for test isolation, and presents several case studies showing how proper mocking practices can lead to better software design.

IOC container beyond constructor injection

A comprehensive talk about Laravel's IOC (Inversion of Control) Container, covering dependency injection, container bindings, and service providers. The speaker explains core IOC concepts through practical examples, demonstrates how to use the container effectively, and discusses advanced topics like circular dependencies and contextual binding.

Bad UX is Not an Option: Intuitive Software by being a Better Developer

A talk about the importance of user experience (UX) design in development, focusing on how developers can improve UX through better logging practices and thoughtful design choices. The speaker shares experiences from teaching technology in Indonesian villages to demonstrate how diverse user bases are, and provides practical tips for implementing better UX through Monolog logging and human-centered design principles.

Monads in PHP

The talk demystifies monads by explaining them as ordinary data types with specific operations and rules, similar to stacks and collections. The speaker uses practical examples in PHP/Laravel to show how monads are already being used (like Laravel's fluent syntax, JavaScript promises, and jQuery), and demonstrates how to implement basic monads like Maybe and Many to handle null checking and collections in a functional way.

Laravel Design Patterns

This talk focuses on design patterns in Laravel, particularly exploring the Factory Pattern, Builder Pattern, Strategy Pattern and Provider Pattern. The speaker uses a pizza ordering system as a practical example to demonstrate how these patterns can work together to create maintainable, flexible code. The talk includes concrete examples of implementing these patterns in Laravel applications and explains how they can be used to extend framework functionality.

Time Driven Development

The talk introduces the concept of 'Time Driven Development' - a balanced approach to software development that considers both business value and code quality. The speaker shares experiences from real projects to illustrate when to invest time in architecture (using patterns like Repository and Factory) versus when to opt for simpler solutions. She emphasizes that software design principles should be treated as tools rather than goals, and developers should make pragmatic decisions based on project context and business value.

Event Sourcing in Laravel

Freek van der Herten presents a practical introduction to event sourcing in Laravel using the Laravel Event Sourcing package. The talk demonstrates how to implement event sourcing through examples of projectors and aggregates using a demo banking application called Larabank. The presentation covers both basic concepts and practical implementations, showing how event sourcing can be particularly useful for applications requiring audit trails and historical state reconstruction.

Abusing Laravel for Fun and Profit

David Hemphill gives a talk about creative ways to use and reuse Laravel's built-in components for solving common development problems. He shares approaches for handling front-end filtering, database testing, data access patterns, and model scheduling by leveraging existing Laravel features like pipelines, database seeders, form requests, and the scheduler rather than reaching for third-party packages.

Patterns that pay off

Matt Stauffer discusses software design patterns and their appropriate application in Laravel projects. He emphasizes that patterns should be used thoughtfully and only when needed, not blindly applied everywhere. The talk covers both process patterns and code organization patterns, with a focus on practical implementations that provide real value rather than unnecessary complexity.