This is a list of talks given by Qafoo experts at international conferences and other events.
Testing Oxid ShopsGet a Qafoo expert to support your team on-site with getting into BDD with Behat: contact us right now.
Frustrated by the limits of Unit-Testing in complex and fast changing environments? There are alternative ways of software verification, which work better in modern agile environments for complex applications like online shops. This talk will introduce you to several concepts, like integration tests, BDD and frontend testing, which can improve customer communication and stability of your product.
Behavior Driven Development with BehatUnit tests give you a good base to ensure your classes are working technically correct. Integration tests show that they play well with each other. But who takes care that all your code actually does what your business owner wants it to do? This session gives you an introduction into Behavior Driven Development on basis of Behat to help you achieve automated testing of specifications.
Designing Beautiful APIsDesigning interfaces is an every days job for every programmer. But it's not only a job, it's an art. Be it a brand new application OO design, a shiny new module, in infrastructure library or just a single new class: All of them need a flexible, usable and extensible API. This talk gives a round up on essential rules that you need to obey in order to reach this goal.
Continuous Performance TestingDuring the last years the topic of software quality assurance got more attention in the PHP scene. One important part of this are software metrics, which provide you with the necessary tools to overview and measure a project to detect possible failures early. This session will explain you metrics, so that you can use them in your daily work.
Building Testable PHP ApplicationsAutomated tests give you the secure basis to constantly evolve, improve and refactor your PHP app. But, what tests are suitable for which parts of your app? How to write code to be easily testable? And how to integrate such tests into your build process? This talk answers these questions in an overview of state of the art testing of PHP apps.
Understand and use software metricsDuring the last years the topic of software quality assurance got more attention in the PHP scene. One important part of this are software metrics, which provide you with the necessary tools to overview and measure a project to detect possible failures early. This session will explain you metrics, so that you can use them in your daily work.
Designing Beautiful APIsDesigning interfaces is an every days job for every programmer. But it's not only a job, it's an art. Be it a brand new application OO design, a shiny new module, in infrastructure library or just a single new class: All of them need a flexible, usable and extensible API. This talk gives a round up on essential rules that you need to obey to.
Testable CodeWriting testable code is a challenge that touches various aspects of software design and development. In this workshop, you will gain detailed insights on theoretical and practical aspects of writing testable code. See what makes code testable, how to make code testable and how to identify code that should be made testable. You can bring your own code to this session, to get it analyzed on stage, if you want.
Make Your Project SOLID!The 5 SOLID principles incarnate the essence of good object oriented design and programming. Sadly, only few people know about them and even fewer obey to them in their daily work. This session will not only explain the principles without lots of theory, but also show you how to realize them in your everyday work, using practical examples from real world projects.
Black Magic with Regular ExpressionsRegular Expressions in PHP are an amazing tool, which can be used to validate input or extract information. Furthermore they are used inside of parsers to provide lexing capabilities.
As the second part of our RegExp webinars this session will detail all the fun stuff possible with PCRE: Named Subpattern, Greediness, Assertions, Unicode, Defines and more.
If you have some introductory knowledge about Regular Expressions, but are keen to learn what else is possible, join us in this Webinar to learn more sophisticated usages.
Make Your Project SOLIDThe 5 SOLID principles incarnate the essence of good object oriented design and programming. Sadly, only few people know about them and even fewer obey to them in their daily work. This session will not only explain the principles without lots of theory, but also show you how to realize them in your everyday work, using practical examples from real world projects.
Dependency Management with JavaScriptJavaScript Projects are getting more and more complex every day. JavaScript has evolved from a language to create simple augementations to static content, to a language which is utilized to create whole application eco-systems. In order to keep up with this trend code needs to be structured and dependencies need to be managed. This sessions helps you to understand how to accomplish this task.
Die perfekte Build PipelineWer kennt nicht das Problem? Das Projekt verwendet diverse Tools für Entwicklung, QA, Deployment. Natürlich müssen sie auch auf allen Systemen vorhanden sein, lokal, CI-Server usw. Gleichzeitig werden managementkompatible Auswertungen benötigt, die die Aufwände rechtfertigen. In dieser Session zeigen wir, wie man eine solche Build-Pipeline für PHP- und JS-Projekte mit geringem Aufwand realisiert.
jQuery-Mobile vs. Sencha TouchThe mobile web -- getting more important every day -- provides developers with new challenges. To ease the pain of developing mobile JavaScript applications different frameworks evolved. Sencha Touch and jQuery-Mobile are two of those. But, how do they differ? Which one is the best for your task ahead? This session gives an introduction into both frameworks and spots the key differences. Let the battle begin!
Closure Design PatternsJavaScript is a very powerful language. Eventhough it supports object-oriented design and development paradigms utilizing its prototypial concepts, it has further astonishing capabilities in other areas of expertise. One of those are closures and all of the different possibilities provided due to this language feature. This sessions does not only provide you with a short introduction to closures themselves, but presents you with a certain amount of design patterns which just perfectly fit this nifty language feature.
Designing Beautiful APIsDesigning interfaces is an every days job for every programmer. But it's not only a job, it's an art. Be it a brand new application OO design, a shiny new module, an infrastructure library or just a single new class: All of them need a flexible, usable and extensible API. This talk gives a round up on essential rules that you need to obey in order to reach this goal.
Domain-Specific LanguagesBe it just an advanced configuration format or a more complex language to adapt your application to changing needs rapidly: Domain-Specific Languages (DSLs) occur more often than you think and can even more often be of help. This session gives you an introduction into DSLs, where and how to use them to ease development, react rapidly to changes and improve communication.
Immer am Optimum, Continuous PerformanceWie überprüfen Sie, ob Ihre Webapplikation die gewünschten Leistungsanforderungen selbst bei komplexen Nutzerinteraktionen erfüllt? Es gibt eine Welt jenseits Apache Bench und Siege: JMeter kann Nutzerinteraktionen simulieren, komplexe Cluster-Setups profilen und einfach in ein bestehendes Continuous Integration Setup integriert werden. Wir zeigen, wie JMeter verwendet werden kann um die Performance einer Anwendung kontinuierlich zu überwachen.
Domain Specific LanguagesDomain Specific Languages (DSLs) can enhance many projects, as just a powerful configuration format, a way to conveniently customize your app for different use cases or to ease communication with non-developers in your team. But, what's the buzz all about? When do you want or need a DSL? How to design one and realize it? This talk gives you an introduction into DSLs on basis of hands-on examples in PHP.
Understanding Regular ExpressionsRegular expressions seem to be some kind of dark magic for many developers. Although easy to understand, they consist of strange characters like brackets, dots, asterisks and questions marks. However, as soon as you have understood what is going on behind the curtain, you do not want to miss regular expressions in many areas.
This session does not only allow you to lift the veil and read as well as write the seemingly magic regular expressions, but also demonstrates how and where you can employ them by working with examples in step with actual practice.
Continuous performance testingWie überprüfen Sie, dass eine Applikation die Leistungsanforderungen auch bei komplexen Nutzerinteraktionen erfüllt? Es gibt eine Welt jenseits von Bench und Siege: JMeter kann Nutzerinteraktionen simulieren, komplexe Cluster-Setups messen und lässt sich in jedes Continuous Integration Setup integrieren. Wir zeigen, wie JMeter verwendet werden kann um Performance kontinuierlich zu überwachen.
Getting Started with Unit TestingUnit testing has established as the primary way for automated testing in the PHP world. This hands-on session gives you an introduction to unit testing with PHPUnit, based on a practical example. It shows you how to approach unit testing in general, how to test success and failure cases and some more advanced techniques available in PHPUnit.
Testen State of the ArtAutomatisiertes Testen ist zum Standard in der PHP-Welt avanciert. Aber ist Ihre Test-Suite immer noch State of the Art? Nutzen Sie die neuesten Features, um sich das Testleben einfacher zu machen? Sind Ihre Tests verlässlich? Lernen Sie, was en vogue ist in der PHP-Testwelt im Jahr 2012.
Distributed Couch Apps - Embracing eventual consistencyCouchDB is a prominent representative of the NoSQL movement. Using its integrated web server and eventual consistent replication you can not only distribute data, but also full application code. This even works for clients which are not always connected to the internet, like e.g. mobile devices. This session gives you an insight Couch apps, their beauty and pitfalls.
Writing Testable CodeAutomated testing has become a standard in PHP projects, but writing code in a way that it is easily testable is a challenge. In this session you will gain insight into the secret of writing testable code and you'll learn how this relates essentially to good object orientation.
Modular Application ArchitectureModularity is one of the most desired non-functional aspects in software development: Every product wants to be extensible by plug-ins! But beside high quality code, you need extension points so you can easily plug in additional custom modules. This talk will show and compare theory and real life approaches from the PHP world in this direction.
Learn to use and develop with jQuery-UIGet to know jQuery-UI in this session! Get an overview of the features and widgets which are at your disposal without much effort. Learn furthermore how to create your own widgets conveniently with the jQuery-UI framework which obeys your every word.
Understanding Regular ExpressionsRegular expressions seem to be some kind of dark magic for many developers. Although easy to understand, they consist of strange characters like brackets, dots, asterisks and questions marks. However, as soon as you have understood what is going on behind the curtain, you do not want to miss regular expressions in many areas.
Make Your Project SOLIDThe 5 SOLID principles incarnate the essence of good object oriented design and programming. Sadly, only few people know about them and even fewer obey to them in their daily work. In this session we will not only explain the principles without lots of theory, but also show you how to realize them in your everyday work, using practical examples from real world projects.
Doing proper object oriented design and programming of PHP based applications is by far not as easy as writing your first guestbook. Instead of preaching theoretical concepts, this session gives you 10 golden rules of thumb for improving your development. On basis of practical examples, important do's and dont's will be shown.
Advanced OO PatternsYou already know Singleton, Signal/Observer, Factory and friends. But, which object oriented techniques are en vogue in the PHP world and how can you seize their power? This talk gives you an overview on Dependency Injection, Data Mapper and other OO patterns the PHP world talks about right know, using practical code examples.
Apache Zeta ComponentsThe high quality collection of PHP 5 components, formerly known as eZ Components, found a new home in the Apache Software Foundation. This interactive session will give you an overview on the state of the project and show you many of the cool components. See how to easily send and receive mail, how to integrate WebDAV in your app or how to render nice charts. You as the audience decide on the components to be shown.
Software-Metriken: Purismus vs. PragmatismusStatische Codeanalyse und Softwaremetriken liefern eine Fülle von Daten die eine Abschätzung der Codequalität erlauben. Derlei Abschätzungen sind aber nicht immer einfach und die Interpretation von Metriken stark projekt-abhängig. Diese Session stellt die wichtigsten Metriken vor und diskutiert deren Interpretation anhand praktischer Beispiele. Diskutieren Sie mit und lernen Sie mit Hilfe statischer Codeanalyse die Qualität Ihres Quellcodes effektiv abzuschätzen.
Make your project SOLID!The 5 SOLID principles incarnate the essence of good object oriented design and programming. Sadly, only few people know about them and even fewer obey to them in their daily work. In this session we will not only explain the principles without lots of theory, but also show you how to realize them in your everyday work, using practical examples from real world projects. Download
Vom lokalen Build zum DeploymentBuildautomatisierung und Continuous Deployment gewinnen in den letzten Jahren danke der agilen Bewegung immer mehr an Bedeutung. In dieser Session wird gezeigt, wie mit Hilfe von Apache Ant sukzessive alle Arbeitsschritte automatisiert werden können, die heutzutage eine Webapplikation von der Entwicklung bis zum abschließenden Deployment auf einen oder mehrere Server durchläuft. Download
Advanced OO patternsYou already know Singleton, Signal/Observer, Factory and friends. But, which object oriented techniques are en vogue in the PHP world and how can you seize their power? This talk gives you an overview on Dependency Injection, Data Mapper and other OO patterns the PHP world talks about right know, using practical code examples. Download
HTTP is your architectureLike it or hate it, in the web environment you are always bound to HTTP. While many people see HTTP as a big limitation, you should turn the tables and see it as your best friend! This interactive and open session gives you an insight into the architectural principles of HTTP which are important to know and seize for normal web sites, as they are for RESTful web services. Download
A generic PHP Application installerEvery user deployable PHP application needs one: An Installer. For now there are no proper generic installers for PHP applications out there, but everyone implement their own. In the Arbit project we developed a generic installer which should be usable by everyone. The presentation will show the how the installer works, and how to use it for your application. Download
Apache Zeta ComponentsThe high quality collection of PHP 5 components, formerly known as eZ Components, found a new home in the Apache Software Foundation. This interactive session will give you an overview on the state of the project and show you many of the cool components. See how to easily send and receive mail, how to integrate WebDAV in your app or how to render nice charts. You as the audience decide on the components to be shown. Download * Rate
HTTP is your architectureLike it or hate it, in the web environment you are always bound to HTTP. While many people see HTTP as a big limitation, you should turn the tables and see it as your best friend! This interactive and open session gives you an insight into the architectural principles of HTTP which are important to know and seize for normal web sites, as they are for RESTful web services. Download
Designing multilingual applicationsThis talk will discuss the various issues arising when developing a multilingual applications and provide solutions from this. This starts with solutions for common translations in templates, but will also cover requirements for multilingual models with all the associated problems, like data formatting and storage of multilingual data. Download
Modular application architectureKeeping your software modular is everyones goal. But beside good object orientated code you need extension points so you can easily plug in additional custom modules. This talk will present different solutions to this problem, which have been developed in various applications and compare them. Download
Modular application architectureKeeping your software modular is everyones goal. But beside good object orientated code you need extension points so you can easily plug in additional custom modules. This talk will present different solutions to this problem, which have been developed in various applications and compare them. Download
Distributed Couch Apps - Embracing eventual consistencyCouchDB is a prominent representative of the NoSQL movement. Using its integrated web server and eventual consistent replication you can not only distribute data, but also full application code. This even works for clients which are not always connected to the internet, like e.g. mobile devices. This session gives you an insight Couch apps, their beauty and pitfalls. Download
Advanced OO patternsYou already know Singleton, Signal/Observer, Factory and friends. But, which object oriented techniques are en vogue in the PHP world and how can you seize their power? This talk gives you an overview on Dependency Injection, Data Mapper and other OO patterns the PHP world talks about right know, using practical code examples. Download
A generic PHP Application installerEvery user deployable PHP application needs one: An Installer. For now there are no proper generic installers for PHP applications out there, but everyone implement their own. In the Arbit project we developed a generic installer which should be usable by everyone. The presentation will show the how the installer works, and how to use it for your application. Download
Modular application architectureKeeping your software modular is everyones goal. But beside good object orientated code you need extension points so you can easily plug in additional custom modules. This talk will present different solutions to this problem, which have been developed in various applications and compare them. Download
Any to any - Convert your documents!Not only in the CMS world, converting between different markup formats is an essential but painful task. (X)HTML, DocBook XML, different Wiki markup languages, OpenDocument can be easily converted into each other using the Apache Zeta Document component, which also allows you to generate PDF. This talk will show you the possibilities based on practical examples and will also touch the internals of the component. Download
Apache Zeta ComponentsThe high quality collection of PHP 5 components, formerly known as eZ Components, found a new home in the Apache Software Foundation. This interactive session will give you an overview on the state of the project and show you many of the cool components. See how to easily send and receive mail, how to integrate WebDAV in your app or how to render nice charts. The audience decides! Download
Distributed CouchApps - Embracing eventual consistencyCouchDB is a prominent representative of the NoSQL movement. Using its integrated web server and eventual consistent replication you can not only distribute data, but also full application code. This even works for clients which are not always connected to the internet, like e.g. mobile devices. This session gives you an insight Couch apps, their beauty and pitfalls. Download
Connecting web and desktop: WebDAVAlthough browser apps replace more and more desktop application, a tight integration of both is often desirable, not only when it comes to data manegement. The HTTP based WebDAV protocol allows you to integrate your web applications with users favorized desktop environment. This talk gives you an introduction to WebDAV, its beauty & pitfalls and shows you how to integrate it easily into your applications. Download
Did you attend this talk? Please rate it!
Advanced OO PatternsYou already know Singleton, Signal/Observer, Factory and friends. But, which object oriented patterns are en vogue in the PHP world and how can you seize their power? This talk gives you an overview on Dependency Injection, Data Mapper and more OO patterns the PHP world talks about right know, using practical code examples. Download
Did you attend this talk? Please rate it!
Advanced OO PatternsYou already know Singleton, Signal/Observer, Factory and friends. But, which object oriented patterns are en vogue in the PHP world and how can you seize their power? This talk gives you an overview on Dependency Injection, Data Mapper and more OO patterns the PHP world talks about right know, using practical code examples. Download
Did you attend this talk? Please rate it!
Apache Zeta ComponentsApache Zeta Components, previously known as eZ Components, is a loosely coupled collection of high quality components for PHP 5 based development. This talk will give you an insight into the project and show you practical examples on some of the many cool components like Mail, for sending and receiving even complex emails easily, and Document, which allows you to convert between various markup formats and to generate PDF. Download
Did you attend this talk? Please rate it!
Charsets & EncodingsWant to learn better PHP programming! Qafoo offers you trainings which are highly customized to your individual needs!
Each web-developer experiences them sooner or later: charset-problems. There are a lot of possibilities of doing something wrong: user-input-handling, PHP string-handling, the storage backend, the output layer. This talk shows how to handle charsets correctly with PHP, so that you’ll never have strange characters on your website again. Download
Did you attend this talk? Please rate it!
Any to any - Convert your documentsNot only in the CMS world converting between different document formats is an essential but painful task. (X)HTML, DocBook XML, different Wiki markup languages, PDF and OpenDocument can be easily converted into each other using the Zeta Document component. This talk will show you the possibilities based on practical examples and will also touch the internals of the component. Download
PHPUnit to the limitPHPUnit is the de facto standard for testing in PHP. Not only unit tests are developed using this framework, but also e.g. front end tests using Selenium integration. In this session we will discuss more edge cases where the flexibility of PHPUnit allows you to write tests and integrate them into your automated test run, even if they are clearly not unit tests anymore. Download
From eZ to Zeta ComponentsSince June 2010 eZ Components are incubated for becoming a project of the Apache Software Foundation under their new name Zeta Components. How did that come? What about the future of the project? And what about eZ? Legal aspects? Can I still venture to use this stuff? Who is now maintaining? And wow can I get involved? These are just some of the questions to be answered in this session. Download
Arbit is open source and aims to be the next project tracker for your software projects, and is written in PHP. Besides issue tracking and Wikis it also provides integration with quality assurance tools, like PHPUnit, PHPCS and phpDepend. This talk will give an overview on its architecture, current state and how it will contribute to your development and maintance of PHP software. Download
Advanced CouchDBSlides used during an interactive session, where the auditorium could ask about advanced features of CouchDB and those were explained. Download
Advanced CouchDBSlides, which provided a base for a discussion on how to design and implement a generic PHP web application installer. Download Protocol
HTTP is your architectureLike it or hate it, in the web environment you are always bound to HTTP. While this brings quite some limitations, it also gives you some nice concepts to be seized. Pay attention to it, when designing your web application. Especially when it comes to RESTful web services and protocol extensions, you need to know the pros and cons of the protocol you rely on. Join our interactive session and learn to understand HTTP. Download
Arbit is open source and aims to be the next project tracker for your software projects, and is written in PHP. Besides issue tracking and Wikis it also provides integration with quality assurance tools, like PHPUnit, PHPCS and phpDepend. This talk will give an overview on its architecture, current state and how it will contribute to your development and maintance of PHP software. Download
HTML to ODT to XML to PDF to …Not only in the CMS world converting between different document formats is an essential but painful task. (X)HTML, DocBook XML, different Wiki markup languages, PDF and OpenDocument can be easily converted into each other using the Zeta Document component. This talk will show you the possibilities based on practical examples and will also touch the internals of the component. Download
Understanding Software MetricsDuring the last years the topic of software quality assurence got more attention in the PHP scene. One important part of this are software metrics, which provide you with the necessary tools to overview and measure a project to detect possible failures early. This session will provide you with an overview on existing metrics, metric combinations and explain them so that you can efficiently use them in your projects. Download