Categories
Uncategorized

Learn event store with file-based example

Creating an event-based application backed by an event store persistence seems to be most reasonable and predictable way to have flexible software. These less than 200 lines present a simple, training implementation of a a file-based single-threaded event store through which I’d like to present this idea. Prequisites Create .NET console app Paste all the […]

Categories
Uncategorized

Look for solution in problem space

I like to say that developers are not code writers, but system designers. They’re not there to type code, but to provide a solution for a given problem. An important detail is that a solution for a problem is not exactly the same as a solution that meets the requirements document. Not too vague, not […]

Categories
Uncategorized

Forget HTTP, use Websockets

For most applications you’re going to build, HTTP communication is a no-brainer. However, as a system grows, a real-time communication between client and server becomes a requirement and the developers apply a websocket-based solution. But websockets not only provide push notification from server to client, they also create a handful of opportunities to follow good […]

Categories
Uncategorized

Remove dependency refactoring

Recently I have worked on removing a compile time dependency between two domains. What I have stumbled upon turned out to be a simple yet comprehensive example of a common problem that I believe many of us encounter every day. Below you can find what was the problem setting, why it important to get rid […]

Categories
Uncategorized

It’s 2020, why do we type code?

According to Wikipedia, the Fortran was launched in 1957 and is considered the first commercially available programming language. A github search shows 6,743 repositories as of October, 2020. If you want, you can easily find out that code written in Fortran, as it consists of widely-used keywords, is still intelligible. It does mean, that the […]

Categories
Uncategorized

Reactive web crawling system [1] Introduction

Disclaimer: This is the first post of a series which will introduce an evolving, public github project of a crawling system. The reactive web crawling system gives every person an opportunity to, after creating an account, hold a dashboard of web crawler queries and results. A user can scrap data from any website – check […]

Categories
Uncategorized

How many arguments can a function have?

If you have been working as a software developer, you are probably aware that following Uncle Bob’s advises regarding number of arguments a function should take is difficult and requires some experience. Clean Code states among others that: The ideal number of arguments for a function iszero (niladic). Next comes one (monadic), followedclosely by two […]

Categories
Uncategorized

A checkbox must be read only once!

Boolean flags are bad. I would agree that a sheer ration between booleans and other data types can be quite a valid measurement of code quality. To support these statement I’d like you to read just two quotes: Flag arguments are ugly. Passing a boolean into a function is a truly terrible practice. It immediately […]

Categories
Uncategorized

Never expose boolean

Imagine a startup creating a management system for a company that operates in a single country. Sooner or later, there comes a feature to distinguish contractors between home country and foreign ones. You may imagine a developer introducing a small private class with a boolean property IsForeign, so the class that represents a contractor looks […]

Categories
Uncategorized

Are you sure you write object-oriented code?

Most of us take for granted that object-oriented paradigm is not only mature, but the “good” way of developing applications. Despite the fame of functional programming which, as time goes by, becomes a real power, most of software is created in the object-oriented way. Or at least we believe so. But following the principles is […]