Entradas

Ethical Reflection on Ready Player One

This last entry will be focusing on answering some questions about the book Ready Player One, I really enjoyed the reading and also the movie, perhaps some things changed in the movie but overall the idea behind both the book and movie are the same and well the questions that I chose to answer are these ones: 1.      Do you find any interesting resemblances between the dystopic “real world” presented in “Ready Player One” and those presented in other works of fiction such as “Nineteen Eighty-Four”, “The Hunger Games”, “The Matrix”, “Soylent Green”, etc. My answer in this case is that a constant in many dystopian future works of art is first the problem with the energy, in the book they mention that the last crisis that they had was the energetic I believe and a similar idea can be found into the matrix were humans are used as electricity because of the lack of energy I believe, also as always mankind is destroying all their resources and in movies like Blade...

Microservices

This reading was about Microservices and well microservices is a very simple thing, there are many benefits into using microservices, turning complicated systems or applications into simple services that can me modified without disturbing the architecture of whatever you are building, this means in more specific words that there is modularity into the microservices architecture and this means that the services which we build using this architecture are faster as well as easier to develop, understand an implement. In a big scale development microservices allow us to deploy changes to specific parts of any development without the need of re deploying all the development, just deploying the module in which we are working or that we are going to modify and this reduces complexity as well as time spent into fixing or improving things that our services may use, each microservice provides a firm module boundary allowing different services to be written in different programming languages ...

The 4+1 View Model

In this reading we learned about the 4+1 view model, this model is basically a mechanism or methodology designed to separate the different aspects of software into different views or parts so that the stakeholders can focus into all the different parts of software and have a better understanding about this and this not only benefits stakeholders, as it is segmented it benefits every person working into the system from developers to management and this is a great example of why it is smart to segment the architecture into distinct views. The most important point here is that we have a use case view which makes modelling far more efficient and in each project we will have different modeling tools that will support the 4+1 approach and basically this will allow us to have templates that will make everything easier from de the development, to the implementation, to the understanding. The views work in this way, the logical view has the information about the system in general and i...

Understanding the SOLID Principles

This article is about the SOLID principles and it is called “Understanding the SOLID Principles”, this article show us this principles in detail and well this principles are focused into allowing developers implement the best practices in the creation of objects and classes according to the situation that they have, SOLID is an acronym that means the five principles of object oriented programming and design and these principles are… Single Responsibility, focuses on the creation and verification of classes that should have exactly one responsibility which makes the classes more clean and we should maintain an standard development methodology. Then, Open/Closed Principle where the classes should have one characteristic when inheriting because they should be extendable preferred to modifiable and a class have to be constructed in order to be flexible and adaptable for the conditions that exist in the particular situation. The third principle is called Liskov Substitution and thi...

Software Craftsmanship

This podcast about software craftsmanship made me think about how we learn from others, how we can teach others and in software development there is a notion of coders who first learn from someone and in the podcast Bob makes a reference in the software and how someone does not stop learning software, you learn software all the rime and even though it would be ideal to have someone show you how things are done, the first steps into programming, if you do not have a mentor you can always learn by trial and error. There are many positive things into being able to learn from someone and for you to teach someone and it is a rich experience and in the manifesto of software craftsmanship gives us a small insight into how advices are written in a few lines of text, and the important ideas are summarized in four principal learnings that takes us to the idea that software craftmanship allows us to be better software developers and protectionists. In this podcast there is also the idea that...

Is design dead?

This reading is extremely interesting, it is about planned and evolutionary design which are two different styles of software development and well planned design basically is a way of development that allows us to have a process that maintains the entropy in a great state while evolutionary design is related to Extreme Programming, which is based into quick iterations and decisions without the need or thought of analysis and basically it is more trial and error than careful planning, it actually is the way in which most people program nowadays. Extreme programming uses different kinds of patterns in different ways and these patterns are what makes XP useful, these patterns are useful because they let us have cleaner code in any project, they are easy to understand and there is also the simplification that using a pattern brings into our work, using the new methodologies like xp and complementing these methodologies with tools like design patterns allows us to grow as developers an...

Who needs an Architect?

This article is about mainly about the relevance of architecture, and it gives a funny analogy at the start which is that if you design a building it is very difficult to change the basement but in software development with design patterns you can make shifts to the foundations of your architecture without impacting the entire software “basement”. In this article focuses on the idea that architecture is the shared understanding of the design when working on a software project and that the architecture is where you will decide the components and interfaces that will be used, and those are the most important parts of architecture and the ones developer focus on. It is important to know that by having a good architecture, we can play with the components in a smart way and make the system reversible, good software architecture wants to avoid the replacement of irreversible components, there isn’t a perfect way to write software but having a good architecture is crucial to accomp...