mardi 29 décembre 2009

Le développement de systèmes d'information




Cet ouvrage met l'emphase sur l'étape d'analyse du système. Des méthodes sont présentées afin d'améliorer les processus d'affaire et de développement du système. Les méthodes employés peuvent être vraiment utile, même si je trouve qu'elles sont souvent sous-utilisés.
Elles prennent tous son sens pour modéliser les processus d'affaires afin de mieux les comprendre et les optimiser.

Plusieurs méthodes pouvant être utilisées par les analystes: étude préliminaire, analyse de besoin, modélisation, normalisation des données... Ce livre permet de bien débuter dans l'analyse des systèmes. De mauvais processus occasionnent un système mal adapté au besoin du client. Le livre commence par présenter des façons de bien analyser les processus existants, les améliorer et créer un système. Beaucoup d'exemples complètent les concepts présentés dans le livre. Les méthodes de travail présentées dans ce livre devraient être appréciées par quiconque devant développer un système.

Le genre de méthodes employés est très intéressante pour les systèmes de gestions.

C'est un livre à livre pour ceux qui veulent améliorer leur analyse informatique. Il m'est jamais été donné d'avoir autant d'exemple sur cette notion dans un livre

samedi 12 décembre 2009

Jouer sous linux


Jouer sous linux

Souvent, linux est pointé du doight lorsqu'il sagit de jeux. Il ne serait pas possible de jouer. Certe, il y a moins de jeux disponible que sous Windows, il reste que des progrès ont été fait. Il y a de plus en plus de jeux propriétaire qui sorte sans compter les jeux libre. La qualité des jeux libre s'améliore sans cesse, mais pour certain ce n'ai pas assez.
Il existe différentes façons de jouer à des jeux conçus pour Windows sous Linux.

Wine

C'est un logiciel capable d'exécuter des applications Windows sous linux. Il y a aucune émulation. Grâce à ce programme il est possible de jouer à divers jeux propriétaire. Leur site liste divers logiciel, jeux qu'il est possible d'utiliser. Il n'est pas toujours évident d'arriver à faire fonctionner un logiciel. Il peut-être nécessaire de mettre les mains dans le caffouis, ce qui n'est pas donné à tout le monde. Ce logiciel est libre et gratuit.

PlayOnLinux

Ce logiciel utilise wine en interne, il permet de grandement facilité l'installation et l'exécution de logiciel et jeux sous linux. Ce logiciel est libre et gratuit.

Codeweavers

Ce logiciel est propriétaire, il utilise lui aussi wine. Il possède tout comme PlayOnLinux, un outils pour rendre l'installation et l'exécution de logicie plus simple.

Cedega

Ce logiciel est propriétaire, il utilise lui aussi wine. Il possède des outils semblabe à Codeweavers . Il est possible de payer par mois.

Machine virtuel

Les machines virtuelles permettent d'exécuter directement Windows. Il existe en autre Vmware et Virtual Box. Il est possible d'activer la 3d. Néanmoins, on se retrouve avec un système entier à charger sous linux ce qui diminue les performances. Un tutoriel est disponible sur ce site pour l'emploi de vmware.
Si vous ne voulez pas garder Windows en double démarrage, mais que vous voulez tout de même jouer à des jeux propriétaires n'existant pas sous linux, il vous reste à choisir une solution parmi-celle cité plus haut. La solution sans frais la plus aisé est d'utilisé PlayOnLinux, si le jeux ne fonctionne pas, vous pouvez tenter d'utiliser les solutions payantes. Elles offrent une démo de leur produit.

Liste de jeux (libre et propriétaire) non complète disponible sous linux

Nom du jeux License Type de jeux Site web
Blob Wars GPL Action http://www.parallelrealities.co.uk
Lugaru Propriétaire Action http://www.wolfire.com/lugaru
OpenLieroX GPL Action worm http://www.openlierox.net/
Boh Propriétaire Action, rétro http://www.bohthegame.com/
Alien Blaster GPL Arcade http://www.schwardtnet.de/alienblaster/
Battle Tanks GPL Arcade http://btanks.sourceforge.net/
Briquolo GPL Arcade http://briquolo.free.fr/fr/infos.html
Chromium B.S.U GPL Arcade http://chromium-bsu.sourceforge.net/
Mole invasion GPL Arcade http://moleinvasion.tuxfamily.org/
Neverball GPL Arcade http://neverball.org/
Ri-li GPL Arcade http://ri-li.sourceforge.net/download.html
Secret Maryo Chronicle GPL Arcade http://www.secretmaryo.org/
Vega Strike GPL Arcade http://vegastrike.sourceforge.net/
Wormux GPL Arcade http://www.wormux.org/phpboost/news/news.php
XMoto GPL Arcade http://xmoto.sourceforge.net/
ManiaDrive GPL Arcade voiture http://maniadrive.raydium.org/
TORCS GPL Arcade voiture http://torcs.sourceforge.net/index.php
I Have No Tomatoes GPL Arcarde http://tomatoes.sourceforge.net/
Briskola GPL Carte http://www.briskola.net/
OpenMortal GPL Combat http://openmortal.sourceforge.net/
Alien Arena Propriétaire FPS http://alienenforcer.com/alienarena/rpa/
AssaultCube Zlib, Propriétaire FPS http://assault.cubers.net
Blood Frontier ZLIB FPS http://www.bloodfrontier.com/
Hexen II GPL FPS http://uhexen2.sourceforge.net/
Nexuiz GPL FPS http://alientrap.org/nexuiz/
Sauerbraten GPL FPS http://sauerbraten.org/
Tremulous GPL FPS http://tremulous.net/
Warsow GPL, Propriétaire FPS cartoon http://www.warsow.net/
Vendetta online Propriétaire Jeux combat aérien MMORPG http://www.vendetta-online.com/
Brunkkon Propriétaire Puzzle http://brukkon-puzzle-game.com/
Fish Fillets NG GPL Puzzle http://fillets.sourceforge.net/
Kiki the nano bot GPL Puzzle http://kiki.sourceforge.net/
Quantz Propriétaire Puzzle http://www.gamerizon.com/
Sacred Gold Propriétaire RPG http://linuxgamepublishing.com/info.php?id=37
Alien Invasion GPL RTS http://ufoai.sourceforge.net/
Glest GPL RTS http://glest.org/en/index.php
Globulation 2 GPL RTS http://globulation2.org
Spring GPL RTS http://springrts.com/
Warzone2100 GPL RTS http://wz2100.net/
FlightGear GPL Simulateur de vol http://www.flightgear.org/Downloads/
LinCity GPL Simulation http://lincity-ng.berlios.de/
Widelands GPL Simulation http://xoops.widelands.org/
Slam Soccer 2006 GPL Sport http://www.bolzplatz2006.de/fr/index.php
Neverputt GPL Sport mini-golf http://neverball.org/
Mad Skills Motocross Propriétaire Sport motocross http://www.madskillsmotocross.com/
Battle for Wesnoth GPL Stratégie http://www.wesnoth.org/
Linéo GPL Stratégie http://www.natsimhan.com/Lineo/
OpenTtd GPL Stratégie http://www.openttd.org/en/news/110

Site web

Jeux Libres

Ce site liste plusieurs jeux disponible sous linux il donne beaucoup d'information sur les jeux. L'avis des gens est disponible.

Achat de jeux: tuxgames

Ce site liste divers jeux disponible sous linux qu'il est possible d'acheter.
Quelques moyens de jouer a des jeux propriétaire sous linux ont été énoncé.

lundi 26 octobre 2009

Bonne pratique du génie logiciel


Bonne pratique du génie logiciel

La complexité des projets informatiques s'est accrue aux fils des problèmes à résoudre. Cette discipline est assez récente, malgré tout, après d'innombrable projets informatiques réussie certaines pratique très importante ont sortie du lot.

Dans cet article, nous allons répertorier une liste de bonne pratique qui peut s'avérer cruciale dans la bonne réussite d'un projet informatique.

Système de gestion de versions

C'est un logiciel qui permet de gérer des fichiers, de connaître les différentes version d'un fichier, de connaître l'historique d'un fichier. Imaginez qu'un vous avez classe nommé Animal au début d'un projet, avec un tous outils vous pouvez sauvegarder chaque changement que vous faite sur cette classe. Vous pouvez revenir en arrière. Vous pouvez savoir qui a fait des modifications sur cette classe.

Les fichiers sont sauvegardé sur un serveur. Plusieurs personne peuvent travailler sur le même fichier.
Il en existe plusieurs sur le marché dont subversion et cvs.

Équipe

Limité le nombre de personne dans une équipe à 3 à 5 personnes. Créer plusieurs équipes au besoin. Affecté des tâches à chacune des équipes et redistribué à au membres des équipes.

Tableau, "White board"

Lors de rencontre, un tableau peut s'avérer très pratique afin de mieux faire comprendre une idée, d'énumérer ses données. De plus une photo peut être prise afin de pouvoir se remémorer une certaine idée.

Documentation

Il est très aisé après plusieurs moi d'oublier et de ne plus comprendre le fonctionnement d'une fonction, classe. Bien documenter son code contribue à diminuer de tel risque. Il ne faut pas oublier de modifier au besoin les commentaires lorsque des modifications sont apporté au code. Si le commentaire n'est plus valide, il peut mettre en erreur le développeur. Ce n'est pas nécessairement le même développeur qui a créer la classe, fonction qui va faire les mises à jour ou faire la maintenance du code.

Une documentation pour l'utilisateur final est aussi très importante, elle permet de diminuer les appels au support technique.

Échéancier

Un échéancier devrait être établie. Ce qu'il doit apporté en terme de fonctionnalité et de correction devrait aussi être déterminé. À chaque mois, 2 mois... une nouvelle révision du système pourrait sortir.

Spécification

Les spécifications devraient pas être écrite par un développeur qui travaillera sur le projet.

Logiciel de suivi de problème

Un logiciel de suivi de problème devrait être mis en place afin de pouvoir connaître les anomalies relié au système, affecter un problème à une ressource du projet.Bugzilla, Mantis, JIRA sont parmi les plus populaires de ce type d'outils.

Performance

Un temps devrait être alloué pour optimiser le système. Par exemple, à la fin de chaque béta, quelques jours, semaine peuvent être consacré à l'optimisation du système.

Revue de code

Une revue de code devrait être fait sur une base régulière. Voir l'article qui est consacré sur le sujet sur ce site.

Test

Des ressources du projets devrait être alloué pour tester le système, des tests unitaires devraient être créé. À chaque nuit, ses tests peuvent être roulé afin de voir si les changements apportés ont créé une régression.

jeudi 18 juin 2009

Conception de bases de données




Ce livre s'adresse aux gens devant concevoir une base de données. Plusieurs exemples sont expliqués afin de mieux cerner les besoins de l'usager, intégrer les règles de gestion et modéliser les données et processus.

Beaucoup de diagrammes et d'illustrations facilitent la compréhension des concepts et méthodes présentés. Les non-initiés apprécieront que les concepts et commandes du SQL soient aussi bien expliqués en détail. Beaucoup de conseils sont donnés par les auteurs.

Le cycle complet de conception de base de données y est présenté, de l'analyse jusqu'à la maintenance. Beaucoup d'exemples sont présentés.

Ceux ayant déjà de très bonne connaissance en SQL trouveront surement ce livre moins utile, mais pourra servir à se remémorer certains principes oubliés

jeudi 14 mai 2009

Revue de code, Peer Code review


Revue de code, Peer Code review

Les erreurs sont omniprésentes dans divers domaines tel la programmation. Il existe cependant divers méthode afin de réduire les problèmes lié au développement. La revue de code est l'une d'entre elle. Elle est une étape cruciale dans le cycle de développement logiciel.

Méthode

Quelques méthodes de revue de code existe. Chacune présente des avantages et des inconvénients selon le type de développement employé.

Analyse par dessus l'épaule (Over the shoulder review)

Deux personnes sont présentes lors de cette personne. L'auteur du code qui dirige et celui qui analyse. Ce derniers, n'est pas nécessairement un informaticien. L'auteur parcourt le code, l'autre peut lui poser des questions, effectuer des traces le faire réfléchir. L'auteur inscrit les problèmes et les fixes après la rencontre. Cette méthode est très simple à mettre en place. Celui qui analyse, peut trouver de la difficulté à comprendre des algorithmes, portions de code plus complexe. Certaine partie de code peut ne pas être analysé. Cette méthode permet d'effectuer un transfert de connaissance.

Envoi d'email

Cette méthode nécessite l'emploi d'un outils de gestion de code source. Lorsqu'un changement a lieu, un courriel est envoyé aux personnes qui doivent analyser le code. Si un problème est décelé, il l'envoie au développeur. Ce derniers vérifie le problème et le corrige. Grâce à ce genre d'outils, tous les changements effectués sont retracables. Cette méthode permet de faire des analyses de code à distance. Les personnes n'ont pas besoin de se rencontrer. Cependant, étant donné la possibilité d'éloignement, l'analyse du code peut être plus longue, car il peut avoir plusieurs échanges entre les personnes.

Programmation en paire (Pair Programming)

Cette méthode de programmation implique que deux personnes soient devant un ordinateur. Un seul tape sur le clavier, mais les deux sont discussion, s'échange des idées. Des statistiques démontrent que cette approche permet de déceler plus d'erreur tout en effectuant un transfert de connaissance entre les participants. Cependant, elle nécessite que deux participant travaillent en commun ce qui coûte plus chère en terme de ressource, temps.

Liste de contrôle (check-list)

D'après plusieurs professionnels du domaine, dont Jason Cochen c'est une des méthodes les plus efficaces. Cette méthode consiste à créer une liste de point à vérifier dans le code. Voici par exemple, quelques points.
  • Est-ce que les cas où un objet peut être nul est vérifié
  • Est-ce que les limites d'un tableau sont bien vérifiés pour ne pas dépasser sa taille
  • Est-ce que les ressources sont bien libérés
  • Est-ce qu'une gestion est faite lorsque des paramètres invalides sont utilisés dans une méthode
  • Est-ce que les méthodes sont bien documentés
  • Est-ce que les algorithmes complexes sont expliqués et justifiés
  • Est-ce que les objets accessibles par plusieurs threads sont seulement accessible via un verrou (lock)
  • Est-ce que les objets sont dupliqués utilement
Cette liste est incomplète, à mesure que vous faites des vérification, vous allez voir des points à ajouter à cette liste.
Un exercice intéressant à faire est d'utiliser cette liste sur notre code et de faire des statistiques. Ainsi, vous pourriez connaître les erreurs que vous faire le plus fréquemment et être d'avantage attentif à ceux là. Si une autre personne vérifie votre code, vous pourriez lui spécifier ses erreurs plus fréquentes. De façon globale, utilisé en entreprise, les erreurs les plus fréquentes seraient ainsi connu.

Avantage

Coût

La découverte d'un problème peut être faite à toute étape du cycle du développement logiciel. Le coût ne sera par contre par le même, s'il est trouvé en phase de maintenant qu'en phase de conception. Plus que le problème sera trouvé tardivement, plus le coût sera élevé. Il faudra trouvé une solution, la testé, effectuer divers test de régression. Le changement peut avoir divers répercussion sur le système en place. Le support technique est ainsi réduit.

Qualité

Utiliser cette approche permet de déceler plus de problème, d'erreur, d'améliorer la robustesse du code. Au final, la qualité du système est ainsi augmenté. L'équipe de développement en sort grandie car ainsi, elle apprend à utiliser les bonnes techniques. En adoptant toujours ces bonnes pratiques, le cycle de développement entre dans une phase d'optimisation, où chaque développement devient de plus en plus de qualité. L'apprentissage d'erreur, permet habituellement de ne plus les refaire.

Outils

Un outils doit être en mesure d'effectuer le plus de tâche possible d'une revue de code. Gérer les fichiers (réception, transmission de fichier), commentaire et défaut pris par les participant. En gérant les fichiers, l'outil doit être en mesure de voir les différentes versions du fichiers. Ainsi, les changements sont aisément décelable. Les commentaires, défaut... doivent être associé au fichier. De cette façon, une conversation entre les participants est plus simple à suivre.

dimanche 16 mars 2008

Netbeans, GWT, GWT-EXT, Struts 2


Netbeans, GWT, GWT-EXT, Struts 2

Dans cet article, nous allons mettre en place un environnement de travail pour créer des applications utilisant GWT. Nous utiliserons Netbeans comme environnement de développement. Nous employerons GWT-Ext afin d'avoir accès à plus de composant et nous ajouterons Struts 2 pour avoir appeler une action.

GWT

GWT, Google Web Tookit est un framework java open source qui permet d'écrire des applications AJAX. Gmail, Google Maps utilisent ce framework. Ce framework permet de faciliter le développement d'application en oubliant les contraintes des navigateurs internet.

GWT-Ext

GWT-Ext est une librarie de composant graphique, elle fait le pont entre GWT et Ext.

Struts

Struts est un framework web pour développer des applications Java.Il permet d'employer l'architecture MVC.

Préparation

Nous utiliserons la version 6 de netbeans, vous pouvez la télécharger à cette adresse http://download.netbeans.org/netbeans/6.0/final/. Sélectionner la version comprenant le pack Web & Java EE.

Plugin gwt4nb

Il existe un plugin de gwt pour netbeans. Il permet de faciliter le développement de gwt sous cet éditeur. Le plugin se nomme gwt4nb. Téléchargez la version la plus récente du plugin à l'adresse https://gwt4nb.dev.java.net/. Ensuite installer le plugin dans netbeans. Démarrer netbeans, cliquer sur Tools, sélectionner Plugins. Cliquer sur l'onglet Downloaded et ensuite cliquer sur Add Plugins. Il vous reste juste à sélectionner le plugins et cliquer sur Install.

Autres librairies

Voici la liste complète des jars que vous allez avoir besoins pour ce projet.

gwt-servlet
gwt-dev-windows
gwt-user
struts2gwtplugin
gwtext
xwork
freemarkervoyage sncf
ognl
struts2-core
commons-collections
commons-logging
commons-loogin-adapters
commons-looging-api

Création du projet

Dans netbeans, cliquer sur File, New Project.Sélectionner la catégorie Web et le projet Web Application.

Ensuite spécifier un nom pour le projet et sélectionner votre serveur. Nous avons employé Tomcat, mais j'ai testé avec jboss et ça fonctionne aussi très bien.

Ensuite, vous devez sélectionner le framework Google Web Framework. Si ce framework n'est pas disponible, c'est que vous n'avez pas installer le plugin gwt4nb. Spécifier aussi l'emplacement d'installation de gwt. Spécifier un nom pour le module.

Si vous pouvez exécuter directement le projet, par défaut, vous devriez avoir une page ressemblant à celle-ci.

Maintenant ajouter les librairies mentionnées plus tôt dans ce projet.
Maintenant il faut ajouter les librairies de Ext à notre projet. Créer un répertoire js sous Web Pages. Sous le js, créer un répertoire ext. Ajouter à ce répertoire, le répertoire adapter, ressources et ext-all.js.

Dans le fichier de module (Main.gwt.xml), il faut ajouter la ligne suivante
 <inherits name='com.gwtext.GwtExt'/>
Le fichier devrait maintenant ressembler à
<?xml version="1.0" encoding="UTF-8"?>
<module>
 <inherits name="com.google.gwt.user.User"/>
        <inherits name='com.gwtext.GwtExt'/>
 <entry-point class="org.yournamehere.client.MainEntryPoint"/>
 
</module>
Maintenant il faut ajouter les fichiers de Ext dans notre page hôte GWT.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta name='gwt:module' content='org.yournamehere.Main=org.yournamehere.Main'>
        <title>Main</title>

        <link rel="stylesheet" type="text/css" href="js/ext/resources/css/ext-all.css"/>
        <link rel="stylesheet" type="text/css" href="js/ext/resources/css/xtheme-aero.css" />
        
        <script type="text/javascript" src="js/ext/adapter/yui/yui-utilities.js"></script>
        <script type="text/javascript" src="js/ext/adapter/yui/ext-yui-adapter.js"></script>
        <script type="text/javascript" src="js/ext/ext-all.js"></script>

    </head>
    <body>
        <script language="javascript" src="org.yournamehere.Main/org.yournamehere.Main.nocache.js"></script>
    </body>
</html>

Partie struts

Maintenant pour la partie struts, nous allons créer une action qu'on nommera HelloWorldAction. Créer un package org.yournamehere.action. Voici le code de la classe.
package org.yournamehere.action;

public class HelloWorldAction {

    public String execute() {
        return "Hello World";
    }
}

Sous le répertoire, Source Packages, créer le fichier struts.xml. Dans ce fichier, copier ce code
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
 <package name="samplepackage" extends="gwt-default">
  <action name="Hello" class="org.yournamehere.action.HelloWorldAction">
   <interceptor-ref name="gwt"/>
  </action>
 </package>
</struts>
Dans le fichier web.xml sou WEB-INF, il faudra rajouter de l'information sur les filters de struts.
<display-name>Struts 2 - Starter</display-name>
    <filter>
        <filter-name>action2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>action2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
Maintenant il faut faire le pont entre la partie client et notre action. La partie serveur étant notre action. Créer les deux interfaces ci-dessous.

MyService

package org.yournamehere.client;
import com.google.gwt.user.client.rpc.RemoteService;

public interface MyService extends RemoteService{
    public String execute();
}

MyServiceAsync

package org.yournamehere.client;
import com.google.gwt.user.client.rpc.AsyncCallback;


public interface MyServiceAsync {
    public void execute(AsyncCallback callback);
}

Appel de l'action

Nous allons maintenant faire l'appel de l'action dans le fichier MainEntryPoint.java. Ce fichier devrait ressembler à
package org.yournamehere.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;


public class MainEntryPoint implements EntryPoint {
    
    /** Creates a new instance of MainEntryPoint */
    public MainEntryPoint() {
    }

    public void onModuleLoad() {
        final Label label = new Label("Hello, GWT!!!");
        final Button button = new Button("Click me!");
        
        button.addClickListener(new ClickListener(){
            public void onClick(Widget w) {
                label.setVisible(!label.isVisible());
            }
        });
        
        RootPanel.get().add(button);
        RootPanel.get().add(label);
    }
    
}
Après l'ajout du code pour appeler notre action, votre code devrait ressembler à
package org.yournamehere.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.widgets.MessageBox;


public class MainEntryPoint implements EntryPoint {
    
    /** Creates a new instance of MainEntryPoint */
    public MainEntryPoint() {
    }
    
    public void onModuleLoad() {
        final Label label = new Label("Hello, GWT!!!");
        final Button button = new Button("Click me!");
        
        button.addClickListener(new ClickListener(){
            public void onClick(Widget w) {
                label.setVisible(!label.isVisible());
                
                callAction();
                
            }
        });
        
        RootPanel.get().add(button);
        RootPanel.get().add(label);
    }
    
    private void callAction() {
        MyServiceAsync service = (MyServiceAsync) GWT.create(MyService.class);
        AsyncCallback callback = new AsyncCallback() {
            public void onSuccess(Object result) {
                MessageBox.alert(result.toString());
            }

            public void onFailure(Throwable caught) {
                MessageBox.alert(caught.toString());
            }
        };
        ServiceDefTarget endpoint = (ServiceDefTarget) service;
        endpoint.setServiceEntryPoint("Hello.action");
        service.execute(callback);
    }
}
Si vous avez bien suivit l'article, lorsque vous appuyez sur le bouton, vous devriez avoir un message.


Nous avons vu comment appelé une action struts 2 dans GWT. Dans l'exemple montré, le bouton employait GWT, mais le message affiché utiliser GWT-Ext. Vous pouvez utiliser les composants de GWT-Ext au lieu de GWT. Un plugin existe pour spring aussi. GWT est une platteforme qui évolue rapidement, il manque encore de documentation surtout pour l'intégration avec d'autre framework.

dimanche 9 décembre 2007

Technique de référencement


Technique de référencement

Être bien positionné dans les moteurs de recherche permet d'augmenter le trafic de son site, accroître son site d'affaire ou bien d'améliorer l'image de sa marque. Le web s'est développé très rapidement  et les algorithmes de recherche des moteurs se sont complexifiés. Nous allons voir quelques méthodes, techniques qui permettent d'améliorer le référencement de son site.

Structurer ses pages

La structuration de ses pages Internet est cruciale afin de faciliter le travail d'indexation des moteurs de recherches. Plusieurs balises html sont préconisées afin d'obtenir le résultat souhaité.
  • description
  • title
  • hx
  • p
  • div
  • ul
  • alt
  • strong
  • em
Le positionnement d'un mot dans une page a de l'importance, plus il est placé tôt, meilleur que c'est pour le référencement.

Nom des url

Il devrait contenir des mots clés similaires au titre, relié au sujet de la page. Apache permet de réécrire l'adresse de votre url. Au lieu d'avoir une url similaire à http://www.laboiteaprog.com/article.php?numero=43?section=1 , il est possible d'obtenir  http://www.laboiteaprog.com/article-43-1-delphi_optimisation

Cette dernière est beaucoup plus significative et permet de cacher la technologie utilisé, elle situe et précise le contexte de la page.

Nom des images

Le nom de l'image devrait contenir des mots reliés à l'image, de plus il faut bien définir la balise alt, même si personne la lie, les moteurs eux l'utilisent.

Contrainte au référencement

  • Éviter de mettre du flash
  • Éviter les frames
  • Faire attention avec les pages dynamiques, limité le nombre de paramètre à 2

Pertinence et popularité des mots

Ce concept est déterminant pour le bon référencement de votre site. Il faut bien identifier les mots clés de votre domaine. Certain moteur tel que Google propose de connaître la popularité des mots recherchés. De cette façon, il est possible de ce concentrer sur les mots importants.
Il ne faut pas oublier les synonymes qui pourraient vous permettre d'être en peloton de tête.Quelques outils en ligne existent afin d'effectuer cette tâche.
En utilisant le même mot dans différentes sections d'une page, nous forçons le moteur à utiliser nos mots clés.
  • titre de la page
  • hx
  • alt
  • p
  • lien, titre de lien
  • liste
Il faut miser sur quelques mot clé par page et essayer de les combiner. Les moteurs de recherchent analysent le texte de différente façon. Le nombre de fois que le mot revient dans la page. Le nombre de fois qu'il revient par rapport au nombre de mot dans la page. Les différentes déclinaisons (majuscule, minuscule, pluriel...) du mot. Il ne faut pas par contre abuser, par exemple utiliser le même mot dans l'url du lien, le nom du lien et dans la balise du titre du lien, car ça pourrait causer l'effet inverse de celui souhaité.

Maintenir son site à jour

Il faut bien maintenir son site web, ajouter du contenu, le modifier car être bien positionné prend du temps.

Échange de lien

C'est l'autre point capitale pour être bien référencé. Il y a différent type d'échange de lien.
  • Lien interne à votre site web
  • Lien entrant et sortant sur un même serveur est pénalisant car c'est détecté comme étant louche
  • Les échanges de lien relié entre eux A -> B -> A ne sont plus pris en compte par Google.
  • Les échanges de lien non relié entre eux A -> B -> C -> A
  • Les site en .org ou .gov sont excellent car ses sites ne sont pas sanctionné par les moteurs de recherche.

Contenu dynamique

Il faut impérativement changer le contenu des zones critiques dans les pages de votre site. Ces zones sont le titre, descripion, nom de page etc. Ces sections devraient être dynamiques. Il est ainsi possible de s'adapter plus aisément.

Outils d'aide

Standard w3c

Le respect des standards web permet de s'assurer que les moteurs de recherche n'auront pas de problème technique à analyser votre site web. Un validateur pour le contenu html et css est disponible.

Générateur de mot clé

Générateur de mot clé adwords

Google Webmestre

Cet outil présente les recherches effectués qui ont permis de faire un clique vers votre site.

Sitemap

Le système de Sitemap aide les moteurs de recherche à l'indexation des pages de votre site. Il est constitué de d'url dans un fichier XML. Ce système est devenu un standard et est utilisé par les ténors du domaine: Google, Yahoo et Microsoft.

Connaître les sites qui ont des liens vers notre site Web

Dans la boîte de navigation de google, il faut inscrire: link:www.laboiteaprog.com
Nous avons vu dans cet article, quelques techniques qui permettent d'être référencé plus efficacement par les moteurs de recherche. Les moyens d'y parvenir exigent de plus en plus de connaissance et de complexité, c'est même devenu un métier très recherché.

Migration d’une application Spring Boot 2.2 vers Spring Boot 4.0 : retour d’expérience concret

 En 2019, nous avons développé une application métier basée sur : Java 8 Spring Boot 2.2.7 Gradle 6.6.1 Thymeleaf Boots...