alertes-leboncoin
alertes-leboncoin copied to clipboard
Vision et évolutions futures ?
Suite à une conversation commencée dans les commentaires de ce post, je tenais à clarifier mon intention à propos de cette version, et ma vision concernant ses évolutions futures.
Pourquoi cette version ?
Partant du constat que le script alertes-leboncoin
devait être adapté de plus en plus régulièrement, et qu'il devenait vraiment compliqué de trouver une version stable, du fait d'un code très fragile, et d'un problème d'organisation entre les différents contributeurs, j'ai décidé de prendre les choses en main pour créer une version opinionated, qui se veut stable et facilement maintenable.
Le code a donc été intégralement réécris pour répondre à ces principes :
Simplicité
Un libellé, une url, une adresse mail, et ça marche. Une nouvelle fonctionnalité est envisagée que si elle ne nuit pas à la simplicité de l'ensemble.
Souplesse
Prendre en compte les différents usages, en proposant des paramètres pouvant être modifiés par l'utilisateur, tout en veillant à ne pas tomber dans des cas trop spécifiques qui complexifieraient de manière trop importante le code existant.
Maintenabilité
Bien que je sois encore loin de les maitriser, j'ai tenté d'appliquer deux des trois principes utilisés par Redux, à savoir :
- Single source of truth
- Changes are made with pure functions
Stabilité (mises à jour & versioning)
Le code étant maintenant centralisé en tant que librairie, les mises à jour doivent suivre les principes du semantic versioning (MAJOR.MINOR.PATCH
).
- Si elle concerne la résolution d'un bug, c'est une
PATCH version
: (4.0.0 > 4.0.1
) - Si elle concerne une nouvelle fonctionnalité, sans modification de la feuille de calcul, c'est une
MINOR version
: (4.0.0 > 4.1.0
) - Si elle concerne une nouvelle fonctionnalité qui demande la modification de la feuille de calcul sans casser la compatibilité avec les anciennes feuilles, alors c'est une
MINOR version
, sinon, c'est uneMAJOR version
: (4.0.0 > 5.0.0
).
Si les contributions que vous souhaitez apporter diffèrent de ces principes, je vous suggère de créer une branche séparée, ou votre propre fork.
Comment contribuer ?
Sachant que Google App Script ne propose pas d'outil de versioning type Git, je passe par node-google-apps-script pour envoyer ou récupérer les fichiers en ligne, ce qui me permets de pouvoir maintenir un repo git de manière semi-automatique.
Donc n'hésitez pas à envoyer des pull request.
Les points à améliorer
- [ ] Auto-update de la librairie côté utilisateur
[aucune solution à ma connaissance à ce jour]
- [ ] Implémentation de tests unitaires
[en cours de test avec GSUnit]
- [x] Possibilité de définir différents destinataires par recherche
[proposé par Franck Dillies, implémenté dans la 5.0.0]
- [x] Revoir l'utilisation du dernier id comme référence pour connaitre les nouvelles annonces
[proposé par jief l, implémenté dans la 4.2.0]
- [x] Notificaton de mise à jour disponible en bas de mail
- [x] Email full responsive
- [x] Callbacks faisant appel à des custom functions locales
[implémenté dans la 5.1.0]
- [x] Limiter les autorisations d'accès (seulement ce document)
[implémenté dans la 5.0.4]
- [x] Filtrer les annonces via un
minprice
etmaxprice
plus souple que celui du site leboncoin [implémenté dans la 5.2.0]