Event Storming is an emerging group modeling technique using sticky notes and verbal communication that is not only extremely efficient, but also easy to learn, and fun to do. This workshop introduces you to Event Storming with a strong focus on process design. Rather than talking a lot of theory, we will quickly dive into a group exercise and start modeling a real-life business problem, which will lead to valuable insights and is likely to spark off a lot of interesting discussions. We will not stop there, however, but also turn the model into working PHP code using Domain-driven Design techniques and patterns, so bring your laptop with a working PHP environment. To conclude the day, we will demonstrate how to integrate the code with your favorite framework. This workshop might forever change the way you write code, so do not miss out on it.
PHP 7 is being used in production by a growing number of companies. With PHP 5.6 no longer actively supported by the PHP project, it is high time to plan your migration to PHP 7 (in case you are still running PHP 5). It is also time to learn about the new features introduced in PHP 7.1 and PHP 7.2 and how to leverage them effectively. This workshop will get you ready for PHP 7, in all aspects. To prepare you for the migration from PHP 5 to PHP 7, common pitfalls will be covered, and you will get to know pragmatic solutions. You will also take a look under the hood of PHP to better understand why PHP 7 can offer better performance and lower resource usage than PHP 5, and how this will affect the future of PHP. You will learn about the new language features introduced in PHP 7.0 and PHP 7.1 as well as what PHP 7.2 will bring. The day is rounded up with a Q+A session where no question will go unanswered.
Angular, Google’s popular application framework for modern web-based solutions, brings component orientation, static type checking, and a breath-taking performance. By leveraging the single page application architecture as well as modern web standards it makes the creation of ambitious and enterprise-scale applications very easy. This workshop shows two possibilities of Angular and introduces it with an example application.
Almost two years after the release of PHP 7.0 it is time to look ahead to PHP 7.2 (and say "Goodbye!" to PHP 5). The attendees of this session will learn how to prepare their code for this upcoming version in order to leverage its performance improvements as well as its new functionality offerings as soon as possible and with the least amount of risk.
Often the work with new project starts with the database and its schema (or lack of it). Next up, we reflect that very model in the code. Adding our favourite library dealing with data storage and stuffing into our framework of choice, we are able to quickly close tasks and finish entire projects. But is that really all that has to be done? What about tests? They are either scarce or totally absent – which is often a pain in the neck. What if such a rattled off project will become successful and greatly outgrows its development capabilities? Let's see what we can do about these issues by forgetting for a moment about the chosen database and library which abstract it away, be it Hibernate, Doctrine, Eloquent or any other technology you fancy.
Throughout the presentation we'll take a close look at a rapidly developed application and will try to fix initial shortcomings: we'll write some more code, take a page from Domain-driven Design and see what will come out of it. Maybe, just maybe, we'll get something more than a testable application that is ready to embrace changes the business team has yet to tell you about?
We all like to make jokes about it, but how many of us have actually taken the time to try and understand the CSS we're writing, or reasonably debugged an issue to the next lowest abstraction layer when we hit a wall? All too often we settle for the first Stack Overflow answer, hacks, or we just let the issue go.
In this talk we'll take a step back and stop throwing darts at the dart board. We’ll discuss common issues such as z-index, cascade, and positioning in depth by diving deep into the browser's internal rendering engine to see how our styles are actually parsed. Sure, you may still not have an eye for design, but you might just walk away a CSS guru!
Node comes with unique engineering requirements - robust node apps tend to handle processes, concurrency, signals, monitoring, and state in similar ways. Heroku hosts thousands of Node.js applications supported by the Languages team, demonstrating hundreds of different approaches that achieve various levels of success. They’ve explored the trends to see what really works.
This presentation explores what it takes to make a Node.js service start fast, stay up, and handle all situations with grace.
Since its release back in 2005, Symfony has been continuously evolving and improving. With every new version, the framework has pushed forward, helping us writing better code faster.
In this talk we will see the new features and improvements that Symfony 4 is going to introduce next November. We will learn the core ideas from this new version, understanding not only how to use it, but also what are the key assumptions and motivations behind.
Moreover, we will have a close look at the so-called "Symfony 4 secret weapon": Symfony Flex. This Composer plugin has been created with the idea of cutting configuration times to the minimum. We will understand how it works and learn how to use it properly to boost our productivity.
PHP is the most popular server-side language on the Web and the most favored language for Web attacks. A single security vulnerability in a widespread open-source PHP application can be used to compromise thousands of server installations. But how bad is the security state of open source applications and plugins today? This talk covers common and quirky security issues and mistakes detected lately. We introduce static analysis techniques for the automated detection of these complex issues and a summary of the most prevalent risks and pitfalls that should be avoided in your application.
Angular uses a relatively classical MVC approach with two-way data binding. This makes it easy to getting started but with more complex applications this approach can be a problem when it comes to traceability of data flows and it can make it harder to extend and maintain an application. An alternative is Redux which is the de facto standard in the React community. Redux is both a pattern and a library that uses principles of functional programming to manage the state of an application. The restriction to one-way data flow, the explicit modelling of user actions and the usage of immutable data leads to better understandable processes in the app and also a better separation of concerns.Redux is not limited to React but instead is neutral to technology and can be used with Angular too. This talk will cover the idea and the principles of Redux and will show how to use Redux with Angular.
Wie lässt sich heute effizient Software entwickeln, die mit den sich schnell ändernden Marktbedingungen mithalten kann und trotzdem unanfällig gegenüber Fremdsystemen ist? Aus unserer Erfahrung in Zusammenarbeit mit Oxid, Shopware, Spryker sowie mehreren Agenturen stellen wir dar, welche Softwaremuster die meisten Probleme verursachen, und wie sich stabile und gut getestete Software effektiv entwickeln lässt. Angedeutet wird zudem ein Weg, wie sich existierende Software dahin entwickeln lässt.
It is easy to write code that computers can understand. Writing code that humans can understand is far more challenging. In this presentation, we will look into how we can use PHP to create a beautiful and maintainable domain-specific language for your business. After analyzing various approaches to understand why and where they fail, learn how to express business rules as executable PHP code, which will, as an added bonus, make test automation for your business rules really easy.
A router is the linchpin of every modern single page application. Angular comes with a solution for this. It is offering component orientation as well as some advanced concepts such as child routes and auxiliary routes, guards, lazy loading and preloading as well as sticky routes. Using a show case, you will discover in this session what lies behind it all and how you can benefit from the new component router in your new projects.
Do you know code smells? Do you think they are a bad thing? Actually they are not! Code smells help you to recognize problems in your code. And the best thing about them is, that they help you refactor your code the right way. In this talk we put our noses deep into our code and have a look at how this smells can help you improve your legacy code or even the code you write today.
Überall hören Sie von den neuen Möglichkeiten, die Ihnen die modernen PHP-Frameworks und -Tools bieten können, doch Sie müssen immer noch an einer trägen und veralteten Legacy-Anwendung arbeiten? Ein kompletter Relaunch kommt aus Kostengründen und aufgrund stetig zu implementierender Features nicht in Frage? Mit dem Microframework Expressive können Sie beides vereinen. Sie können ein modernes und leichtgewichtiges Framework einsetzen und parallel dazu Ihre Legacy-Anwendung betreiben. Damit schaffen Sie die Grundlage, um Ihre Anwendung schrittweise zu modernisieren und damit wettbewerbsfähig zu bleiben.
The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run. To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before. After seeing this talk, you'll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code. (*actual magic or time-warp not guaranteed)
Web applications and specifically Single Page Applications leverage the power of our computers and give a fast, fluent experience to users who have a strong wifi connection. But a huge proportion of web activity is done on mobile devices, which require different capabilities, such as minimizing data usage and power consumption. Native mobile applications also introduce additional features to engage the users, such as notifications. But they lack some of the features web applications have. Today’s technology and rapid browsers’ advancement allow us to enjoy the best of both worlds. We can write web applications with a native mobile app look and feel. We can run these applications on desktop browsers and enjoy the features introduced by native mobile apps. In this talk Shmuela will present the wonderful world of possibilities with Progressive Web Applications, and how Angular helps you to enter this world.
A lot of us have felt the pain when using the Flux pattern with React. There is a better way, Redux and it is not that hard to get started with. I will explain what the problems with Flux are and how Redux works solves this.
During my presentation I will describe setup that my company (Codesushi) developed. This setup mimics Ghost Inspector service. The big plus of Ghost Inspector is ability to record a video of failed tests. We love that feature so we developed a way to achieve that in our own architecture. Key points of the presentation:
- explanation of this concept
- introduction to Docker
- our way of dockerizing PHP App
- explanation of the idea: how we can dockerize browser and have ability to record sessions
Smarty, Twig or even XSLT – templating engines are a vital component of the web stack when it comes to transforming data into HTML. And of course there are many different engines to choose from. Most of them though have two very annoying things in common: They require the full application stack to develop the design and they combine markup and display and sometimes even application logic. This talk will re-introduce you to how simple templating could be and why truly separating application logic, view logic and design can make everybody's life a lot easier.
Shoprelaunch, Fernsehwerbung, Newsletterkampagne und immer wieder die eine Frage: Packt mein Shop das? Denn nichts ist ärgerlicher, als wenn die Kunden frustriert den Kauf abbrechen. Dieser Talk zeigt, wie man realistisch Last simulieren und testen kann, welche Vorüberlegungen notwendig sind und welche Schritte folgen sollten, wenn das Ergebnis eher ernüchternd ist.
There is not a sole adjusting screw for performance tuning in single page applications but even several influencing factors that need be considered. This session shows how to deal with them. You learn how to leverage Ahead of Time Compilation (AOT), Tree Shaking and Lazy Loading to improve the startup performance of your application dramatically. For this, we are looking at the Angular Build Optimizer as well as at Google’s Closure compiler that allows aggressive optimizations. In addition to that you see how to use the optimization strategy OnPush to speed up data binding performance in your solutions. Furthermore, Service Worker for caching and instant loading is covered as well as Server Side Rendering to improve the perceived loading time.
With the dawn of Angular v2 and it’s platform agnostic architecture we find ourselves in a world of new possibilities. Just top it up with complementing Open Source frameworks like NativeScript (to build Native iOS and Android apps) and Electron (to build desktop apps) and we can begin to tackle the platform fragmentation. Using Angular as the common ground, this beautiful combo allows us to share the code between the Web, Mobile (both iOS and Android) and Desktop apps. Suddenly the division between the Web, Mobile and Desktop developers disappears and everyone is simply a Developer like a one happy family. In this talk we will have a look what is possible from the code sharing point of perspective, how to set up your project and how to build your components to ensure maximum code sharing, but also we will look at what you shouldn’t be trying to share and how to handle the differences between various platforms.
In the last few years we'll observed how PHP has advanced at a very fast pace improving almost all its facets (performance, consistency, security, tooling, community common practices...), but something that we haven't seen yet is PHP as a serious option to solve problems not related to the web.
The scientific community is still small inside the PHP world, but it's growing. In this talk we'll discover where we are and where are we going, which pieces are missing and what we already have.
We'll do a tour over some recent projects that are leading these efforts: machine learning, time series forecasting and other data science related problems can be solved using PHP without the need of complex technology stacks.
Queues are a powerful addition to our applications, enabling looser coupling between our components and reducing the load on key elements of the system such as the database. This session covers how queues in general, and excellent open source tool RabbitMQ in particular, can be used to improve the scalability and robustness of applications. We'll look at designing queue structures and the options around queues, messages, and durability. Creating reliable worker scripts can be tricky but there will be advice on doing so even in systems which require complex or multi-step processing of tasks. We'll also talk about data hygiene; when to include data with a message, when a worker should fetch data itself, and how to manage the flow of information back to the component that created the message in the first place. With stories and practical examples, this session is recommended for developers and technical architects everywhere.
Security is an enormous topic, and it’s really, really complicated. If you’re not careful, you’ll find yourself vulnerable to any number of attacks which you definitely don’t want to be on the receiving end of. This talk will give you just a taster of the vast array of things there is to know about security in modern web applications, such as writing secure PHP web applications and securing a Linux server. Whether you are writing anything beyond a basic brochure website, or even developing a complicated business web application, this talk will give you insights to some of the things you need to be aware of.
With the rise of modern web-frameworks, single-page applications have conquered the web. If done right, they are not only faster and smoother than conventional websites, but also create a richer user-experience. These modern applications don’t just enable new interaction patterns, but also new capabilities, such as offline and real-time data interactions.
André will talk about what it takes to build top-ranking web applications, while Dennis will demonstrate some software architecture patterns using Vue.js to dramatically increase performance.
Node.js and microservices go hand in hand. This comes mainly from the design of Node.js. It is a specialised small platform with an enormous package environment. The NPM ecosystem provides a lot of packages you can use to build your microservice. The two most popular frameworks for this job are Express and Seneca. In this talk I will show you how you can communicate synchronously and asynchronously with your microservices and how easy it is to put your Node.js application into a docker container.
RxJS is the new better way to do async programming. It makes up for the short coming of Promises while introducing a very elegant functional approach. You are also able to mix and match different async concepts such events, ajax, callbacks and more. I will cover the Fundamentals of RxJS, what it consists of and how to think in RxJS.
Congratulations! You finally managed to convince the business that there really is no way to add this important new feature to the old legacy code base without causing major disruptions. But where to go from here? Completely rewriting the old monolithic application that does a gazillion things from scratch may seem tempting but is a gigantic effort with an unforeseeable outcome.
Discover a way out of legacy hell by learning about architectural patterns as well as concrete technical solutions that enable you to gradually move functionality into new software components without the impediments of a full rewrite.
Different jobs require different tools. There are times where PHP isn't the right tool for the job. When those times arise, Go can be a great alternative tool to use. Go is a compiled programming language created by Google and used in emerging tools like Docker and Kubernetes. This session will take you through the basics of Go, compare and contrast it with PHP, and give you some pointers as to what problem areas can you best use Go to compliment your PHP applications.
At the end of my talk, I will show you how a developer can benefit from using this functional approach in React.
The transparent modeling of business processes in any structure requires a solid level of abstraction as well as a deep understanding of the business process itself. One must bridge the gap between business requirements and actual lines of code, without leaving a massive footprint. Business changes, processes adapt, so must the underlying structure. Can they? This talk will give you ideas on how to tackle the art of state machinery. It will give an overview of the possible modeling concepts, their pros and cons, and common pitfalls when running them in production.
One of the most difficult challenges in a developers life is finding the "right" abstraction, or at least the best one given the current circumstances.
The core problem is that abstraction is a bet on the future development of the software and we know that future is volatile. I will discuss different environments of software development and we find a base for you to decide when and what to abstract.
Over the course of some years, we established a workflow for developing PHP APIs or web applications which we'd like to share with you. We're a German company, and the business model is very focused on data security and self-hosted solution with maximum control over where the data resides and who has access to it. We try to stay away from Travis CI and the likes without cut back on features.
Using GitLab, PhpStorm, Docker, Codeception, PSR-7 middleware, Zend Framework, Doctrine, custom migration routines, messaging and more we created and refined a self-hosted setup for developing our applications.
Together, we can set up a new demo project and discover the steps necessary to travel from idea to deployment. This is only based on our best practices, so hopefully it is relatable to your daily business, tasks and perspectives. Maybe it can help you refine your own workflow or move away from cloud services. We'd also love to get feedback and discuss further optimisations with you.
The Reactive Forms module is powerful. During this session we will live code a complex form from scratch, going through all the main features: validation, reactive state tracking, dynamic
form creation, and much more…
A common language, understood by technical and non-technical stakeholders alike, is essential for good communication in a software project. Combining ideas from Domain-driven Design and Test-driven Development, this ubiquitous language can be represented in both production code and test code.
Attendees of this session will learn how to create tests that are easy to write, fast to execute, and deliver highly reliable results. They will gain expertise in the confident and effective implementation of automated tests for their software and learn how to implement custom assertions for PHPUnit to represent the common language of their project in test code.
Lernen ist das Erfolgsrezept, um in einer sich stetig verändernden Umgebung dauerhaft hohe Leistung zu bringen. In agilen Prozessen sollte Lernen (auch) in Retrospektiven stattfinden. Doch zu häufig ist das nicht der Fall: Von Jammerrunden bis zur Kuschelstunde ist uns alles schon einmal begegnet. Solche Retros werden nachvollziehbar als langweilig oder überflüssig empfunden. Dabei sind Feedback und Lernen essenzielle Bestandteile agilen Vorgehens.
Tobias Ranft zeigt auf, wie Lernen gelingen kann, welche Bausteine eine gute Retrospektive braucht und mit welchem Rezept eure Retros gelingen können. Damit können Teams, Abteilungen und Unternehmen ihr Versprechen guter Zusammenarbeit erfolgreich einlösen.
The concept of microservices is hot and it draws many developers from a diverse background. Unfortunately, we see a lot of ideas from the past rebranded as microservices; whereas the thinking behind microservices imply and promise a bigger change. This talk will go over the details of what actually makes a microservices architecture and how other distributed systems — that rely on queues and other mechanisms to function — fail to fulfill the promise. A modern microservices implementation should be:
* Zero-configuration: any microservices system will likely have hundreds of services. A manual configuration of IP addresses, ports and API capabilities is infeasible.
* Highly-redundant: service failures are common in this scenario. So it should be very cheap to have copies of such services at disposal with proper fail-over mechanisms.
* Fault-tolerant: the system should tolerate and gracefully handle miscommunication, errors in message processing, timeouts and more.
* Self-healing: it’s normal for outages and failures to occur. The implementation should automatically recover any lost service and functionality.
* Auto-discovery: the services should automatically identify new services that are introduced to the system to start communication without manual intervention or downtime.
Finally, this talk will present how such a system can be realised using Node.js and Docker.
Digitale Sprachassistenten sind in aller Munde. Alexa mischt mit dem Amazon Echo ganz vorne mit. Doch die meisten Entwickler verbinden die Programmierung von Alexa Skills nicht direkt mit PHP. Im Frühsommer 2017 basierte der am häufigsten eingesetzte deutschsprachige Skill jedoch auf einer PHP-Anwendung. In dieser Session erfahren Sie vom Entwickler dieses Skills, wie Sie Ihren Alexa Skill konfigurieren können und wie Sie für das Backend auf Ihre PHP-Kenntnisse zurückgreifen können. Zudem lernen Sie, welche Fallstricke es bei der Entwicklung zu beachten gibt, und wie Sie diese meistern.
Dieser Vortrag vergleicht die aktuelle Version von Angular mit React. In welchem Bereich hat welches dieser beiden Frameworks die Nase vorn? Für welche Aufgabe eignet sich Angular besser, für welche verwenden Sie besser React?
In recent times React has attracted quite a lot of attention despite its poor performance on mobile. The cure for this problem did not come from a big corporation, but instead originated within the open-source community. The personal project Inferno flourished into a whole community, which created a serious competitor to React. This library promises an improved performance, nearly fully-compatible API, and a more focused solution than React. Why do we want to migrate away from React? What obstacles have to be faced in the migration? Is the migration worth the efforts? In this talk we will hear the story of a large cross-platform mobile application that was migrated from React to Inferno.
There's no denying that engineers are in high demand. Bootcamps are popping up everywhere, and while they're churning out highly motivated juniors, often it's seniors that companies are really after. So how do we bridge this gap together? On the surface it often looks like we've 'naturally' developed into our current roles. And, as we progress it's incredibly easy to forget what it was like being new. Rest assured however, for most the journey has been filled with a whole lot of grit, determination, and discipline.
One year ago, we were still happy to have scrum tech teams shielded from the rest of the organisation. Product managers were our gatekeepers for outside stakeholders. Our developers were even based in another office. Twelve months later we have changed the setup completely. Strongly inspired by the Spotify model, we transformed the structure of our product company into a network of fully cross-functional and self-organized teams. Discover why we took such a drastic step, what worked and what did not work – unfiltered and raw.
For the last few years, PHP community has been buzzing about ES/CQRS, pretty much there was a talk on every conference. Now it's time to see how it worked out for me in practice. ES/CQRS is a different approach to building applications from what we all have been thought to do for years. I'm not going to introduce Event Sourcing and Command Query Responsibility Segregation (ES & CQRS) but speak about my experiences in developing & running it on production. I have implemented it on few projects: in some I run it as a part of bigger application, while in some it's just the core and one where everything is event driven. The shift in architecture and mindset is pretty big: while code structures and logic became simple, amount of code and workflows get complicated to the point of "where did I loose this input?". Not to go into too many details, I've had to learn lot of DDD practices that I feel have made me a better developer and use some of the knowledge gathered in this projects into "everyday" code of projects that I work on.
Bring your Angular applications to any platform - no matter whether you think about web, mobile apps or full-blown desktop applications. See how to achieve the goal with just a single codebase by using famous frameworks like Apache Cordova and GitHub Electron. Join Thorsten Hans on the journey through the cross-platform land.
If architecture is the stuff that's hard to change, how do we go about changing it? This talk discusses architectural questions like how to move from a typical MVC architecture to a more Domain-driven Architecture. We also talk about how to do architecture without over-designing and how to cut our architecture to avoid expensive change requests later on in the product life-cycle.
Have you tried to write a chatbot for multiple messaging platforms like Facebook or Slack? It is quite cumbersome as each messaging platform has its own API. Let us find out how to simplify this task and create an intelligent chatbot using PHP and BotMan, that is easy to use and powerful to extend with various tools such as natural language processing.
In this session you will learn what decorators are, why they are used, and how take advantage of them in practice. We will explore the use of decorators in Angular, and how to create our own decorators.
Backups are hard. Especially for heavily distributed systems. As we split our apps more and more into microservices, creating backups is no longer a single task nor in a single place. Instead, it involves data from different sources in different locations. Besides the backup process itself, I will talk about the challenge of connecting the dev and the ops and an easy way to create your backups. All to make sure, that in case of a disaster scenario your data is right there to be restored.
The times when a browser simply had to parse and show some markup are long gone. These days they are full of interesting APIs exposing various information and behaviour to web developers. This talk will walk you through a few of these APIs (speech, speech recognition, battery, location ...), some of which you might know, some maybe not. I will show a quick example of what some of these APIs can do, and how to use them.
There is momentum to moving container based systems instead of the traditional single machine (or virtual machine) model. Where does that leave your mission critical LAMP stack application? Can it be containerized? Without tremendous amounts of pain? Of course it can.
Containerizing LAMP stack apps is pretty straight forward, once you know what you're doing. The goal of this session is to get you there. This session will walk you through setting up a LAMP app on an existing Kubernetes cluster using Replica Sets, Stateful Sets, Persistent Volume Mounts, and other Kubernetes tools you need to run the LAMP stack in a container based system. The best part is that once you do for for LAMP the same principles can be used to start tackling other monolithic apps in PHP.
The browser support for web components has been increasing consistently over the past few years and besides other component libraries, including Polymer or X-Tag, the Ember community presents its own new library – Glimmer – enabling you to create easy-to-use web components today. In this talk we will have a look at the current state of web components in the modern web, including browser support, and polyfilling, and we'll see how Glimmer can help us to create reusable components for our web apps today. Alongside a demo we will see how we can build and ship our Glimmer based web components using the battle-tested Ember-CLI and finally, we will have a look at promising API developments for the future.
Back when starting our consulting company, we deemed invoicing a solved problem: Simply write them using office software, print to PDF, done. That solution did not make us happy, though.
There was data redundancy in the various spreadsheets that we used to manage our company, plus concurrency and scalability issues due to binary file formats that you cannot easily diff. So we decided to build our own solution. After all, writing and managing invoices the way we need cannot be that hard - or so we thought.
This is the story of how we went through iterations and rewrites, and what we have learned along he way. Well, we certainly learned to better understand some of the advice we give to our clients.
With the increased use of Microservices and Docker in production one question is how to monitor with rising complexity in services? As often the case, we don't need to look further than Google who solved this problem with a new kind of tracing system – Dapper – which they invented several years ago. In this talk we will look at how distributed tracing works, what you can use it for and look at the open source implementations Open Zipkin and OpenTracing and how to make this work in PHP.
The web is written language – and it’s also a mess, because most sites don’t present text properly. Typography to the rescue!
In this talk you will learn how to boost your next web project with good typography. Several examples and live demos will give you a basic understanding of type and how to apply it with CSS in responsive web design. It’s a talk for developers, designers and everyone in between. Together we can save the web’s typography – one paragraph at a time.
More and more applications are being realized using web technologies -- from Electron on your desktop to Progressive Web Apps (PWA) on your mobile or as a web service across all your devices. But go back ten years, and it was a rocky road. So called browser wars and competition to release hot new browser features disrupted the evolution. Open Standards and collaboration of browser vendors were helping to spread web technologies.
In my session I'll explain why open standards matter. We'll take a look at the history. You'll learn which requirements a modern browser engine should fulfill. And I’ll share some ideas for how you could help to develop the open web further.
In a business context REST is completely unsuitable as a client-server interface. It is too fine-grained, under-specified and causes to many http requests. In addition, the caching mechanism cannot take advantage of its strengths due to the use of https and the specific requirement in context of client-server-enterprise systems. The better alternative is Facebooks GraphQL. GraphQL is declarative and provides always exactly the expected data. The interface is based on JSON and so it’s quick and easy to understand for the developer.
Lot of developers and teams are interested in doing testing, but don’t know how. Some of the most often seen excuses are:
1) We don’t have time for it.
2) Who is going to write those tests?
3) Who is going to maintain those tests?
4) Who is going to run all of those tests after each change?
This talk will cover the last excuse and introduce you to the world of continuous integration and how tools like Jenkins, Circle and Travis can help you build better software faster. Yes, faster and better. While there are other options as well this talk will cover: Jenkins, CircleCI and Travis CI, three very popular solutions. The main point of the talk will be what they can do, how they do it and what are the main or subtle differences between them.
There are subtle and not so subtle differences between them, come and learn more about them so you can bring an informed decision to your team.
Reactive Programming will be the next hot topic of this decade, understanding now how this paradigm works and when to use it will grant you great benefits for your asynchronous applications. In this talk I’ll introduce you to what Reactive Programming is guiding you trough this new dimension simplifying the learning curve and providing a real example to analyse during the talk and also after it. I’ll show how Model View Intent architecture works in order to structure your front end reactive applications with Cycle.js.
More and more processes in companies are automated to ensure a high-quality and reliable procedure in daily work processes and absorb human error. But when it comes to a topic where human absence can cause fatal consequences or where processes should work fluently, many companies are still running with human error sources - I’m talking about security automation. This session contains an overview about effective solutions to automate security relevant processes within DevSecOps. I want to present the results of a study in which attendees gave feedback on how they handle “Continuous Security in Open Source based Projects”. I will analyze the importance and prioritization of those security processes from the perspective of open source companies. Furthermore you will learn details of several security workflows in the open source business.
The term Progressive Web App refers to a group of technologies, such as service workers, and push notifications, that can bring native-like performance and user experience to web apps. Progressive Web Apps are interesting because in some ways they represent a coming of age for the Web. The Angular Mobile Toolkit makes it easy to build snappy Web apps that load instantly on any device, even without an internet connection. Take advantage of the searchability, shareability, and no-install-required-ability of the Web without compromise. During this 100 per cent hands-on session we'll have a look on recent tools and guides from Angular team to help us build Progressive Web Apps. We'll have a look at Angular CLI and plugins/libraries for App Shell, Service Worker, and Application Manifest supporting us in fast and easy creation of installable, offline-capable, mobile-network-friendly apps. Course overview: Introduction to PWA and Workshop Setup, Introduction to Angular Mobile Toolkit, Create an installable mobile web app with Angular CLI, Make the App Installable with Web App Manifest, App Shell Architecture, Add an app shell component to the App, Deep dive into Service Workers, Add basic offline capabilities with Service Worker, Adding Splash Screen, Sending Push Notifications, Questions and answer.
In a world where the front-end is evolving so fast, it is specially important to be able to count on a solid technology for your back-end that holds the foundations of your project. Symfony is a mature framework that had already proven its capacity of enabling rapid and good quality development, both for small prototypes and large and complex systems. Symfony 4 moves further in this direction, cutting configuration times to the minimum, and becoming more flexible and powerful than its previous versions.
We will see how to turn Symfony 4 into your best ally for every project. Starting with a fresh installation, we'll go through the process of building a RESTful API with Symfony, as well as an admin panel - two of the most common requirements in almost every project. Along the way, we will review the best practices and learn how to organize the architecture of your project, as well as many useful tips and tricks learned along the years working with this framework.
Nacho Martín is a passionate developer that codes at Limenius, development agency that he co-founded. He is also an active open source contributor, and member of the organizer team of the deSymfony, the Spanish Symfony conference.