Clean code and testing

I want to start with a very simple idea that fits into one sentence:

Everyone can write code that a machine understands, hard is to write code that other humans understand.

Writing code so that other human beings understand, this should be your first priority and concern when writing code within a development team. You should craft every line of code with clarity and simplicity and if you achieve this believe me, all your colleagues will respect you and you will be a big contributor for the project maintainability. You should worry about naming variables, picking the right algorithms and develop tests. Test are very important because they can validate business requirements, validate the code in terms of usability and ultimately document the code. Adopting test driven development will be of extreme value, because it allows you to develop the minimum code required to satisfy business requirements.

If you want to know more about clean code, read this awesome post of Alex Devero in Hackernoon, or buy clean code book.

If you want to know more about test driven development, read this awesome post of Navdeep Singh in freeCodeCamp:

Architecture

When you work on a big project or company, you usually work in teams and in that condition the development process must be refined.

This development process start in the way we structure the project, it must be well defined and every programmer in the team should respect that structure at all cost.

You have multiple choices, Domain Driven Design focusing the business domain of your software product, MVC focusing in the we infrastructure, Clean Architecture focusing on separating the domain logic from the infrastructure.

To know a little more about clean architecture, read this clarifying post of Daniel Oliveira in freeCodeCamp, or buy clean architecture book.

Development flow

Given that we are talking about software engineer inserted within a team, I must talk about development flow. Maintaining a project develop by multiple teams and/or developers requires a version control system and the version control system of the moment is git. Is important to distribute parallel development in tickets and create for each one a branch to isolate this development.

To know a little more about this topic check Henrique Mota post:

Did you enjoyed the article? Feel free to ask something, I will answer as soon as possible.

Mick Bolt