Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2925 connectés 

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  24559  24560  24561  ..  27169  27170  27171  27172  27173  27174
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°2408720
Flaie
Posté le 02-02-2022 à 11:05:11  profilanswer
 

Reprise du message précédent :

R3g a écrit :


Ça c’est au moins un problème qu’on a plus.


condoléances :(

mood
Publicité
Posté le 02-02-2022 à 11:05:11  profilanswer
 

n°2408721
el muchach​o
Comfortably Numb
Posté le 02-02-2022 à 11:05:46  profilanswer
 

___alt a écrit :


Bah ça fait chier, d'autant qu'en plus pour le coup c'est pas trop dégueulasse ce qu'il fait, mais bon.
Le vent est en train de tourner dans le monde du jeu vidéo où chaque annonce de NFT se prend un backlash tel que les studios abandonnent direct, sauf Ubisoft vu que l'ADN de la boîte c'est d'être plus intelligent que tout le monde et c'est les autres qui sont cons.


On pourrait se demander pourquoi il vend des NFT alors qu'il pourrait vendre des originaux (et le fait déjà vraisemblablement). Enfin plutôt: pourquoi on achèterait un NFT alors qu'on pourrait avoir l'original sur ses murs. Il faut croire que la hype est telle que le NFT se vend bien plus cher que s'il vendait ses oeuvres dans une galerie. Ce qui serait fort, ce serait de laisser le NFT à un abruti de spéculateur, et acheter l'oeuvre d'art elle-même directement.  :D
Plus sérieusement, je comprends pourquoi pas mal d'artistes sont intéressés: le marché de l'art est par nature très lent, puisque la valeur des oeuvres n'évolue qu'avec les ventes, alors qu'avec les NFT, les échanges sont potentiellement beaucoup plus fréquents car dématérialisés, et je soupçonne que certains acheteurs ne se déplacent même pas pour aller chercher les originaux.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2408722
koskoz
They see me trollin they hatin
Posté le 02-02-2022 à 11:06:35  profilanswer
 

R3g a écrit :

Bon, dernier sms reçu de madame qui est partie voir sa mère à l’hôpital : « Je vais rester plus longtemps que prévu, c’est la fin et je veux rester auprès d’elle »
Je suis en train de préparer le dîner, les grosses jouent dans leur chambre, je sais pas trop comment lancer la conversation a table :/


 
Pareil pour mon grand-père, ma mère m'a appelé hier matin pour me prévenir qu'ils avaient arrêté les soins [:sadnoir]


---------------
Twitter
n°2408723
xtieu
Posté le 02-02-2022 à 11:07:38  profilanswer
 

En parlant NFT, c’est passé ça ?
 
https://color.museum/
 
Ça a un potentiel de drama phénoménal :o


---------------
There's more to life than the boy in that mirror.
n°2408724
el muchach​o
Comfortably Numb
Posté le 02-02-2022 à 11:10:29  profilanswer
 

masklinn a écrit :

Question pour les vieux pervers qui utilisent des makefiles pour leur automatisation (genre much ou harko): vous gérez ça comment quand vous avez besoin d’utilitaires one-shot pour des tasks trop compliquées pour être du make(1) ou du sh(1)?


Python


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2408725
masklinn
í dag viðrar vel til loftárása
Posté le 02-02-2022 à 11:14:14  profilanswer
 

koskoz a écrit :

Pareil pour mon grand-père, ma mère m'a appelé hier matin pour me prévenir qu'ils avaient arrêté les soins [:sadnoir]


:/


Non mais genre spécifiquement: comment ces sous-scripts sont organisés et appelés, où ils sont rangés, etc…


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2408726
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 02-02-2022 à 11:20:56  profilanswer
 

koskoz a écrit :


 
Pareil pour mon grand-père, ma mère m'a appelé hier matin pour me prévenir qu'ils avaient arrêté les soins [:sadnoir]


 
:/ mon grand-père nous a quitté au matin de Noël, ça ne va pas être la joie tout ça  [:zedlefou:3]


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2408727
koskoz
They see me trollin they hatin
Posté le 02-02-2022 à 11:21:55  profilanswer
 

masklinn a écrit :

Question pour les vieux pervers qui utilisent des makefiles pour leur automatisation (genre much ou harko): vous gérez ça comment quand vous avez besoin d’utilitaires one-shot pour des tasks trop compliquées pour être du make(1) ou du sh(1)?


 
Nos Makefile exécutent des docker-compose [:b0wh]


---------------
Twitter
n°2408728
el muchach​o
Comfortably Numb
Posté le 02-02-2022 à 11:44:49  profilanswer
 

masklinn a écrit :


Non mais genre spécifiquement: comment ces sous-scripts sont organisés et appelés, où ils sont rangés, etc…


Ca manque de contexte. Il n'y a pas une seule réponse possible.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2408729
masklinn
í dag viðrar vel til loftárása
Posté le 02-02-2022 à 11:52:33  profilanswer
 

el muchacho a écrit :


Ca manque de contexte. Il n'y a pas une seule réponse possible.


C’est pour ça que je demande comment les gens qui ont ce besoin font généralement ça. Ya probablement une pile d’unknown unknowns vu que je pars de “j’veux des tasks, mais je vais avoir besoin de bordel qui rentre pas dans un makefile”. La question est très générale parce que c’est un besoin qui est sans nul doute amené à s’étendre.
 
Le besoin “v0” c’est que de créer un fichier “de config” qui unifie des fichiers existants (qui sont pas nécessairement dans le projet) et de requêtes à des APIs externes (mais les dépendances sont sur les fichiers existants, on considère que les résultat des requêtes vont pas changer indépendamment des configs locales).


Message édité par masklinn le 02-02-2022 à 11:54:57

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 02-02-2022 à 11:52:33  profilanswer
 

n°2408730
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 02-02-2022 à 11:53:43  profilanswer
 

La coutume linux c'est pas simplement d'augmenter ton PATH avec le dossier de tes outils ? (et/ou de les déployer dans un /usr/local ou /opt quelconque) Et après make peut les appeler pis basta.


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2408731
masklinn
í dag viðrar vel til loftárása
Posté le 02-02-2022 à 11:56:01  profilanswer
 

Xavier_OM a écrit :

La coutume linux c'est pas simplement d'augmenter ton PATH avec le dossier de tes outils ? (et/ou de les déployer dans un /usr/local ou /opt quelconque) Et après make peut les appeler pis basta.


Les “outils” en question c’est pas des trucs qui sortent de binutils ou quoi, ce sont des morceaux de tâches qui rentrent pas (décemment[0]) dans un makefile, genre aller appeler des APIs externes, ou parser des fichiers toml ou json ou xml.
 
[0] genre techniquement ça pourrait probablement être fait avec une combinaison natassique de curl, jq, et je sais pas quoi pour le xml et le toml, mais je vais pas faire ça.

Message cité 2 fois
Message édité par masklinn le 02-02-2022 à 11:56:52

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2408732
nraynaud
lol
Posté le 02-02-2022 à 12:22:51  profilanswer
 

Je sors de chez la Neuropsy, j’ai jamais vu un voyageur de commerce multi critères aussi mal branlé, la fonction de coût était complètement vague.


---------------
trainoo.com, c'est fini
n°2408733
___alt
Posté le 02-02-2022 à 13:17:25  profilanswer
 

el muchacho a écrit :

Enfin plutôt: pourquoi on achèterait un NFT alors qu'on pourrait avoir l'original sur ses murs.


 
Line goes up.
 

el muchacho a écrit :

je soupçonne que certains acheteurs ne se déplacent même pas pour aller chercher les originaux.


 
Pour l'art classique ou pour les NFT ? Parce que pour les NFT il n'y a aucun original à aller chercher.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2408735
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 02-02-2022 à 13:39:39  profilanswer
 

masklinn a écrit :


Les “outils” en question c’est pas des trucs qui sortent de binutils ou quoi, ce sont des morceaux de tâches qui rentrent pas (décemment[0]) dans un makefile, genre aller appeler des APIs externes, ou parser des fichiers toml ou json ou xml.

 

[0] genre techniquement ça pourrait probablement être fait avec une combinaison natassique de curl, jq, et je sais pas quoi pour le xml et le toml, mais je vais pas faire ça.

 

Je ne te suis pas. Un makefile peut appeler n'importe quel outil externe, et sous linux un outil externe = n'importe quel binaire/shell script/python script/java/brol, aka n'importe quoi qui se chmod+x.

 

Dans ces conditions là est-ce que tu peux expliciter un exemple de trucs qui ne "rentrent pas dans un makefile"  :??: Pour moi on y met ce qu'on veut (pareil pour un Jenkins quoi, tant que ça peut s'appeler...), j'ai déja vu des makefile qui lancent des jobs d'impression, qui déploient côté serveur à coup de rsync, etc

Message cité 1 fois
Message édité par Xavier_OM le 02-02-2022 à 13:47:25

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2408736
el muchach​o
Comfortably Numb
Posté le 02-02-2022 à 13:48:34  profilanswer
 

masklinn a écrit :


Les “outils” en question c’est pas des trucs qui sortent de binutils ou quoi, ce sont des morceaux de tâches qui rentrent pas (décemment[0]) dans un makefile, genre aller appeler des APIs externes, ou parser des fichiers toml ou json ou xml.
 
[0] genre techniquement ça pourrait probablement être fait avec une combinaison natassique de curl, jq, et je sais pas quoi pour le xml et le toml, mais je vais pas faire ça.


Ca me semble être un use case parfait pour du Python, ton truc. Après, vu que ça n'a pas l'air très défini, je ne me poserais pas trop de questions, je commencerais par un prototype, et les itérations viendront avec l'expression des besoins.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2408737
el muchach​o
Comfortably Numb
Posté le 02-02-2022 à 13:49:55  profilanswer
 

___alt a écrit :


Pour l'art classique ou pour les NFT ? Parce que pour les NFT il n'y a aucun original à aller chercher.


Si tu as regardé la vidéo, il fait des tableaux, et il compte en faire des NFT. Je parlais des originaux, évidemment.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2408738
flo850
moi je
Posté le 02-02-2022 à 14:00:22  profilanswer
 

Question plus légère :
Avec Plex pro est ce que je peux streamer depuis mon n'as sur mon réseau local ?
Pour que loulou puisse accéder aux films


---------------

n°2408739
gatsu35
Blablaté par Harko
Posté le 02-02-2022 à 14:04:18  profilanswer
 

flo850 a écrit :

Question plus légère :
Avec Plex pro est ce que je peux streamer depuis mon n'as sur mon réseau local ?
Pour que loulou puisse accéder aux films


normalement c'est le but de plex, si tu selfhost plex chez toi.
 
Je suis parti sur jellyfin qui est plus facile à gérer et sans avoir besoin de passer par un tiers online pour s'authent


---------------
Blablaté par Harko
n°2408741
mechkurt
Posté le 02-02-2022 à 14:10:19  profilanswer
 

flo850 a écrit :

Question plus légère :
Avec Plex pro est ce que je peux streamer depuis mon n'as sur mon réseau local ?
Pour que loulou puisse accéder aux films


Rien compris à Plesk alors je suis parti sur Kodi pour lire les fichiers du NAS sur la Shield.


---------------
D3
n°2408742
pataluc
Posté le 02-02-2022 à 14:31:28  profilanswer
 

R3g a écrit :


Ça c’est au moins un problème qu’on a plus.


Condoléances.  :(

n°2408743
Dion
Acceuil
Posté le 02-02-2022 à 14:39:44  profilanswer
 

flo850 a écrit :

Question plus légère :
Avec Plex pro est ce que je peux streamer depuis mon n'as sur mon réseau local ?
Pour que loulou puisse accéder aux films


Pas besoin d’un truc pro, Plex tout court le fait ?


---------------
It is not called show art
n°2408744
masklinn
í dag viðrar vel til loftárása
Posté le 02-02-2022 à 14:58:22  profilanswer
 

Xavier_OM a écrit :

Je ne te suis pas. Un makefile peut appeler n'importe quel outil externe, et sous linux un outil externe = n'importe quel binaire/shell script/python script/java/brol, aka n'importe quoi qui se chmod+x.


el muchacho a écrit :


Ca me semble être un use case parfait pour du Python, ton truc. Après, vu que ça n'a pas l'air très défini, je ne me poserais pas trop de questions, je commencerais par un prototype, et les itérations viendront avec l'expression des besoins.


Mais c’est pas possible vous êtes des poissons rouges [:kiki]

masklinn a écrit :

comment ces sous-scripts sont organisés et appelés, où ils sont rangés, etc…


Donc comment est-ce que les gens qui ont besoin de sheller à des utilitaires custom organisent généralement ça. Je présume que c’est pas vomi dans le même répertoire que le makefile au petit bonheur la chance (d’ailleurs comment est-ce que make bricole son path?), est-ce qu’il y a des conventions d’organisation?

Xavier_OM a écrit :

Dans ces conditions là est-ce que tu peux expliciter un exemple de trucs qui ne "rentrent pas dans un makefile"  :??: Pour moi on y met ce qu'on veut (pareil pour un Jenkins quoi, tant que ça peut s'appeler...), j'ai déja vu des makefile qui lancent des jobs d'impression, qui déploient côté serveur à coup de rsync, etc


Rentre pas dans un makefile = peut pas décemment être fait directement dans le makefile, genre inline, genre avoir une task de 500 lignes qui contient tout un script.

Message cité 2 fois
Message édité par masklinn le 02-02-2022 à 15:00:39

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2408745
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 02-02-2022 à 15:09:08  profilanswer
 

masklinn a écrit :


Donc comment est-ce que les gens qui ont besoin de sheller à des utilitaires custom organisent généralement ça. Je présume que c’est pas vomi dans le même répertoire que le makefile au petit bonheur la chance (d’ailleurs comment est-ce que make bricole son path?), est-ce qu’il y a des conventions d’organisation?


 
On a une distribution custom dans /usr/local/${COMPANY_NAME}/{bin,doc,etc,lib} et les outils maisons bossent en général dans un tmp folder dans lequel ils unpack tout ce dont ils ont besoin le temps du process.


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2408746
masklinn
í dag viðrar vel til loftárása
Posté le 02-02-2022 à 15:14:25  profilanswer
 

Xavier_OM a écrit :

On a une distribution custom dans /usr/local/${COMPANY_NAME}/{bin,doc,etc,lib} et les outils maisons bossent en général dans un tmp folder dans lequel ils unpack tout ce dont ils ont besoin le temps du process.


Mais ça c’est plus pour les trucs globaux sur toute la boite no? Si t’as besoin d’un truc compliqué pour un projet en particulier, ou bien c’est un projet que vous publiez OSS (imaginons que vous zopen sorcier des trucs) c’est aussi déployé sur le truc global de la boite?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2408747
koskoz
They see me trollin they hatin
Posté le 02-02-2022 à 15:18:34  profilanswer
 

https://twitter.com/francoisz/statu [...] 8337305605
 
Je suis bête j'ai besoin qu'on m'explique [:petrus75]
 
L'EU décide que les popups d'accords de cookies sont illégales mais ces popups existent justement parce que l'UE les a rendues obligatoires via la GDPR [:petrus dei]


---------------
Twitter
n°2408748
masklinn
í dag viðrar vel til loftárása
Posté le 02-02-2022 à 15:25:03  profilanswer
 

koskoz a écrit :

ces popups existent justement parce que l'UE les a rendues obligatoires via la GDPR [:petrus dei]


1. Non.
 
2. C’est pas parce-que le besoin est légitime (ce qu’il n’est souvent pas) que l’implémentation est légale.
 
Pour (2), l’UE est pas fan du foutage de gueule et des “dark patterns”, et chiée de ces popups en sont bourrées.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2408749
SekYo
Posté le 02-02-2022 à 15:38:27  profilanswer
 

Question philo dev, parce que je me "bas" (sans violence) avec deux de mes devs sur un point, et du coup je veux savoir si c'est moi qui suis à l'ouest ou pas, ayant un peu de mal à les convaincre. Notre point de divergence est sur la "factorisation", ou plutôt le découpage en "fonctions" et "sous fonctions". Globalement ils ont une approche un peu "extrême", et voudraient mettre en place des règles type "pas de fonction de plus de X lignes" (X étant relativement faible, genre 10 ou 15 - on est en Python ou TS- ), interdiction du copier/coller, "on va sortir ça dans une fonction parce qu'on en aura peut être besoin plus tard", "on va encapsuler tel appel à telle lib" etc... Bon je caricature un poil la position, mais vous voyez l'idée.
 
De mon coté, j'ai une position plus... nuancée sur la question et plus une approche en mode "ça dépend" (plutôt que des guidelines super strict). Contrairement j'ai l'impression aux deux devs en question, je pars déjà du principe que créer une fonction c'est pas "gratuit", ça a un "coût" (je parle pas en terme de performance): ça implique de créer une nouvelle "interface" (au sens large du terme), et faire des bonnes interfaces, c'est compliqué. Rien que le naming de la fonction, de quels paramètres tu prends et leurs noms également, ce que tu renvoies en retour, comment tu gères les éventuelles erreurs etc... C'est loin d'être toujours simple et si à la relecture le dev doit systématiquement aller lire le code de la sous fonction pour comprendre ce qu'il se passe... Bin t'as pas gagné grand chose, à part une indirection de plus.
 
Alors oui, en théorie le dev est censé y réfléchir, t'as la review qui est censée aussi catcher ce genre de problèmes... Sauf que dans mon expérience, c'est en pratique loin d'être toujours évident, ne serait-ce que parce que y a des choix (de naming par exemple) dont tu t'aperçois qu'ils sont "mauvais" que plusieurs mois/années plus tard des fois, parce qu'ils entraînent une confusion avec un autre concept par exemple. Vous allez me dire que dans ce cas il faut refactorer et renommer ta fonction/paramètre pour ajuster, certes...mais qui ici a bossé avec un code "pro" sans aucune dette technique ? :o
 
Bref, ils ont raison et c'est plus moi qui ait eu les mauvaises expériences, ou ils sont encore jeunes & naïfs ?
 

n°2408750
koskoz
They see me trollin they hatin
Posté le 02-02-2022 à 15:40:41  profilanswer
 

masklinn a écrit :


1. Non.
 
2. C’est pas parce-que le besoin est légitime (ce qu’il n’est souvent pas) que l’implémentation est légale.
 
Pour (2), l’UE est pas fan du foutage de gueule et des “dark patterns”, et chiée de ces popups en sont bourrées.


 
Ah j'ai du faire un amalgame sur 1. du coup [:sadnoir]


---------------
Twitter
n°2408752
el_barbone
too old for this shit ...
Posté le 02-02-2022 à 15:46:23  profilanswer
 

R3g a écrit :


Ça c’est au moins un problème qu’on a plus.


Condoléances.


---------------
En théorie, la théorie et la pratique sont identiques, en pratique, non.
n°2408753
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 02-02-2022 à 15:52:42  profilanswer
 

SekYo a écrit :


Bref, ils ont raison et c'est plus moi qui ait eu les mauvaises expériences, ou ils sont encore jeunes & naïfs ?
 


 
Ils sont jeunes & naïfs et ça sent la premature optimization factorisation. Quand tu fais ça il faut être prêt à défaire et remettre complètement à plat ton code lors d'une évolution imprévue, car ton abstraction prématurée a peu de chances d'être adaptée à la nouvelle situation. Encapsuler ou factoriser une fois que le besoin est là ok, mais le faire par anticipation pour la beauté du geste bof.


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2408754
___alt
Posté le 02-02-2022 à 15:54:57  profilanswer
 

SekYo a écrit :

Question philo dev, parce que je me "bas" (sans violence) avec deux de mes devs sur un point, et du coup je veux savoir si c'est moi qui suis à l'ouest ou pas, ayant un peu de mal à les convaincre. Notre point de divergence est sur la "factorisation", ou plutôt le découpage en "fonctions" et "sous fonctions". Globalement ils ont une approche un peu "extrême", et voudraient mettre en place des règles type "pas de fonction de plus de X lignes" (X étant relativement faible, genre 10 ou 15 - on est en Python ou TS- ), interdiction du copier/coller, "on va sortir ça dans une fonction parce qu'on en aura peut être besoin plus tard", "on va encapsuler tel appel à telle lib" etc... Bon je caricature un poil la position, mais vous voyez l'idée.

 

De mon coté, j'ai une position plus... nuancée sur la question et plus une approche en mode "ça dépend" (plutôt que des guidelines super strict). Contrairement j'ai l'impression aux deux devs en question, je pars déjà du principe que créer une fonction c'est pas "gratuit", ça a un "coût" (je parle pas en terme de performance): ça implique de créer une nouvelle "interface" (au sens large du terme), et faire des bonnes interfaces, c'est compliqué. Rien que le naming de la fonction, de quels paramètres tu prends et leurs noms également, ce que tu renvoies en retour, comment tu gères les éventuelles erreurs etc... C'est loin d'être toujours simple et si à la relecture le dev doit systématiquement aller lire le code de la sous fonction pour comprendre ce qu'il se passe... Bin t'as pas gagné grand chose, à part une indirection de plus.

 

Alors oui, en théorie le dev est censé y réfléchir, t'as la review qui est censée aussi catcher ce genre de problèmes... Sauf que dans mon expérience, c'est en pratique loin d'être toujours évident, ne serait-ce que parce que y a des choix (de naming par exemple) dont tu t'aperçois qu'ils sont "mauvais" que plusieurs mois/années plus tard des fois, parce qu'ils entraînent une confusion avec un autre concept par exemple. Vous allez me dire que dans ce cas il faut refactorer et renommer ta fonction/paramètre pour ajuster, certes...mais qui ici a bossé avec un code "pro" sans aucune dette technique ? :o

 

Bref, ils ont raison et c'est plus moi qui ait eu les mauvaises expériences, ou ils sont encore jeunes & naïfs ?

 


 

Avoir un objectif de fonctions plutôt nombreuses et concises, c'est pas déconnant. Oui les nommer c'est difficile, mais ce nommage est une opportunité de documenter le code.
Les petites abstractions, c'est très bien pour comprendre ce qui se passe dans une classe sans y passer 3 plombes. Je trouve que le coût induit est extrêmement faible par rapport au gain (je parle ici d'extraction de code en fonctions locales)

 

Est-ce que je ferais passer ça par une règle rigide et une limite assez basse ? Probablement pas. On peut avoir une fonction longue si son fonctionnement est trivial, ce qui arrive régulièrement avec du boilerplate technique (e.g. un gros switch simple, mais avec beaucoup de cases).

 

Pour ce qui est de la factorisation et c'est un truc que tu peux leur rappeler, c'est que le pendant de DRY c'est du couplage.
Le code dupliqué est un problème si chaque fois que tu changes une occurrence tu es obligé de changer les autres : là il y a un couplage existant et factoriser n'a pour ainsi dire aucun inconvénient.
Mais ce n'est pas toujours le cas et surtout ça n'est pas toujours apparent tout de suite. Là encore, accepter pour un temps un peu de duplication et ne factoriser que dans un deuxième temps est le meilleur compromis.

 

Vouloir trop abstraire, souvent au nom de la généricité ou de la réutilisabilité, c'est une erreur classique de débutant, ce qui est important c'est de garder le code malléable pour qu'au besoin on fasse émerger les bonnes abstractions en temps utile sans y passer des plombes.


Message édité par ___alt le 02-02-2022 à 15:56:27

---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2408756
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 02-02-2022 à 15:56:02  profilanswer
 

masklinn a écrit :


Mais ça c’est plus pour les trucs globaux sur toute la boite no? Si t’as besoin d’un truc compliqué pour un projet en particulier, ou bien c’est un projet que vous publiez OSS (imaginons que vous zopen sorcier des trucs) c’est aussi déployé sur le truc global de la boite?


 
Il n'y a pas de projet qui ne finira pas versionné et partagé avec un ou plusieurs autres dev à un moment ou un autre. Donc les outils dont ton projet dépend doivent rejoindre un dépôt binaire commun et être facilement 'déployable' localement chez tout un chacun.


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2408757
Hermes le ​Messager
Breton Quiétiste
Posté le 02-02-2022 à 15:57:50  profilanswer
 

SekYo a écrit :

Question philo dev, parce que je me "bas" (sans violence) avec deux de mes devs sur un point, et du coup je veux savoir si c'est moi qui suis à l'ouest ou pas, ayant un peu de mal à les convaincre. Notre point de divergence est sur la "factorisation", ou plutôt le découpage en "fonctions" et "sous fonctions". Globalement ils ont une approche un peu "extrême", et voudraient mettre en place des règles type "pas de fonction de plus de X lignes" (X étant relativement faible, genre 10 ou 15 - on est en Python ou TS- ), interdiction du copier/coller, "on va sortir ça dans une fonction parce qu'on en aura peut être besoin plus tard", "on va encapsuler tel appel à telle lib" etc... Bon je caricature un poil la position, mais vous voyez l'idée.
 
De mon coté, j'ai une position plus... nuancée sur la question et plus une approche en mode "ça dépend" (plutôt que des guidelines super strict). Contrairement j'ai l'impression aux deux devs en question, je pars déjà du principe que créer une fonction c'est pas "gratuit", ça a un "coût" (je parle pas en terme de performance): ça implique de créer une nouvelle "interface" (au sens large du terme), et faire des bonnes interfaces, c'est compliqué. Rien que le naming de la fonction, de quels paramètres tu prends et leurs noms également, ce que tu renvoies en retour, comment tu gères les éventuelles erreurs etc... C'est loin d'être toujours simple et si à la relecture le dev doit systématiquement aller lire le code de la sous fonction pour comprendre ce qu'il se passe... Bin t'as pas gagné grand chose, à part une indirection de plus.
 
Alors oui, en théorie le dev est censé y réfléchir, t'as la review qui est censée aussi catcher ce genre de problèmes... Sauf que dans mon expérience, c'est en pratique loin d'être toujours évident, ne serait-ce que parce que y a des choix (de naming par exemple) dont tu t'aperçois qu'ils sont "mauvais" que plusieurs mois/années plus tard des fois, parce qu'ils entraînent une confusion avec un autre concept par exemple. Vous allez me dire que dans ce cas il faut refactorer et renommer ta fonction/paramètre pour ajuster, certes...mais qui ici a bossé avec un code "pro" sans aucune dette technique ? :o
 
Bref, ils ont raison et c'est plus moi qui ait eu les mauvaises expériences, ou ils sont encore jeunes & naïfs ?
 


 
Ce qui compte surtout, c'est la manière dont c'est documenté. D'une manière générale, j'aime quand le code est structuré, réutilisable et surtout très bien documenté (ce dernier point étant souvent le plus négligé alors qu'il est le plus important).


---------------
Expert en expertises
n°2408758
masklinn
í dag viðrar vel til loftárása
Posté le 02-02-2022 à 15:58:55  profilanswer
 

SekYo a écrit :

Question philo dev, parce que je me "bas" (sans violence) avec deux de mes devs sur un point, et du coup je veux savoir si c'est moi qui suis à l'ouest ou pas, ayant un peu de mal à les convaincre. Notre point de divergence est sur la "factorisation", ou plutôt le découpage en "fonctions" et "sous fonctions". Globalement ils ont une approche un peu "extrême", et voudraient mettre en place des règles type "pas de fonction de plus de X lignes" (X étant relativement faible, genre 10 ou 15 - on est en Python ou TS- ), interdiction du copier/coller, "on va sortir ça dans une fonction parce qu'on en aura peut être besoin plus tard", "on va encapsuler tel appel à telle lib" etc... Bon je caricature un poil la position, mais vous voyez l'idée.
 
De mon coté, j'ai une position plus... nuancée sur la question et plus une approche en mode "ça dépend" (plutôt que des guidelines super strict). Contrairement j'ai l'impression aux deux devs en question, je pars déjà du principe que créer une fonction c'est pas "gratuit", ça a un "coût" (je parle pas en terme de performance): ça implique de créer une nouvelle "interface" (au sens large du terme), et faire des bonnes interfaces, c'est compliqué. Rien que le naming de la fonction, de quels paramètres tu prends et leurs noms également, ce que tu renvoies en retour, comment tu gères les éventuelles erreurs etc... C'est loin d'être toujours simple et si à la relecture le dev doit systématiquement aller lire le code de la sous fonction pour comprendre ce qu'il se passe... Bin t'as pas gagné grand chose, à part une indirection de plus.
 
Alors oui, en théorie le dev est censé y réfléchir, t'as la review qui est censée aussi catcher ce genre de problèmes... Sauf que dans mon expérience, c'est en pratique loin d'être toujours évident, ne serait-ce que parce que y a des choix (de naming par exemple) dont tu t'aperçois qu'ils sont "mauvais" que plusieurs mois/années plus tard des fois, parce qu'ils entraînent une confusion avec un autre concept par exemple. Vous allez me dire que dans ce cas il faut refactorer et renommer ta fonction/paramètre pour ajuster, certes...mais qui ici a bossé avec un code "pro" sans aucune dette technique ? :o
 
Bref, ils ont raison et c'est plus moi qui ait eu les mauvaises expériences, ou ils sont encore jeunes & naïfs ?


Marrant, Chandler Carruth mentionne exactement ça dans “there are no zero-cost abstractions”, il parle des couts “humains”, et à un moment (29:00) il parle de l’extraction de fonction, et mentionne qu’à un moment il a envoyé du code pour review, il s’est fait défoncer parce que c’était une fonction illisible de 400+ lignes avec de l’état mutable des boucles imbriquées, … et la review   a été d’extraire et factoriser les étapes.
 
Il est parti faire ça, il a tout extrait dans des helpers, et c’était également illisible, parce que c’était tellement plein de helpers que t’arrêtais pas de sauter d’un bout de code à l’autre pour essayer de comprendre ce qui se passe.
 
Et sa conclusion est la même que la tienne :D
 
Après c’est pas facile à faire, et il y a beaucoup de “taste” qui est impliqué.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2408759
Devil'sTig​er
Posté le 02-02-2022 à 16:00:31  profilanswer
 

SekYo a écrit :

Question philo dev, parce que je me "bas" (sans violence) avec deux de mes devs sur un point, et du coup je veux savoir si c'est moi qui suis à l'ouest ou pas, ayant un peu de mal à les convaincre. Notre point de divergence est sur la "factorisation", ou plutôt le découpage en "fonctions" et "sous fonctions". Globalement ils ont une approche un peu "extrême", et voudraient mettre en place des règles type "pas de fonction de plus de X lignes" (X étant relativement faible, genre 10 ou 15 - on est en Python ou TS- ), interdiction du copier/coller, "on va sortir ça dans une fonction parce qu'on en aura peut être besoin plus tard", "on va encapsuler tel appel à telle lib" etc... Bon je caricature un poil la position, mais vous voyez l'idée.


 
Je présente souvent ca comme ca:
 
Imagine le meilleur code jamais produit par l'homme, quel serait-il?
 
Réponse: une feuille blanche (voir rien/le vide total), qui, malgré qu'elle soit vide et n'a aucun code, fait quand meme le taf:
  - elle n'a aucun cout a etre fait/dev
  - elle n'a aucun cout a etre testé
  - elle n'a pris aucun temps
  - MAIS, elle fait le boulot qu'on lui demande malgré tout
  - elle est exempt de bug
  - elle est maléable et reprogrammable a souhait si le besoin se fait sentir de le changer
  - elle interrop parfaitement avec le reste, vu qu'elle n'a aucun cout, est maléable et reprogrammable a souhait
 
 
Partant de la, en revenant a un truc réaliste: tu as raisons et ils ont franchement tord. Ils n'ont probablement pas en vue l'objectif de la boite mais leur propres objectifs de faire des "trucs cools".
Ils veulent un truc propre qui est de toute facon une chimere, voir tester de nouveaux trucs parce que c'est a la mode donc c'est forcément vers ca qu'il faut aller et ainsi de suite...
Sauf, sauf que la boite se contrefou de si la fonction fait pas plus de X lignes. Si ca tourne, et que ca vend, c'est tout ce qui compte. Donc l'idée initiale du dev va a l'encontre de ce que la boite veut, et c'est la ou tu te dois de mettre un stop et revenir aux réalités: du code fonctionnel OVER du code beau ;)

n°2408760
masklinn
í dag viðrar vel til loftárása
Posté le 02-02-2022 à 16:00:46  profilanswer
 

Xavier_OM a écrit :

Il n'y a pas de projet qui ne finira pas versionné et partagé avec un ou plusieurs autres dev à un moment ou un autre. Donc les outils dont ton projet dépend doivent rejoindre un dépôt binaire commun et être facilement 'déployable' localement chez tout un chacun.


Genre le répertoire du projet?
 
Tu récupères un projet OSS, tu t’attends à devoir aller télécharger tous les scripts liés séparément?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2408762
Hermes le ​Messager
Breton Quiétiste
Posté le 02-02-2022 à 16:10:16  profilanswer
 

masklinn a écrit :


Il est parti faire ça, il a tout extrait dans des helpers, et c’était également illisible, parce que c’était tellement plein de helpers que t’arrêtais pas de sauter d’un bout de code à l’autre pour essayer de comprendre ce qui se passe.
 
Et sa conclusion est la même que la tienne :D
 
Après c’est pas facile à faire, et il y a beaucoup de “taste” qui est impliqué.


 
Mais du coup c'est quoi la conclusion de cela ?  
 
Que quand le code résout des choses "longues et compliquées" c'est sans solution ? Quand on factorise "correctement" sur plusieurs niveaux, idéalement, on ne devrait avoir besoin de remonter les niveaux que lorsqu'il y a des bugs non ?
 
Edit: ce que je veux dire par là, c'est que de toutes manières, on passe son temps à appeler des fonctions issues de libs et qu'on ne devrait pas avoir besoin de sans arrêt faire un ctrl click pour voir si tout est ok. Pourquoi ce serait différent avec des fonctions/méthodes ajoutées par les devs?

Message cité 1 fois
Message édité par Hermes le Messager le 02-02-2022 à 16:12:51

---------------
Expert en expertises
n°2408763
el muchach​o
Comfortably Numb
Posté le 02-02-2022 à 16:13:18  profilanswer
 

masklinn a écrit :


Mais c’est pas possible vous êtes des poissons rouges [:kiki]


Ta question est tellement vague ou mal formulée qu'on ne peut pas répondre, désolé.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2408764
flo850
moi je
Posté le 02-02-2022 à 16:14:59  profilanswer
 

Dion a écrit :


Pas besoin d’un truc pro, Plex tout court le fait ?


La version free ne fonctionne que sur le réseau local, non ?


Message édité par flo850 le 02-02-2022 à 16:15:20

---------------

n°2408765
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 02-02-2022 à 16:20:34  profilanswer
 

masklinn a écrit :


Chandler Carruth

 

Tu te fais toute la CppCon ou bien :D ?

 
masklinn a écrit :


Genre le répertoire du projet?

 

Tu récupères un projet OSS, tu t’attends à devoir aller télécharger tous les scripts liés séparément?

 

Le répertoire du projet si c'est un script utilisé uniquement par ce projet, mais pour un script commun à différents projets il y a un dossier commun (contexte de dépôt monolithique). Et les dépendances tierces ne sont pas fournies non, si un projet OSS me dit qu'il dépend de psql je veux installer psql moi-même (et pas me retrouver automatiquement avec sous dossier rempli de gros binaires linkés statiquement ou autre truc de cet acabit :o)

Message cité 2 fois
Message édité par Xavier_OM le 02-02-2022 à 16:34:25

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  24559  24560  24561  ..  27169  27170  27171  27172  27173  27174

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)