jeudi 28 août 2008

Quoi coder ? (specs globales)

Si l'on sait exactement ce qu'on va faire, à quoi bon le faire ? (Pablo Picasso)

Les specs, ou « spécifications », sont les grandes amies du développeur. Ou pas.

Elles regroupent toutes les fonctionnalités de l’application, ses fonctionnalités, ses spécificités et ses limites. On parle aussi de périmètre fonctionnel.

En résumé, après le pourquoi, on s’attaque ici au quoi.

Ça va être long, et il va sans doute y avoir des évolutions en cours de route. Mais sans ça, point de finalité au projet, on prend le risque de tourner en rond à faire des composants excellents qui ne seront jamais intégrés car le site n’aboutira pas.

Dans ce premier article on va lister les pages à faire ainsi que les fonctionnalités principales qu’elles devront présenter.


Trois types de pages :

  1. les pages frontales ,accessibles aux lecteurs du blog
  2. les pages d’administration du blog, accessible aux rédacteurs en chef
  3. les pages d’administration globales, accessibles aux administrateurs techniques


1) Pages frontales

Page d’accueil

Beaucoup d’utilisateurs arrivent dans un blog directement sur un article, redirigés par les moteurs de recherche. Mais le blog doit également posséder une page d’accueil.

L’administrateur doit pouvoir choisir ce qu’il souhaite en page d’accueil :

  • Page de contenu personnalisable
    • Choix de templates avec possibilité de rajouter des liens, des images, etc.
  • (par défaut) Liste des derniers articles
    • Ordre : blog ou chrono
  • Liste des premiers articles
    • Ordre : blog ou chrono

Pages de consultation des articles

Trois possibilités :

  • Mode aperçu
    • Paginé
    • Aperçu des N derniers articles. Ces articles sont coupés pour limiter la taille de la page, et la première image est miniaturisée et collée à côté
  • Mode N-articles
    • Paginé
    • Les N derniers articles sont collés les uns au dessus des autres.
  • Mode 1 article
    • 1 Article dans la page
    • Pour optimisation du référencement, le contenu présenté devra être légèrement différencié de la page N-article
  • Consultation par tag (catégorie)
    • Paginé
    • Les N derniers articles associés au tag donné
    • Même remarque que pour le référencement de la page 1 article

Pages de service

  • Login / Inscription
  • Mot de passe perdu
  • Erreur
  • 404
  • 403
  • Plan du site
  • « Not implemented yet »
  • Contactez-nous : utilisateurs -> rédacteur du blog
  • Contactez-nous : rédacteur -> administration technique

2) Pages d’administration d’un blog

L’administration d’un blog doit être suffisamment claire et intuitive pour être accessible au commun des internautes.

Détail d’un blog

  • Titre
  • Description
  • Date de création
  • Langue
  • Indexer mon blog dans les moteurs de recherche O/N
  • Indexer mon blog dans des annuaires de blogs O/N
  • Autoriser des tiers à traduire mon blog
  • Blog pour adulte O/N
  • Fonctionnalité :
    • « Enregistrer les modifications »
    • « Supprimer le blog »

Personnalisation du blog

  • Cette partie sera détaillée dans un prochain article

Gestion des articles

  • Liste d’articles :
    • Titre
    • Date de publication
    • Liste des tags
    • « Editer »
    • Suivant le cas :
      • « Déplacer dans les brouillons »
      • « Publier »
    • « Supprimer »
  • Fonctionnalités hors liste :
    • « Ajouter un article »

Détail d’un article

  • Titre
  • Liste des tags
  • « Editer »
  • Suivant le cas :
    • « Déplacer dans les brouillons »
    • « Publier »
  • « Supprimer cet article »

Gestion des tags

  • Liste des tags
    • Titre
    • Nb d’articles associés
    • Date du premier article
    • Date du dernier article
    • Catégorie O/N
    • « Supprimer »
    • Suivant le cas :
      • « Transformer en catégorie »
      • « Retirer des catégories »
    • Importance de ce tag (note de 0 à 5, par défaut 2,5)
    • « Articles associés »
  • Fonctionnalités :
    • « Ajouter un tag »
    • A détailler :
      • « Tri »
      • « Fusionner deux tags »

Gestion des rédacteurs

  • Liste de rédacteurs :
    • Login
    • E-mail
    • Rédacteur en chef O/N (droits complets sur le site, sauf création/suppression de rédacteurs en chef)
    • Liste des tags autorisés (permet de limiter les droits du rédacteur à des tags spécifiques)
    • « Verrouiller le compte »
    • « Supprimer le compte »
  • Fonctionnalité supplémentaire
    • « Créer un rédacteur »

Notes :
  • On pourra créer des tags en ajax directement depuis la page d’un article
  • On pourra personnaliser la page de tag en rajoutant de la décoration, et ceci directement depuis la page de tag
  • On pourra aussi décorer la page d’un article
  • « Décorer une page » peut signifier :
    • Rajout de liens
    • Rajout de pubs
    • Rajout de décoration (texte / image / vidéo)

3) Pages d’administration technique

Gestion des blogs

  • Liste des blogs :
    • Titre + lien vers le détail
    • Nb d’article
    • Liens vers la liste des rédacteurs du blog
    • « Verrouiller le blog »
    • « Masquer le blog »
    • « Supprimer le blog »
  • Fonctionnalités :
    • Ajouter un blog

Gestion des comptes

  • Liste des rédacteurs en chef et admin techniques
    • Login + lien vers le détail
    • E-mail
    • Rôles
      • Administrateur technique
      • Rédacteur en chef
      • Rédacteur
      • Lecteur
      • ...(à définir ultérieurement)
    • Blogs associés
    • « Verrouiller le compte »
    • « Gérer les permissions »
  • Fonctionnalités :
    • Créer un compte

Détail d’un compte

  • Login
  • E-mail
  • Date de création
  • Nom
  • Prénom
  • Téléphone (?)
  • Adresse (?)
  • Fonctionnalités :
    • « Enregistrer les modifications »
    • « Supprimer ce compte »

vendredi 22 août 2008

Pourquoi coder mon blog ?

Les champignons poussent dans les endroits humides. C'est pourquoi ils ont la forme d'un parapluie (Alphonse Allais)
  1. Pourquoi un blog ?

  2. Pourquoi ce blog ?

  3. Pourquoi coder un blog ?

Pourquoi un blog ?

C'est vrai ça... pourquoi tenir un blog ?

Pour s’exprimer, disserter, poser par écrit ses pensées pour les partager avec qui-veut-bien-les-lire.

Pour s’obliger à assumer ce qu’on a écrit, constater qu’on a changé quelques années plus tard ou confirmer qu’on est resté le même depuis toutes ces années, pour se souvenir.

En me posant cette question je suis tombé sur un article de Jean-François Ruiz qui parle très bien de son expérience, je vais donc éviter de m'étendre : Le blog, vitrine de l'emploi.

Pourquoi ce blog ?

La motivation

Quand on part à l'aventure, dans les moments de stress on peut finir par se décourager et laisser de côté tout plein de belles choses qu'on s'était promis de réaliser. En équipe la question est moins grave : l'un ou l'autre des collaborateur a toujours un élan constructif qu'il va transmettre aux autres pour éviter de perdre pied.

Mais quand on est seul, comment rester 'focus' sur ses objectifs, en évitant de se perdre, en gardant sa motivation intact même quand la masse des soucis dépasse celle de la bonne volonté ? En se relisant !

Ce blog est donc un message destiné à moi-même dans quelque temps quand j'aurai trop de choses à gérer que j'aurai envie de laisser tomber. Aller courage !

Le journal

Et si ce produit devenait quelque chose d'intéressant et d'utile ? Et si demain il était utilisé par une communauté de gens qui seraient intéressés par l'outil qu'ils utilisent ? Et s'il faut rédiger une doc sur cette application ?

Et bien voilà, ce sera fait au fur et à mesure comme ça plus de soucis, tout est dans la boite, le pire comme le meilleur.

La collaboration

Quelques cerveaux de plus seront les bienvenus. Si vous souhaitez suggérer, critiquer, conspuer ou féliciter, le système de commentaires vous est ouvert. Ca ne peut rendre le projet que meilleur.

Le personal branding

Ou en français : l'auto-promotion. Ecrire pour démontrer ses compétences et/ou ses compétences. Faire sa pub.

Inutile de m'étendre sur ce sujet, d'autres l'ont déjà très bien fait :

Pourquoi coder un blog ?

Je suis développeur

Je suis développeur, et quand je vois une application web ou une application client lourd, je ne peux pas m’empêcher de pousser son utilisation, d’essayer d’aller plus loin, de chercher ce qui pourrais me faire gagner encore plus de temps par rapport à l’existant. Dans 99% des cas, je suis déçu que telle ou telle fonctionnalité n’existe pas et je n’ai qu’une seule envie : la coder. Seulement voilà : je n’ai pas accès au code source…

J'en veux toujours plus

Je voudrais un blog que je puisse enrichir par un simple envoi de mail, je veux pouvoir aussi modifier les articles sans passer par de lourdes pages d’admin si je veux faire vite. Idealement, éditer le blog depuis la page de l'article. Je veux aussi pouvoir ajouter des articles à une date donnée, qu’elle soit dans le passé ou dans le futur (pour anticiper un congé).

Je souhaiterais que le lecteur puisse choisir une lecture chronologique ou anti-chronologique, et éventuellement avoir une frise au lieu du traditionnel calendrier pour accéder rapidement aux articles. Je veux pouvoir le personnaliser facilement, à 100%, afin d’optimiser le référencement naturel, pouvoir mettre des pubs sur certaines parties si j’en viens à les professionnaliser, mais pas partout, et j’aimerai bien proposer à des potes de s’en servir si l’outil devient assez abouti.

Je voudrais pouvoir proposer plusieurs niveaux de lecture, en fonction du lectorat, de ses centres d’intérêt (plutôt technique, plutôt fonctionnel, …), du niveau de détail qu’il souhaite, et faire une partie multilingue.

Pour simplifier : tout ce que je veux existe déjà, mais aucun moteur de blog actuel ne répond à mon besoin à 100%.

Je dois me former

Comme tout développeur, je dois me former continuellement. J'avais justement besoin de faire un exercice pratique et complet sur des framework qu'on m'ont conseillé Gildas, un ami. En l'occurence il s'agit du framework de développement web Monorail, du framework de persistance de donnée NHibernate sur lequel ils s'appui, et du framework javascript jQuery que je ne connais pas encore. Tout un programme !

La solution : tout développer.

Ce n’est pas forcément très compliqué quand on a pas mal d’expérience en développement, c’est juste un peu long. Et pour se motiver pour ce travail de longue haleine, la meilleure solution c’est encore d’écrire les objectifs, de se fixer quelques deadlines et de rédiger au fur et à mesure le journal de la mise en place.

Voilà, vous savez tout...