Bonsoir à tous,

Notre société est actuellement en pleine expansion , ce qui signifie aussi que la demande en fonctionnalités sur notre site web ne cesse d'augmenter.

Afin de répondre à cette demande croissante, j'ai entrepris récemment l'achat d'un pc plus puissant, afin d'intégrer et exploiter toute la capacité d'un IDE (actuellement PhpStorm). Nous avons également opté pour un serveur dédié afin de pouvoir intégrer la solution GIT pour ainsi éviter certaine erreur liée au déploiement et aux sauvegardes.

Aujourd'hui, une des taches qui me prend énormément de temps est de tester que tout fonctionne. Entre les ajouts, les modifications, les suppressions et les changements de structure; certaines portions de code, qui jusqu'ici fonctionnaient, se retrouvent obsolètes.

On m'a parlé de PhpUnit pour les test unitaire, qui m'a l'aire d'être une bonne solution, malheureusement plusieurs points viennent noircir le tableau :

- Bien que plutôt organisé, mon code est écrit en procédural (je n'ai réellement mis le nez dans l'object que récemment, si j'avais su j'aurais songé a l'object dès le départ) ,

- Je ne peux pas me permettre de passer du procédural à l'object par soucis de temps : je veux justement en gagner à court et moyen terme, à long terme j'aurais largement les capacités d'avoir une équipe de développeurs. On parle quand même de plus d'une centaines de fonctionnalités.

- les fonctionnalités du site sont quasiment toutes écrites en ajax, les erreurs les plus fréquentes et non débusquées sont d'ailleurs des erreurs liées à javascript et non au code php en lui-même (puisque la plupart du temps, on fait en sorte que le système bloque côté PHP si il y à un soucis)

Je viens tout juste d'installer PhpStorm, au vu de ses fonctionnalités, il y aurait peu être une qui pourrait m'aider ?

J'aimerais avoir vos retours sur ce sujet, des techniques pour débusquer les beugs post-prod, je suis preneur de tous conseils, de l'installation d'un logiciel révolutionnaire à la demande d'un tier pour vérifier manuellement s'il le faut.

L'idée n'est pas forcément de me faire développer plus vite, mais mieux, et de trouver facilement les erreurs quand y en a, à des endroits différents du code où je développe ( des coquilles sur des milliers de ligne, tout le monde en à malheureusement, vérifier les fonctions une part une seul semble trop lourd aujourd'hui)

Je vous remercie pour vos retours et pour vos précieux conseils.

Bonne soirée !

Kevin.
Modifié par kevinlourenco (11 Jun 2016 - 00:14)
kevinlourenco a écrit :
Bonsoir à tous,

Notre société est actuellement en pleine expansion , ce qui signifie aussi que la demande en fonctionnalités sur notre site web ne cesse d'augmenter.

Afin de répondre à cette demande croissante, j'ai entrepris récemment l'achat d'un pc plus puissant, afin d'intégrer et exploiter toute la capacité d'un IDE (actuellement PhpStorm). Nous avons également opté pour un serveur dédié afin de pouvoir intégrer la solution GIT pour ainsi éviter certaine erreur liée au déploiement et aux sauvegardes.

Aujourd'hui, une des taches qui me prend énormément de temps est de tester que tout fonctionne. Entre les ajouts, les modifications, les suppressions et les changements de structure; certaines portions de code, qui jusqu'ici fonctionnaient, se retrouvent obsolètes.

On m'a parlé de PhpUnit pour les test unitaire, qui m'a l'aire d'être une bonne solution, malheureusement plusieurs points viennent noircir le tableau :

- Bien que plutôt organisé, mon code est écrit en procédural (je n'ai réellement mis le nez dans l'object que récemment, si j'avais su j'aurais songé a l'object dès le départ) ,

- Je ne peux pas me permettre de passer du procédural à l'object par soucis de temps : je veux justement en gagner à court et moyen terme, à long terme j'aurais largement les capacités d'avoir une équipe de développeurs. On parle quand même de plus d'une centaines de fonctionnalités.

- les fonctionnalités du site sont quasiment toutes écrites en ajax, les erreurs les plus fréquentes et non débusquées sont d'ailleurs des erreurs liées à javascript et non au code php en lui-même (puisque la plupart du temps, on fait en sorte que le système bloque côté PHP si il y à un soucis)

Je viens tout juste d'installer PhpStorm, au vu de ses fonctionnalités, il y aurait peu être une qui pourrait m'aider ?

J'aimerais avoir vos retours sur ce sujet, des techniques pour débusquer les beugs post-prod, je suis preneur de tous conseils, de l'installation d'un logiciel révolutionnaire à la demande d'un tier pour vérifier manuellement s'il le faut.

L'idée n'est pas forcément de me faire développer plus vite, mais mieux, et de trouver facilement les erreurs quand y en a, à des endroits différents du code où je développe ( des coquilles sur des milliers de ligne, tout le monde en à malheureusement, vérifier les fonctions une part une seul semble trop lourd aujourd'hui)

Je vous remercie pour vos retours et pour vos précieux conseils.

Bonne soirée !

Kevin.

Bonsoir,
Pour un test de validation côté client, une solution possible est d'utiliser Selenium, un outil de test open source permettant de créer des scénarii (clics sur page HTML, saisie de données dans les champs des formulaires, validation, etc...).
Les fichiers, enregistrés au format XML, peuvent être rejoués après chaque modification et / ou mise en production, afin de s'assurer que le comportement du site web est bien conforme aux attentes.
Ce n'est pas le seul outil de ce genre, mais il est plutôt facile à prendre en main dans un premier temps pour "dégrossir" le processus de test. Je l'ai juste installé au boulot et visité un peu pour me faire une idée. C'est assez facile à intégrer pour disposer d'un mini IDE sous Firefox, via une extension dédiée.
Des tutoriels sont par ailleurs disponibles sur youtube pour aller plus loin.
Administrateur
Bonjour,

tu es développeur back-end et plus précisément PHP je suppose ?
Les outils vont différer selon le langage : commencer par utiliser des validateurs et des linters pour HTML, CSS, JS avant de rajouter des tests unitaires, visuels, etc

git dans tous les cas, Smiley smile même des PSD
kevinlourenco a écrit :
Bonsoir à tous,

Notre société est actuellement en pleine expansion , ce qui signifie aussi que la demande en fonctionnalités sur notre site web ne cesse d'augmenter.

Afin de répondre à cette demande croissante, j'ai entrepris récemment l'achat d'un pc plus puissant, afin d'intégrer et exploiter toute la capacité d'un IDE (actuellement PhpStorm). Nous avons également opté pour un serveur dédié afin de pouvoir intégrer la solution GIT pour ainsi éviter certaine erreur liée au déploiement et aux sauvegardes.

Aujourd'hui, une des taches qui me prend énormément de temps est de tester que tout fonctionne. Entre les ajouts, les modifications, les suppressions et les changements de structure; certaines portions de code, qui jusqu'ici fonctionnaient, se retrouvent obsolètes.

On m'a parlé de PhpUnit pour les test unitaire, qui m'a l'aire d'être une bonne solution, malheureusement plusieurs points viennent noircir le tableau :

- Bien que plutôt organisé, mon code est écrit en procédural (je n'ai réellement mis le nez dans l'object que récemment, si j'avais su j'aurais songé a l'object dès le départ) ,

- Je ne peux pas me permettre de passer du procédural à l'object par soucis de temps : je veux justement en gagner à court et moyen terme, à long terme j'aurais largement les capacités d'avoir une équipe de développeurs. On parle quand même de plus d'une centaines de fonctionnalités.

- les fonctionnalités du site sont quasiment toutes écrites en ajax, les erreurs les plus fréquentes et non débusquées sont d'ailleurs des erreurs liées à javascript et non au code php en lui-même (puisque la plupart du temps, on fait en sorte que le système bloque côté PHP si il y à un soucis)

Je viens tout juste d'installer PhpStorm, au vu de ses fonctionnalités, il y aurait peu être une qui pourrait m'aider ?

J'aimerais avoir vos retours sur ce sujet, des techniques pour débusquer les beugs post-prod, je suis preneur de tous conseils, de l'installation d'un logiciel révolutionnaire à la demande d'un tier pour vérifier manuellement s'il le faut.

L'idée n'est pas forcément de me faire développer plus vite, mais mieux, et de trouver facilement les erreurs quand y en a, à des endroits différents du code où je développe ( des coquilles sur des milliers de ligne, tout le monde en à malheureusement, vérifier les fonctions une part une seul semble trop lourd aujourd'hui)

Je vous remercie pour vos retours et pour vos précieux conseils.

Bonne soirée !

Kevin.

Pour compléter mon précédent commentaire, répondant plutôt à la post validation du javascript, j'avancerais quelques pistes supplémentaires, venant en complément de celles évoquées par Felipe, parfaitement valables.
Sauf erreur, il semble que le langage côté serveur soit du PHP, ce qui, dans les principes, n'est pas éloigné de Java que j'utilise au quotidien pour générer des servlets au boulot.
Pour garantir un source HTML / CSS propre en sortie j'ai mis en place deux règles incontournables :
- le passage obligé par un HtmlWriter maison pour tout texte hors balise, y compris valeurs d'attributs. Ceci me permet de convertir tout caractère supérieur à 127 en entités HTML et limiter les risques liés aux jeux de caractères
- en deuxième règle, aucune balise HTML n'est sérialisée "à la volée" dans le flux. Tout passe par des classes HtmlComponent dédiées à des types de blocs particuliers (ex. Header, Main, Footer, etc.). Dans chaque composant, obligation d'utiliser une structure try / finally pour la mise en place des balises ouvrante (avant le try) et fermante (dans le bloc finally). Cette simple règle me garantit que même si une exception est soulevée dans le bloc try, ma structure HTML englobante restera syntaxiquement correcte et mon DOM lisible sans difficulté depuis un navigateur
Règles utilisées sur le dernier portail web que j'ai livré et, pour l'instant, tout fonctionne correctement.
D'autres règles existent aussi pour CSS et javascript, mais il serait trop long de les expliciter ici. Si cela t'intéresse, un petit coup de messagerie privée et on en reparle.
Pour finir, dans ton cas il y a deux aspects à envisager : L'existant d'une part, les développements futurs d'autre part.
Pour l'existant, il ne s'agit pas de tout réécrire sur ces nouvelles bases, mais tu peux décider que la mise au carré se fera, par exemple, sur la base d'une fonctionnalité / mois pour échelonner dans le temps jusqu'à disposer d'une armée de développeurs.
A contrario, pour les nouveaux développements il est sûr que j'obligerais mes sbires à passer par des HtmlComponent (existants ou à créer) et par le HtmlWriter.
Si le site web prend de l'ampleur, et il semble que ce soit le cas, la rigueur doit s'imposer...
NB : pour les esprits chagrins qui ne verraient dans ce qui précède que la Nième promotion d'un générateur HTML, je souligne que tout ce qui est décrit est en place et opérationnel au bureau. Nous sommes donc assez loin du fantasme et bien dans le concret.
EDIT :
Petit exemple de code Java pour traiter un paragraphe avec attributs :

final HtmlAttributes attributes = new HtmlAttributes();
attributes.add(HTML_ATTRIBUTE_ID.ID,"Mon_Identifiant");
// Sérialisation
writer.write("<p " + attributes.toHtml() + ">");
try
{
    writer.write(HtmlWriter.strToHtml("Mon texte à moi que j'ai......."));
}
finally
{
    writer.write("</p>");
}

Bien entendu, la méthode toHtml() convertit les valeurs d'attributs via HtmlWriter, comme je l'indiquais supra.
Modifié par sepecat (11 Jun 2016 - 14:56)
@felipe

JE m'étais intéressé au possibilités il y a déjà quelques années de stocker sur le serveur des fichiers texte ( git bonobo sous IIS) puis psd (mais rien d'extraordinaire). Dans le cas d'un fichier texte ( css ou javascript ) , pas de problèmes l historique est sauvegardé à chaque modification. Si on utilise psd ; deux problèmes apparaisent : 1) le fichier est plus gros qu'un png firework et 2) peu de solution scanne le contenu du psd ( sauvegarde incrémentale de donnée ) et propose un mode visuel . Un fichier photoshop n'est pas une image mais un fichier de stockage d'image. Je suis me demande si les solutions existantes en 2015 supportent les layers actif ou le concept de layer comp . Enfin bracket comprend le code interne des fichiers psd au niveau layer puisqu'il est possible d'appeler des layers avec le plug in extract. Un page web est un export/fusion de plusieurs layers photoshop ; Est ce que bracket supporte ça !!! car si non alors le plug in a moins d'intéret ( on export depuis photoshop et on ré-importe dans photoshop notre export !! ) .

@kevinlourenco ( je ne mets pas les liens vous les trouverez par vous même)
J'ai été déçu de phpstorm pour
- son retard dans le support joomla par rapport a drupal
-le non support des hook de git
-l'incompatibilité de certains plugins frontEnd
------ liveedit css/view mode debug nécessaire
-------liveedit avec 1 bug chrome
-------livedit pas compatible firefox
-sa LENTEUR à scanner un projet ( une force pour la complétion mais aussi un inconvénient)
----il y a comme git la possibilité d'éviter de scanner certains fichiers répertoires
-l'absence du concept de projet ( résolu actuellement)
-le non support le emmet live style déja existant sur atom...
-son temps à maitriser le debug php ( trop de fenêtre de configuration) par rapport a eclipse/xdebug (hyper facile)

pour javascript/php je pense que phpstorm est l outils qu il vous faut avec fiddler / ajax (1 2 )

Sinon pour phpstorm; le forum n'a pas trop d' intêret. Il faut en cas de problèmes aller sur le site de la documentation ( video , spreadsheet, peu de texte beaucoups de liens) puis sur le tracker . Le blog qui joue le rôle de changelog et ou l 'on parle plus de sujet comme php un peu moins de javascript et alors pas beaucoups de css .

Si vous allez depuis le menu we are jetbrain -> customer & award , vous voyez tout en bas pour 2015 "Infoworld Tech of the year 2015 IntelliJ IDEA and WebStorm" . Allez sur le lien et vous verrez que le prix est dû a javascript ( support typescript ; spy-js) . Donc coté css design bof .... sauf ....éventuellement support de la complétion sass et si association avec .....grunt ou gulp ( la page gulp a un lien vers le tracker) ....

pour les test :
saucelab et appium pour debug javascript using selenium
upload/48731-appium17.jpg


1) selendroid appium
https://saucelabs.com/mobile/ios-app-testing/selenium-iosIOS



2) selenium 1 ,

server
upload/48731-seleni21.jpg

nodejs ,

webdriver


upload/48731-seleni29.jpg

ide Firefox
upload/48731-img3E.jpg

upload/48731-img3E.jpg
Modifié par 75lionel (11 Jun 2016 - 18:25)