Quelques raccourcis :

420-KBG-LG – Développement de services d'échange de données

Ceci est un petit site de support pour le cours 420-KBG-LG – Développement de services d'échange de données.

Vous trouverez aussi des liens sur divers langages (dont C# et JavaScript, nos outils de prédilection dans ce cours) un peu partout dans http://h-deb.clg.qc.ca/. Portez une attention particulière à ../../../Sujets/Divers--cdiese/index.html et à ../../../Sujets/Web/index.html

Les diverses sections de cette page (en fonction desquelles vous trouverez quelques liens dans l'encadré à droite) vous mèneront elles-aussi sur des pistes qui vous permettront d'explorer un peu plus par vous-mêmes, de valider vos acquis et d'enrichir votre apprentissage.

Cliquez sur cette cible pour le plan de cours, sous forme électronique

Pratiques de correction

Je corrige les programmes en appliquant des codes de correction. Vous trouverez ici la liste des codes les plus fréquents.

Ma stratégie de correction en tant que telle (pour le code, à tout le moins) est résumée ici.

Cliquez sur cette cible pour un résumé des principales règles de programmatique en vigueur dans ce cours.

Cliquez sur cette cible pour les normes appliquées dans ce cours, en ce qui a trait au pseudocode

Quelques trucs pour demander de l'aide plus efficacement

Détail des séances en classe

Puisque nous serons en quelque sorte laboratoire à la fois pour les séances théoriques et les séances de laboratoire, j'ai fait le choix de construire le cours sous forme de 30 séances (de S00 à S29) plutôt que sous forme de 15 séances théoriques et 15 séances de laboratoire. Le dosage prévu de temps en théorie et de temps en laboratoire (soit environ moitié-moitié) devrait être respecté.

Date Séance Détails

27 août (jeudi 13h)

S00

J'avais prévu tenir une première séance d'accueil aujourd'hui, mais les circonstances ne me l'ont pas permis. Ce n'est que partie remise!

3 sept. (jeudi 11h)

S01

Séance d'accueil. Au menu :

10 sept.

S02

Au menu :

14 sept.

S03

Cette semaine, je serai (virtuellement) à CppCon 2020. Vous pourrez me suivre (à travers ../../Sujets/Orthogonal/cppcon2020.html) si vous le souhaitez.

17 sept.

S04

Cette semaine, je serai (virtuellement) à CppCon 2020. Vous pourrez me suivre (à travers ../../Sujets/Orthogonal/cppcon2020.html) si vous le souhaitez.

21 sept.

S05

Au menu :

24 sept.

S06

Au menu, on s'éloigne un peu du code aujourd'hui, donnant plutôt dans l'historique et dans les schémas :

  • Principes de base des systèmes client / serveur sur le plan de la communication (perspective historique) :
    • Pourquoi des systèmes répartis?
    • Sens des mots « client » et « serveur »
      • Général et historique
      • Contemporain, en particulier dans une optique REST
      • Gains et pertes de cette évolution
    • De protocoles, de fonctions et de services
      • Époque des sockets bruts
      • Avènement du modèle RPC
      • Passage aux composants et rôle des intergiciels
      • De protocoles binaires aux protocoles Web basés XML : pourquoi?
      • De XML à JSON : pourquoi?
      • De RPC et REST : pourquoi?
    • Ce qui peut circuler entre les homologues
    • Découvrabilité : localiser l'homologue (typiquement, le serveur)
      • Services de repérage et de découverte
      • Bottins UDDI
      • ... Google!
    • Identifier les services offerts
    • Gestion de la durée de vie
      • Gestion collaborative
      • Gestion par péremption (et mécènes)
      • Singletons
    • Gestion des pannes
      • Éviter de planter
      • Accepter de planter
      • Être remplaçable et être sans états (Stateless)
    • Échelonnabilité
      • Que faire quand la charge augmente?

28 sept.

S07

Au menu :

  • Suite de S06
  • On profite par la suite de la générosité de Nicolas :

Pour une approche alternative au problème donné dans Activité 00, vous pouvez examiner la proposition de mon collègue Nicolas Chourot sur https://github.com/Nicolas-Chourot/CRUD_Demo. À ce sujet :

Il a aussi mis du temps sur un diaporama électronique présentant Node, Visual Studio Code (que je n'ai pas utilisé mais qui est un très chouette IDE) incluant son débogueur, etc. et qu'il vous offre gracieusement à cette adresse.

1 oct.

S08

Au menu :

5 oct.

S09

Au menu :

  • Séance de soutien
  • Travail sur l'activité 01

8 oct.

S10

Au menu :

  • Échanges sur l'activité 01
    • Question des paramètres et des délimiteurs
    • Gérer les blancs
  • Définir une API de type REST : à quoi faire attention
  • Gérer les erreurs dans une API de type REST

13 oct.

S11

Attention, mardi avec horaire du lundi

Au menu :

  • En ce mardi-qui-est-un-lundi, je vous propose un cours "prog" où je vais explorer une manière de résoudre le problème des requêtes GET à multiples paramètres
    • J'essaierai de proposer quelque chose d'extensible pour que vous puissiez le réinvestir dans le futur
    • Le lien (informel) qui détaille la démarche est Activite-01-ebauche-solution.html
  • J'essaierai de garder du temps pour les ami(e)s qui ont des questions plus personnelles à la fin.
  • Note pour celles et ceux qui ont eu des ennuis avec glitch, ceci semble utile pour démarrer : https://anidiots.guide/hosting/glitch

15 oct.

S12

Au menu :

  • Présentation sur Blazor et sur l'approche de Clean Coding, donnée par monsieur Bruno Barrette, de Done Techno
    • Un lien Zoom vous sera envoyé par Colnet
    • La présentation débutera à 10h; soyez à temps!

19 oct.

S13

Au menu :

  • Retour sur la présentation de la séance S12
    • Questions? Commentaires? Menaces? Critiques?
    • Mots de vocabulaire à préciser?
  • Présentation de la première étape de l'activité 02 : 420KBG--Activite02.pdf

Travail sur l'activité 02

22 oct.

S14

Au menu :

  • Travail sur l'activité 02

26 oct.

S15

Au menu :

  • Présentation de la deuxième étape de l'activité 02, aussi nommée activité 03 : 420KBG--Activite03.pdf

29 oct.

S16

Au menu :

  • Travail sur l'activité 03

2 nov.

S17

Au menu :

5 nov.

S18

Je devrai m'absenter pour raisons médicales et familiales

9 nov.

S19

Nous n'aurons pas de séance aujourd'hui, car je serai en plénière pour WG21 (le comité de standardisation de C++) et que cela avalera la totalité de ma journée. Détails sur ../../../Sujets/Orthogonal/wg21-2020-Zoom.html

12 nov.

 

Journée de mise à niveau (cours suspendus)

16 nov.

S20

Au menu :

19 nov.

S21

Au menu :

23 nov.

S22

Au menu :

26 nov.

S23

Au menu :

  • Pas de séance formelle, mais vous avez un devoir : assister à la présentation de Jean-François Pezet sur la gestion des services. Le lien Zoom et les coordonnées de connexion vous ont été transmis par Colnet

30 nov.

S24

Au menu :

  • Discussion du Caching, en particulier dans un contexte de services REST
  • Diapos électroniques à venir

3 déc.

S25

Au menu :

7 déc.

S26

Au menu :

10 déc.

S27

Au menu : présentation de la PFI

14 déc.

S28

Au menu : travail sur la PFI

17 déc.

S29

À remettre, mais je vais les accepter jusqu'au 21 décembre :

  • La PFI de la session A2020

Petits coups de pouces

Vous trouverez ici quelques documents, la plupart petits, qui peuvent vous donner un petit coup de pouce occasionnel.

Comment accéder à du code .NET à partir d'un client C++ natif.

Vous trouverez aussi des exemples de code C# dans la section Divers – C# du site, mais notez que je n'ai pas nécessairement harmonisé ces exemples (écrits pour des cours plus avancés, sous forme de survols) aux standards de programmation appliqués dans le présent cours. À lire avec prudence et discrimination, donc.

Consignes des travaux pratiques

Les consignes des travaux pratiques suivent.

Consignes Détails supplémentaires

Activité 00

s/o

Activité 01

s/o

Activité 02

Première partie d'une série

Activité 03

Deuxième partie d'une série

Activité 04

Troisième partie d'une série

PFI

s/o

Solutionnaires

Quelques solutionnaires suivent. Référez-vous aux règles programmatiques pour plus de détails sur les normes de programmation appliquées dans ce cours.

Travail

Solutionnaire possible pour Activité 00

À venir

À venir

En espérant que ça vous aide à organiser vos idées!

Questions à répondre

Question posée le 22 septembre 2020 :

« [...en lien avec 420KBG--Activite00.pdf...] un collègue et moi avions un débat sur la position logique de la gestion des erreurs. Par exemple, dans mon controller.js, les vérifications étaient faites soit directement dans la fonction appelé par le route, soit dans une fonction privée non-exportée. Dans le cas de mon collègue, il vérifiait à l'intérieur de son route.js et, une fois que tout était bon, il passait à l'appel de ses fonctions dans le controller. Ces fonctions sont, par exemple, vérifier si c'est un nombre qui est passé (!NaN), s'il y a trop ou pas assez de paramètres passés, etc. Nous voudrions savoir laquelle est la bonne façon de faire pour respecter a la fois, l'optimisation et le consensus globale du bon code JavaScript. »


Valid XHTML 1.0 Transitional

CSS Valide !