Mer0me / MonnaieM

Plateforme d'échanges entre particuliers avec monnaie virtuelle et revenu de base
Other
16 stars 3 forks source link

Remarque #2

Closed antham closed 10 years ago

antham commented 10 years ago

Gros travail qui a été fait ici mais vous ne pensez pas qu'il serait plus simple d'utiliser un framework ? Plus les fonctionnalités vont augmenter et plus cela va être difficile à maintenir sans parler de la sécurité.

Sazaju commented 10 years ago

Rien n'est fait que d'avantages. Utiliser un framework, c'est imposer une façon de travailler. Les frameworks c'est bien pour ceux qui veulent effectivement se simplifier le travail sur des problèmes usuels, mais pas pour ceux qui veulent se creuser les méninges sur des problèmes nouveaux. Qui dit problème nouveau dit garder autant de flexibilité que possible pour ne pas se fermer des portes sur les solutions possibles.

En revanche, rien n'empêche d'utiliser des bibliothèques : ça met des fonctionnalités à disposition mais n'utilise que qui veut.

Dans tous les cas, il y a ceux qui veulent juste des fonctionnalités, ceux-là veulent se simplifier le travail au max, et ceux qui veulent juste coder, ceux-là au contraire ne veulent pas qu'on leur mâche le boulot. Ça c'est les extrêmes et chacun se trouve entre les deux, plutôt d'un côté ou plutôt de l'autre. Du coup faut savoir s'adapter aux deux. Les frameworks ne satisfont que les premiers.

Mer0me commented 10 years ago

Sazaju a bien résumé la chose. Je suis de ceux qui font tout (mal) eux-mêmes. Ca présente des tas de défauts. Mais ça avance diablement vite :)

ghost commented 10 years ago

Pour partir sur quelque chose de concret qui permettrait de se décider par rapport à un exemple précis, j'ai commencé à factoriser le code en utilisant le micro-framework silex, basé sur symfony. Cela permet d'avoir un cadre de base, avec les librairies symfony disponible, mais nous laisse toute latitude d'organiser notre code… Je push tout ça dès que possible.

antham commented 10 years ago

C'était une remarque en passant ce ticket, je n'avais pas lu avant de poster, le forum et les fils de discussion où vous avez discuté de ça. Je vois bien ce que tu veux dire @Mer0me et je ne critique pas ta démarche, je trouve ça très bien de se prendre par la main et de faire les choses.

Effectivement un framework est un cadre de travail c'est son but. Un bon framework proposera des manières de faire mais sera suffisamment flexible pour laisser de la latitude quand c'est nécessaire. Mais assembler des bibliothèques et définir "manuellement" comment organiser le code, je ne vois pas la différence avec un framework, excepté entre autre le risque de manque de cohérence des bibliothèques et le côté non contraigant de suivre les pratiques définis.

Juste pour répondre à 2 remarques :

pas pour ceux qui veulent se creuser les méninges sur des problèmes nouveaux => globalement, je ne vois pas ce qu'il y'a d'innovants dans ce que vous voulez faire vous utilisez des fonctionnalités classiques, authentifications, génération de crud, etc... à moins que vous essayez au-delà de ce que j'ai vu de faire autre chose.

il y a ceux qui veulent juste des fonctionnalités, ceux-là veulent se simplifier le travail au max, et ceux qui veulent juste coder, ceux-là au contraire ne veulent pas qu'on leur mâche le boulot => généralement personne ne perd sont temps à réinventer ce qui a été fait par des développeurs de haut vol, ça sera généralement plus mal fait et plus buggé à moins d'être très bon, on préfère se concentrer sur les spécificités de ce qu'on doit implémenter.

matthieu-vergne commented 10 years ago

(NB: désolé pour le post sous le nom Sazaju, c'est un autre compte, je reprends celui à mon nom {^_^})

@utilisezlinux : merci de pusher ça sur une autre branche, qui sera mergée au master si ça plaît. Comme ça on peut même s'y essayer nous-même sans avoir peur de "pourrir" la branche master.

@antham : Tu as tout à fait raison, le truc étant que ce n'est pas en utilisant des frameworks à longueur de journée qu'on devient un de ces programmeurs de haut vol. Donc quand on veut le devenir, il est logique d'être récalcitrant à en utiliser, aussi contradictoire que ça puisse paraitre au premier abord. Dit autrement : c'est pas en laissant les autres le faire que tu apprendras à le faire toi-même. Donc quand tu veux apprendre, tu mets les mains dans sous le capot, tu te contente pas d'acheter la voiture toute faite.

Si ça avait été un site pro, ça aurait eu tout son sens d'utiliser un framework, mais ce n'est pas le cas : c'est un site perso + à teneur expérimentale (revenu de base & cie). Le premier point fait qu'on n'a pas la nécessité d'utiliser un framework, donc c'est entre du "je veux pas m'embêter" et "je veux me faire plaisir à coder". Si on se contentait de ça on pourrait discuter longtemps, mais au final c'est une question de préférences persos plutôt que de choix rationnels, et les goûts ne se discutent pas {^_^}. Le second point fait qu'il y a probablement des trucs nouveaux à considérer, et tant qu'on ne sait pas lesquels il est de bon ton de considérer que ça peut être n'importe où, ce qui est plutôt un argument pour le fait-main.

antham commented 10 years ago

Je veux juste répondre à un point bien que je n'ai pas envie vraiment de partir dans une discussion sans fin, ce n'était pas le but de ce ticket.

Je comprends pas bien cette opposition utilisation de framework = développeur qui à la flemme, pas de framework = bon développeur parce qu'il fait tout par lui-même. Les frameworks apportent généralement avec eux les best practices et les standards communément admis pour faire du code propre, bien structuré et testé donc facile à maintenir. Coder en suivant des solutions largement éprouvées permet de s'améliorer soi-même en adoptant ces même best practices, ça rend les développeurs meilleurs. Utiliser des concepts comme les orms, l'injection de dépendance par exemple sont des choses qui améliorent clairement mes compétences de développeur sur la manière de structurer mon code, son évolutivité,sur de nouvelles manières de faire les choses, etc... pour ma part ça me vient des frameworks et je ne considère pas ces concepts comme triviaux.

ghost commented 10 years ago

C'est clair, je ne me définis pas comme un dev de «haut vol», loin de là, et le fait d'utiliser un framework me permet d'utiliser un cadre de développement où les best practice et le code propre sont de mise… ça me permet d'apprendre en m'amusant…

matthieu-vergne commented 10 years ago

@antham : Si tu ne veux pas que la discussion se poursuive, ne l'alimente pas {^_^}. Tu ne comprends pas, alors je vais donner mon explication.

On n'a pas parlé de bon ni de mauvais développeurs, il ne faut pas nous faire dire ce qu'on n'a pas dit, et je pense qu'il ne faut SURTOUT PAS faire cet amalgame (dans un sens comme dans l'autre). On parle de différence de besoins, rien de plus. Il n'y a pas de solution qui est mieux dans tous les contextes, il convient donc de ne pas faire passer l'utilisation de framework (ou la non utilisation de framework) comme un must sans réfléchir plus loin. Si les quelques personnes qui participent à un projet veulent maitriser les détails, pourquoi devraient-elles se forcer à utiliser des couches qui leurs cachent ces détails ?

Ensuite, un framework est une chose, une best practice en est une autre. On n'a pas besoin de framework pour appliquer des best practices, et tout framework n'est pas nécessairement support de best practices. Et si on en vient à dire quelles sont les best practices on a encore de quoi discuter longtemps, parce qu'il n'y a pas toujours d'accord sur celles ci.

Bref, ça en revient souvent à favoriser la généralité à la spécificité : ce n'est pas parce qu'une solution est généralement pertinente que dans un cas particulier donné elle le sera. Est-ce qu'utiliser un framework est pertinent en général ? Oui, pour toutes les raisons pré-citées et surement d'autres. Est-ce qu'utiliser un framework dans un projet en particulier est pertinent ? Ça c'est à ceux qui y participent d'en décider. De ce que j'en ai compris on est 3, avec une majorité de 2 contre et 1 pour. Si quelqu'un veut faire un fork du projet pour en faire une version sous un framework particulier, le code est ouvert pour ça.