Portable Services and Liferay
Applications evolve. Every developer realizes this fact after a few years of writing code. The trick is to write applications in such a way that there is always room for evolution. While the necessity for code refactor is sometimes inevitable due to several different reasons, applications that have been designed following a few well-known principles […]