Forum Casio - Vie communautaire


Index du Forum » Vie communautaire » [v5] Écriture des spécifications
Dark stormHors ligneMembre d'honneurPoints: 10765 Défis: 174 Message

[v5] Écriture des spécifications

Posté le 03/07/2018 15:57

Les besoins ont été validés, on passe maintenant à la rédaction des spécifications techniques.

Mémo rapide pour les contributeurs :
Besoins validés
Pad des specs
Règles de contributions sur les pads


Les spécifications sont là pour détailler la manière d'implémenter les besoins. On est pas dans les détails vraiment techniques, mais on s'en rapproche.

Exemple sur du front-end :
– Besoin : affichage clair des notifications
– Spec : pastille en bas à droite de l'avatar dans le menu
– Conception : mettre un :after dynamique sur l'avatar

Exemple sur du back-end :
– Besoin : utilisateurs répondants aux points listés
– Spec : classe Member héritant de la classe User avec les attributs et fonctions suivantes
– Conception architecturale : détail des fonctions à implémenter dans la classe
– Conception détaillée : détail de l'algo pour sécuriser le code qui sera produit

La séparation de la conception en deux parties (architecturale et détaillée) n'est pas forcément pertinente pour toutes les specs, mais de toute façon c'est pas le sujet aujourd'hui.

Vous êtes invités à contribuer sur les specs ! Dans un premier temps, ça se passe sur le pad correspondant..

La deadline pour la validation est reportée au 5 août (pour cause de vacances du patron )


Règles de contribution sur les pads
– On se choisi une couleur et un pseudo avant d'écrire
– La couleur respecte les yeux de chacun, j'ai pas un stock infini de collyre
– On efface la couleur de ce qui est écrit que lorsque c'est validé
– Si un truc n'a plus de couleur, quelqu'un se charge de mettre le point au propre sur le wiki
– Le plus important : tous les membres peuvent participer !


Pages : Précédente1, 2, 3, 4
LephenixnoirHors ligneAdministrateurPoints: 14121 Défis: 136 Message

Citer : Posté le 16/11/2018 07:10 | #


Voici ma version.

import operator

def classes(c):
  return [1, c.islower(), c.isupper(), c.isdigit()]

counts = map(sum, zip(*map(classes, password)))
required = [12, 1, 1, 1]

return all(map(operator.ge, counts, required))

C'est un peu obfusqué comme résultat, mais c'est pas l'intention, je voulais juste faire un peu de programmation fonctionnelle. -_-"

L'idée c'est que classes(c) vous donne les classes auxquelles le caractère c appartient, ensuite vous calculez ça pour toutes les lettres, vous sommez, et vous vérifiez que c'est supérieur terme-à-terme au vecteur des minimums, qui est 12 lettres, 1 minuscule, 1 majuscule et un chiffre.

Ajouté le 17/11/2018 à 08:29 :
J'aimerais proposer quelque chose par rapport aux posts principaux des topics. Actuellement on a un problème assez casse-pieds, qui est que quand le post principal est réécrit, toutes les premières réponses sortent complètement de leur contexte.

Je propose de faire différemment de la méthode actuelle. Il faut voir ça comme si chaque topic ne contient que des commentaires, et pas de PP mais l'un des commentaires est affiché en haut de la page. Lorsqu'on veut réécrire substantiellement le PP, on poste un nouveau commentaire, et on le désigne comme PP. Ainsi l'ancien PP reste dans la liste des commentaires, à un endroit contextuellement parlant.

Je propose de l'afficher comme ceci :

Cas 1 : le PP est le premier commentaire du topic
Comme d'habitude.

Cas 2 : le PP est un commentaire de la page 4, et on visite la page 1

Avatar     Texte du nouveau PP
Posteur    La v5 est quasi-prête !
==================================
[Le com' suivant est un ancien PP]
Avatar     Je lance la v5!
Darks
------------------------------
Avatar     Chaud!
Lephe
------------------------------
Avatar     +1
Eragon

Cas 3 : le PP est un commentaire de la page 4, et on visite la page 4

Avatar     Texte du nouveau PP
Posteur    La v5 est quasi-prête !
==================================
Avatar     Tu as mis en prod' on
Lephe      dirait ?
----------------------------------
[Le com' suivant est en PP]
Avatar     La v5 est quasi-prête !
Darks
----------------------------------
Avatar     :bounce:
Random

Là on peut décider d'afficher ou pas le texte du PP, on peut se contenter de mettre une petite ligne disant "Le PP actuel a été posté à ce moment-là".

Qu'est-ce que vous en dites ?
EragonHors ligneMembrePoints: 159 Défis: 0 Message

Citer : Posté le 17/11/2018 10:21 | #


Excellente idée Lephé pour les topics, par conter je t'avouerais ne pas avoir très bien compris ton code pour la validation du mdp.
Cake... j'ai un doute sur ton idée d'un mot de passe sécurisé
Venez soutenir la liberté du net, venez soutenir La Quadrature Du Net.
www.laquadrature.net
Venez rejoindre la secte communauté.
LephenixnoirHors ligneAdministrateurPoints: 14121 Défis: 136 Message

Citer : Posté le 17/11/2018 10:31 | #


Voilà une petite explication.

import operator

# On a 4 classes de caractères à valider :
# - Au moins 12 caractères en tout
# - Au moins une minuscule
# - Au moins une majuscule
# - Au moins un chiffre
# Cette fonction renvoie une liste dans laquelle il y 1 si c
# appartient à chaque classe et 0 sinon
def classes(c):
  return [1, c.islower(), c.isupper(), c.isdigit()]

# Cette ligne calcule classes(c) pour tous les caractères
# du mot de passe, et somme.
# On obtient donc une liste :
#  [nb de caractères, nb de majuscules, nb de minuscules,
#   nb de chiffres]
counts = map(sum, zip(*map(classes, password)))
# Minimum à satisfaire pour que le mot de passe soit valide
required = [12, 1, 1, 1]

# Compare terme à terme et renvoie True si
#  nb de caractères >= 12
#  nb de majuscules >= 1
#  nb de minuscules >= 1
#  nb de chiffres >= 1
# Sinon renvoie False.
return all(map(operator.ge, counts, required))
EragonHors ligneMembrePoints: 159 Défis: 0 Message

Citer : Posté le 17/11/2018 10:35 | #


Ah! Avec les commentaires dans le code c'est plus clair, merci!
Venez soutenir la liberté du net, venez soutenir La Quadrature Du Net.
www.laquadrature.net
Venez rejoindre la secte communauté.
LephenixnoirHors ligneAdministrateurPoints: 14121 Défis: 136 Message

Citer : Posté le 24/11/2018 23:11 | #


Petit ping ici, ce système convient-il à tout le monde ?
Dark stormHors ligneMembre d'honneurPoints: 10765 Défis: 174 Message

Citer : Posté le 25/11/2018 23:44 | #


Oui, très bien.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
Dark stormHors ligneMembre d'honneurPoints: 10765 Défis: 174 Message

Citer : Posté le 10/02/2019 23:25 | # | Fichier joint


Pas sûr que ce topic soit encore correctement nommé, mais bon.

J'ai ajouté le tag Facile sur le gestionnaire de tickets de la v5 : si vous souhaitez contribuer mais pensez ne pas avoir le temps ou les compétences pour faire des trucs "compliqués", ces tickets sont pour vous.
Tout est ici.

J'en profite pour ajouter que ça avance depuis une ou deux semaines à un rythme intéressant. On a pas encore grand chose pour le moment, mais ça se construit au fur et à mesure. À l'heure actuelle, on peut :
– créer un compte (gestion des pseudos autorisés à revoir toutefois)
– se (dé)connecter
– modifier les paramètres de son compte
– lancer une recherche (envoi du formulaire uniquement, pas de recherche effectuée dans le backend)
[si on a les bons droits]
– accéder au panel ci-dessous
– modifier les paramètres d'un utilisateur (y compris ceux auxquels lui-même n'a pas accès, comme le pseudo)
– supprimer un compte utilisateur

Il n'y a pas encore de forum ou quoi que ce soit, mais on avance par étapes : une fois que les bonnes briques sont posées – gestion des comptes, droits, etc. – on peut débloquer la suite.



Nota bene : ça serait peut-être pas mal de mettre en post-it un des topics dédiés à la v5, le plus généraliste par exemple…

Ajouté le 10/02/2019 à 23:59 :
J'en profite pour vous dire que j'utilise beaucoup le gestionnaire de tickets pour noter les détails à corriger. Du coup vous avez une idée de l'avancement du projet en parcourant la liste des tickets, ouverts ou fermés.

Et je rappelle que la liste des commits sur la branche master est aussi intéressante pour suivre l'avancement du projet.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Páranÿe quetë Quendya
LephenixnoirHors ligneAdministrateurPoints: 14121 Défis: 136 Message

Citer : Posté le 11/02/2019 08:47 | #


Et abonnez-vous au flux RSS du dépôt (en haut à droite) si vous voulez être notifiés de tous les commits, commentaires, issues, etc.
Pages : Précédente1, 2, 3, 4

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 38 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd