Posts

Showing posts with the label Java

Querydsl

Querydsl is an extensive java framework, allows for the generation of type-safe queries in a syntax similar to SQL.It current has a wide range of support for various backends through the use of separate modules including JPA,SQL,Java collections, Lucene, Hibernate search and MongoDB.

Design Patterns

In software Engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. Behavioral Design Patterns Command Pattern Chain Responsibility Pattern Iterator Pattern Interpreter Pattern State Pattern Strategy Pattern Null Object Pattern Observer Pattern Visitor Pattern Template Method Pattern Memento Pattern Creational Design Patterns Factory Method Pattern Singleton Pattern Abstract Factory Pattern Builder Pattern Prototype Pattern Object Pool Pattern Structural Design Patterns Adapter Pattern Bridge Pattern Composite Pattern Decorator Pattern Facade Pattern Flyweight Pattern Proxy Pattern Private Class Data Pattern J2EE Design Patterns Benefits of Design Patterns: Provides industry standard approach to solve a recurring problem. Promotes reusability that leads to more robust and highly maintainable code. Helps in reducing total cost of owne...

Spring, Hibernate, Spring Boot

Spring Framework: Spring is lightweight framework. It can be thought of framework of frameworks because it provides support to various frameworks Hibernate , JSF , EJB etc. Several modules the spring framework contains are IOC, AOP, DAO, Context, MVC, ORM, web. Advantages of Spring: Predefined Templates Loose Coupling Easy to test Lightweight Fast Development Powerful Abstraction Declarative Support Hibernate Framework: Hibernate framework simplifies the development of java application to interact with the database. It is lightweight, opensource, ORM tool. Advantages of Hibernate: Opensource and lightweight Fast Performance Database Independent Query Automatic Table Creation Simplifies Complex Joins Provides Query statistics and Database Status

Messaging Tools used

HornetQ: ActivemQ: have client apis for the most common languages(C++, Java, python, PHP, .Net, Ruby..) have strong documentation are actively supported Artemis: RabbitmQ: It is one of the leading implementation of AMQP protocol. It implements a broker architecture, meaning that messages are queued on a central node before sent to clients. This approach makes Rabbitmq very easy to use and deploy, because advanced scenarios like routing, load balancing and persistent message queuing are supported in just few lines of code. However it makes it less scalable and slower because central node adds latency and message envelops are quite big. ZeromQ:

Code Review

Code review is systemic examination of computer source code. It is intended to find mistakes overlooked in the initial development phase, improving the overall quality of software. Review are done in various forms such as pair programming, informal walkthroughs and formal inspections. Types: over-the-shoulder pair programming email pass-around tool assisted code review

Java Best practices

in28minutes Java Best practices

Spring Boot Application

Spring Boot is a rapid application development platform. It uses various components of spring, but has additional niceties like the ability to package your application as a runnable jar, which includes an embedded tomcat (or jetty) server. Spring boot is based on spring framework, too and provides the extension configuration on convention model. It reduces the need to write a lot of configuration and boilerplate code. It has an opinionated view on spring platform and third-party libraries so you can get started with minimum effort. Easy to create standalone applications with embedded Tomcat/Jetty. Provides metrics, health checks and externalized configuration.