In the last few years the face of web development has undergone some significant changes. New technologies have appeared that have added some radically different choices for building web applications. The three major pieces involved in a web app, the client, the server, and the database, have each seen widespread changes in what is available.
Jenkins is an open source continuous integration tool written in Java. The project was forked from Hudson after a dispute with Oracle. Jenkins provides continuous integration services for software development. It is a server-based system running in a servlet container such as Apache Tomcat.
In this tutorial we will install Jenkins on Centos 6
Master and Student…
Master: Grasshopper, tell me what you have learned of the Object-Oriented ways.
Student: Master, I have learned that the promise of the object-oriented way is reuse.
Master: Grasshopper, continue…
Student: Master, through inheritance all good things may be reused and so we come to drastically cut development time like we swiftly cut bamboo in the woods.
Master: Grasshopper, is more time spent on code before or after development is complete?
Student: The answer is after, Master. We always spend more time maintaining and changing software than on initial development.
Master: So Grasshopper, should effort go into reuse above maintainability and extensibility?
Student: Master, I believe that there is truth in this.
Master: I can see that you still have much to learn. I would like for you to go and meditate on inheritance further. As you’ve seen, inheritance has its problems, and there are other ways of achieving reuse.
This quote comes from Head First Design Patterns, I personally favor composition over inheritance.
The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
In computer programming processes, Application Programming Interfaces (APIs) refer to sets of tools, protocols and routines from which software applications are built. The APIs express software components in terms of output, input, underlying type, and operations. Therefore, APIs aid in defining functionalities independent of particular representations. This process allows the implementations and definitions to vary (while ensuring that interfaces are not compromised). Indeed, good APIs make it easier for individuals to develop programs by offering the required building blocks, upon which programmers put the blocks together (Haupt et al., 2014, 3). On the other hand, Representational State Transfer (REST) constitutes a style through which software architecture operates on distributed systems. One of the distributed systems is the World Wide Web in which the REST design model has emerged predominantly (Perez et al., 2011, 283).