1 Comment // Reading Time: 7 min.
Last weekend the traditional TYPO3camp Hamburg went into its 7th revision. After a one-year break, the organizer Volker Graubaum took the trouble again to organize the camp.
Hamburg was the first camp of this kind in 2008 and laid the foundation for many other cities. Meanwhile TYPO3camps take place in Hamburg, Munich, Berlin, Essen, Stuttgart and Bremen in Germany. The annual international TYPO3camp on Mallorca was by the way also the idea of Volker Graubaum.
In the seventh edition the TYPO3camp took place on the Elbcampus in Hamburg-Harburg. Some should still know this location from the TYPO3 Developer Days 2013. It is a beautiful and modern building with a large number of training rooms. Thanks to its own canteen and a large auditorium, the location is predestined for an event like this.
Barcamp-style, the camp began with a warm-up party in Hamburg's Schanzenviertel. Numerous participants gathered for socialising and enjoyed the evening with a cool beer. I was on Friday together with 10 other developers at a TYPO3 codesprint in Bremen. A part of the team took the way to Hamburg to join the participants of the camp in the evening. So the last codesprint day was moved to the camp. More about that later.
The first day of the camp began in the style of a classic bar camp with the introductory round and session planning. Somewhat unusual was that most of the participants didn't even mention any technical tags at all, but rather more tags like favourite drink, sport or leisure activities.
But that didn't mean that there were only non TYPO3 related sessions at the camp. The session schedule could be filled quickly and there was a colorful mixture of beginner and advanced sessions. The focus of interest seemed to be TYPO3 CMS 7 and the creation of pages with grid elements/themes or Lux.
Beside the regular sessions there was a complete track for the core development. This one room was blocked for the TYPO3 codesprint and the participants had the opportunity to look over the shoulder of the core team, ask questions or participate. I think this was the first TYPO3 camp to offer this opportunity.
Due to the code print on the first day I didn't visit any sessions besides the introduction. The sessions of Mathias Schreiber (TYPO3 CMS 7, Contribution TYPO3 CMS) and Torben Hansen (Migration from Templavoila to GridElements) were very well received by many.
In the evening we went to the beach bar for the whole camp. After a long day in front of the computer or in the sessions - just the right thing to relax and let the day pass in review. With a lot of good mood it came to lively discussions and one could deepen the knowledge exchange also in the evening.
Also on the second day the camp started with the usual session planning. Unfortunately there weren't as many participants as the day before, but there were still some high-quality sessions.
Since the core team wanted to continue after the codesprint, room F7 was blocked again for the core team. Like many other participants in the codesprint, I decided on a mix of sessions and development.
I started with a Hardcore-Techi-Session to the Form-Engine, as announced by Christian Kuhn. The form engine, formerly TCEForm, was completely rewritten by Christian Kuhn in the last months, because a refactoring of the strongly outdated code was no longer possible.
Until recently it was said that there was nothing that could be changed about TCEForms. Most of the code still comes from the TYPO3 founder Kaspar Skårhøj. With the TYPO3 version 7.3 this implementation was replaced by Christian Kuhn.
In his session he showed how to use TCEForm to render the backend forms of TYPO3. One quickly became aware of the extent of a refactoring or reengineering of TCEForms. All the more impressive was the presentation of the current form engine. The structure of the form engine is easy to understand, you can simply register your own fields or extend existing ones. It was very important that the code is clean, understandable and above all tested. The form engine is covered to a very high degree by unit tests.
Besides all the technical insights into the new form engine, it was very interesting to learn that the current configuration of the fields and panels in the TCA has been greatly simplified. You can still use the old syntax in your extensions but a preprocessor migrates it and notes the adjustment in the deprecation log.
However, the migration only works if you no longer register your TCA in ext_tables.php, but let it load via autoloader. However, there is an extension to ensure compatibility. However, a migration is recommended from a performance point of view.
Testing is a very important part of the work of a developer. But writing unit tests or writing real unit tests is not that easy. In her session Susanne wanted to give us an insight into the world of testing.
The session was very well attended and surprisingly not only by developers. I was surprised that also project managers or frontend developers are interested in testing with PHPUnit.
Susanne explained in general what is important when testing, why you test what and especially what you should test. Because a 100 percent unit test coverage is not very useful.
It is not necessary to test every private or protected method. It is about testing the application and what it does and the important things happen in the public methods. The APIs have to be tested to guarantee that the application runs flawlessly.
But unit tests are not everything. Based on the testing pyramid, she pointed out that unit testing should have the most. Unit tests do not replace acceptance, integration or manual tests.
I found it very interesting that the teams in your company regularly perform TDD Katas. A Code Kata is a programming exercise that helps a developer improve his skills by repeating an exercise several times.
Some employees do katas 30 minutes each day before starting work. With the help of these exercises they become more efficient in their job and master TDD and their IDE (Shortcuts).
Susanne inspired me with her presentation to do a little more unit testing and TDD.
Mathias Schreiber had called for a discussion on "Semantic Versioning" during the planning of the session.
Everyone is more or less familiar with the problem of "dependency hell" when using frameworks or other software. With "Semantic Versions" you want to make it a little easier for the developer.
A version number is therefore always structured as follows:
- Major (major version) are increased when incompatible API changes are made.
- Minor version increases when features are added in a downward compatible manner
- Patch version will be increased if backward compatible bugfixes are applied
There were questions about how we version our things. Whether we agree with the way of versioning TYPO3 or whether there are other suggestions.
The discussion ended quite quickly, as everyone involved agreed that the current procedure was so perfectly in order.
In the final session, the TYPO3 Challenge Cup was traditionally awarded.
This time Mathias Schreiber could not defend the trophy, but he could hand it over to Christian Kuhn.
I think Christian has earned the trophy for the wonderful presentation and all his countless hours of core development. So Christian will have to defend the cup at the camp in Munich.
The next camp in Hamburg is not fixed yet. But Volker said that there will definitely be a camp in the north. So maybe there will be another camp in Bremen on the plan 2016.