shopping24 tech blog

s is for shopping

October 07, 2015 / by Markus Heiden / Software engineer / @

code.talks 2015

We had been at the code.talks 2015 and want to share our experiences. The code.talks had several tracks with different aims. For me the java track was the most interesting one. Never the less I tried to visit other interesting tracks too. The quality of the talks was really mixed from simple introductions up to in depth talks. The limit of 45 minutes (including the Q&A part) lead talks to be focused on a single issue and so they sometimes missed a good overview.

Modern SQL

The most interesting talk for me was “Modern SQL” by Markus Winand. He started with SQL-92 and showed what has been added since. He showed by every day examples how to solve a problem with SQL-92 and what newer standards provide to solve the same problem more elegant. My favorite from this talk was “LATERAL” which is the “for each” of modern sql. For details and a lot more examples take a look at modern-sql.com. Slides can be found here.

Concurrency

Another very good talk was “Neue Concurrency-Modelle auf der JVM - über Fibres, Agents, Verticles und Actors” by Lutz Hühnken. He showed the evolution of concurrency models and explained what problems they try to solve and what their weaknesses are. He started with fibres (green threads), took a look at agents, channels and event buses and finally talked about actors. For all of these approaches he mentioned some libs or languages which implement that concurrency model. One of these libs is Quasar which provides most of the above mentioned concurrency models for Java. However his favorite were actors and he finally convinced me to take a closer look at them, because they solve the “concurrency problem” without the downsides of the other models.

API design

My favorite “soft” talk was “How to build an API your developers will love?” by Michael Kuehne. He said, that the API should be considered the product and is equally important for a service as a good GUI is for applications. Both should sell a good user experience to customers. For me this is a point which I have definitely never considered enough when thinking about APIs. He provided some best practices how to create and maintain (evolve) an API. E.g.

  • There should be a good documentation which gives a new user a jump start to use the API.
  • Provide SDKs for the API for all relevant languages.
  • Publish your API tests.
  • Provide stubs for mocking the API to ease testing for your customers.
  • Before publishing APIs think about every method twice because it is very hard to change published APIs.
  • Use standards e.g. REST.
  • First deprecate endpoints before finally removing them to give API users time to migrate.
  • Try to avoid versioning your API (not always possible).