Entradas

The 4+1 View Model

I think the connection between the five blind programmer and the 4 + 1 models is that each programmer represented one part of this models. In other words,  each blind programmer described the beast from one point of view. While one programmer described it from a logical approach, other programmer described it from a development approach. The moral of this story is that each person look at the problem from your own point of view and immediately we put away the opinion of others. However, we can build a proper systems if we take this five points of view. For example, we try to suit each opinion in one of the 4 + 1 views. If the view describes the system as an objects model or it represents a set of abstractions then it could be a logical view because it shows the parts that comprise the system and their interaction and focuses in classes and objects. With this in mind so we can represent  other part of the 4 + 1 model. Process view shows any communication between the system process

Understading the SOLID principles

In this blog we will talk about five important principles that allows us to implement a object oriented programming in a better way. By following these five simple rules it is likely that our software does not have a large number of errors or that a new implementation breaks our system. Single responsibility principle  It principle talks about that a class should have exactly one responsibility. Other way to understand this is that a single responsibility refers to a group of related business group that we need to break down in its constituent parts so each part  will be designated as a responsibility. Open/closed principle This principle respect the fact of each class or function should be open for extension but close for modification. In other word, we should create a new class to add new behavior instead add this new behavior over the base class that we are inherited.  Liskov substitution principle   The Liskov substitution principles try to keep working relationship betwe

Microservices

Imagen
In this article we read about microservices and its structure. Currently. microservices is an architecture highly used for many enterprises because it can be adapted in different context. For example, the microservice architecture can be written in different programming languages and used different data storage technologies. This behavior allow us to create little components that generate a complete platform. The microservice architecture have been comparable to the monolithic style. Both can be implemented as a single unit with three essential structures. Client-side. Shows all the views that generally consist of HTML and JS running in the browser (user interface).  Database. Server-side application which is a monolith-single logical executable. The parts that the server handles are:  HTTP request. Domain logic. Updates and retrieves data from DB. Select and populate HTML views.  However the microservice architecture changes in some particular aspect. While the monoli

Software cratfsmanship

Imagen
Listening to the podcast seemed quite interesting to me because it touches different points that are important for software development. Like everything, following good programming practices will always help keep the code in good condition. In addition, the methodologies also help not only to have the code in good condition, they also improve the performance of the application and its quality. Ever since I started working as a software developer and as a computer systems engineering student, I have constantly wondered how I could ensure the quality of my software. Because I work in a startup, all the code is developed by me and consequently I have to keep myself up to date on the techniques they used to better understand it and so that someone else is also able to understand it at their time. Clearly the idea is a bit hasty, but it allows me to see in what ways I could start to grow as a student and as a developer. As Bob Martin mentions, what is sought when following certain work

Hidden figures

Imagen
Through history, society has been involved in different racial problems. As humanity it is normal for us to feel insecure when faced with aspects that are different from ours. The problem arises when we are unable to establish communication to know a little of how things are. A great example happens in the Hidden Figures movie. This film tells the story of three women who stood out for their talent and knowledge at NASA.   They had to be exposed to different social problems since, at that time, black communities were segregated in the United States. However, for them it was not sufficient reason to demonstrate the mettle they had. They were smart enough to overcome situations by successfully accomplishing each of their purposes. On the other hand, regardless of their constant struggles against an apathetic and degrading society, they demonstrated the great intellectual power they had in terms of mathematical calculations, comprehension, computation and efficiency. Each of

Is design dead?

Imagen
After reading this paper (Is design dead?), I remembered when I took my course on Software Quality. The professor of this class always said us it was important to plan and design to create a robust software project. As the author and my professor told us, the cost of the changes increases as soon as we continue with the other project phases so we should be careful with our planning and design. Personally, I was not familiar with planning or design, I thought that making software only involved programming and logical thought. However, this is the main reason why many projects fail, cost so much money or are uncompleted. It is quite possible that as a junior developer you think that design isn't necessary and the only important thing is programming. On other hand, at that time, I was working as an intern in IBM. I wasn't involved in the important stuff as their cloud or something like that. I only worked for a little section of sales. Our main target as software development te

Who needs and architect?

Imagen
While I was reading this article I thought that being a software architect involves different approaches. Software architecture is more than only a title or topic. We need to comprehend the components, the language, the purpose and the user needs through our knowledge and experience, only in this way can we be able to construct the desired architecture. It could be a complicate task because this includes having an abstract overview of the project but it is totally necessary to specify the aim and make the correct architecture. A software architect needs to improve in accordance to the software progress. Therefore, the perceptions and meanings that one can have about software architecture should be enhanced.  I thought the word architecture was taken in software because it tries to emulate the common meaning that we have about architecture. However, to be honest, I had never understood why we call it software architecture until I read that the shared understanding about system desig