S’il y a bien une chose qu’il faut savoir faire avec ce genre de projet, surtout quand on n’est pas un professionnel ou autre grand expérimenté du développement d’applications, c’est bien trouver les nombreuses informations qui viendront combler des lacunes qui fort heureusement la plupart du temps ne sont pas bloquantes lorsqu’on sait trouver de quoi les combler.
Et dans le cas de mon programme, les recherches concernent principalement 2 domaines : la syntaxe du langage VB.Net à utiliser pour coder les actions nécessaires à l’exécution du programme, et les commandes à passer aux serveurs de Google pour récupérer les informations à traiter sur les éléments des différentes listes de lecture de Reader. Ce dernier point fera l’objet d’un article détaillé, je ne reviens donc dans celui-ci que sur le langage VB.Net en lui-même.
Dans la programmation, il y a deux étapes indispensables pour faire réaliser à un ordinateur une action voulue : décrire en langage humain ce qui doit se passer, en étudiant plusieurs possibilités selon différents cas de figure, puis convertir ce langage humain en langage compréhensible par l’environnement de développement utilisé par le développeur, cet environnement se chargeant ensuite de transformer le code entré en instructions compréhensibles par l’ordinateur (cette dernière phase est totalement transparente, le développeur n’a pas à travailler dessus).
La description en langage humain consiste à écrire des algorithmes, personnellement j’ai appris à le faire durant mes 2 années de BTS Informatique de Gestion à la fin des années 90, ça remonte un peu… mais heureusement j’ai eu l’occasion depuis d’écrire quelques programmes qui m’ont fait garder un peu la main sur le sujet malgré les années qui passent. Comme quoi, ce n’est pas vrai pour tout, mais une partie de ce qu’on apprend durant la scolarité peu encore servir concrètement une fois sorti de l’école ! Ceci dit Internet peut aussi contribuer à s’y mettre ou à rafraichir ses connaissances, en commençant par cette page par exemple pour l’algorithmie : http://www.siteduzero.com/tutoriel-3-51781-algorithmique-pour-l-apprenti-programmeur.html
Ensuite une fois que la logique de fonctionnement de la fonction en cours d’étude est établie, il faut la coder dans le langage de l’environnement de programmation utilisé (dans mon cas, VB.net). Et là, soit vous connaissez par cœur toutes les instructions et les syntaxes du langage et alors ça va très vite, soit vous avez des lacunes mais utilisez un ou plusieurs livres pour retrouver ce qu’il faut et ça peut prendre beaucoup de temps surtout s’il faut recopier des exemples de code. Soit enfin vous êtes comme moi, Google est votre ami (à la rigueur tout autre moteur de recherche mais l’efficacité aura du mal à être la même) et à l’aide de requêtes commençant de préférence par « VB.Net » histoire de ne pas tomber sur du Java, vous trouvez les informations et recopiez les bouts de code directement par copier/coller. Ça peut être un peu long mais avec de la patience, aucun problème de syntaxe ne doit se montrer insoluble !
Un petit exemple pour bien comprendre : la vérification de la validité du format d’une adresse email
Une adresse email est constituée des trois éléments suivants, dans cet ordre :
- une partie locale, identifiant généralement une personne (lucas, Jean.Dupont, joe123) ou un nom de service (info, vente) ;
- le caractère séparateur @ (arrobase), signifiant at (« à » ou « chez ») en anglais ;
- un nom de domaine identifiant généralement l’entreprise hébergeant la boîte électronique (example.net, example.com, example.org).
Visuellement c’est assez simple, grosso-modo a@b.c fait l’affaire. Maintenant il faut faire comprendre à l’ordinateur qu’une telle adresse doit avoir au moins une série de lettres pouvant comprendre des caractères alphanumériques (de a à z et de 0 à 9, voire également des points et/ou des tirets), suivie du caractère @ suivi d’une nouvelle série de caractères alphanumériques, d’un point et d’une dernière série de caractères uniquement alphabétiques (a à z).
Cette règle en VB s’écrit comme suit :
Regex(« ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ », RegexOptions.IgnoreCase)
Donc là soit le programmeur est capable d’écrire ça de tête sans aide extérieure (ce qui est fort méritoire), soit il trouve cette info dans un livre ou sur le net, en la cherchant… Pour ma part vous l’aurez compris, je dis merci Google ! Si vous voulez en savoir plus sur les expressions régulières ici utilisées pour décrire tout ce qu’une chaine de caractère peut contenir ou non, cette page est un bon point de départ : http://www.siteduzero.com/tutoriel-3-14663-memento-des-expressions-regulieres.html
Voilà pour ces quelques considérations indispensables à la compréhension sur la manière de produire du code qui sera exploité (compilé) pour être exécuté par l’ordinateur. Avant de rentrer dans le vif du sujet, le prochain billet évoquera un autre point essentiel : le format des données utilisées par le programme, qu’il est indispensable de bien connaitre pour pouvoir traiter les données en question.