CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Javascript, c'est pourri

wowisclassic
wowisclassic
Niveau 10
27 février 2020 à 10:49:48

J'avais besoin de le dire, c'est vraiment de la merde, une gestion calamiteuse des objets, rien que deepcopy un objet faut avoir fait bac+5 haxxor, pas de mulithreading, l'asynchrone pourri à coup de settimeout partout dans ton code

go next

UndeadMarston6
UndeadMarston6
Niveau 10
27 février 2020 à 12:13:39

Ahah je comprends qu'on puisse être à bout mais il faut savoir structurer et encadrer son JS pour éviter de se casser le nez dessus et ça demande de la pratique

Mais oui l'objet en JS c'est vraiment moche :mort:

Pour le settimeout tu devrai regarder du côté des promise et des fonctions async await car normalement tu n'as pas besoin de faire de settimeout :(

20_cent_2017
20_cent_2017
Niveau 10
27 février 2020 à 12:17:25

Le 27 février 2020 à 10:49:48 wowisclassic a écrit :
J'avais besoin de le dire, c'est vraiment de la merde, une gestion calamiteuse des objets, rien que deepcopy un objet faut avoir fait bac+5 haxxor, pas de mulithreading, l'asynchrone pourri à coup de settimeout partout dans ton code

go next

mauvais dev ...

mov_eax_0
mov_eax_0
Niveau 10
27 février 2020 à 12:32:06

c'est le langage que j'apprécie le moins en vanilla, je trouve ça brouillon, expérimental mais bon je travaille quand même dessus.

Message édité le 27 février 2020 à 12:32:58 par mov_eax_0
JScestpourri
JScestpourri
Niveau 4
27 février 2020 à 12:32:51

Le 27 février 2020 à 12:13:39 UndeadMarston6 a écrit :
Ahah je comprends qu'on puisse être à bout mais il faut savoir structurer et encadrer son JS pour éviter de se casser le nez dessus et ça demande de la pratique

Mais oui l'objet en JS c'est vraiment moche :mort:

Pour le settimeout tu devrai regarder du côté des promise et des fonctions async await car normalement tu n'as pas besoin de faire de settimeout :(

j'ai été ban, sorry mais c'est moi :oui:

donc disais je, le probleme en fait c'est que js ne supporte pas le multithreading et on essaie d'emuler quelque chose de semblable en délayant avec settimeout, c'est vrai que ça n'a pas directement à voir avec les promises, mais ça à voir avec le crawler que je developpe en ce moment ; j'ai besoin de gerer une queue, de la remplir d'une part et de la vider d'une autre. j'ai des problemes de memoire, parce que la queue se remplit plus vite qu'elle ne se vide. j'aurais besoin de stop le crawler pour continuer à vider la queue mais le probleme c'est que beaucoup d'appels sont bloquants, j'ai été oblige de recoder pas mal de methode (genre foreach). et là j'aurais besoin de copier en profondeur l'objet courant, c'est d'une difficulte sans nom en js pour peu que l'objet soit un peu complexe.

soit c'est moi qui suis trop imprégné de ce qui se fait en cpp (et que je ne bite donc rien au fonctionnement de javascript), soit y'a des problemes qui ne peuvent pas être résolus en nodej. j'pense que je vais reserver mon utilisation de node pour d'autres projets genre des panels ce genre de truc.

Le 27 février 2020 à 12:17:25 20_cent_2017 a écrit :

Le 27 février 2020 à 10:49:48 wowisclassic a écrit :
J'avais besoin de le dire, c'est vraiment de la merde, une gestion calamiteuse des objets, rien que deepcopy un objet faut avoir fait bac+5 haxxor, pas de mulithreading, l'asynchrone pourri à coup de settimeout partout dans ton code

go next

mauvais dev ...

d'accord charles henry

JScestpourri
JScestpourri
Niveau 4
27 février 2020 à 12:35:42

alors c'est vrai qu'il y a un tas de libs qui pourraient m'aider, on m'en a cité quelques uness (lodash par ex), mais franchement ça me saoule d'avoir à faire grossir mon node_module pour des choses que je considère elementaires.

https://image.noelshack.com/fichiers/2020/09/4/1582803339-82620155-173700977345163-8353323220165722112-n.jpg

JScestpourri
JScestpourri
Niveau 4
27 février 2020 à 12:37:40

Le 27 février 2020 à 12:32:06 mov_eax_0 a écrit :
c'est le langage que j'apprécie le moins en vanilla, je trouve ça brouillon, expérimental mais bon je travaille quand même dessus.

d'accord là dessus

après y'a de bons trucs, j'trouve vraiment que v8 est un petit bijou, j'aime bien l'ecosystem nodejs en general mais là c'est trop, je me sens excessivement limité par son usage.

UndeadMarston6
UndeadMarston6
Niveau 10
27 février 2020 à 12:47:00

donc disais je, le probleme en fait c'est que js ne supporte pas le multithreading et on essaie d'emuler quelque chose de semblable en délayant avec settimeout, c'est vrai que ça n'a pas directement à voir avec les promises, mais ça à voir avec le crawler que je developpe en ce moment ; j'ai besoin de gerer une queue, de la remplir d'une part et de la vider d'une autre. j'ai des problemes de memoire, parce que la queue se remplit plus vite qu'elle ne se vide. j'aurais besoin de stop le crawler pour continuer à vider la queue mais le probleme c'est que beaucoup d'appels sont bloquants, j'ai été oblige de recoder pas mal de methode (genre foreach). et là j'aurais besoin de copier en profondeur l'objet courant, c'est d'une difficulte sans nom en js pour peu que l'objet soit un peu complexe.

Ok je vois, effectivement c'est p-e pas avec le js que tu auras le plus d'efficacité sur ce sujet :(
Dans ce cas la tu vas p-e devoir faire un petit micro-service dans un autre langage pour cette feature en particulier ?

Le 27 février 2020 à 12:32:06 mov_eax_0 a écrit :
c'est le langage que j'apprécie le moins en vanilla, je trouve ça brouillon, expérimental mais bon je travaille quand même dessus.

Je suis totalement d'accord avec ça, je trouve que le JS c'est très bien mais ça demande beaucoup de rigueur pour avoir quelques choses de solide :(

dark_drow
dark_drow
Niveau 15
27 février 2020 à 14:23:07

soit c'est moi qui suis trop imprégné de ce qui se fait en cpp (et que je ne bite donc rien au fonctionnement de javascript), soit y'a des problemes qui ne peuvent pas être résolus en nodejs

ya un peu des deux je pense.

multithreading et on essaie d'emuler quelque chose de semblable en délayant avec settimeout

Non, oublie le multithreading avec javascript, faut penser asynchrone et event loop. Si tu veux paralléliser des traitements tu peux lancer deux instances de ton programme avec des paramètres différents et un socketio / redis pour communiquer.

Apres pour ton probleme specifiquement, j'irai voir du côté des streams ou de la lib rxjs qui permet de faire du backpressure

Message édité le 27 février 2020 à 14:23:53 par dark_drow
boucif
boucif
Niveau 24
27 février 2020 à 14:33:10

Hello,
je code beaucoup sur JS, moi aussi je trouve que c'est de la grosse bonne daube mais je vais te donner quelques astuces.
Utilise TYPESCRIPT dès que tu le peux.
Pour ta copie d'objet des fois il y a pas plus efficace que :
var objCopy=JSON.parse(JSON.stringify(objOriginal));

Viking2Lyon
Viking2Lyon
Niveau 10
27 février 2020 à 16:05:06

Ta pas choisie le bon langage ....

Je te laisse méditer dessus ...js c'est pour de la manipulation du dom hein ....

Go python, go go .....voir c

JScestpourri
JScestpourri
Niveau 4
27 février 2020 à 16:24:03

Le 27 février 2020 à 12:47:00 UndeadMarston6 a écrit :

donc disais je, le probleme en fait c'est que js ne supporte pas le multithreading et on essaie d'emuler quelque chose de semblable en délayant avec settimeout, c'est vrai que ça n'a pas directement à voir avec les promises, mais ça à voir avec le crawler que je developpe en ce moment ; j'ai besoin de gerer une queue, de la remplir d'une part et de la vider d'une autre. j'ai des problemes de memoire, parce que la queue se remplit plus vite qu'elle ne se vide. j'aurais besoin de stop le crawler pour continuer à vider la queue mais le probleme c'est que beaucoup d'appels sont bloquants, j'ai été oblige de recoder pas mal de methode (genre foreach). et là j'aurais besoin de copier en profondeur l'objet courant, c'est d'une difficulte sans nom en js pour peu que l'objet soit un peu complexe.

Ok je vois, effectivement c'est p-e pas avec le js que tu auras le plus d'efficacité sur ce sujet :(
Dans ce cas la tu vas p-e devoir faire un petit micro-service dans un autre langage pour cette feature en particulier ?

Sûrement oui, mais ça m'emmerde voir une techno qui propose pouvoir gérer toute la stack et finalement n'assure même pas la moitié de ce qu'elle propose.

Le 27 février 2020 à 12:32:06 mov_eax_0 a écrit :
c'est le langage que j'apprécie le moins en vanilla, je trouve ça brouillon, expérimental mais bon je travaille quand même dessus.

Je suis totalement d'accord avec ça, je trouve que le JS c'est très bien mais ça demande beaucoup de rigueur pour avoir quelques choses de solide :(

Cette pseudo rigueur est particulière à js alors :hap:

Le 27 février 2020 à 14:23:07 dark_drow a écrit :

soit c'est moi qui suis trop imprégné de ce qui se fait en cpp (et que je ne bite donc rien au fonctionnement de javascript), soit y'a des problemes qui ne peuvent pas être résolus en nodejs

ya un peu des deux je pense.

je pense aussi :oui:

multithreading et on essaie d'emuler quelque chose de semblable en délayant avec settimeout

Non, oublie le multithreading avec javascript, faut penser asynchrone et event loop. Si tu veux paralléliser des traitements tu peux lancer deux instances de ton programme avec des paramètres différents et un socketio / redis pour communiquer.

Apres pour ton probleme specifiquement, j'irai voir du côté des streams ou de la lib rxjs qui permet de faire du backpressure

je vais tout recoder en python

Le 27 février 2020 à 14:33:10 boucif a écrit :
Hello,
je code beaucoup sur JS, moi aussi je trouve que c'est de la grosse bonne daube mais je vais te donner quelques astuces.
Utilise TYPESCRIPT dès que tu le peux.
Pour ta copie d'objet des fois il y a pas plus efficace que :
var objCopy=JSON.parse(JSON.stringify(objOriginal));

ce hack ne fonctionne pas pour des objets avec des methodes. Ce qui est quand même assez courant. :hap:

class C {
    constructor() {
        this.hi ="hi";
    }

    sayHi() {
        console.log(this.hi)
    }

}

let obj = new C();
let obj_dump = JSON.parse(JSON.stringify(obj));

obj.sayHi()// works
obj_dump.sayHi() // not a function

Le 27 février 2020 à 16:05:06 Viking2Lyon a écrit :
Ta pas choisie le bon langage ....

Je te laisse méditer dessus ...js c'est pour de la manipulation du dom hein ....

Go python, go go .....voir c

cf les promesses de node

Node. js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

tsez93
tsez93
Niveau 10
27 février 2020 à 16:51:48

je vais tout recoder en python

Attention, Python n'est pas non plus l'idéal pour du multithreading (GIL lock).

godrik
godrik
Niveau 30
27 février 2020 à 17:02:01

Ouais, je dois dire que je ne suis pas un grand fan de javascript non plus. C'est specifie bizarrement comme langage. Et c'est pas adapte au genre de chose que OP cherche a faire.
Faire un systeme producer/consumer c'est vraiment le boulot de langage comme C++, Go, ou Rust.

Le modele de parallelisme de Go ou Rust ont ete concu pour faire du producer/consumer. Mais ca s'ecrit tres bien en C++ aussi.

dark_drow
dark_drow
Niveau 15
27 février 2020 à 17:09:41

je vais tout recoder en python

Ouai autant rester sur node alors :o))

boucif
boucif
Niveau 24
27 février 2020 à 17:13:48

Ah oui effectivement tu veux cloner l'objet avec ses méthodes, que le clone JS c'est souvent que les propriétés qui sont clonés ...

JScestpourri
JScestpourri
Niveau 4
27 février 2020 à 17:14:59

Le 27 février 2020 à 17:09:41 dark_drow a écrit :

je vais tout recoder en python

Ouai autant rester sur node alors :o))

attendez mon topic "Python, c'est pourri" :oui:
non au jython !

Le 27 février 2020 à 17:02:01 godrik a écrit :
Ouais, je dois dire que je ne suis pas un grand fan de javascript non plus. C'est specifie bizarrement comme langage. Et c'est pas adapte au genre de chose que OP cherche a faire.
Faire un systeme producer/consumer c'est vraiment le boulot de langage comme C++, Go, ou Rust.

Le modele de parallelisme de Go ou Rust ont ete concu pour faire du producer/consumer. Mais ca s'ecrit tres bien en C++ aussi.

il me manquait ce terme de producer, consumer, merci beaucoup
j'ai été faire un peu de lecture, j'ai peut etre une implémentation à proposer

JScestpourri
JScestpourri
Niveau 4
27 février 2020 à 17:16:14

Le 27 février 2020 à 17:13:48 boucif a écrit :
Ah oui effectivement tu veux cloner l'objet avec ses méthodes, que le clone JS c'est souvent que les propriétés qui sont clonés ...

ça ça m'embête vraiment pour le coup :hap:

godrik
godrik
Niveau 30
27 février 2020 à 17:26:49

Le 27 février 2020 à 16:51:48 tsez93 a écrit :

je vais tout recoder en python

Attention, Python n'est pas non plus l'idéal pour du multithreading (GIL lock).

En l'occurence, j'ai l'impression qu'il veut faire des thread pour avoir de la concurrent, pas du parallelisme. Du coup, le GIL n'est peut etre pas un probleme.

JScestpourri
JScestpourri
Niveau 4
27 février 2020 à 18:29:18

Le 27 février 2020 à 17:26:49 godrik a écrit :

Le 27 février 2020 à 16:51:48 tsez93 a écrit :

je vais tout recoder en python

Attention, Python n'est pas non plus l'idéal pour du multithreading (GIL lock).

En l'occurence, j'ai l'impression qu'il veut faire des thread pour avoir de la concurrent, pas du parallelisme. Du coup, le GIL n'est peut etre pas un probleme.

faudra faire avec de toute façon

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment