Devops for Growth
112.1K views | +2 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tag: 'java'. Clear
Scooped by Mickael Ruau
February 11, 2015 5:16 PM
Scoop.it!

Pattern Catalog : Java Application Architecture

Base Patterns

Manage Relationships – Design module relationships.
Module Reuse – Emphasize reusability at the module level.
Cohesive Modules – Module behavior should serve a singular purpose.

Dependency Patterns
Acyclic Relationships – Module relationships must be acyclic.
Levelize Modules – Module relationships should be levelized.
Physical Layers – Module relationships should not violate the conceptual layers.
Container Independence – Modules should be independent of the runtime container.
Independent Deployment – Modules should be independently deployable units. 

Usability Patterns
Published Interface – Make a module’s published interface well known.
External Configuration – Modules should be externally configurable.
Default Implementation – Provide modules with a default implementation.
Module Facade – Create a facade serving as a coarse-grained entry point to to another fine-grained module’s underlying implementation. 

Extensibility Patterns
Abstract Modules – Depend upon the abstract elements of a module.
Implementation Factory – Use factories to create a module’s implementation classes.
Separate Abstractions – Place abstractions and the classes that implement them in separate modules.

Utility Patterns
Collocate Exceptions – Exceptions should be close to the classes that throw them.
Levelized Build – Execute the build in accordance with module levelization.
Test Module – Each module should have a corresponding test module that validates it’s behavior and illustrates it’s usage.

No comment yet.
Scooped by Mickael Ruau
February 11, 2015 5:14 PM
Scoop.it!

5 Class Design Principles

5 Class Design Principles | Devops for Growth | Scoop.it
In this post, I will list down 5 most recommended design principles, you should keep in mind, while writing your classes. These design principles are called SOLID, in short. They also form the best practices to be followed for designing your application classes.

Single Responsibility Principle
Open Closed Principle
Liskov’s Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
No comment yet.
Scooped by Mickael Ruau
February 11, 2015 5:04 PM
Scoop.it!

2. Erreurs et Exceptions

Les erreurs et exceptions sont en fait des objets Java (tout est objet en Java, donc cette phrase n'apporte pas beaucoup d'information). Ces objets appartiennent à des classes qui étendent toutes, directement ou indirectement, la classe Throwable (package java.lang).

Cette classe est immédiatement étendue par deux autres classes : Error pour les erreurs runtime et Exception pour les exceptions. Rappelons que les erreurs runtime sont les exceptions qu'il n'est pas besoin de gérer explicitement, et que les exceptions sont celles que l'on doit gérer.
No comment yet.
Scooped by Mickael Ruau
February 10, 2015 3:57 AM
Scoop.it!

Javadoc Tool Home Page

Javadoc Tool Home Page | Devops for Growth | Scoop.it
Doclets
The standard doclet generates HTML and is built into the Javadoc tool. Other doclets that Java Software has developed are listed here.

Doclet API is an API provided by the Javadoc tool for use by doclets. See Doclet Overview for a basic description and simple examples. (These documents are for version 1.3 of Java 2 SDK, Standard Edition.)
Taglet API is an interface provided for custom formatting the text of Javadoc tags. Taglet Overview for a basic description and simple examples. (These documents are for version 1.5 of Java 2 SDK, Standard Edition.)
MIF Doclet - Want beautiful PDF? This doclet can automate the generation of API documentation in PDF by way of MIF. It also enables you to print directly to a printer. MIF is Adobe FrameMaker's interchange format.
DocCheck Doclet checks doc comments in source files and generates a report listing the errors and irregularities it finds. It is part of the Sun Doc Check Utilities.
Exclude Doclet is a simple wrapper program that enables you to exclude from the generated documentation any public or protected classes (or packages) that you specify. It takes a list of classes in a file and removes them from the RootDoc before delegating execution to the standard doclet.
Doclet Toolkit is an API and implementation for doclets emulating the standard doclet. We plan to release this toolkit hopefully during 2004. More information will be available here and through the Javadoc announce email listed below.
No comment yet.
Scooped by Mickael Ruau
February 9, 2015 3:55 AM
Scoop.it!

Coding Conventions - Eclipsepedia

Oracle's Code Conventions for the Java Programming Language [1] covers filenames, file organization, indentation, comments, declarations, statements, white space, naming conventions, and programming practices. All code written for the Eclipse Platform should follow these conventions except as noted below. We deviate only in places where our needs differ from Oracle's; when we do deviate, we explain why. (The section numbers shown below are Oracle's.)
No comment yet.
Scooped by Mickael Ruau
February 2, 2015 5:03 AM
Scoop.it!

Arquillian · Write Real Tests

Arquillian · Write Real Tests | Devops for Growth | Scoop.it

An innovative testing platform for the Java Virtual Machine (JVM). Open source. Highly extensible.

Mickael Ruau's insight:
No more mocks. No more container lifecycle and deployment hassles. Just real tests!
No comment yet.
Scooped by Mickael Ruau
February 1, 2015 5:40 AM
Scoop.it!

Simplifying ReadWriteLock with Java 8 and lambdas | NoBlogDefFound

Considering legacy Java code, no matter where you look, Java 8 with lambda expressions can definitely improve quality and readability. Today let us look at ReadWriteLock and how we can make using it simpler.
No comment yet.
Scooped by Mickael Ruau
February 1, 2015 5:17 AM
Scoop.it!

What Java 'PACKAGES' Are and How to Use Them

What Java 'PACKAGES' Are and How to Use Them | Devops for Growth | Scoop.it
A package allows a developer to group classes (and interfaces) together. These classes will all be related in some way – they might all be to do with a specific application or perform a specific set of tasks. For example, the Java API is full of packages. One of them is the javax.xml package. It and its subpackages contain all the classes in the Java API to do with handling XML.
Mickael Ruau's insight:

Defining a Package

To group classes into a package each class must have a package statement defined at the top of its .java file. It lets the compiler know which package the class belongs to and must be the first line of code. For example, imagine you're making a simple Battleships game. It makes sense to put all the classes needed in a package called battleships: 

package battleships class GameBoard{ }

Every class with the above package statement at the top will now be part of the Battleships package.

No comment yet.
Scooped by Mickael Ruau
January 27, 2015 3:05 AM
Scoop.it!

Java : correction de 19 vulnérabilités et désactivation de SSL 3.0, il n'y aura plus de mises à jour publiques pour la version 7

Java : correction de 19 vulnérabilités et désactivation de SSL 3.0, il n'y aura plus de mises à jour publiques pour la version 7 | Devops for Growth | Scoop.it
Oracle a publié de nouvelles mises à jour de sécurité pour Java afin de corriger 19 vulnérabilités et désactiver le support par défaut pour SSL 3.0, une version obsolète du protocole de communication sécurisé qui est vulnérable aux attaques.Même si le nombre d'attaques qui exploitent les vulnérabilités de Java a été régulièrement en baisse au cours de la dernière année, les exploits Java restent parmi les principaux vecteurs d'attaque contre les utilisateurs du Web, selon le dernier rapport de s...
No comment yet.
Scooped by Mickael Ruau
December 24, 2014 10:39 AM
Scoop.it!

DbUtils - JDBC Utility Component

DbUtils - JDBC Utility Component | Devops for Growth | Scoop.it

DbUtils is designed to be:

Small - you should be able to understand the whole package in a short amount of time.
Transparent - DbUtils doesn't do any magic behind the scenes. You give it a query, it executes it and cleans up for you.
Fast - You don't need to create a million temporary objects to work with DbUtils.

Mickael Ruau's insight:

DbUtils is not:


An Object/Relational bridge - there are plenty of good O/R tools already. DbUtils is for developers looking to use JDBC without all the mundane pieces.
A Data Access Object (DAO) framework - DbUtils can be used to build a DAO framework though.
An object oriented abstraction of general database objects like a Table, Column, or PrimaryKey.
A heavyweight framework of any kind - the goal here is to be a straightforward and easy to use JDBC helper library.

No comment yet.
Scooped by Mickael Ruau
October 2, 2014 9:04 AM
Scoop.it!

Tout sur la JVM sans jamais avoir osé lui demander en ligne de commande

Tout sur la JVM sans jamais avoir osé lui demander en ligne de commande | Devops for Growth | Scoop.it

javaLes développeurs connaîssent généralement (ou devraient connaître !) les outils graphiques fournis avec le JDK permettant de collecter des informations concernant le comportement et la configuration des machines virtuelles en cours d'exécution. On pourra citer notamment la jconsole: elle est vieille et elle est moche, mais elle fournit moultes informations et surtout une interface permettant d'interagir avec les composants logiciels exposés via l'interface JMX. Java6 a apporté un peu de modernité en intégrant VisualVM. Au delà d'être nettement plus sexy que la jconsole, elle marque une rupture sur deux points : premièrement, son architecture extensible permet d'ajouter des plugins - d'ailleurs si vous ne l'avez pas déjà fait, je vous recommande l'excellent VisualGC disponible sur le VisualVM Plugins Center ; mais le point le plus important à mon sens est qu'un profiler est maintenant fourni avec le JDK. Enfin, depuis peu, nous pouvons utiliser Java Mission Control qui est un utilitaire issu de la synergie entre Hotspot et JRockit.

No comment yet.
Scooped by Mickael Ruau
June 16, 2014 1:40 AM
Scoop.it!

Fluentlenium

Would you like to automate your acceptance tests against multiple browsers and multiple servers? How about make your UI tests run faster? And remove the boiler…
No comment yet.
Scooped by Mickael Ruau
April 27, 2014 6:48 AM
Scoop.it!

List of unit testing frameworks - Wikipedia, the free encyclopedia

List of unit testing frameworks - Wikipedia, the free encyclopedia

Check features a simple interface for defining unit tests, putting little in the way of the developer. Tests are run in a separate process, so Check can catch both assertion failures and code errors that cause segmentation faults or other signals. The output from unit tests can be used within source code editors and IDEs.

No comment yet.
Scooped by Mickael Ruau
February 11, 2015 5:15 PM
Scoop.it!

SOLID Principles of Class Design : Java Application Architecture

The SOLID principles lie at the heart of the object-oriented paradigm. Many of the principles presented here first appeared in Robert Martin’s Design Principles and Design Principles [MARTIN2000], which serves as an excellent complement to this discussion. These principles help you manage dependencies between classes and encourage class cohesion. They are also critical to effective module design using object oriented techniques.
No comment yet.
Scooped by Mickael Ruau
February 11, 2015 5:09 PM
Scoop.it!

Développons en Java - Spring Core

L'inversion de contrôle

L'IoC est un principe abstrait qui définit un motif de conception dans lequel le flux de contrôle d'un système est inversé par rapport à un développement procédural.

L'injection de dépendances est un motif de conception qui propose un mécanisme pour fournir à un composant les dépendances dont il a besoin. C'est une forme particulière d'inversion de contrôle.

L'injection de dépendances permet à une application de déléguer la gestion du cycle de vie de ses dépendances et leurs injections à une autre entité. L'application ne crée pas directement les instances des objets dont elle a besoin : les dépendances d'un objet ne sont pas gérées par l'objet lui-même mais sont gérées et injectées par une entité externe à l'objet.

Dans le cas classique, l'objet invoque le constructeur de ses dépendances pour obtenir les instances requises en utilisant l'opérateur new. Cela induit un couplage fort entre l'objet et sa dépendance. Pour réduire ce couplage, il est possible par exemple de définir une interface et d'utiliser une fabrique pour créer une instance mais cela nécessite beaucoup de code.

Avec le motif de conception IoC, la gestion des objets est confiée à un objet dédié. Celui-ci se charge de créer les instances requises et de les fournir par injection. Cette injection peut concrètement se faire de plusieurs manières :

passer la ou les instances en paramètre du constructeur
fournir l'instance en invoquant le setter d'une propriété
fournir la ou les instances en paramètre de la fabrique invoquée pour créer l'instance
Les classes et les interfaces de base du conteneur Spring sont contenues dans les packages org.springframework.beans et org.springframework.context.

Une configuration permet de définir les objets qui sont gérés par le conteneur, généralement sous la forme d'un fichier XML : les informations fournies permettent au conteneur d'instancier et d'initialiser l'objet et ses dépendances.
No comment yet.
Scooped by Mickael Ruau
February 11, 2015 5:03 PM
Scoop.it!

5. Interfaces

La notion d'interface est absolument centrale en Java, et massivement utilisée dans le design des API du JDK et de JEE. Tout bon développeur Java doit absolument maîtriser ce point parfaitement.

La notion d'interface est utilisée pour représenter des propriétés transverses de classes. Là où une classe abstraite doit être étendue et spécialisée, une interface nous dit juste que telle classe possède telle propriété, indépendamment de ce qu'elle représente. Cette possibilité est massivement utilisée dans les API standard du JDK, et nous en verrons des exemples précis dans la suite.
No comment yet.
Scooped by Mickael Ruau
February 9, 2015 3:56 AM
Scoop.it!

How to Write Doc Comments for the Javadoc Tool

How to Write Doc Comments for the Javadoc Tool | Devops for Growth | Scoop.it
This document describes the style guide, tag and image conventions we use in documentation comments for Java programs written at Java Software, Oracle. It does not rehash related material covered elsewhere:

For reference material on Javadoc tags, see the Javadoc reference pages.
For the required semantic content of documentation comments, see Requirements for Writing Java API Specifications.
Mickael Ruau's insight:

No comment yet.
Scooped by Mickael Ruau
February 5, 2015 3:05 AM
Scoop.it!

Have you noticed java.lang.NullPointerException (NPE)? Try These Best Practices to avoid NPE at Runtime • Crunchify

Have you noticed java.lang.NullPointerException (NPE)? Try These Best Practices to avoid NPE at Runtime • Crunchify | Devops for Growth | Scoop.it
As a Java Developer, I’m sure you must have faced Null Pointer Exception (NPE) starting 1st day. In most of the cases NPE exception shows clear stack trace which pin points the root cause of the same but in case of large Enterprise level Application in which you have hundreds of classes, it becomes nightmare to find out real root cause.
No comment yet.
Scooped by Mickael Ruau
February 1, 2015 6:06 AM
Scoop.it!

How The Decorator Pattern Saved My Day - blog@CodeFX

How The Decorator Pattern Saved My Day - blog@CodeFX | Devops for Growth | Scoop.it
At work I am dealing with a huge Java code base, which was developed over the course of more than 15 years by many different developers. Not all things were done by the books but at the same time I usually don’t have the possibility to refactor every oddity I come across.

Still, steps towards higher code quality can be taken every day. And today was just like that…

Overview

This post does not aim at teaching the decorator pattern as plenty tutorials already exist. Instead, it gives a real life example of how it came in handy and saved the day.

Contents [hide]
The Situation
The Solution With One Configurable Class
The Solution With Inheritance
The Change
Decorator Pattern To The Rescue
The Decorator Pattern
In Action
The Effect
Reflection
Mickael Ruau's insight:
The Situation

Our UI hosts Swing’s JEditorPanes, which are used to display HTML. Interaction with the various links (like hovering and clicking) triggers one or more of these responses:

  1. logging the event
  2. changing the cursor
    (something the JEditorPane already does on its own; seemingly since May 2000 – what the …?!)
  3. updating the pane with the linked content
  4. opening an external browser
  5. opening an external application
  6. handling an internal service request

These responses are not the same for all panes. There are several of them with partly different needs. (If you know the decorator pattern, you see where this is going.)

So the question is: How do you implement these responses?

No comment yet.
Scooped by Mickael Ruau
February 1, 2015 5:32 AM
Scoop.it!

Java Coding Conventions considered harmful | Java Code Geeks

Java Coding Conventions considered harmful | Java Code Geeks | Devops for Growth | Scoop.it
There is an official Code Conventions for the Java Programming Language guide published on Oracle site. You would expect this 20+ pages document to be the most complete, comprehensive and authoritative source of good practices, hints and tips with regards to the Java language. But once you start to read it, disappointment followed by frustration and anger increases. I would like to point out the most obvious mistakes, bad practices, poor and outdated advices given in this guide. In case you are a Java beginner, just forget about this tutorial and look for better and more up-to-date reference materials. Let the horror begin!
No comment yet.
Scooped by Mickael Ruau
January 29, 2015 3:07 AM
Scoop.it!

Un pour cent des bugs signalés ont été exploités, Silverlight et Apache de plus en plus visés par les pirates selon le rapport de sécurité de Cisco

Un pour cent des bugs signalés ont été exploités, Silverlight et Apache de plus en plus visés par les pirates selon le rapport de sécurité de Cisco | Devops for Growth | Scoop.it
En ce qui concerne les logiciels vecteurs d'attaques, les pirates ont de moins en moins exploité les failles de sécurité dans Java au cours de l'année 2014 - une seule vulnérabilité Java fait partie du Top 10 des vecteurs d'attaque de la liste de Cisco.
L'exploitation de Java a été en baisse grâce à de meilleurs correctifs de sécurité automatiques sur les versions modernes de Java, mais aussi au fait que les attaquants ont essayé de nouvelles choses, selon Cisco.

Les bugs de Heartbleed et Shellshock ont été les plus exploités de la liste de Cisco. Flash et Internet Explorer sont aussi des cibles populaires, mais il y a un intérêt croissant pour Apache Struts Framework, et les attaques de Silverlight ont augmenté de 200% sur l'année, selon le rapport.
No comment yet.
Scooped by Mickael Ruau
January 4, 2015 3:28 PM
Scoop.it!

Secure Coding Guidelines | Java J2EEBrain

Secure Coding Guidelines Security plays a critical role in the implementation of business operations based on any new technologies. 

Mickael Ruau's insight:

The general  Coding Guidelines that needs to be followed are:

  • Assume nothing on user input.
  • Formulate validation criteria for all user input.
  • Enforce the validation criteria on all user input.
  • Validate the data on a trusted machine (the server).
  • Trust only what you validated.
  • Use multiple-tier validations.
  • Only data known to be good is allowed into the system
  • Unknown, unrecognized or evil data is rejected.


- See more at: http://www.j2eebrain.com/java-J2ee-secure-coding-guidelines.html#sthash.Ol9kQw0i.dpuf

No comment yet.
Scooped by Mickael Ruau
December 15, 2014 4:44 AM
Scoop.it!

Bien choisir son serveur de message

Bien choisir son serveur de message | Devops for Growth | Scoop.it
Déporter l’envoi d’un mail, notifier des applications tierces, synchroniser des caches distribués, transférer des logs, communiquer entre des portables… On ne compte pas les cas d’utilisation d’un serveur de message. Pourtant c’est souvent un outil mal appréhendé.
No comment yet.
Scooped by Mickael Ruau
June 20, 2014 8:10 AM
Scoop.it!

Tutoriel pour développer un batch Java avec EasyBatch en moins de 5 minutes

Tutoriel pour développer un batch Java avec EasyBatch en moins de 5 minutes | Devops for Growth | Scoop.it

Easy Batch est un framework qui permet de faciliter le développement d'application de type batch en Java. 

Mickael Ruau's insight:

L'idée du framework est de décharger le développeur des tâches fastidieuses (lecture des données, leur filtrage, leur parsing, leur mapping à des objets du domaine et leur validation) et de le laisser se concentrer sur la logique métier de son application. 

No comment yet.
Scooped by Mickael Ruau
June 15, 2014 8:46 AM
Scoop.it!

Java Coding guidelines

Secure Coding Guidelines for the Java Programming Language, Version 4.0
Mickael Ruau's insight:


No comment yet.