Many hard problems in programming originate from one single source: not properly distinguishing the representation of data from the way it is interpreted. Have you ever written code that filters $_GET for SQL injection attempts? Struggled with timezones? Tried to get escaping right for Javascript in HTML? Detected the character encoding of a string? All are examples of this one problem.

In this talk we will look at some examples of the representation-interpretation problem and find the general pattern behind it. We will see how primitive types make it so hard for us to get this right, and how we can use value objects to steer us in the right direction. You’ll start finding many more examples of this pattern and understand them more easily.

Comments

Comments are closed.

Dennis Mouwen at 12:30 on 7 Jun 2019

Very interesting! Both content wise and story wise!

M1ke at 12:30 on 7 Jun 2019

Quality talk, well presented and hit the mark in terms of useful info delivered. I'd have liked some more info on value objects in wider scopes (eg advantage to data representation in DDD) but that wasn't the aim of the talk so missing it wasn't a problem.

This is the kind of talk that change the way you look at very specific (and seemingly independent) topics by giving you a better, easier and more elegant point of view than the way you previously looked at these subjects.

I guess that the advantage of unified theories ;)

Good job Arnout!

Arnout Boks (Speaker) at 09:11 on 8 Jun 2019

Thanks everyone for attending. I've put the slides up on https://speakerdeck.com/aboks/of-representation-and-interpretation-a-unified-theory-dutch-php-conference-2019. If you have any more questions, feel free to reach out!

Dennis C. at 10:12 on 8 Jun 2019

Was good to see this talk in it’s updated form, great explanation and very understandable examples

Erik de Bos at 09:08 on 9 Jun 2019

Clear and to the point. Missed the practical considerations a bit - decoding/transforming just before usage sounds a bit arbitrary.

THE GOOD :

Well explained, at a decent pace and attention to detail.
Simple code examples.
No nonsense talk, straight to the point.

THE 'LESS' GOOD :

It took some time to jumpstart the talk (a 5 minutes) : what I mean by that is that it took me some time to figure out what you were hinting at and be 100% engaged in the talk. This could be completely my fault, however :)

Great talk that brings back mathematical conceptualizations that are too often forgotten in web development.

Very glad I've attended your talk! The best part is that you have not really talked about anything new or ground-breaking. You reminded us of a simple "pattern" that can be recognised in many different situations. The solution to use value objects is a simple and elegant solution.