Cut out reporting out of monolith – design REPL

I wrote about design REPL previously. Here I’m showing an example how it works, on a real (and rather large) project I did.

This post shows, that:

  1. I have been using design REPL even before I coined the term
  2. there’s LOTS of work prior to writing first line of code or even choosing the technology, frameworks and the like
  3. good design helps tremendously (and how) when you want to deliver

It also talks about Golden Master testing technique, which is one of the best I know when working with untamed code.

Continue reading

Design REPL

Too often when programmers are faced with a problem they immediately turn to code. Programming is NOT writing code, it’s formulating theories to solve problems. Solving problems requires thinking (up a theory) and analysing (your problem) PRIOR to actually implementing the solution.
In this post I’ll explain simple steps programmers of many backgrounds often forget, when starting new feature, component, module etc.

Those are:
READ – EVAL – PRINT – LOOP, aka REPL, which us, functional programmers (or heck, folks with duck-typing languages), know rather well. Though, even Java 9 will have a REPL shell… ๐Ÿ˜‰

Continue reading

Architecture vs design – useful distinction

Design is used also when it comes to look’n’feel, front-end and UA/UX, but IMO there’s a distinction also when you’re speaking about architecture. So, when you are talking about software design, how does it differ from software architecture?

In many ways it does NOT. However, one useful distinction I’ve been promoting since my first public talk during 4Developers 2013, about “Good architecture… how do you know?”. It’s as follows:

When you have a system, architecture of that system is the glue that holds it together and lets it perform what it’s supposed to perform. Do it’s duty, it’s job. But say, you have a module in this system, that ain’t core feature or something equally vital. Though useful, your users can do without it. Crucial pieces allowing this module to do it’s job, it’s design.

I may add more on the topic, once I read what Simon Brown says in the matter in his book. ๐Ÿ™‚