Posts Tagged: software

Home » software

Front-end / back-end isn’t a useful distinction

Answering a Hacker News Ask HN titled "Why companies look for “full stack” developers instead of specialists?" I wrote this:Front-end / back-end isn't a particularly useful distinction in my opinion. Differentiating between those 2 is just another way of creating information silos.I'm old enough to have experienced at least 2 full thin-client-fat-client cycles and I'm certain the current one won't be the last (at least it seems to have been a recurring pattern since the beginning of modern computer science). While ... Read more

Using Spring JdbcTemplate Instead of Object-Relational Mapping

Spring JDBC and Spring JdbcTemplate in particular has become my go-to tool for accessing relational databases for quite some time now and for good reason in my opinion:The common way for using data from an RDBMS in an object-oriented context used to be and for the most part still is object-relational mapping (ORM) frameworks like the Java Persistence API (JPA) or Rails' ActiveRecord. As the name suggests these frameworks attempt to map data (and concepts) from relational, set-oriented data structures, which ... Read more

The Art of the README

Just recently I was reminded about an obvious and vital but all too often neglected aspect of good quality software: Creating and maintaining a README file to both onboard new developers and to get users started with your software easily.While certainly essential in the context of open source software maintaining a high quality README is also relevant regarding proprietary / company-internal software that's limited to only a select circle of developers and users: It enables both your customers and internal users ... Read more

What Causes Over-engineering and How Can You Prevent It?

Last year software engineer Fagner Brack wrote an interesting and thoughtful article on "How To Accept Over-Engineering For What It Really Is"The article is very much worth the read in its entirety. There are a few key takeaways though I derived from it personally:I like the definition of over-engineering (quoted from Jeff Sternal) as "Code that solves problems you don’t have.".Fagner's conclusion is that what constitutes over-engineering depends on both context and the people involved.Over-engineering is usually brought about by unclear ... Read more

Design Patterns: Event Sourcing and Command and Query Responsibility Segregation (CQRS)

Event Sourcing and Command and Query Responsibility Segregation (CQRS) are system design patterns that allow you to deal with event streams in a consistent manner.Common line-of-business applications typically are built using the MVC design pattern with the database tables representing the model tier in MVC as the single source of truth for the application state.Event-based systems are different - and inherently more complex - in that their single source of truth is the stream of events that led to the current ... Read more

Interactive Flowcharts with code2flow

Visualisation often helps immensely when trying to understand complex systems and interactions.Visualising these systems and their behaviour can be a daunting task though:Covering each and every path a workflow or process might take can be quite arduous. In many cases it's not even possible to comprehensively describe a system that has not yet been implemented. Edge cases frequently only tend to surface once a software has been tried out under real conditions. Software in turn needs to adapt quickly, which all ... Read more

A Collection Of Common UX Myths

UX Myths is website on common UX misconceptions like "The homepage is your most important page", "You are like your users" or "Icons enhance usability".The authors shed light on where those myths come from, why they're wrong and what can be done to improve your design process in each case. Read more

JSCity – Code Complexity Visualization For JavaScript Codebases

JSCity is a tool for visualising JavaScript source code complexity that uses the CodeCity metaphor. This approach makes use of the building blocks of modern cities for visualising the building blocks of software.Since in JavaScript functional programming is the predominant programming paradigm JSCity represents code artefacts like this:folders are districts files are sub-districts functions are buildings inner functions are represented as buildings on the top of their nested function / buildingThis for example is the visualisation of the AngularJS source code.JSCity even allows you ... Read more

Mockito 2 now available

Last week version 2.1.0 of the Mockito testing framework for Java has been released. For more information on this latest iteration check out this page.As the name suggests, Mockito allows you to mock object behaviour during unit tests. When writing unit tests you only want to test a particular unit's behaviour (hence the name). Depending on the programming language used such a unit might be a function, a procedure or - most commonly in today's object-oriented programming environments - a ... Read more

Code means communication

Writing software is all about communication.Code is a way of conveying the meaning of natural language requirements in an exact manner so that computers can make sense of the intentions of our fickle human minds and the often ambiguous ways we tend to express ourselves in.So, in that respect software development amounts to translating human concepts and notions into a language machines can understand.However, communicating with machines is only one, more technical aspect, of writing software. The by far more important ... Read more
Next Page »

By continuing to use the site you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or if you click "Accept" below then you are consenting to this.

Close