Partage
  • Partager sur Facebook
  • Partager sur Twitter

nodejs et avenir

    7 septembre 2018 à 13:00:08

    Bonjour,

    Je developpe actuellement un site en php. Cependant je reflechis au passage du site en nodejs. Images, vidéos, forte utilisation sql seront presents (avec un systeme de cache bien sur). Je me pose par contre plusieurs questions :

    - Mon site est integralement dynamique, le nodejs assure t il niveau performances face à php 7? Et avec mariadb?

    - NodeJS n'est pas un langage à proprement parler... sa maintenance, son developpement est donc integralement dependant d'une société... je regretterai amerement de passer à NodeJS pour voir quelques annees apres son arret ou le passage en payant, qu'en est il à ce niveau là? Y a t il des risques par rapport à cette société? De plus, le moteur v8 est de google...

    - php a des mises à jour qui permettent le passage facilement d'une version à l'autre par le biais de depreciation etc... qu'en est il de nodejs? Tout recoder suite à une maj me parait pas l'ideal.

    Je precise par ailleurs que je suis contre les frameworks qui viennent par dessus NodeJS. Ce dernier en est un mais pour l'utilisation js du coté serveur, et non pour faciliter le travail.

    Merci par avance pour vos avis constructifs!

    -
    Edité par florian26 7 septembre 2018 à 13:00:46

    • Partager sur Facebook
    • Partager sur Twitter
      8 septembre 2018 à 13:51:44

      Bonjour,

      Dans ce que tu exposes tu donnes tous les arguments pour ne pas changer et rester en php me semble t-il.

      Perso, je fais des sites en php sous Symfony et j'ai voulu tâter de nodejs, il y a quelques temps. Et après avoir fait un chat avec nodejs, j'ai abandonné la filière qui me semblait trop instable avec ces dépendances qui fluctuent. Et j'ai recodé mon chat en php avec websocket.

      Par ailleurs, quand on se débrouille dans une filière (pour ne pas dire maîtrise) il faut avoir une bonne raison - autre que le fun de la dernière technique à la mode - pour en changer. C'est mon avis.

      A+

      -
      Edité par monkey3d 8 septembre 2018 à 13:52:32

      • Partager sur Facebook
      • Partager sur Twitter
        8 septembre 2018 à 15:58:23

        Bonjour,

        Oui ce sont les cotés qui me font être réticent. Je fais du PHP, après je ne suis pas dans le domaine donc savoir si NodeJS est juste un "effet de mode" ou le futur du développement, j'en ai pas la moindre idée.

        Qu'entends tu par "dépendances qui fluctuent" ?

        Concernant ton développement en websocket, je vais essayer de reprendre un peu ce que j'ai du louper en PHP pour réussir une connexion en websocket. Si j'ai toujours un problème, pourrai je te contacter en MP pour un peu d'assistance par rapport à ce que tu as fait ? Ou tu as peut-être utilisé un framework ?

        Concernant la raison du changement, ce serait déjà la rapidité, d'après ce que j'ai pu lire, NodeJS a l'air particulièrement rapide. Par ailleurs la charge est supérieure à celle en PHP. La maintenance est également plus simple, avec PHP il faut également configurer apache et le maintenir à jour, tout comme php ; avec NodeJS tout est réuni donc cela me semble plus simple.

        • Partager sur Facebook
        • Partager sur Twitter
          8 septembre 2018 à 17:00:34

          S'agissant des dépendances fluctuantes, j'ai eu des problèmes de compatibilité : à savoir que quand j'ajoutai un module il rentrait en conflit avec un autre.

          Ca c'est vraiment pour moi le bazar ! alors peut-être, sans doute, cela s'est amélioré.

          Je développe sous Symfony et j'ai utilisé un bundle qui procure déjà la couche protocole websocket. Avec cela j'ai fait un chat et un système de surveillance de capteurs et d'actionneurs domotique quasi temps-réel au sens du web.

          Si je peux t'aider ou du moins de dire comment j'ai fait c'est sans problème par MP.

          J'ai regardé quelques comparatifs il y a quelques temps (même si je suis méfiant dans les comparatifs sponsorisés), PHP 7 était équivalent à nodejs voire meilleur sur le plan rapidité perf.

          C'est vrai qu'il faut configurer apache avec php alors que nodejs contient aussi l'infrastructure server web mais sur mes projets j'ai rarement eu à toucher la conf apache après l'installation initiale. Et je pense qu'il faut aussi sans doute configurer le serveur nodejs pour optimiser sécuriser ...

          En terme de quantité et qualité de communauté il me semble qu'il n'y a pas photo entre LAMP et nodejs.

          Enfin, l'historique tortueux de nodejs me pose problème : fork io.js puis réintégration puis nouveau fork avec en plus la main mise de Google sur le moteur V8 ... alors certes la fondation Linux est maintenant au premier plan.

          Voilà pourquoi après avoir testé nodejs, je suis revenu au classique LAMP.

          A+

          -
          Edité par monkey3d 8 septembre 2018 à 17:12:27

          • Partager sur Facebook
          • Partager sur Twitter
            8 septembre 2018 à 17:34:14

            Ok ! Merci pour ton avis !

            En effet, les dépendances cela a l'air foireux, j'ai lu également des avis/commentaires qui rejoignent ce que tu m'as dit avec aussi plein de modules qui font la même chose...

            Je suis en PHP sans framework par dessus par contre ^^, je suis pas fan de cela. Par contre c'est cool pour le système domotique! j'hésite avec NodeJS car je pensais également, dans le futur, me faire un truc perso quand j'aurai eu davantage d'expérience. Si PHP le permet facilement alors parfait !

            Merci en tout cas pour toutes tes infos :)

            • Partager sur Facebook
            • Partager sur Twitter
              8 septembre 2018 à 18:38:17

              Je te confirme : j'ai réalisé un système domotique complet à la fois les aspects réseau domotique (capteurs, actionneurs, gateway) et le logiciel de gestion qui est fait avec le framework Symfony 3.4.x. donc techno LAMP.

              J'ai utilisé Symfony pour la partie portail (classique) mais aussi pour toutes les commandes en arrière plan : par exemple, la réception et l'émission des messages MQTT entre le serveur et le réseau domotique, l'affichage des mesures en websocket sur le portail, etc ...

              Et pour le fun, j'ai développé aussi en php et intégré dans le portail un assistant intelligent qui utilise le machine learning.: bluffant.

              Donc je peux dire que l'on peut tout faire (ou presque) en php.

              A+

              • Partager sur Facebook
              • Partager sur Twitter
                8 septembre 2018 à 18:40:09

                florian26

                Je suis en PHP sans framework par dessus par contre ^^, je suis pas fan de cela.

                Je voudrais bien savoir pourquoi ^^. Tu dev en poo au moins j'espère ?

                Et sinon voici une vidéo qui peut t'intéresser : https://www.youtube.com/watch?v=Xuj-4yFsQzE

                • Partager sur Facebook
                • Partager sur Twitter
                  8 septembre 2018 à 20:07:14

                  @monkey3d : Parfait :D Quand j'arriverai à faire cela, je serai refait ahah

                  @quenti77 : Oui, en POO ;) . Cela met beaucoup plus de clarté dans de gros dev en plus ^^. Sinon pour le pourquoi, c'est simplement que la maintenance du code est plus simple, php modifie pas radicalement son code et son fonctionnement et laisse un temps d'adaptation, ce qui n'est pas obligatoirement le cas des frameworks. Par ailleurs j'évite les failles de sécurité de ces derniers. Puis il y a un coté apprentissage également, avec un framework, j'apprends celui ci... si il est arrêté, c'est "perdu". Puis tout le coté dépendant ne m'inspire pas confiance. Quand j'y avais réfléchi, j'avais vu des commentaires où des sites ont du être totalement refait pour coller à des maj...

                  Génial la vidéo!! Par contre pour l'histoire des pool php, les accès réseaux je vais en avoir, mais j'ai créé un système massif de cache, les accès fichiers c'est la ram qui est utilisée ou je me trompe? Qu'est ce qui est concrètement fait par le processeur et fait par la ram au niveau d'un serveur web avec base de données?

                  Au final, PHP me semble quand même plus adapté, suffit de gérer les pool en fonction de notre code pour pouvoir gérer plusieurs choses. NodeJS le fait nativement mais il faut penser au cluster pour combler ses failles, par contre si à un moment ca foire, on fait complètement tomber la boucle.

                  -
                  Edité par florian26 8 septembre 2018 à 20:11:42

                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 septembre 2018 à 22:32:44

                    Ok merci de cette précision, même si ça me semble bizarre tant que ça te convient et que tu travail bien c'est tout ce qui compte au final.

                    Personnellement j'ai réalisé mon framework (cf: ma signature) et il est passé par plein d'évolution au fur et à mesure que j'apprenais mais c'est aussi la raison pour laquelle je préfère ne pas l'utiliser. Pas parce qu'il est mal ou bien mais parce que ça créé de la dette technique et que plus on a de code perso à gérer dans un projet plus ça coûte chère. Donc un framework comme laravel (vu que c'est celui que j'utilise au taff) permet d'avancer et ne pas se préoccuper de cette partie là. Et ça permet d'être en accord avec les personnes de l'équipe du projet.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 septembre 2018 à 5:40:29

                      florian26 a écrit:

                      Sinon pour le pourquoi, c'est simplement que la maintenance du code est plus simple, php modifie pas radicalement son code et son fonctionnement et laisse un temps d'adaptation, ce qui n'est pas obligatoirement le cas des frameworks.

                      Certains frameworks évoluent plus rapidement que d'autres, et quoi qu'il arrive rien n'oblige à utiliser toujours la dernière version.

                      florian26 a écrit:

                      Par ailleurs j'évite les failles de sécurité de ces derniers.

                      Tu évites aussi les fonctionnalités qui augmentent la sécurité qui sont incluses dans beaucoup de frameworks modernes. Au passages en codant ton propre framework tu ajoutes tes propres failles, ce qui peut être largement pire qu'un bon framework.

                      florian26 a écrit:

                      Puis il y a un coté apprentissage également, avec un framework, j'apprends celui ci... si il est arrêté, c'est "perdu".

                      Perdu non, les principaux frameworks sont open-source, donc rien n'est perdu, le code est toujours dispo et peut toujours être utilisé.

                      C'est plus rapide d'apprendre à utiliser un framework que d'en coder un, donc dans le pire des cas la perte ne sera pas énorme.

                      florian26 a écrit:

                      j'avais vu des commentaires où des sites ont du être totalement refait pour coller à des maj...

                      C'est pas forcément un problème, peut-être que les devs avaient besoin de fonctionnalités qui étaient dans la nouvelle version et ont choisi de recoder une partie de leur site.

                      C'est peu probable qu'un site doive être recodé entièrement, il va forcément y avoir des parties qui ne dépendent pas du framework qui peuvent être reprises. Même en changeant de framework on peut faire ça, alors pour une mise à jour, même majeure, c'est difficile à croire.

                      -
                      Edité par LoupSolitaire 9 septembre 2018 à 5:43:35

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Blond, bouclé, toujours le sourire aux lèvres...

                        9 septembre 2018 à 8:55:49

                        Perso j'ai évité un maximum tout ce qui est préconçu. Le serveur n'est géré par aucun panneau d'administration, je me ferai un petit outil après mon site. La seule chose préconçu que j'ai utilisé c'est pour l'envoi des mails
                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 septembre 2018 à 10:54:52

                          C'est dommage de penser comme ça (je trouve), car tu vas à l'encontre d'un des principes qui est de ne pas réinventer la roue.

                          Tu ne vas pas recoder un os, car tu utilises une dépendance qui est linux ? Tu vas pas inventer ton propre système de ban ip alors qu'il y a fail2ban. C'est pareil en dev et en adminsys, tous les code des soft open source, tu peux les compiler et donc faire tes modifications, mais c'est plus rapide de faire comme ça que de concevoir soi-même le système de A à Z et se sera de toute façon moins performant.

                          En dev, c'est pareil, la nouvelle version de mon framework se sert de dépendances via composer pour me permettre de ne pas refaire tout. Un exemple le routing. Dans les premières versions je l'avais fait moi-même, et même s'il était pas mal, ça reste toujours moins bien et surtout moins opti que la version que j'utilise maintenant (fastrouterouter). Et surtout ça m'évite des tonnes d'heure de code donc un gain de temps énorme.

                          Et comme j'ai essayé de faire les choses bien ce n'est pas une dépendance de mon framework. Si tu veux utiliser autre chose ou même le tien, il te suffit d'implémenter une interface et tout est bon (injection de dépendance via interface). C'est pareil pour le rendu d'une réponse et pour plein d'autre chose.

                          -
                          Edité par quenti77 9 septembre 2018 à 11:04:41

                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 septembre 2018 à 23:34:32

                            Oui, niveau sécurité c'est certainement plus fiable un framework, mais aussi plus facile à pirater si des failles sont présentes. Si je recommence de 0, la faille ne sera pas identique, et je compliquerai peut-être un peu la vie de ce cher visiteur ^^.

                            Voici un petit avis qui me correspond bien : https://webodrey.fr/blog/utiliser-framework-php-toujours-bon-choix

                            Peut-être que dans l'avenir j'utiliserai un framework, mais je n'ai aucune contrainte, c'est un projet personnel et je préfère apprendre à le faire. Je prends d'ailleurs des exemples par ci, par là pour me guider, mais en le faisant moi, cela me force à comprendre. J'ai d'ailleurs recommencé mon site plusieurs fois avant d'arriver à des bases nickel, mais maintenant j'ai compris celles-ci. Je verrai bien par la suite si j'utiliserai un framework ou même, possiblement, que je réutiliserai mon propre code en l'améliorant toujours plus :)

                            Pour l'OS dis toi que j'y ai pensé ahah, mais je suis très loin d'avoir ce genre de compétence à l'heure actuelle. Mais dans l'avenir, si je suis en manque de projet personnel... cela pourrait bien me tenter ^^

                            -
                            Edité par florian26 10 septembre 2018 à 23:36:37

                            • Partager sur Facebook
                            • Partager sur Twitter
                              11 septembre 2018 à 0:19:52

                              Il y a du bon dans cet article surtout sur les débutant qui ne doivent pas apprendre de framework tout de suite. Et si c'est un projet perso alors faire ton code et ton framework pourquoi pas.

                              Je l'ai fais aussi (lien dans ma signature si tu veux le voir) et je suis aussi passé par plusieurs étapes ou je recommençait tout de 0 car j'ai appris de nouvelle façon de faire.

                              Si tu as fait ton propre framework, j'aimerais, si tu le veux bien, voir ce que tu as fait. J'espère que tu utilise un gestionnaire de version :D

                              -
                              Edité par quenti77 11 septembre 2018 à 0:21:00

                              • Partager sur Facebook
                              • Partager sur Twitter
                                11 septembre 2018 à 9:10:23

                                Non, pas de gestionnaire de version sauf si Eclipse en utilise par défaut, je sais pas trop si on peut appeler cela un framework car je l'ai énormément intégré à mon site. En fait j'ai séparé mon site en 3 "applications" : les pages publiques, le coté administration et le coté ressources (images, js, css, html) dans le dossier App. J'ai également un dossier cache, data, install, lib et temp. Dans lib, j'ai séparé ce que j'ai plutot tendance à appeler des addons (ce qui peut être transposé sans la moindre modification entre les sites que je pourrai faire) des entités, des modèles, des fondations du sites et de mes constructeurs de formulaires.

                                Dans les fondations du style, j'ai placé la classe qui me permet de router mes liens en fonction de la langue indiquée par mon fichier de configuration (donc indépendamment du modèle et entité de langue). Les liens peuvent être faits à double sens. Il y a également une class pour gérer les templates de manière très basique (j'ai du php dans le template) car je veux voir l'impact sur la vitesse en remplaçant intégralement le php, un système de cache SQL à finaliser quand j'en serai à l'upload etc. Je ne trouve pas la gestion convenable et faut que j'avance un peu plus mon projet pour que je la trouve. J'ai en fait une classe pour n'importe quel fichier dont peut hériter la classe pour n'importe quel cachesql. Cependant le manager de ma classe de fichier doit savoir si il doit créer la classe pour un fichier simple ou pour un fichier cache... et le passage dans la méthode get ne me parait pas adapter, je verrai au fur et à mesure. Je t'enverrai cela quand ce sera du finalisé.

                                • Partager sur Facebook
                                • Partager sur Twitter

                                nodejs et avenir

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown