JeuWeb - Crée ton jeu par navigateur

Version complète : Organisation, Outils, Méthodes de programmation et Mise en production continue
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Bonjour,

Tout d'abord, désolé si je ne poste pas dans la bonne rubrique.

Après avoir fait quelques recherches par moi-même, je viens à vous pour avoir vos avis !

C'est à propos des outils et méthodes à utiliser pour un petit projet à équipe réduite (genre une personne Smile ), mais avec possibilité de prise de l'ampleur.
Le projet consiste en un jeu par navigateur, juste parce que voilà, ça fait longtemps que je veux en faire un. La décision n'est pas encore prise, elle dépend encore de sa faisabilité via les questions ci-dessous par exemple.


En méthode, je partirais bien sur de l'Extreme Programming :
Donc appliquer des philosophies genre DRY, KISS, YAGNI … et pourquoi pas TDD, avec beaucoup de tests automatisés, mais avant tout de nombreuses itérations.

Pour les outils :
En framework je pensais à cakePHP parce j'avais déjà testé mais il y a longtemps. J'avais bien aimé la commande bake pour générer automatiquement la partie modèle, l'interface CRUD également générée, et là je viens de voir qu'il y a moyen d'automatiser et de faire des tests simplement.
Vous pensez à mieux ?

Sinon, gestionnaire de version oblige, je partirais sur du Git. Pour le dépôt Git, je choisirais Bitbucket car dépôt privé et gratuit.
Gitlab serait mieux, pour un dépôt forcement privé et gratuit ?

Il me manque des outils ?
Intégration continue avec Jenkins ? Suivi de bug avec Jira ?
Je sais pas si c'est nécessaire, et puis faut bien les installer quelque-part en plus.

Pour l’hébergement, gratuit, Je pensais à Olympe.in.
PHP et mySQL, sans publicité, statistique Piwik, une communauté présente ...
Ya mieux ?

Et là parcontre, j'ai bien besoin de votre avis :
Je n'ai aucune idée des bonnes pratiques à adopter pour de la mise en production continue pour un projet en ligne en PHP, dû aux nombreuses itérations : Il n'y a pas de livrables, et les améliorations doivent être rajoutés en cours de route. Vous faites comment ?
Arrêt momentané prévu à l'avance, script de migration de BDD (bien entendu préalablement testé) et upload des modifications et ajouts de code depuis le dépôt dans le serveur de production ? Donc serveur de développement à part ?
Vous avez des liens là dessus à me conseiller ?

Dernière question :
JeuWeb est un forum de développeurs de jeu en ligne, mais est également un forum de probable futurs joueurs ou pas du tout ?


Je vous remercie d'avance de vos conseils et de votre aide Smile
pour la méthodo, attention, agilité et extrem programming n'ont de sens que s'il y a équipe et rôles différenciés (à minima le client/product owner/testeur et le développeur, et les développeurs dans XP puisque l'un des principes est de bosser en binome)

après ça ne change rien au fait d'utiliser ou pas les quelques principes que tu as cité mais ce n'est pas parce qu'on applique quelques éléments d'une méthodo qu'on utilise une méthodo

une fois dit cela je pense que ce sont de bons principes, je rajouterais la notion de backlog général (autant pour toi pour tenir sur la durée, que pour piloter les efforts d'une éventuelle future équipe).

attention aux TDD, c'est intéressant d'automatiser mais pas tout :
si une fonctionnalité est simple ou ne risque pas d'évoluer / régresser (donc si pas trop de dépendance avec d'autres modules/fonctionnalité) il est inutile de passer du temps à faire du test automatisé.

grosso modo si tu penses qu'une fonctionnalité ne devra être testée que durant 3 ou 4 itérations, tu prévois des tests manuels, si tu penses que tu vas plus souvent revenir ou être impacté par d'autres alors éventuellement développe les tests.
le développement de ces tests peut être coûteux, en tant comme en motivation, et pas forcément utile, c'est pourquoi il faut juger de leur pertinence.

Après ca ne remet pas en cause le TDD juste attention à "le mieux est l'ennemi du bien"

pour le reste je ne me prononce pas, pas assez d'expérience
Pour l'agilité, je pense qu'une simple board sur Trello suffit.

Si tu pars sur Gitlab pour ton dépôt, tu peux utiliser leur tracker (Jira me semble overkill). D'ailleurs, tu peux utiliser Gitlab CI pour ton intégration continue. Bien sûr, l'intégration continue n'a de sens que si tu as vraiment beaucoup de tests automatisés.

Pour ce qui est du framework, bien sûr ça dépend de ton langage de prédilection. Mais je te suggère de ne pas baser ton choix sur la seule présence d'outils de génération de code. Les scaffold CRUD et la génération des modèles servent très peu.

Pour les déploiements, je suggère Capistrano, qui est un grand classique (car oui, ce n'est pas réservé aux développeurs Ruby). Ça te permet de déployer ton application en lançant une petite commande, avec un support pour rollback à la version précédemment déployée en un clin d'œil si tu vois que ça explose. Un must have!

Pour l'hébergement, j'ai du mal à imaginer un jeu Web moderne sur un serveur mutualisé : pas de serveur de push, pas de background jobs, pas de Redis/Memcached, etc. Ça ferme vachement de portes, je trouve. Pour 6€ par mois on peut avoir un VPS, et pour 12€ un petit dédié type Dedibox. Il faut se donner un minimum de moyens. Wink


Concernant ta question, JeuWeb est pour les créateur, mais si tu veux poser une question plus claire/franche, tu peux. Wink
Je suis étonné de ne pas voir de questions concernant l'IDE à utiliser. Tu as déjà trouvé ton bonheur de ce côté là?
Concernant les méthodologies, quelqu'un aurait-il connaissance d'une méthodologie adaptée à un dev qui bosse seul, comme beaucoup d'entre nous sur nos jeux ?
Je préfère des outils gratuits si c'est possible.
Egalement, je préfère au mieux éviter les installations. Tu as par exemple bien raison de me conseiller les outils qui peuvent être directement intégrés dans Gitlab CI ou Bitbucket !
Capistrano nécessite un serveur avec Ruby ?

Je me renseigne sur Gitlab CI, voir ce qu'il a de plus et de mieux que Bitbucket que j'ai pour l'instant choisi de préférer à Gitlab et ce de façon complètement arbitraire Wink

Arnadus, très bonne remarque ! Oui, je ne parle pas de l'IDE à utiliser !
L'auto-complétion et la mise en évidence des erreurs de syntaxe ne serait pas du luxe.

Il faut que je me renseigne sur les avantages à utiliser un IDE lourd, je pense notamment à Eclipse que j'utilise beaucoup pour du développement Java, mais que je n'ai jamais utilisé pour du PHP. Une recherche rapide m'indique que des gens l'utilisent pour développer sous CakePHP, je vais voir de ce coté.
Sinon certains sont plutôt pour utiliser des éditeurs de texte genre Sublime Text 2 ?
Ouais y a pas mal d'utilisateurs de sublime text ici. Pour le PHP je conseillerais beaucoup plus Netbeans qu'Eclispe, mais bon ça c'est parce que je hais eclipse. Perso je m'en sors bien mieux avec sublime text et des outils spécialisés.
Sublime Text sans hesiter une seule seconde !
Ben moi c'est notepad++ d'abord ^^

Citation :Notepad++ contribue à la limitation des émissions de dioxyde de carbone dans le monde : en effet, en réduisant l'utilisation de CPU, la consommation d'énergie des ordinateurs chute considérablement, en conséquence de quoi, la terre est plus verte.
(Sur leur page d'accueil, mais je l'utilise vraiment hein :p )
Citation :Arnadus, très bonne remarque ! Oui, je ne parle pas de l'IDE à utiliser !
L'auto-complétion et la mise en évidence des erreurs de syntaxe ne serait pas du luxe.

Il faut que je me renseigne sur les avantages à utiliser un IDE lourd, je pense notamment à Eclipse que j'utilise beaucoup pour du développement Java, mais que je n'ai jamais utilisé pour du PHP. Une recherche rapide m'indique que des gens l'utilisent pour développer sous CakePHP, je vais voir de ce coté.
Sinon certains sont plutôt pour utiliser des éditeurs de texte genre Sublime Text 2 ?

Dès lors que l'on se lance dans la réalisation d'un grand projet, je trouve qu'il est indispensable d'utiliser un IDE complet quitte à ce qu'il soit plus lent au démarrage.
Comme avantages, je citerais:

- L'intégration d'un logiciel de gestion de version (svn,git, vcs ...)
- L'intégration d'un debugger comme Xdebug pour PHP
- L'autocomplétion sur les fonctions natives de ton langage de programmation préféré.
- Possibilité de reformater le code pour qu'il soit tout beau selon tes règles d'indentation etc...
- Possibilité d'intégrer des outils extérieurs (j'ai ma console disponible directement dans mon IDE, pratique)
- possibilité d'effectuer des recherches avancées. J'aime bien, par exemple, pouvoir rechercher tous les endroits où une méthode est utilisée.
- Pouvoir lancer ses tests unitaires en un clique.
- Généralement, possibilité d'installé un plugin qui te permet de bénéficier de l'autocomplétion d'un framework. Grâce à ça, plus besoin de connaitre par coeur le nom de ses routes, des ses templates, de ses repository et de ses services.

Si tu développe sous PHP, je te conseille vivement PHPStorm ( il y a un plugin pour CakePHP disponible) . Mais Netbeans est aussi très utilisé et connu.
Enfin, il existe aussi un plugin Eclipse pour le développement PHP mais il reste cependant moins bon et complet d'après ce que j'ai pu entendre.
Pages : 1 2