Bonnes Pratiques Web & Cloud
58.8K views | +4 today
Bonnes Pratiques Web & Cloud
Administration cloud et développement web
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
Scoop.it!

Vulnerability Affecting Multiple Log4j Versions Permits RCE Exploit

Vulnerability Affecting Multiple Log4j Versions Permits RCE Exploit | Bonnes Pratiques Web & Cloud | Scoop.it


Gunnar Morling, open source software engineer at Red Hat, has provided an example of a Maven Enforcer rule to ban any future usage of vulnerable log4j version in a project's source code. Hotari has provided a Log4Shell mitigation tester. Several individuals and organizations have also provided patches, such as Cybereason, although due diligence should be conducted before applying any of these community fixes.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

�� � � Le PHP moderne est beau et productif � �� �

�� � � Le PHP moderne est beau et productif � �� � | Bonnes Pratiques Web & Cloud | Scoop.it


Pour commencer, permettez-moi de vous raconter mon expérience de développement et l'expérience des outils dans d'autres langues, afin que vous compreniez à quoi je compare.



Python En ce qui concerne les projets en python (le plus souvent dans Django), nous obtenons une plate-forme qui vous permet de créer facilement et simplement des fonctionnalités, de créer des serveurs rest-api, d'effectuer un partage de système, etc. La logique du cadre est très claire et simple. Même un développeur complètement vert peut, en quelques heures, noter un petit blozik avec un panneau d'administration. De plus, la documentation Django est l'une des plus haute qualité que j'ai vu. À tout cela, du sucre de syntaxe python est ajouté, ce qui aide à implémenter certains modèles de manière assez élégante. Si nous passons de Django à Tornado / aiohtpp / Twisted / Flask, etc., alors la douleur commence, car le code en eux est beaucoup plus désagréable que dans Django.



Java Si nous parlons de Java, par exemple, Spring, alors ce sont des systèmes qui causent des douleurs anales car ils vous obligent à configurer tout ce qui peut être configuré. Le seuil d'entrée est très élevé, un grand nombre de nuances que vous devez garder à l'esprit, plus la syntaxe Java elle-même vous oblige à écrire des constructions très volumineuses (vrai pour tous les projets dans le sixième Java). Mais en récompense, nous obtenons des systèmes très fiables et flexibles auxquels plus d'une douzaine de programmeurs peuvent survivre avec des mains très médiocres.



Quant à PHP


Avant de commencer le travail, j'ai lu un livre: Matt Zandra - Objets PHP, modèles et techniques de programmation, et je me suis assuré que PHP, en général, sans aucune douleur particulière, vous permet d'implémenter certains modèles de développement. C'est-à-dire en PHP, vous pouvez écrire le code correct, qui ne diffère pas beaucoup de ce que nous obtenons en Python / Java.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

97 Things Every Java Programmer Should Know - DZone Web Dev

97 Things Every Java Programmer Should Know - DZone Web Dev | Bonnes Pratiques Web & Cloud | Scoop.it


The classic Java is very verbose. The language is now very different. If you look at the language from a linguistics point of view, it almost contradicts all of its original design aims in terms of its syntax. It was originally supposed to be incredibly explicit about everything: minimal conversions, minimal surprise, minimal extra stuff put in by the compiler. These days, honestly, everything's deduced, which is the polar opposite. And you can see codes collide in these two eras.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

How To Develop and Build Next.js App with Java Backend | by Bhargav Bachina | Bachina Labs

How To Develop and Build Next.js App with Java Backend | by Bhargav Bachina | Bachina Labs | Bonnes Pratiques Web & Cloud | Scoop.it
There are so many ways we can build Next.js apps and ship them for production. One way is to build the Next app with NodeJS or Java and another way is to build the Next and serve that static content with NGINX web server. With Java we have to deal with the server code as well, for example, you need to load the index.html page with java.

In this post, we will see the details and implementation with Java. We will go through step by step with an example.

Introduction
Prerequisites
Example Project
How To Build and Develop The Project
How To Build For Production
Summary
Conclusion
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Spring DAO — Documentation Java ORM / Spring

Spring DAO — Documentation Java ORM / Spring | Bonnes Pratiques Web & Cloud | Scoop.it


DAO (Data Access Object) est une responsabilité qui est souvent utilisée dans les applications d’entreprise. Dans le code source d’une application, on peut trouver des classes nommées UserDao, ProducDao… Ce suffixe « Dao » dénote que la classe a pour responsabilité d’accéder au système d’information pour lire ou modifier des données. Comme la plupart des applications d’entreprise stockent leurs données dans une base de données, les classes DAO sont donc les classes qui contiennent le code qui permet d’échanger des informations avec la base de données. En Java, selon la technologie utilisée, il peut s’agir des classes qui utilisent l’API JDBC ou JPA par exemple.

Le module Spring Data Access reprend ce principe d’architecture en cherchant à simplifier l’intégration et l’implémentation des interactions avec les bases de données.
Mickael Ruau's insight:

L’annotation @Repository

Le Spring Framework fournit des stéréotypes pour marquer le rôle des classes. Le stéréotype le plus général est défini par l’annotation @Component. Il est également possible d’utiliser l’annotation @Repository pour indiquer qu’une classe sert de point d’accès à un mécanisme de stockage et de recherche d’une collection d’objets. La notion de repository vient de l’ouvrage de Eric Evans (Domain Driven Development).

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

StaGen | Jamstack

StaGen | Jamstack | Bonnes Pratiques Web & Cloud | Scoop.it
Language:
Java
License:
Apache-2.0
Templates:
StringTemplate

StaGen is the static site generator behind WizTools.org.

StaGen is written in Java 8, and supports:

Markdown for content.
StringTemplate 4 for templating.
JSON for storing configuration.

Read the tutorial.
Extensible

At the core of StaGen engine, Guice is used for wiring the implementations with the interfaces. StaGen can be easily extended to support any new format.
Deliberately Minimalist

This static site generator was developed for maintaining a site like WizTools.org. This is best suited for sites that have few pages generated out of few templates. We do not support themes or blog-like-static-pages. Of course, by nature of flexibility of StaGen, support for themes and blogs can be easily hacked into a StaGen site.

Read the tutorial to get started.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

pawandubey/griffin: speedy and simplistic static site generator.

pawandubey/griffin: speedy and simplistic static site generator. | Bonnes Pratiques Web & Cloud | Scoop.it

Griffin is a very small, convenient, and extremely fast static site generator. Griffin takes an opinionated approach to static site generation, making some decisions for you to ensure that you get the best performance possible without any need for complex command line fu. See usage demo below.

See the Wiki for more information.

Mickael Ruau's insight:

Installation

Grab the zip for the latest release and unzip it somewhere. Add the bin folder of the unzipped location to your PATH environment variable. run griffin --version to check everything is working fine.

 

Usage

Griffin is sub command based like git, svn etc. Each command is documented well.

griffin [subcommand] [options..] [arguments...]

However there are only three subcommands for three scenarios

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

How To Use an API with Java (Java API Tutorial For Beginners)

How To Use an API with Java (Java API Tutorial For Beginners) | Bonnes Pratiques Web & Cloud | Scoop.it
In this article, we will talk about the best technology of the interaction between software and test it on the most popular language for creating software This is a tough question so we'll divide it into a few parts
Mickael Ruau's insight:

Before we get started, we’ll need to find an easy API to test. Sometimes it is difficult to find free and useful API for testing purposes. At RapidAPI, you’ll find over 10,000 APIs to test and connect with. Here you can test your programming skills, build useful apps, and even create your own APIs.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

We Should Write Java Code Differently - DZone Java

We Should Write Java Code Differently - DZone Java | Bonnes Pratiques Web & Cloud | Scoop.it
For the last few years, I’m writing articles that describe a new, more functional way to write Java code. But the question of why we should use this new coding style remains largely unanswered. This article is an attempt to fill this gap.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Java & SQL, Stronger Together

Key takeaways:

  • Software layers make many tasks easier but don’t expose 100% of the lower layers functionality.

  • What is the right level of abstraction for any given problem?

  • The ORM-cycle: Load data into application, change it there, store changes.

  • Pattern #1: Whenever the cycle is broken, ORM might not be the right layer for this task. Example: Lists.

  • SQL has evolved beyond the relational idea. Recursion is an example for a non-relational operation that can traverse graphs like adjacency lists.

  • We can use native SQL to efficiently load required entities into the persistence context prior to running the actual business logic.

  • If the actual business logic needs an entity that is already in the persistence context, it doesn’t need to run a query to fetch it.

  • Pattern #2: Searching & pre-loading entities with modern SQL can be much more efficient than loading them individually when accessing them.

Mickael Ruau's insight:

The (updated) slides are available as PDF download (10MB), the recording is also available at Vimeo.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Différence entre une interface et une classe abstraite en Java

Différence entre une interface et une classe abstraite en Java | Bonnes Pratiques Web & Cloud | Scoop.it
Quelle est la différence entre une interface et une classe abstraite? Les deux sont utilisées pour réaliser l’abstraction où nous
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

JBake - Java based open source static site/blog generator

JBake - Java based open source static site/blog generator | Bonnes Pratiques Web & Cloud | Scoop.it
JBake is a Java based, open source, static site/blog generator for developers.
Mickael Ruau's insight:

Get started with just 5 commands

The following 5 commands will install the latest version of JBake and get you started with a simple static site you can work with.

$ curl -s "https://get.sdkman.io" | bash $ sdk install jbake $ mkdir awesome-jbake && cd awesome-jbake $ jbake -i $ jbake -b -s

Then browse to http://localhost:8820 in your web browser to see your static site

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Introduction

Introduction | Bonnes Pratiques Web & Cloud | Scoop.it
Ce tutoriel, en plusieures parties, est une introduction au langage Kotlin. Ici nous verrons notamment les avantages du langage.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

amertum/adresse-postale: API de la norme AFNOR XP Z 10-011 de mai 1997 du format d'adresse postale français. Interface et implementation de base en java

amertum/adresse-postale: API de la norme AFNOR XP Z 10-011 de mai 1997 du format d'adresse postale français. Interface et implementation de base en java | Bonnes Pratiques Web & Cloud | Scoop.it
API de la norme AFNOR XP Z 10-011 de mai 1997 du format d'adresse postale français. Interface et implementation de base en java - GitHub - amertum/adresse-postale: API de la norme AFNOR XP Z 10-011 de mai 1997 du format d'adresse postale français. Interface et implementation de base en java
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Hibernate: The Silver Bullet | Toptal

Hibernate: The Silver Bullet | Toptal | Bonnes Pratiques Web & Cloud | Scoop.it


Data is the central purpose of the application and, like it or not, affects the entire architecture. As we learned from the story, do not use Hibernate just because your Java application is using a database or because of social proof. Pick a solution that embraces flexibility. There are plenty of options for robust JDBC wrappers, such as JdbcTemplate or Fluent JDBC Wrapper. Alternatively, there are other powerful solutions, such as jOOQ.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Why Is Char Array Preferred Over Strings - DZone Web Dev

Why Is Char Array Preferred Over Strings - DZone Web Dev | Bonnes Pratiques Web & Cloud | Scoop.it
Why Is a String Not Suitable for Password Storing?

It may seem logical and more accessible for Java developers to store a password in a string than a char array. It will pose a significant security risk, and you cannot change the content after using it. In other words, when using a string object to store the passwords, until the garbage collector clears it, it will be impossible to remove the password. For this reason, the spring’s immutable property makes it unsafe to store the passwords.
Why Is Character Array Preferred?

A Java development company will use Array so that they can collect and preserve sensitive data and information. Unlike string, it has mutable data structures that you can clear instantly after using it, and the good thing is that the password will not leave any traces in the application, even before collecting the garbage.

In other words, a character array is more invulnerable than a string, even if it only decreases the chances of attacks.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

final (Java) — Wikipédia

final (Java) - Wikipédia

En langage Java, le mot-clé final indique qu'un élément ne peut être changé dans la suite du programme. Il peut s'appliquer aux méthodes et attributs d'une classe et à la classe elle-même. Aussi, il peut s'appliquer sur les paramètres d'une méthode et sur les variables locales.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Griffin | Jamstack

Griffin | Jamstack | Bonnes Pratiques Web & Cloud | Scoop.it
Language:
Java
License:
Apache-2.0
Templates:
Handlebars

Griffin is an extremely fast and simple static site generator. Griffin is simple, not feature-less.
What do you get with Griffin?

Blazing fast speed. Generate ~5000 posts in under 10 seconds.
A fully blog aware static site generator
Taxonomy with tags
Extremely simple theming with handlebars
Pagination
Live preview
Syntax Highlighting
Social media and Disqus support
Extremely small size at just ~6 Mb.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

igapyonv3 | Jamstack

igapyonv3 | Jamstack | Bonnes Pratiques Web & Cloud | Scoop.it
Language:
Java
License:
Apache-2.0
Templates:
Freemarker

igapyonv3 is a Java based open source static site/blog generator for developers.

Lightweight and turn-key static site/blog generator.
Provided as a Maven Plugin.
Supports Markdown content.
RSS feed support.
Freemarker and igapyonv3's additional diary directive support.
Convert markdown into Bootstrap based HTML.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

jssg | Jamstack

jssg | Jamstack | Bonnes Pratiques Web & Cloud | Scoop.it
https://github.com/agrison/jssg
Repository
agrison/jssg

Language:
Java
License:
MIT
Templates:
Freemarker

Jssg is a simple static site generator like Jekyll, written in Java.

Supports Markdown, Textile and good HTML formatted content.
Freemarker based templates.
Syntax Highlighting through the use of Pygments, fallbacking to Jygments if unavailable.
Fast generation.
Bundled with a local server with auto-refresh on save.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

JAVA - J2EE CLASSROOM

All about Java and Java Enterprise Web Application
Mickael Ruau's insight:

INTERVIEW QUESTIONS‎ > ‎

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Design Patterns for Microservices - Examples Java Code Geeks - 2021

Design Patterns for Microservices - Examples Java Code Geeks - 2021 | Bonnes Pratiques Web & Cloud | Scoop.it
Welcome readers, in this tutorial, we will learn the basics of different design patterns under the Microservices architecture. You can also check a
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Développons en Java - Des normes de développement

Le but de ce chapitre est de proposer un ensemble de conventions et de règles pour faciliter la compréhension et donc la maintenance du code.

Ces règles ne sont pas à suivre explicitement à la lettre : elles sont uniquement présentées pour inciter les développeurs à définir et à utiliser des règles dans la réalisation du code surtout dans le cadre d'un travail en équipe. Les règles proposées sont celles couramment utilisées. Il n'existe cependant pas de règle absolue et chacun pourra utiliser tout ou partie des règles proposées.

Mickael Ruau's insight:

Le contenu de ce document est largement inspiré par les conventions de codage historiquement proposées par Sun.

Ce chapitre contient plusieurs sections :

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Introduction Au Reflectionless : Découvrez La Nouvelle Tendance Dans Le Monde Java

Introduction Au Reflectionless : Découvrez La Nouvelle Tendance Dans Le Monde Java | Bonnes Pratiques Web & Cloud | Scoop.it
La Reflection est l'un des outils les plus utilisés pour créer des frameworks dans le monde Java, cependant, l'initialisation de l'application et la consommation initiale élevée de mémoire, peut être un grand défi pour certaines applications, telles que le serverless. Apprenez-en davantage sur la nouvelle tendance des frameworks sans réflexion et apprenez à créer les vôtres.
Mickael Ruau's insight:

En bref, l'approche de réflexion pose un problème à la fois dans la consommation de mémoire initiale et dans le délai de démarrage de l'application. En effet, le traitement des données, des analyses et des parseurs est effectué dès le démarrage d'une application. La consommation de mémoire et d'exécution a tendance à augmenter à mesure que le nombre de classes augmente. C'est l'une des raisons qui a poussé Graeme Rocher à donner une conférence expliquant le problème de la réflexion et comment elle a inspiré la création de Micronaut.

 

Une solution aux problèmes est de faire effectuer ces opérations aux frameworks au moment de la compilation, au lieu d'être au moment de l'exécution, apportant les avantages suivants :

  • Les métadonnées et les structures seront prêtes au démarrage de l'application, on peut imaginer ici un espèce de cache;
  • Il n'est pas nécessaire d'appeler les classes de réflexion, parmi lesquelles ReflectionData, réduisant ainsi la consommation de mémoire au démarrage;

Un autre point pour éviter la réflexion est le fait que nous pouvons utiliser beaucoup plus facilement AoT et également créer du code natif via GraalVM, une possibilité très intéressante, en particulier pour le concept serverless, car le programme a tendance à s'exécuter une fois, puis à renvoyer toute la ressource au système opérateur.

Certes, il existe plusieurs mythes autour d'Ahead of Time, après tout, comme tout choix, il y a certains compromis. C'est pourquoi Steve Millidge a écrit un article brillant sur le sujet.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Comment ne plus avoir de NullPointerException en Java ? | OCTO Talks !

Comment ne plus avoir de NullPointerException en Java ? | OCTO Talks ! | Bonnes Pratiques Web & Cloud | Scoop.it

NullPointerException : l’erreur la plus courante dans un programme Java. On est tous à un moment ou à un autre tombé sur cette exception. Malheureusement, ce n’est qu’en production à 4h du matin qu’elle arrive. On corrige donc le bug suivant :

MonObjet monObjet = null; … monObjet.maMethode(); // => NullPointerException

Par un rapide :

if(monObjet != null) { monObjet.maMethode(); }

Ce correctif est tout à fait honorable, mais pourquoi ne pas essayer de ne plus avoir aucune exception de ce type ?

Il existe plusieurs méthodes validées par le compilateur pour l’éviter, et donc avant la mise en production. Aucune n’est nouvelle, certaines controversés, mais elles sont toutes étudiées dans la suite de cet article.

No comment yet.