Design decisions

When architecting a system, it is inevitable to make certain high-level design decisions.

Some of these decisions, if they’re wrong, can lead to the re-architecturing and re-writing of the whole system some months later, so there is an incentive to keep things rather generic. On the other hand, trying to make system too generic is just another recipe to disaster (usually expressed in terms of missed deadlines and unmanageable code).

IT Hares try to describe certain not-so-obvious architectural decisions, and some considerations which should be kept in mind while making them.

Multi-threading at Business-logic Level is Considered Harmful

September 7, 2015 by “No Bugs” Bunny

Last Straw: Business Logic+Multithreading

Quote:

However, the window for triviality is very narrow: for example, even going into two interrelated mutexes instead of one, can easily make multi-threading non-trivial

Another Quote:

Technically you are able to jump to any point of your program, but the variables you see may (and if you have a multi-threaded bug – will) differ every time you jump there.

Filed under: On.System ArchitectureDesign decisionsOn.ProgrammingDebugging

Read more

Best Practices vs Witch Hunts

March 1, 2015 by “No Bugs” Bunny

The road to Witch Hunt is Paved with Good Intentions

Abstract:

Best practices need to be taken critically, otherwise they tend to become witch hunts.

Quote:

Merciless refactoring is good, merciless refactoring having no clue about what you’re doing, is not

Filed under: On.System ArchitectureDesign decisionsOn.DevelopmentDevelopment PhilosophyDevelopment Processes

Read more

Size Matters - Is 64-bit App Always Better?

May 1, 2014 by “No Bugs” Bunny

Is Bigger One Always Better?

Abstract:

Sometimes it makes perfect sense to use 32-bit application on 64-bit platform.

Quote:

It is obvious that for N between 13,000,000 and 21,000,000, 64-bit application works about 1000x slower.

Filed under: On.System ArchitectureRequirement analysisDesign decisionsOn.ProgrammingOptimizations

Read more

Keep It Simple, Singleton!

November 1, 2012 by “No Bugs” Bunny

Black Square

Abstract:

Naïve mappings from business domain to programmer domain tend to survive requirement changes better

Quote:

How do we distinguish good assumptions from bad ones?

Filed under: On.System ArchitectureDesign decisionsOn.DevelopmentDevelopment Philosophy

Tagged With: AgileOverload
Read more