Browsed by
Year: 2011

Visualize changes in your repository

Visualize changes in your repository

As you perhaps know, there exists a very interesting project on Google code, with which you can visualize the activities on your repository: Gource. Getting started It supports Git, Mercurial, Bazaar and SVN. There is also a way to visualize the changes in a repository of a Microsoft Team Foundation server: GourceTFS. Luckily, in one of my current projects I use Subversion as repository. So it is very easy to visualize the log. Just go in the command line to…

Read More Read More

Enums and inheritance in .Net

Enums and inheritance in .Net

In one of my current projects I had the following code (I simplified the code a bit): public string ConnectionString { get { switch(this.Importer) { case Importer.SqlServer: return "Server=localhost;Database=Northwind"; case Importer.SqlServerOleDb: return"Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=Northwind"; default: throw new NotSupportedException( string.Format("Importer {0} is not supported yet.", this.Importer)); } } } After running the code coverage tool (dotCover from JetBrains) I received the following picture: First idea So, my code was clear and understandable, but obviously not fully tested (green: covered by tests,…

Read More Read More

Do frameworks kill design skills?

Do frameworks kill design skills?

Software design is one of the most important skills a software engineer should have. But what is software design exactly? If you search for a definition you find something like this: Software design is a process of problem-solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution. It includes low-level component and algorithm implementation issues as well as the architectural…

Read More Read More

Hunting performance issues

Hunting performance issues

Recently I received the lead over a performance optimization project for a software product.  It isn’t something extraordinary for a software architect, because as a software architect you have to know what’s critical for a software system in a specific environment. Some of my co-workers may now smile a bit: I always say that you shouldn’t by default design your software based on performance considerations. The code should be simple, understandable and correct. My thesis was and is "good code…

Read More Read More