Articles taggés ‘développement

20
mai
08

Interactions d’une méthode en Java

En java – comme la plupart des langages – il est très important de bien maîtriser les différents résultats d’une méthode.

De primes abord rien ne parraît plus trivial puisque la méthode déclare le type du paramètre retourné comme dans ce cas de figure :

public int ajouter (int a, int b)

Cependant, ça se corse un peu dès lors qu’on retourne un objet :

public String getParticipantName (int participantId)

En effet ce cas de figure peut retourner le nom du participant sous forme d’un objet String mais il peut également retourner null si aucun participant ne correspond à l’id donné en param.

Dans ce cas, il faudra tester obligatoirement que le résultat est différent de null avant de faire une quelconque opération dessus. Pour le développeur, de la méthode, retourner null signifie “je n’ai pas trouvé” ce qu’on me demande et me parraît être une valeur plus adéquat qu’une chaîne vide.

Si l’objet retourné est un tableau :

public ArrayList getParticipants(int epreuveId)

Dans ce cas de figure, je conseillerais au développeur implémentant cette méthode de retourner dans tous les cas un tableau même si celui-ci est vide. Ce qui signifierait texto : voici la liste demandée, elle est vide, plutôt que je n’ai rien à retourner. (dans ce cas je me demande s’il ne faudrait pas retourner la liste vide si c’est le cas et null dans le cas où on se rend compte que l’epreuveId est incohérent ?).

En tout état de cause lorsqu’on parcourera ensuite la variable retournée, on n’aura pas la mauvaise surprise de déclencher un NullPointerException.

Cas des RuntimeException :

private int divise (int a, int b)

La division pose un problème bien connu : celui de la division par 0. Cependant on peut imaginer – vu que la méthode est privée – qu’avant d’utiliser cette méthode, on aura au préalable géré les pré-conditions à son appel. Dans ce cas le développeur ne veut pas avoir a gérer un try catch alors qu’il sait que les paramètres sont déjà vérifiés. Toutefois si notre méthode divise venait à être utilisée dans le cas interdit, il faudrait lever une exception de type RuntimeException. Cette Exception ne nécessite pas d’être déclarée mais pourra cependant signaler la mauvaise utilisation de la méthode.

Cas des Exceptions :

public int divise (int a, int b) throws Exception

Ici, notre méthode devra pouvoir lever une Exception dans le cas où il y aurait une division par 0. En effet cette méthode est visible par tout le monde et on ne sera pas certain que tout ses utilisateurs auront vérifié les pré-conditions à son utilisation. La seule issue possible est le déclenchement de l’exception adéquate que l’utilisateur de la méthode devra obligatoirement prendre en compte.

Cas des arguments modifiés par référence :

public void removeTokensFromString(String stringToParse, String tokenToBeRemoved)

Imaginons que cette fonction doive parser la chaine “stringToParse” afin d’enlever toutes les occurences de “tokenToBeRemoved”, dans cas cas là certains développeurs n’hésitent pas à utiliser la possibilité du passage par référence pour manipuler directement le contenu de stringToParse.

Je reste persuadé qu’il faudra toujours préférer écrire ce genre de fonction de la manière suivante :

public String removeTokensFromString(String stringToParse, String tokenToBeRemoved)

et l’utiliser de la façon suivante:

String chaineToParse = “les avions sont dans le ciel bleu”;

chaineToParse = removeTokensFromString(chaineToPars, “bleu”);

plutôt que la première méthode qui s’écrirait :

String chaineToParse = “les avions sont dans le ciel bleu”;

removeTokensFromString(chaineToPars, “bleu”);

Voyez-vous des cas où cette deuxième façon d’écrire pourrait ne pas être appliquée ?

Quoiqu’il en soit l’utilisation et l’implémentation d’une méthode en java peut avoir maintes et maintes interractions sur l’exécution logique de votre code, il est donc primordial d’avoir conscience de tous ces principes.

13
jan
06

Developpez.tv on air

Je me dois de relayer cette excellente nouvelle qui atterit à l’instant dans ma boite mail :
le site développez.com met en ligne sur le site dédié : developpez.tv quelques vidéos de séminaires à l’attention des développeurs.

Pour ma part, j’avoue que ce genre de manifestation n’est pas de la poudre aux yeux et qu’elles préfigurent souvent les nouveautés en matière de développement. Malheureusement, ce n’est pas toujours facile d’obtenir une journée auprès de sa direction pour y participer.
Du coup on pourra désormais télécharger les vidéos des moments qui nous intéressent le plus et les visionner au moment qui nous parraitra le plus opportun.

Sont dispo actuellement :

  • Sun Desktop Java : Autour de Java et du Desktop. (25 vidéos)
  • Microsoft DevDay 2005 : Dotnet, Visual Studio 2005, SQL-Server 2005… (5 videos)
  • Le séminaire Microsoft sur l’accès aux données (6 vidéos)
  • A venir : Le Séminaire du lancement de Borland Delphi 2006

Pour ma part, j’ai “zieuté” avec attention les nouveautés de java desktop proposées par Romain GUY et ça vaut le détour.

05
oct
05

Les bon outils (Venkman)

FirefoxEn ces temps troubles où la polémique gronde, je propose d’oublier un instant Web2.0 afin de revenir à l’essentiel.

Et l’essentiel en développement web que ce soit en prog server (PHP, ASP, Java etc …) ou en prog client (Action Script, Javascript), c’est d’avoir les bons outils.
Pour ma part, j’utilise PHPEdit lorsque je travaille sur Copix et Scite lorsque je travaille sur les autres projets du boulot (ne cherchez pas c’est une simple question de license).

Mais dès lors qu’il s’agit de Javascript, j’avoue que Venkman est un outil terriblement efficace pour debuguer ! On peut ajouter des points d’arret, des espions etc… en tout cas c’est terriblement pratique et ça permet de revenir à l’essentiel.

19
juil
05

AJAX quelques compléments

Allez, je vous fait un petit retour d’expérience en quelques liens rapides :

  • Tout d’abord Le wiki Ajax pattern.org, tout n’est pas développé mais c’est une très bonne piste de départ
  • La page d’OpenWeb sur l’objet XMLHttpRequest
  • Un article du journal du net sur la façon de rendre la techno Ajax non obstrusive
  • Le lien vers la DOM scripting task force qui au travers d’un blog vous présente les concepts à savoir pour bien utiliser le DOM avec javascript sans rendre le code obstrusif (là je me rends compte que je n’ai jamais utilisé autant de fois le mot obstrusif)

Enfin voilà, maintenant AJAX c’est no-problemo… j’allais oublier un dernier truc important quand on fait du AJAX avec IE il faut faire super attention de bien définir le content-type (text/xml) dans l’en-tête http du doc envoyé, sans quoi IE ne le concidèrerait pas comme du XML




RSS Mon microblogging …

  • Le CEA affirme que les mobiles peuvent être transformés en micro espion activables à distance décembre 2, 2009
    Faut-il bannir nos chers compagnons des réunions de travail sensibles ? Le risque existe-t-il vraiment ?
  • Récupérer la chaleur d'une véranda novembre 26, 2009
    Le chauffage coûte cher, c'est un fait. Pourtant tout propriétaire de véranda ou de petite serre a déjà remarqué que même au beau milieu de l'hiver, la température y régnant peut être fort agréable, pour peu que le soleil veuille bien dispenser quelques uns de ses rayons ! Pourquoi ne pas alors essayer de récupérer cette chaleur et faire ainsi des […]
  • IBM reproduit le cerveau d'un chat avec 150.000 processeurs novembre 20, 2009
    La réalité finit toujours par rejoindre la sciences-fiction. Une équipe de recherche cognitive d'IBM a assemblé un super-ordinateur de près de 150.000 processeurs, qui simule le cortex cérébral d'un chat. Une étape avant le cerveau humain. [Lire la suite]
  • Une première bêta de Silverlight 4 pour les développeurs novembre 19, 2009
    Microsoft a mis à disposition une première bêta pour son plugin Silverlight en version 4. Dans sa version actuelle Silverlight, qui permet d'exécuter en local des applications Internet riches, prend déjà [...]
  • Free Mobile est le seul candidat à la 4ème licence 3G octobre 29, 2009
    Les sociétés intéressées par la 4ème licence 3G avaient jusqu'à midi pour déposer leur dossier de candidature auprès de l'Arcep. Et alors que Free Mobile, filiale à 100% d'Iliad - le propriétaire du [...]
  • Announcing Google Maps Navigation for Android 2.0 octobre 28, 2009
    (Cross-posted with the Google Mobile Blog)Since 2005, millions of people have relied on Google Maps for mobile to get directions on the go. However, there's always been one problem: Once you're behind the wheel, a list of driving directions just isn't that easy to use. It doesn't tell you when your turn is coming up. And if you miss a tur […]