Google PlusFacebookTwitter

interface segregation but what about our objects?

By on Jul 17, 2017 in Deployment | 0 comments

The I in SOLID stands for ‘Interface Segregation’. This is a fancy way of saying ”splitting apart dependencies”. Basically, an object should not have to depend on more than it absolutely has too. If it does, it may have to be modified when the dependency changes, even if the given dependency has no relation to what the object is using from the dependency. The full extent of the principle can be found here and can easily be found through googling it so I won’t describe further what it is. What I wanted to dive into today is why we’re not better at applying the same thing to our models. I often see models growing out of control in our projects meaning that any time we need to use the object, map it or so, it takes a lot of energy and very easily breaks interfaces. Problem We have a model for a person, a person has a name and an age Next iteration we...

Severity is a priority, or was it the other way around

By on Maj 18, 2017 in Development, General | 0 comments

When you get incoming requests and/or emergency tickets it’s important to be able to classify these properly to know whether you should stop what you’re doing or possibly if you should be doing it at all. This topic came up in my team the other day and at a prior clients we had a pretty good way to classify this to get a priority together with severity. Often you can see these link up 1-1 but not always. Since I’m in Japan I figured I’d try to post this in as well so I’ll update this as soon as I’ve got it proof...

Communication in text

By on Okt 9, 2016 in General | 0 comments

These past weeks we have focused on planning at my client. We’re figuring out the next steps in the product and this requires a lot of communication. As engineers I find that at times we focus completely at our trade. Often though, good or bad, we spend a huge amount of time communicating. I believe we have to do this. We are more often than not, creating something on request. We usually build products on someone else’s behalf. This means that we have to communicate a lot to understand what’s requested from us. Currently we communicate in use cases, epics, diagrams, user stories, tests etc. It is everything from excerpts in mails to page long specifications. What I’ve found (especially since I remote work) is that, what gets written, rarely gets read. We all know this is true for things such as documentation :). Some times the best way to keep secrets is to put...

User stories and use cases

By on Sep 23, 2016 in Development | 0 comments

TL;DR; Use cases are higher level and describes to the user what a feature/story does and the user story describes how the system solves this need. My team is currently fleshing out some new features for the next version of our software and this morning I started thinking, how should we actually do this. We’ve got a rough idea about what we want done but how can we communicate this to everyone involved in the right level. We need to be able to tell our stakeholders what we’re going to do without getting bogged down in details on exactly how we will do it. Not to mention, until we know how we will do it we can’t prioritize and decide which of the how’s we’re going to do. So, how do we put this into text and communicate? Googling user stories and how to write them I ended up instead reading about what differs use cases from user stories. We’ve used the...

EnumerableExtension

By on Sep 2, 2016 in Development | 0 comments

Now I use the enumerable extensions in C# a lot. First(), Single(), Select() is everywhere. However, I’ve found that there’s a few I’m missing and that sometimes they just don’t exactly suit my purposes. So, sometimes I create an additional extension method or two, like the two below: View the code on Gist. TryGetFirst I use because the Try-pattern is nicer sometimes than the if(result != null) pattern. The TryGetSingle is mostly due to the fact that the Single() enumerable extension throws (or at least used to throw) the same message for when there were no items in the list and when there were more than 1. I usually find that if there’s more then one, then there’s an error and if there isn’t one I want to handle that in a different...

Trying out NDepend

By on Sep 2, 2016 in Development, Statistics, Tooling, Tools | 0 comments

What is this? I got the chance to try out NDepend, although with everything else, it took me quite some time until I finally got around to picking it up. Now NDepend is a tool, both command line, stand alone and as an addin to Visual Studio which allows you to do static analysis and reporting on your .Net projects. It uses a Linq based paradigm to build rules around the code metadata it reads from the solution making it incredibly versatile in terms of extending and customizing. In this blog post I’ll take you through my initial 2-3h user journey in trying out the tool. Installation After writing a few installers myself using both the old fashion visual studio included tools and lately using Wix I can appreciate that the NDepend team didn’t waste time trying to do this. NDepend simply comes as a zip file which contents you drop in a folder, completely fine and it’s a...

Tomato is a fruit!

By on Aug 26, 2016 in Deployment, Development | 0 comments

So what’s the most pointless thing you’ve done this week? I’ve made a game to settle the score once and for all. And maybe, in the end, it’s not so pointless after all, though, if you do feel I could’ve spent my time doing something more worthwhile I’ll admit to that 🙂 The game is available at http://fruitorvegetable.greycastle.se/. Try it out! It was a very good experience in trying out Ruby on Rails. And a few comments on this: I used Heroku for deploying this app and this was actually a breeze, a really, really good service, auto pushing code from github and all. Only thing, it’s running on Ruby 2.0 and Rails 4.1.0 which caused me a fair level of grief. Also, my page didn’t use a database, for which Rails is optimized to have which also forced me to do some additional fixes. But, if you start off in the right end, I’d really...

WPF editable ComboBox binding

By on Aug 24, 2016 in Development | 0 comments

Today (and most of my night) I’ve been stuck with trying to bind to an editable WPF combo box. It sounds stupid and it is, really. The scenario is this: You have an editable combo box to which you bind a list of view models. I specify a data template in order to get the correct binding to a property on the view model. This however, doesn’t display the selected item properly. I specify a ToString() override to solve this and get a value. However when the property that feeds the ToString is updated I get no update. The thing is that the SelectedItemValue and such doesn’t come in to play and certainly doesn’t care about updates to your view model. So in order to fix this I create a wrapper subclass to the ComboBox class and make it listen to changes to the SelectedItem and trigger an internal update method when needed. The example, code and fix are all available...