September
2013
25

Use Version Control for software development

Git version control

Allow me to explain shortly version control first.

 

Version control or revision control consists in the management of changes of a software project. Every change made to the code and uploaded to the version control system is tracked along with who made the change and comments explaining why they made the change.

 

There usually is a central repository where the code is stored along with all the history of those files. People connect to that repository, get the files, work on their own programming environment and then submit the changes back to the central repository. That way people always know which is the most “up to date” version, instead of having to ask everybody.

 

The “standard” way of working with a version control system is:

  1. Check out the project from the central repository
  2. Make Modifications to your code
  3. Submit the changes back to the central repository

 

You also have “branches“, which are a copy of the repository  in order that you can have modifications that can happen in parallel along both branches. They are very useful for new features, testing or fixes. After you verify that the branch is working correctly than you can merge the changes to the main

 

version control branches
version control branches

 

For instance, imagine you have an Instagram like website and you would like to add a new feature consisting in new types of images where the user uploads a picture and a message and it appears written over the image.… Read the rest of “Use Version Control for software development”

September
2013
22

Development, Test and Production environments

different-environments

When you are developing something with a little more complexity than a hello world software (which should be all the time) it is REALLY important to have at least three different environments: Development, Test / Staging  and Production. This is even more important in web development as it is “fairly” easy to do in small / medium projects.

 

The Development environment is where developers live and breathe, where they make all the changes, mistakes and fixes that you need. It’s like a small lab where nobody judges you, where it does not matter if you break the CSS or your whole webpage as nobody is going to notice. Once you achieve something, like developing a new item of a list, fix a bug, or a new functionality, you should stop and move your functionality to the Testing environment.

 

The Testing / Staging environment is a little different. Actually, there is a slight difference between testing and staging environments, but to distinguish them is not the point here. You need something that acts as a copy of your corporate site, a copy of the live version. It should be EXACTLY the same, because you are going to test in this environment your new developments, you want to know how it will work and IF it will work live before going live. Only once you have verified that everything works, that your new functionality has not broken anything, you can migrate the changes to the production environment.… Read the rest of “Development, Test and Production environments”

September
2013
17

About Software Engineering

Barcelona Ruby Conference

I’d like to share one of the best conferences I’ve seen on Software Engineering.

It’s a talk from Barcelona Ruby Conference 2012, featuring Paolo Perrotta, author of “Metaprogramming Ruby”.

 

 

This conference really offers another point of view about the whole programming, technology and engineering industry with a nice historical and social side. It’s surprising how he analyzes big mistakes in the computer industry and explains them as conceptual mistakes from a human point of view. Worth seen 100% for tech people!