Welcome to .Net C# development!!

Hi all, this is my website about software development. I want to start trying to distinguish between trendy fashion and soli …

The first step, an example of UI

Design pattern are very important, we will discuss MVC and MVVM a lot, but, as far as the UI is concerned, we can focus on t …


Second example of UI: Focus management

Now, let’s assume we want to implement Copy&Paste in a Grid. First alternative Simply set the focus on the DataGrid in the W …

The equivalent of CSS

To understand this, I think it is helpful to have a quick look at the Reference Source …

 Operating System

Even if you are an app developer, an inside of the system infrastructure would be very beneficial…

Query predicates composition in LINQ to DB

LINQ to DB is a very interesting but light Object-Relational Mapping for C#. Here is my current …

How to debug a DependencyProperty

Debugging the InitializeComponent can be tricky …

The best of threading with delegates

Using a Delegate method to set the Text of a TextBlock …

Calling Python from C#

Follow the instructions: install IronPython and get SymPy …

Covariant laziness

Covariance is a very fascinating concept, starting from the physics and …


Crash Analysis

Guidelines for exception analysis in the Connected Layer


Monads in c#

An elegant example of functional mapping.
You need this framework at the very core of your app, where a light object relational map must be bundled to the model classes.

Algebraic data types

My comments about Effective ML.
Always double check if a design tool like the visitor pattern is useful in your specific context.

Is early optimization the root of much evil? [NOT a duplicate]

I believe that perfomance optimization must start as soon as possible. I think that the classical reasons to put it off are fundamentally wrong. The main points why the optimization activity has to happen right at the beginning are

  • when performance issues arise is usually too late to fix them
  • the costs to solve problems of latency, time-out and load errors grow exponentially while an app become stable and mature
  • even the possibility to gain commitment from the client could vanish, once the initial phase (of the project) is past

There are also technical reasons why optimization must start early

  • the most important and profound optimizations are driven by software re-engineering and not by throwing in new hardware resources
  • optimizing is first of all a logical enhancement and stems from architectural principles and from applying design patterns
  • while it’s easy to visualize the “critical path” of simple “parts” of code, “units” of execution, test “cases” – on the opposite side, the complexity of “integration&performance” tests make things much more difficult and unreliable, even though automation tools are potentially available

The classical, well known answer against early optimization states that it must be measurable.

This is subtly misleading.

Measurement is a physical process and it involves setting a “theoretical experiment” behind the scenes. This is exactly the goal of a well thinked optimization. The experience in determining the key performance indicators makes the difference. Early optimization is not the root of evil: the wrong, superficial optimization is the real enemy (like it’s obvious that targeting a too high availability is not justified)

What do you think about it? I would appreciate an unbiased discussion about it.

3 thoughts on “Summary

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s