Spécialisation PHP hautes performances

Petit nouveau ! | 3 Messages

17 déc. 2014, 14:58

Bonjour à tous,

J'espère que je poste dans la bonne section.

Ma question se résume à : pensez vous qu'il y a une demande pour des solutions orientées hautes performances dans le monde de PHP ?
Je suis développeur PHP sous symfony2, -je souhaite me mettre à mon compte- et je dois avouer que sa lourdeur intrinsèque me frustre grandement. J'en suis venu à m'intéresser à Phalcon (le framework écrit en C et chargé en tant qu'extension).
De fil en aiguille, je me suis demandé si une une spécialisation dans le développement de solutions à haute performance et me vendre spécialement sur ce savoir faire (par exemple Phalcon, HHVM ou PHP classique avec utilisation massive de techniques de cache) serait pertinent.

En effet j'ai le sentiment qu'actuellement l'offre est uniquement ciblée sur le produit et le coût par l'intermédiaire d'outils optimisés pour le développement rapide (CMS et symfony2 majoriraitement pour la France) ?
Si j'ai l'impression que l'optimisation des performances n'est pas une grande préoccupation dans le milieu PHP, il me semble aussi que les clients ne s'intéressent que peu à la performance ?
Qu'en pensez vous ? Y aurait il un segment ? Mes impressions sont elles fausses ?

Bien à vous

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8759 Messages

17 déc. 2014, 22:47

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.
Il en faut peu pour être heureux ......

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8759 Messages

17 déc. 2014, 22:56

J'espère que je poste dans la bonne section.
Dans l'actualité non :mrgreen: :mrgreen:

La gestion des performances est une chose à prendre en compte au développement mais il faut aussi se poser la question de la cible.
Il y a d'autre chose a faire avant de devoir supporter le coup d'un dédié avec une extension (sans perler du suivis de cette extension, est ce qu'elle suis les release de php ? etc.).

la gestion de cache (de fichier / sgbd etc.) applicatif ou au niveau serveur (web notamment) utilisation de byte code ou autre il y a beaucoup de solution possible.

lorsque l'on utilise un CMS ou un framework il s'agit d'un choix technique important qui ne devrait pas être basé que sr son expérience mais sur une réelle étude du besoin.

Beaucoup de site fonctionnent très bien avec du code non optimisé parce qu'ils n'en on pas besoin. Lorsque tu as besoin de "performance extrême" tu n'utilise pas forcément un framework dont ne maîtrise pas toute la chaîne et l'utilisation d'un framework oblige cela (sinon tu le code toi même ;) ).


Bref un code propre et avec un minimum d'optimisation (genre pas de requête dans le traitement d'une requête etc) c'est normal.
De la vouloir chercher des milli secondes c'est bon si tu bosse sur des site à très très grosse audience (FB était dév en php, avec extension php perso) ;)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

18 déc. 2014, 14:42

Merci pour ta réponse,

Si je résume ta pensée, à part pour les sites à fort traffic, dans la majorité des sites un site codé correctement + opcode cache suffit largement.

Mais si c'est le cas, la majorité des CMS sont codés avec des pieds et rament comme des galériens (Joomla, magento, prestashop, etc). C'est presque par principe mais ça me frustre énormément d'utiliser de tels outils "pourris" alors qu'il existe des solutions performantes. Je concède être probablement trop obnubilé par la performance. En somme, je souhaiterais me spécialiser et me vendre sur une expertise basé sur la performance en disant : "avec mes solutions, économisez en ressource serveur / bande passante même avec de forts trafics grâce à des solutions optimisées pour la performance (sans sacrifier les caractéristiques)". Évidemment je ne ciblerais pas les sites institutionnels mais plutôt les sites de taille intermédiaire voire grande (sans être gigantesque).

D'après toi, un tel savoir-faire n'intéresserais pas grand monde ou ne serait pas une plus-value ?

bouh

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8759 Messages

18 déc. 2014, 15:35

c'est un savoir qui a sont utilité, tu peux trouver des boites qui en ont besoin.
c'est rarement le cas pour tous ce qui est indiqué si dessus.

je ne dit pas que c'est forcément coder avec les pieds, je dit que c'est pas toujours correct il y a une nuage.

Le coté gestion de ressource pourquoi pas mais pour ce que coûte un cpu ou de la ram idem.

La plus part des appilcations n'ont pas besoin de celà (j'utilise ma voiture tous les jours et n'ai pas une écurie de formule 1 chez moi ;) ).

Toutes compétence est bonne a prendre et est monnayable il faut juste s'adresser à la même personne.
L’artisan du coin qui veux une vitrine web parce que c'est dans l'air du temps il s'en fou que ce soit codé, optimisé et rutilant il veux que ça fonctionne et que ça ressemble à ce qu'il a demandé.

Celui qui va mettre en ligne du contenu que personne n'a et que tout le monde veux va être intéressé bien entendu ;)

Bref tous est dans la nuance :mrgreen:

@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 5902 Messages

19 déc. 2014, 12:02

Dans tous les cas si tu veux te spécialiser là dedans il faut que tu aies une très bonne connaissance des opérations qui prennent du temps (je ne parle pas for versus while versus foreach sur lesquels ça se compte en millisecondes), donc beaucoup t'intéresser au benchmarking (temps d'exécution, cpu, mémoire, etc), ce qui demande de la rigueur.
Il va falloir développer une bonne vision de ce qu'il y a autour de PHP et qui peut influer sur l'éxecution (les internals de PHP, les différences selon le matériel utilisés, selon les logiciels type base de données utilisés, etc).

Cordialement

ViPHP
ViPHP | 928 Messages

19 déc. 2014, 12:35

Les performances du site passent avant tout par le cache, la techno utilisée par le backend est presque secondaire. Si tu mets en place une architecture serveur intelligente, et des bonnes couches de cache, tu n'auras pas de problèmes de performances. Varnish (serveur de cache HTTP) permet d'obtenir des performances fantastiques par exemple. D'ailleurs Symfony 2 s'intègre très bien avec ce type de cache, et gère même nativement l'ESI. De nombreux sites à fort trafic utilisent Symfony 2, et moi même c'est la techno que j'ai retenu sur le site que je développe, qui devra gérer un très fort trafic.

La demande n'est pas forcément très forte sur le marché pour la performance très pointue, parce que la plupart des sites ne visent pas un trafic colossal. Et en dehors de ça, je ne vois pas forcément le besoin de se spécialiser là dedans. Savoir développer un site optimisé, ce n'est pas une finalité en soit, mais une "simple" compétence qui vient avec l'expérience. Mieux vaut s'intéresser aux différentes technologies, et se vendre comme un développeur full-stack. Ce type de développeur se monnaye très bien sur le marché aujourd'hui, je vois souvent des offres à 50-60k passer pour des développeurs full-stack symfony2.

Petit nouveau ! | 3 Messages

19 déc. 2014, 14:20

@Sékiltoyai, en effet, j'ai bien envie de mettre en place des benchmarks pour voir un peu ce qui peut être obtenu de mieux.

@Genova

J'ai vu ta réponse sur le sujet bien détaillée sur le sujet "Séquentielle, POO" qui m'a beaucoup intéressé ! Je vais certainement m'intéresser à tous les outils que tu as mentionnés. Par contre, quand tu affirmes que "la techno backend est presque secondaire", est ce que tu dis ça parce que tu as été tellement émerveillé par les systèmes de cache que tu ne t'es pas intéressé au reste, ou sur une expérience ?

En outre quand tu dis que l'optimisation n'est "qu'une "simple" compétence qui vient avec l'expérience.", trouves-tu que cette compétence est répandue parmi les développeurs web en général ?

(Par ailleurs, je te remercie pour la suggestion à propos du fullstacking. J'ai une bonne expérience en js mais il me manque un framework MVVM à mon arc je pense.)

Ce qui semble ressortir quand même de vos commentaires, c'est que la performance comme "but" n'est qu'un marché de niche que pour sites à gros trafics, ce qui est logique. Peut être qu'un jour ça prendra plus d'importance grâce, ou à cause du greenwashing !


Merci de vos réponses en tout cas !

ViPHP
ViPHP | 928 Messages

23 déc. 2014, 00:56

Par contre, quand tu affirmes que "la techno backend est presque secondaire", est ce que tu dis ça parce que tu as été tellement émerveillé par les systèmes de cache que tu ne t'es pas intéressé au reste, ou sur une expérience ?
Je suis développeur, donc coder je fais ça tous les jours, et j'adore ça. Le cache c'est la seule solution pour optimiser correctement un site, c'est uniquement avec ça qu'on gagne énormément en performance. Donc c'est pas vraiment le fait d'être émerveillé, mais plutôt d'être convaincu.
En outre quand tu dis que l'optimisation n'est "qu'une "simple" compétence qui vient avec l'expérience.", trouves-tu que cette compétence est répandue parmi les développeurs web en général ?
Cette compétence est répandue parmi les développeurs qui ont de l'expérience. Un peu comme un ouvrier qui connait tout un tas d'astuces pour construire plus efficacement, plus proprement et de façon plus sécurisée : il ne peut pas tout savoir lorsqu'il débute, mais il apprendra au fil de son expérience.

ViPHP
ViPHP | 2576 Messages

30 déc. 2014, 12:21

J'ai l'impression que le cout de développement prime sur les performances. Le cout d'un serveur est faible par rapport à son administration et aux couts de développement ; au final il est plus facile de prendre un serveur plus puissant. Dans la mesure du possible, il faut respecter la philosopie du langage ou du framework pour rendre l'application plus performante.

De ma faible expérience pro en PHP, on développe rapidement en réutilisant des choses déjà faites et si le client gueule, on optimise les parties qui posent problème.

De ma plus grande expérience hors PHP, l'optimisation rend les applications plus difficile à faire évoluer et il vaut mieux moins optimiser et avoir un code plus solide et plus simple. Une partie de l'optimisation peut également s'obtenir lors de la conception en expliquant le cout de certaines fonctionnalités. Il m'est arrivé de rendre une édition plus simple et plus rapide en supprimant des colonnes non vitales pour l'utilisateur et en ajoutant d'autres colonnes que l'utilisateur n'avait pas osé demander.