How should I structure my code? What works best for object-oriented design? Is there an alternative to MVC? This talk will answer those questions and give an overview of common layouts and best practices to make projects testable, maintainable and easy to understand. We will also look at DDD and hexagonal / clean / onion architectures and go through a few different implementations of the same app to illustrate the pros and cons of each approach.
If you maintain a library, how can you innovate without breaking the projects that depend on it? Follow semantic versioning, add APIs conservatively, add parameters compatibly, use deprecation warnings and publish a deprecation policy, guide your users on how to upgrade, and make wise choices about when to break backwards compatibility. This talk describes API evolution in Python and C, with lessons for libraries in any language.
Hexagonal Architecture, Clean Architecture, Domain-Driven Design… You may have heard about them. Let's start from scratch in this session and go beyond the buzzwords. We'll go together though these ideas to understand how you can improve the maintainability of your projects', either greenfield or legacy.
Artificial Intelligence is far more than just machine learning. There are a variety of methods that can be used to automate decision making. In this introductory course for software developers, we will explore various methods. The goal is to give devs newer to the field a few "eureka moments" during a survey of AI methodologies. Experienced devs will gain a fresh perspective on the field of AI from a fellow developer, not a mathematician.
In this session, we will cover extreme techniques that will blow your mind about Web Performance, including new compression algorithms, new image formats, Client-Hints, HTTP/2 antipatterns, QUIC, preload, and Reactive Web Performance Techniques.
As developers we write code every day, but we frown at it a week later. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self-judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.
Have you ever heard someone say “Don’t deploy on Friday”? I used to say that too!
Join me as I'll tell you about my experience. Using examples from my work on multiple real world projects, I’ll discuss resilience and operability, deployment strategies, pipelines and continuous testing. Discover the details of trunk based development, feature toggles, pair programming and other best practices and gain the confidence to deploy any day of the week!
You may have heard Domain Driven Design is a tool to write readable and change-ready code. You may have heard it comes with a lot of talking, and modelling, and customers...
Come find out what DDD can do for you, tomorrow. We'll use value objects, entities and services to bring order to our mind and code. We'll see how naming things can guide us, but also trick us. And tomorrow you can tell your peers that, technically, you're doing DDD.
REST API modeling may be hard, using and supporting large collection of APIs is even harder. GraphQL is an answer for some of these problems. It’s a query language for APIs which provides complete description of your data and gives clients the power to ask for exactly what they need in a single request. In this talk you will learn about GraphQL concepts, differences between GraphQL and WSDL/SOAP/REST/etc. and how to add it to your existing stack.
Kubernetes is a very powerful container orchestration platform that is quickly gaining traction and gives you lots of benefits in deploying, running and scaling your microservice web application. But it has also a steep learning curve.
In this talk I will introduce you to Kubernetes, and show you, based on a practical example, how to continuously deploy a web application into it.
Engineering, DevOps, IT, Marketing, ...you name it, there is a constant battle between going fast and doing it right. How can we minimize the friction of collaborating across teams and departments? FSGD distills many core lean (and agile) principles into an easy-to-remember and easy-to-communicate thinking tool you can use to make better decisions about the work you do.
For the first time in the history of the web, CSS is graced with tools for laying out web pages without hacks. Flexbox and Grid provide methods for creating responsive websites with designs not previously possible. CSS Calc and CSS Custom Fields give us a first chance to use math and variables within CSS itself, without requiring compiling. Together, these four new CSS modules work together to revolutionize CSS in modern evergreen browsers.
Keeping your web application secure and free from vulnerabilities is hard work, even if you know the OWASP Top 10. In this talk I will show tools, best practices and patterns to help you with this, so that you can find security issues before an attacker does and even prevent them in the first place.
In our company we have a lot of data flowing from the user’s applications to the API, then this data is displayed in the web dashboard. How do we avoid accidentally breaking API contracts, while adding new features? We have started using JSON-schema convention and wrote a few tools around it to lock down our API protocols. Now we have full confidence in our elegant tests, and even major releases happen without any hiccups.
Containers are all the rage these days. But... what are they? What exactly is a container and how does it work? Just how does a container differ from the “old” silver bullet, virtual machines?
This session will go deep on how computers work at a low level and build our way up to what containers really are, how they work, and what makes them so powerful. Containers mean more than just Docker.
This simple technique that every programmer should know can simplify certain problems tremendously, allowing us to find an optimal solution to difficult problems quickly and easily using a process called Dynamic Programming. In this session, we will run through examples of using this technique to solve several problems, both "on paper" and in code, and apply that knowledge to build Artificial Intelligences that can make decisions on our behalf.
State of PHP talk
Static Analysis with Phan
Profiling with phpspy
Headless Chrome is an awesome tool in end-to-end testing and browser automation that I think everyone should have in their tool belt. In this talk I'll cover how to use headless Chrome and Puppeteer to build a basic suite of automated tests to make sure your sites are following generic best practices. We will dig into getting Headless Chrome up and running, programmatic control using Puppeteer, and how to start using Headless Chrome for testing.
Agile/DevOps emphasize the autonomy, responsibility and self-organization of teams. Effective leaders create environments that allow such teams to thrive.
But what makes a leader an effective leader? Attend this talk to learn more about various leadership theories, how they can be applied in practice, and my thoughts on leadership based on experience as a tech lead and scrum master, and from military service.
The Open Web Application Security Project (OWASP) curates a list of the top ten security risks for web applications and how to mitigate them. The ever changing world of web development created a challenge for the 2017 list, which needs to combine both existing approaches and modern trends in web development. We will have a look at each item in the list, see what can go wrong (with code!), and make sure that this won't happen in our web sites.
Voir les 156 présentations