Lahlali Issam

Subscribe to Lahlali Issam: eMailAlertsEmail Alerts
Get Lahlali Issam: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Top Stories by Lahlali Issam

Robert C.Martin wrote an interesting article about a set of metrics that can be used to measure the quality of an object-oriented design in terms of the interdependence between the subsystems of that design. Here's from the article what he said about the interdependence between modules: What is it that makes a design rigid, fragile and difficult to reuse. It is the interdependence of the subsystems within that design. A design is rigid if it cannot be easily changed. Such rigidity is due to the fact that a single change to heavily interdependent software begins a cascade of changes in dependent modules. When the extent of that cascade of change cannot be predicted by the designers or maintainers the impact of the change cannot be estimated. This makes the cost of the change impossible to estimate. Managers, faced with such unpredictability, become reluctant to autho... (more)

Spring: The Art of Using GRASP Patterns

When we searched for design pattern articles, we found documentation concerning "Gang of Four" patterns. They are very useful and contribute to a well-designed application. But when I discovered GRASP principles , I advised any one interested to improve his skills design to look at these principles. It gives the fundamental rules of design. In this article we will discover some GRASP principles used by Spring, and the advantages of using them. Spring is one of the most popular application developement framework for entreprise Java. The Spring Framework does not impose any specific... (more)

Exploit the Results of Pmd, Findbugs and CheckStyle

Many Java static analysis tools exist right here, each one focusing on a specific area and each one has its advantages, we can enumerate: Pmd which is a static rule-set based Java source code analyzer that identifies potential problems like: Possible bugs—Empty try/catch/finally/switch blocks. Dead code—Unused local variables, parameters and private methods. Empty if/while statements. Overcomplicated expressions—Unnecessary if statements, for loops that could be while loops. Suboptimal code—Wasteful String/StringBuffer usage. FindBugs which looks for bugs in Java code. It uses s... (more)

Five Years Waiting for JRE 7: Is It Justified? (Part 1)

JRE 6 was released in 2006, five years after a major JRE version was released. For the past few years Java was looking stagnant, and many Java developers began to worry; this concern was amplified when Oracle purchased Sun. We will try to discover if there's a big refactoring or maybe many features were added that can explain the time span between these two releases. In this first part we will focus on design and implementation changes, and the second part will focus on added features and breaking changes. With JavaDepend we can compare two versions and detect any modifications ... (more)

Lessons to Learn from the Hibernate Core Implementation

Hibernate is an open source Java persistence framework project. Perform powerful object relational mapping and query databases using HQL and SQL. In general the widely used libraries are well designed and implemented, and it's very interesting to learn from them some coding best practices. Let's take a look inside the hibernate core library and discover some of its design keys. In this post Hibernate Core is analyzed by JArchitect to go deep inside its design and implementation. Package by Feature Package-by-feature uses packages to reflect the feature set. It places all items re... (more)