We're sorry!
We made a mistake in processing the videos from DjangoCon US 2024. The sponsor acknowledgements are missing our wonderful sponsor, the Wharton School. We deeply regret this and are working to re-upload videos with our correct sponsor acknowledgements.
All videos have been marked as unlisted and will be removed in the future. We expect the new, permanent videos to be uploaded in two weeks.
About this session
As web developers, we want to select the right architecture pattern for our projects. Web applications are inherently complex, and your choice will affect how you manage that complexity.
Choosing a SPA pattern offers rich user experiences with rich interactivity and navigational transitions, but it also introduces complexity in state management, development cost, maintenance, security, and performance.
On the other hand, server-rendered applications have been around for decades and have, until recently, struggled to match the user experience of SPAs. However, thanks to the evolution of browser standards and a crop of lightweight JavaScript frameworks, server-rendered apps have caught up and are once again a compelling option.
In this talk, we'll delve into the factors influencing the choice between SPAs and server-rendered apps. We'll discuss considerations such as:
- State Management: Your choices affect how you'll need to manage the state of today's data-rich apps.
- User Experience Requirements: Assess the application's level of interactivity and real-time updates and how well each pattern performs.
- Performance and Scalability: Understanding the impact of page load times, network latency, server resources, and client resources on the application's performance.
- Project Constraints: Consider time, budget, and infrastructure limitations that may influence the choice of architecture pattern.
- Development Team Expertise: Evaluating the team's familiarity with JavaScript frameworks and server-side rendering.
Through practical examples and case studies, we'll demonstrate how to evaluate these factors and select the most appropriate architecture pattern for a given project. Whether you're building a content-driven website, a real-time collaboration platform, or an enterprise application, this talk will provide valuable insights to help you choose between SPAs and server-rendered apps to deliver the best possible user and developer experience.
Key Points
- Understand state management in today's data-rich applications.
- Explain how the microservice pattern affects pattern choice.
- Practical guidelines and decision-making frameworks for choosing between SPAs, HTMX, and AlpineJS based on real-world scenarios.
- Case studies and examples illustrating the application of each architecture pattern in different types of web applications.
- Tips and best practices for optimizing performance, maintaining code quality, and ensuring scalability.
By the end of this talk, attendees can confidently choose when to use a SPA or server-rendered pattern based on their project's needs and constraints. They will identify the trade-offs between complexity, performance, and user experience, enabling them to deliver high-quality web applications efficiently and effectively.
Presented by
-
Chris May
Meet Chris, a Python technical coach, seasoned Python web developer, and advocate for creating exceptional user and team experiences. With over 25 years of industry experience, he brings a wealth of knowledge to the table and fosters effective team dynamics.
As a technical coach, Chris collaborates with teams to craft elegant and robust solutions, reduce bugs, and improve time to market. He simplifies intricate technical concepts, diagnoses and troubleshoots code issues, and provides actionable feedback, earning him a reputation as a trusted mentor and guide.
Chris’s dedication to building a thriving Python community led him to co-found PyRVA, the Python user group in Richmond, Virginia. Through this initiative, he actively fosters knowledge sharing, networking, and professional growth among Python developers.
In addition to coaching and community involvement, Chris shares his expertise through his blog and Python resources on his Everyday Superpowers website. These platforms serve as valuable references for developers seeking insights and practical advice.