Monday 16th November.

FluentQuery – Malcolm Groves – Embarcadero Technologies

Malcolm has made many presentations at ADUG meetings and symposiums over the years and it was great to get him back in Melbourne to talk technical about one of his more recent open source projects.

FluentQuery is a fluent, declarative query API for Collections/Containers and Enumerations in Delphi and AppMethod. Internally it makes heavy use of Generics, Anonymous Methods and Interface Delegation, and has changed architecture multiple times while maintaining a consistent interface to the developer.

Malcolm talked about the front-end-first approach he took to the design showing a photo of a notebook entry of his first thoughts. He explained how the architecture emerged during the iterations, the reasons behind some of the design decisions he made, and the subsequent trade-offs they brought with them.

Even if we never use FluentQuery the war stories from its development were educational. Few of us knew the “implements” keyword. We revisited “interfaces” and DUnit from a new perspective and heard about the benefits of “instrumenting” your code and why you really need a DVCS.

The code for FluentQuery is open source and is available at https://github.com/malcolmgroves/FluentQuery . Malcolm says that the repository also allows an insight into the many iterations of the development process if you are so inclined.

A PDF of Malcolm’s presentation is available here.