Tiens je lance vite fait un petit débat, pour ou contre le TDD ?
Je suis dans une entreprise ou on nous encourage à faire du TDD et je trouve ça assez chiant personnellement excepté dans de rares cas...
"pour ou contre le TDD ?"
Comme totu, c'est bien et c'est pas bien. Mais dans beaucoup de cas, ca rends la documentation du projet bien plus clair. Parceque les interface majeures sont documente par des exemples.
Avior une batterie de test est tres utile pour tester la regression. Mais aussi pour decider ce qui est important dans les cas ou tu as plusieurs output equivalent.
Apres, si tu conduit l'integralite du developement seulement pour passer un test a la con, alors c'est genant. Mais produire de test a l'avance c'est fondamentalement une bonne idee.
On a utiliser beaucoup de test pour concevoir spart ( http://bmi.osu.edu/hpc/software/spart/ ) et ca a ete tres utile parcequ'il y a plein de bug super subtile qui peuvent apparaitre en bordure du probleme.
bonjour les amis !! je galere sur mon code C# pour l'envoi d'un mail, vous connaissez vous en c# ?
et admettons dans un projet NodeJS ou mobile ? ce que j'ai du mal a admettre/comprendre c'est comment etre efficace et prendre du plaisir a coder avec ? J'entame un nouveau projet lundi (un serveur nodejs). J'ai déjà 80% de la conception en tête et j'ai l'impression que partir en TDD implique :
- installer tout les frameworks de TDD (genre 4-5...)
- Ecrire mon premier test, impliquant probablement de mocker les connexions entrantes, mocker une base de donnée....
- écrire enfin du code pourrave pour faire passer les tests
- écrire un 2e test
- refacto le code pour faire un MVC correct
- refacto les tests éventuellements
recommencer...
J'ai pris le pli d'appliquer le développement TDD sans les TU's de mon côté... ouais, ça fait bizarre écrit comme ça x)
Avec l'habitude du TDD's te vient l'habitude d'écrire des tests, ainsi que d'utiliser des frameworks de tests mockant les appels réseaux ou les appels BDD. C'est généralement long et fastidieux à écrire les premiers fois, mais en faisant en sorte que ce soit factorisé et réutilisable, tu peux réutiliser ces derniers pour plusieurs tests.
Bien écrire un test unitaire oblige aussi a bien découper le code derrière, de façon à ce que celui-ci soit testable (le découpage de code est un problème lorsque l'on souhaite mettre en place des TU sur un projet ayant de l'existant, dans ce cas-là, il faut espérer avec un IDE (ou éditeur) ayant de très bonnes opérations de refactoring).
Enfin, écrire les tests oblige à penser aux cas "j'envoie une valeur fausse" et "j'envoie une valeur incohérente" qui sont généralement complétement oubliés.
(À terme, l'écriture du code répondant à ces critères se pense sans réaliser le test... mais ça demande d'avoir tout de même un peu jouer avec des TU's et savoir comment bien les faire).
Les premiers tests à écrire sont souvent assez long (à cause de la mise en place), mais tu capitalises sur tout ceux-là (ainsi que sur des frameworks et des petits "trucs") sur le moyen et long terme.
Je vois l'intérêt principal du TDD dans un projet en équipe en cycle itératif ou à contrainte moyenne de qualité ou avec de très nombreux cas possibles. Pour un projet n'ayant pas ce genre de besoin, à part pour s'entraîner ou car l'habitude a été prise, je vois moins l'intérêt.
Ce type de développement permet de garantir que le code est toujours "utilisable" et les régressions sont très vite encadrées et ciblées. Restera plus qu'à les corriger.
Idem, pour chaque nouveau problème/bug découvert : voir si un TU ne couvre pas le cas et étoffer les existants.
si tu le fais comme ca
- installer tout les frameworks de TDD (genre 4-5...)
- Ecrire mon premier test, impliquant probablement de mocker les connexions entrantes, mocker une base de >donnée....
- écrire enfin du code pourrave pour faire passer les tests
- écrire un 2e test
- refacto le code pour faire un MVC correct
- refacto les tests éventuellements
recommencer...
alors en effet c'est debile. Mais si tu as deja une idee de l'architecture, ecrit directement tes test pour l'architecture que tu veux concevoir.
Je t'avoue qu'au moment ou j'ai vu printf("blabla"); Mon coeur c'est arrêté ! A la limite tu mets un write(,,) mais par pitié JAMAIS printf ! par pitié ! Merci
Cordialement quelqu'un qui déteste les fonctions toutes faites du <stdio.h> ![]()
PS : Sinon je t'en veux, c'était histoire de ...
Sinon vu qu'on est ici pour blablater, j'ai une petite question pour les programmeurs ici.
Quel est votre langage préféré celui avec lequel vous préférez travailler.
Personnellement c'est le C car c'est tout simplement le seul langage que je pratique pour le moment. J'ai eu la chance de parler avec pas mal de Dev et beaucoup m'ont dit que sur tout les langage avec lesquels ils ont travaillé le python était " La star ", Je ne suis pas allé me renseigner d'avantage sur ce fameux langage mais sur le peu que j'ai vu ça se résumé à du C en remplaçant les {} par : et byebye les ;
Bref, dites moi tout :p
Bah ca depend beaucoup de ce que tu fais. python a le vent en poupe c'est temps ci. Personnellement, les choses que je fais n'ont de sens que si j'ai un controle directe du bas niveau. Donc principalement du C++. (Parceque personne n'ecris du C aujourd'hui a peu de chose pres.)
Pour le moment, j'ai beau avoir touché au python, Ruby, Php, JEE, Java, C, C++, Objective-C, bash, shell et Swift, j'ai uniquement vraiment utilisé le Java : donc Java (par défaut).
Faudra voir à en utiliser d'autres (basé JVM ou non) pour étendre un peu le répertoire.
Bonsoir tout le monde ! ![]()
Dites, le PHP a sa place ici ? Parce que y'a un forum développement Web, mais ça reste de la programmation (et ledit forum est pas très actif)... ![]()
Moi je penses que le C est comme même une base a prendre pour la programmation. C'est pour moi la ref.
Après le C est encore beaucoup utilisé mais disons que les gens ( programmeurs ) ont tendances a préférer les langages de haut niveaux car plus simple, ce qui est dommage. Je parle du C mais le C++ en fait parti MAIS après le C :p
De toute façon un vrai programmeur code en bas niveau :p
Bien sûr que le Php a ça place ici, c'est de la programmation et heureusement qu'il existe sinon se serrait la merde ! Mais c'est un langage haut niveau donc ... t'es gentil tu dégage ! Non je rigole, Tu peux rester :p
En fait, je suis pas un expert dans le domaine du Web, mais je cherchais à avoir une info stupide...
J'ai dans l'idée de fonder une petite entreprise (je suis à l'étranger donc je gère à ce niveau) et je pensais me faire un site Web avec coordonnées, bien entendu.
Malheureusement, je suis un peu parano sur les bords et j'ai toujours fait en sorte que rien ne sorte quand on tape mes infos sur Google. Numéro de téléphone y compris.
Est-ce qu'il existe un moyen de mettre mes coordonnées sur mon site (Nom, adresse, n° de fixe, etc...) mais de manière à ce que les moteurs de recherche ne puissent pas les référencer ? Tout en gardant un référencement sur mon site de façon générale (parce que bon, le but c'est pas d'être perdu au fin fond de la 867ème page de résultats...).
Si vous avez une idée, que ce soit en JS, PHP ou autre chose, je suis tout ouïe ! ![]()
ça va être très très très compliqué et je dirais même impossible.
J'ai bien pensé que c'était un peu trop spécifique. Mais je gardais espoir !
GrandeGuerre, c'est complique ca.
En pratique les crawlers respectent le choix des webmasters et donc obeissent au directive de robot.txt.
Donc tu pourrais exclure la page contact du crawl de google. Apres ca ne veut pas dire que ce n'est pas indexable. Ca veut juste dire que les boite qui obeissent au robot.txt ne vont pas l'indexer.
Une autre solution moche mais qui marche est de mettre tes coordonnees dans une image. Encore ne fois, ca protege pas de tout, mais ca aide un peu quand meme.
GrandeGuerre, oui bien sur que PHP a sa place ici. C'est un langage relativement populaire.
Quel est votre langage préféré celui avec lequel vous préférez travailler.
perso j'ai globalement pris du plaisir dans tout les langages de programmations auxquels j'ai été confonté ![]()
mais si je devais donner un classement :
- Objective-C
- Python
- Javascripts (NodeJS)
- Scala
- Swift
- Java
Le 20 décembre 2015 à 18:40:18 WaveVibe_FR a écrit :
Moi je penses que le C est comme même une base a prendre pour la programmation. C'est pour moi la ref.
Je trouve ça un peu bizarre comme remarque quand tu dis juste avant que le C est le seul langage que tu connais
Surtout que dans l'absolu ça a pas beaucoup de sens, la racine commune à toutes les méthodes d'apprentissage de la programmation c'est l'algorithmique, avec autant que possible un langage le plus abstrait possible, aussi proche que possible du pseudo-code. En ça C est pas particulièrement bon candidat.
Après le C est encore beaucoup utilisé mais disons que les gens ( programmeurs ) ont tendances a préférer les langages de haut niveaux car plus simple, ce qui est dommage.
C'est pas dommage. On lui doit rien au C, on a pas d'obligation envers lui. Faut bien se mettre dans la tête que dans tout projet informatique on fait un compromis entre le coût, la durée de développement (initial + itérations) et la qualité (je vais comprendre les perfs là-dedans, même si c'est plutôt une catégorie à part). Faut bien se dire que si je peux faire un programme en 10 lignes de Python plutôt qu'en 100 lignes de C, avec moins de risque de faire des erreurs ou de laisser des failles, et que mon code Python est 2 ou 10 fois plus lent que l'équivalent C, y a de nombreux cas où le code Python sera un bien meilleur compromis. Parce que 10ms d'exécution ou 100ms d'exécution on s'en fout le plus souvent