09
Apr
2010

[Frameworks] Un Controller ne doit pas avoir de logique métier!

Il existe de nombreuses pratiques pour développer du code propre, pérenne et accessible. Nommer la liste ici serait une perte de temps.

Parmi toutes ces lois, techniques et conseilles, la liste des 13 plus mauvaises pratiques appliquées à Rails soulève un point intéressant que l'on ne retrouve pas forcément dans les sites à base de Frameworks :

Chubby Controllers Must Die

There should be no business logic in a controller.

Read that again.

There should be no business logic in a controller.

Controllers do two things: they take data from the params or session and send it to the model. The MODEL performs all the necessary logic. Then, the controller does the other thing that's completely necessary: it decides what should be shown to the user. That's it. The sum total of a controller action is two steps long.
  1. Send information to the model.
  2. Decide what to display.
If you are doing ANYTHING ELSE in your action, you are doing it in the wrong place. The end.

Le problème n'est pas forcément le développeur, qui ignore cette pratique, mais aussi les créateurs du framework, qui, par l'absence de composants adaptés, force le développeur à mettre du code métier dans ses controlleurs.

J'apprécie particulièrement cette remarque qui soulève un point fondamental sur l'usage des frameworks et prouve que leur utilisation n'est pas le stade ultime en matière de développement efficace.

Ce n'est pas parce que vous utilisez un framework que vous faites les choses bien !

16
Mar
2010

Black-Frames est à vendre.

Nous considérons que le temps est venu de nous séparer de Black-Frames car ce dernier ne corresponds pas à nos objectifs en terme de projets.

Ainsi nous proposons l'acquisition du nom de domaine, des images, des sources et des différents scripts au plus offrant.

Voici ce que représente Black-Frames :

  • Un site développé en Django (Python) avec une base de donnée MySQL
  • Actuellement plus de 1100 images (et le nombre ne cesse d'augmenter)
  • Un minimum de 100 visiteurs unique par jours
  • Déjà plus de 18.000 visites depuis sa sortie le 20 août 2009
  • Plus de 195.000 pages vues
  • Une moyenne de 130 visiteurs par jours
  • Une moyenne de 10.60 pages vues par visites
  • Un temps moyen passé sur le site de 4 minutes et 17 secondes
  • Et 43.07% de nouvelles visites

Vous pouvez nous contacter par email ou par téléphone, pour avoir plus de détails et/ou nous faire votre offre.

02
Mar
2010

Question de conception, GSPanel

La réalisation de GSPanel avance tranquillement, et je bloque actuellement sur un point, donc j'aimerai votre avis.

Lorsqu'un utilisateur aura ajouté une machine, il devra ajouter des jeux. Au niveau structurel, la page d'ajout proposera au tout début une simple liste déroulante, contenant tous les jeux proposés. Une fois que l'utilisateur aura fait son choix, le vrai formulaire apparaîtra avec les valeurs adéquates (nom du jeu, version, dossier d'installation, etc).

Le problème est au niveau des jeux. A la base, je pensais que le mieux était de faire un fichier xml par jeux. Ce fichier contiendrait les informations suivantes :

  • Nom (du jeu)
  • Version
  • Logo
  • Chemin du script d'installation (sur nos serevurs)
  • Liste de paramètres pour le script
  • Chemin d'exécution du jeu
  • Paramètres pour lancer le jeu (tel que port, ip, etc)

(d'ailleurs, si j'en oublie, n'hésitez pas !)

Le problème, est que pour afficher une liste de 50 jeux, il faudra parcourir 50 fichiers, et en plus ouvrir celui que l'utilisateur aura sélectionné pour récupérer les autres données, et cela à chaque fois que l'utilisateur affichera la page "Ajouter".

Ça peux vite devenir lourd !

Du coup, j'aurais deux solutions, mais j'aimerai vos avis (quelle solution serait la meilleure ? (d'autres propositions sont permises)) :

  1. Faire un master file xml, qui contiendrait la liste des fichiers xml avec le nom du jeu (la liste affichera le nom et aura comme clée le fichier).
    Le problème avec cette méthode est qu'il faut mettre à jour le master file à chaque fois qu'un nouveau jeu est ajouté.
  2. L'autre solution consisterait à tout mettre en base. On oublie complètement le chargement des fichiers xml dans ce cas. Là, le problème est que cette implémentation impose la création de trois nouvelles tables : les informations du jeu, les paramètres du script d'installation et les paramètres du jeu.

D'après vous, quelle serait la meilleure méthode, laquelle utiliseriez-vous ? Serait-ce la 1 ? la 2 ? ou une autre carrément plus adaptée ? :)

Merci de me laisser vos avis !

19
Feb
2010

Soyez prêt pour HTML 5

Bon, je sais qu'avant de pouvoir utiliser HTML5 à fond, il va déjà falloir ne plus utiliser ie6, mais je ne peux pas corriger ce problème ! Il faut voir avec ces grosses sociétés ultra conservatrice qui utilisent le prétexte du "ca marchera plus" ... (bref je m'égare)

De toute façon, si vous pouvez le vérifier, vous verrez que nos sites ne fonctionnent pas pour ie6 (et pan dans tes dents). On va pas se prendre la tête a réaliser un site pour ie6, ce serait une excuse de plus pour ces entreprises, de garder papy.

Notre intérêt ici est de vous proposer la découverte du futur bijou du web (oui je sais, j'en fait beaucoup ;)), j'ai nommé l'HTML5. Si en plus, on peux y glisser quelques notions de CSS3, pourquoi pas !

J'ai gardé au court du temps plusieurs liens d'articles qui traitent d'HTML5, que ce soit en général ou traitant d'une partie spécifique. La liste est très longue, et couvre de nombreux domaines. Comme toujours, le meilleur conseil que je puisse vous donner est de pratiquer. Vous en apprendrez beaucoup plus !

Alors, j'ai essayé de ne garder que le meilleur des articles, afin de vous proposer la crème en terme d'information, que j'ai classé par thème. J'espère que vous trouverez ces liens utiles :)

Enjoy !


Continue reading ...
19
Feb
2010

GSPanel - Coming soon en page d'accueil

Nous venons de mettre à jour la page d'accueil de notre projet GSPanel.

Cette page affiche maintenant un très joli "Coming soon".

Pour faire suite à notre précédent article sur le sujet, la deadline définitive est prévue pour début juin.

Nous espérons respecter cette limite et vous proposer un produit de qualité dans les temps impartis ! (qui a dit "impossible" ? ;)).

Une version alpha est cependant prévue pour la fin mars (30/03). Nous contacterons les personnes ayant déjà renseignée leur email pour leur proposer de tester l'application.

Rendez-vous donc fin mars !