Entradas

An Introduction to Metaprogramming

"An Introduction to Metaprogramming"  is an article written by, one of the best professors I've had, and yes, I am a sentimental but is my last course with him, the professor Ariel Ortiz. First of all, metaprogramming basically, writing metaprograms , not so explicative. Create a metaprogram will generate another program or just part of it but without the effort of doing more than the indispensable amount of code. I liked the example about the woman who was supposed to write something, and she did it but not in the way expected, so she write a program for write the program she must do. This pattern is really useful when a developer want to reach an specific solution using one specific language to write a program which intention is generate another program, this can also be used to write the same code in another language. This practice will help to  eliminate or/and reduce a tedious or error-prone programming task, as said in the article, plus the...

Ready Player One

Taking the next quotations from the book “Ready player one” Morrow wrote in his autobiography that he’d left GSS because … he felt that the OASIS had evolved into something horrible. “It had become a self-imposed prison for humanity,” he wrote. “A pleasant place for the world to hide from its problems while human civilization slowly collapses, primarily due to neglect.” (p. 120) (Halliday speaking) “I created the OASIS because I never felt at home in the real world. I didn’t know how to connect with people there. I was afraid, for all of my life. Right up until I knew it was ending. That was when I realized, as terrifying and painful as reality can be, it’s also the only place where you can find true happiness. Because reality is real.” (p. 364) I am going to express my opinion about some questions written below. Do you agree whit the two previous quotations? Yes, I agree, in some things, is usual for the persons to feel that they do not match in everything, I am a...

Microservices

Microservices This week the article to discuss is "Microservices" which was witted by  James Lewis and Martin Fowler. So, first of all, the term Microservice Architecture describes a way of designing software in order that applications have functions, as suites of independently small deployable services. As each one of those is running its own processes but should communicate with the others is usual the usage of an HTTP resource API. An interesting thing about Microservices is that this services are built around business capabilities and are independently deployable by automated deployment machinery. Something mentioned in the article that actually I actually liked is that is a bare minimum of centralized management of the services, so they could be written in different programming languages and use different data storage technologies, allowing more flexibility, of course the fact that you can do this, does not mean that you should but it is possible if ne...

4+1 view model

4+1 view model This time I am going to write about two videos and an article. Video 4+1 View into Software Architecture: Usually, the creation of software development is preceded of many UML diagrams, which try to create a model of the system. UML contemplates many views of the design, considering manmy points of view, and providing tools (Different diagrams) that make easy the comprehension of the ideas, you could use interaction diagrams, Behavior diagrams and many others.     The problem is that UML is not a development language, so it could not be clear in all the situations. Different situations may use different ways to express how something functions so, Use cases, Class diagrams, Deployment diagrams, Sequence diagram, State machines are options to describe interactions. The video describes a special view, which could help us to complement the vision of a system, to not focus only in one specific layer, With you, ladies and gentleman, the "4+1 ...

Understanding the SOLID Principles

This week the blog will talk about the article "Understanding the SOLID Principles" written by Edward Guiness, this is a brief summary that presents the definition of the SOLID Principles. The general objective of the SOLID principles, and so the author in the article, is to implement best practices in the creation of objects and classes in specific cases depending on the situation that is presented. And with you, the 5 principles *drumroll*: • Single Responsibility Principle • Open/Closed Principle • Liskov Substitution Principle • Interface Segregation Principle • Dependency Inversion Principle The first of this is the Single Responsibility Principle, it says that a class, should have just exactly one responsibility, just one reason or an only class of reason to exist. This responsibility should be implemented to the class, so for this reason a class just has one reason to be modified. Why implement this? Easy, in a big project you will have lots of classes ...

Software Craftsmanship

Software Craftsmanship with Bob Martin This week I am going to talk about the podcast “Software Craftsmanship with Bob Martin” First of all, Bob, also known as uncle Bob, is a software developer but he is also an architect and many other things but the center of the idea are those two, but what he likes most is developing software, he loves to have the hands in the keyboard. To be in context, uncle Bob is founder of a company that offers mentoring, training help to the code teams to adapt and get better practices. One of the things he emphasizes is that people who take decisions as architect or team leader should be involucrate in the coding process, I really liked the phrase, they need to have the fingers on the keyboard. The software craftsmanship as Bob Martin tells is a way where new developers that are involved in programming world can learn, not only coding techniques, from the more experimented people in the industry. The basic idea is that a master or mentor who...

Is Design Dead?

Is Design Dead? I am going to write about the article “is Design Dead?” By Martin Fowler, it was a interesting article and was written in a unfamiliar way considering the title. He starts talking about the extreme programming and how it is one of the causes of the poor pre design that nowadays is (barely) used for big or small development. Software development needs like almost everything a design which defines not only how it will work, but how to make the specific modules and what job they are going to perform to accomplish a global goal. And well he basically explains the differences between planned design an evolutionary design, that is the reason why I think the title is funny, two kinds of design but he says it is dead, basically what happens is that, the extreme programming and the constant use of the technique pushes the developers to use the evolutionary design. Why? Easy, the extreme programming is a practice thas searchs the simplicity in the creation of...