6 takeways from the second day of ConFoo

Today it was an interesting day here at ConFoo, and I’ve seen some good content dealing with web performances.

Don’t pollute domain models with specifications

During a very good talk I was waiting for since the conference started, Mathias Verrase has been talking about DDD and domain models and has shown to the audience how you should not pollute them with specifications.

The proposed approach introduces a bit more verbosity with the advantage of having cleaner models that reflect your domain.

So, instead of having models knowing the business specification:

1
$customer->isPremium();

you might want to refactor the code in a way that makes the information as part of a business rule (hence, the specification), that will accept a subject in order to verify that it actually satisfies the rule / specification:

1
$premiumSpecification->isSatisfiedBy($customer);

Optimizing images

Imageoptim is a very handy tool to losslessly compress images and save bandwidth while serving them.

gzip_static

Instead of gzipping each and every assets on-the-fly you can tell nginx to look for a previously gzipped version of the same file.

Compile nginx with this option enabled:

1
./configure --with-http_gzip_static_module

and then turn it on:

1
gzip_static on;

Turn off tcp_slow_start_after_idle

Turning off window resizing (or… downsizing) after a slow start will help clients who take a while to send back packets over the same, slow, TCP connection, as it doesn’t resize the TCP window contrary to what the system would do by default.

Pagespeed at nginx level

I already knew about ngx_pagespeed but totally forgot to use it :)

More RUM monitoring tools

I’ve come across mpulse which is another RUM platform.

Even though their UI is a bit old school, they’re (of course) real-time and provide valuable insides, like pageload times and DOM rendering performances.

Sign up on their site, it’s free up to 1M visits a month!

All in all

Good day for optimizations and delivering a faster experience to your users, looking forward to my third day – with my last talk, about SOAs – in this cold land!


In the mood for some more reading?

...or check the archives.