“Design patterns” is a frequently spoken term in software development. There are about 30 design patterns so far, but not all of them are frequently practiced in the production. In this article I am going to list the design patterns I have found to be used very often in the software development.
i) Factory Pattern: This design pattern is found in the Junior developers’ code. Because the juniors are pretty much oblivious to the advance form of object encapsulation, the reason why it is their blind bet on getting the job done.
ii) Singleton Pattern: An abstract way of calling a class instance. It improves the application performance in a large development environment through the lazy initialization of a class.
iii) Decorator Pattern: Decorator pattern is the Senior Developers big bet on the Juniors’. Gives an extra .
iv) Observer Pattern: This one is my favorite. If you are familiar with concurrent application development, there is a chance that you know about this behavioral design pattern.
v) MVC Pattern : This is a very commonly used pattern in the web application development. Abstraction of “Model – View – Controller” is the center of attention in this design pattern. Most of the web application frameworks follow this design pattern.
I learned number of programming languages in my life. Some of them are just for learning, some for just giving a shot, some for my career. Yet I keep my skills with programming languages very concise in my resume. The reason is simple, just to avoid horrific interview questions.
When I started learning Java back in 2010, once I heard that there aren’t many quality Java EE developers around the world. I took it for granted, and thought things won’t change that much in next 5-6 years. But unfortunately by the time I came out of university, I found everyone around me speaks Java EE. And the experience ones in the interview board really hate the way a fresh graduate codes (no design patterns, smelly codes, less cohesion, high coupling, redundant codes, and so forth).
Along with some other reasons I decided to pack my bag once again for a higher degree, and take a relief from the dog fight in the job market. Once in a spare time I started looking through the list of the programming languages, and tried to find one for myself. I would say python really attracted me, not because it was easy, rather I realized not so many people around the world actually use it professionally, unless they are engaged in a scientific computing. Eventually I got a chance to work for a high performance computing center, and I really did use python ;). I felt like, job, finally I got you bitch.
Nevertheless I still love java, and used it professionally too. But, python holds my first place of attention.
Java 9 is about to be released soon, and as far as I know it would make Java a totally different experience through the inclusion of Java Shell, better garbage collection, micro benchmarking, and so forth. The oracle themselves recommend the java users to adapt the newer version of java since version 8 to avoid the possible exclusion off the production race. Because, over the period of time oracle will reduce the support for the older version of JDK before the version 8.0 eventually. Therefore, JDK 8.0 seems to be a safer inceptive for large production.
I am a huge fan of functional programming, and the inclusion of lambda in JDK 8.0 along with a functional outlook of Scala charmed me. But the matter of the fact is the large scale projects with JDK 7.0 face a challenge of upgrading it overnight. Now here comes the real problem, if you are a Java developer you certainly will install jdk 8.0 after a new version of OS installation in your system. But if you are a cloud developer for instance, many cloud providers yet don’t support jdk 8.0 so you have to install jdk 7.0 too. Moreover, crisis becomes loud when you need to switch between the installation classpath over, and over again. well, well, well.