1

Folco a souhaité poursuivre une discussion dérivée dans un nouveau sujet. La discussion initiale a eu lieu dans le sujet topics/61689-jeu-videz-votre-presse-papier/1117#post-33489 tandis que la discussion dérivée continue dans le sujet topics/189265-api-folco-decouvre-linfo-taf où les messages en rapport ont été copiés.
avatar
Ben, bouh, quoi :D

2

FUNCTION_BLOCK PUBLIC BLF_MoteurAvecVariateur EXTENDS BLF_Actionneur IMPLEMENTS adapterVitesse

3

(j'espère que tu es payé au tarif de nuit !)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4

(grin)

5

(nan mais sérieusement, le jour où tu auras autre chose à faire si tu as donné l'habitude d'aller trop vite ça risque d'être pénible à expliquer)

6

(pencil)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

7

Pour le moment, rien n'est sorti, donc personne ne sais que je fais ça.
En fait, j'utilise l'IDE dernière génération (qu'on a pas au taf ><) pour faire un "framework" (j'aime les grands mots !) utilisable un peu partout dans notre usine.
Il n'y aura quasiment plus qu'à assembler les pièces du puzzle pour programmer une machine, avec des ajouts intéressants comme le monitoring des pannes, et l'exploitation de différents indicateurs industriels reconnus (ben oué, j'ai des procs à disposition, autant qu'ils bossent. Et les machines sont en réseau, alors profitons-en !)
Le but est évident, gain de temps en dev, en maintenance, en modifs, en création de machines, amélioration de la productivité, aide à la décision pour l'amélioration des machines et la formation des personnels, etc...

Mais allez vendre ça à quelqu'un qui ne comprends pas le boulot de l'info ><

8

Folco (./33461) :
Le but est évident, gain de temps en dev, en maintenance, en modifs, en création de machines, amélioration de ma productivité, aide à la décision pour l'amélioration des machines et la formation des personnels, etc...
et conquête du monde!!!! black

(top)

9

Folco (./33461) :
Le but est évident, gain de temps en dev, en maintenance, en modifs, en création de machines, amélioration de ma productivité, aide à la décision pour l'amélioration des machines et la formation des personnels, etc...
...prise de contrôle de l'usine, du pays, du monde...

(attention quand même, ce genre de projet est motivant, mais ça peut vite devenir une pieuvre. Et être à la frontière entre "projet perso" et "projet pro" a un certain nombre d'inconvénients et de risques, qui ne sont pas toujours évidents au premier abord.)

(cross, zut embarrassed)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

10

(trivil)

11

Zerosquare -> tu m'intéresses, tu pourrais développer s'il te plait ?
Effectivement, je ne vois pas trop d'inconvénients pour le moment, le temps passé et la fatigue étant payés par le côté super motivant, doublé par le fait de m'imposer de fait dans ce domaine à la boite, ce qui m'arrange bien. L'expérience acquise côté CV est aussi un plus non négligeable.
Par contre, quels sont les pièges ? L'amertume du travail non reconnu ? L'habitude qu'un travail qui prend des semaines se fait en fait sans qu'on ait à le planifier ni le payer ?

J'avoue qu'emballé, je ne me suis pas trop posé de questions à ce niveau-là...

12

qu'on te demande le même niveau de productivité codique une fois le machin cool bouclé et que t'auras ni l'envie ni la force de produire ce qu'on te demande.

si tu donnes un bras, on considèrera ca comme ton niveau de performance habituel, on attendra ca de toi en permanence, et tu passeras tes nuits a la maison a coder parce que c'est devenu normal.

En règle générale, quand tu fais un projet et que t'as dit qu'il te faudra X jours, ne rends JAMAIS en avance, ni plus que prévu!

En plus, plus que prévu ca peut être dangereux: si tu fais un truc en plus, ce sera forcément hors cadre projet "négocié" et hors spec, ca peut être inadapté et demander un recommencage forcément beaucoup plus chiant.

13

Ça peut ne servir à rien pour négocier des avantages plus tard, vu que la réponse « tu as été bien gentil, mais on ne t'avait pas demandé de le faire en perso » peut très bien arriver.

Après, il ne faut pas doucher ton enthousiasme ; simplement « le temps passé et la fatigue étant payés par le côté super motivant » fonctionne bien au début mais ça peut se retourner très violemment . Si tu ne reçois rien plus tard, tu ne pourras pas t'empêcher de penser que tu t'es fait couillonner (donc gros retour de bâton sur le moral) alors que si tu l'avais fait sur le temps de boulot, tu n'auras pas cette vilaine idée dans la tête.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

14

{attribute 'symbol' := 'readwrite'}

(hem, pardon embarrassed)

Mais oui, je comprends vos remarques, et elles sont certainement vraies. Disons que c'est une expérience que je tente pour cette boite. La suite dépendra de la façon dont ce sera reçu. Mais ça ne sera pas perdu pour moi, je n'ai jamais été marié avec une entreprise, même si j'éspère pouvoir faire carrière ici. smile

15

(pas mal de recoupements avec ce qu'ont dit Squalyl et Flan)

- si tu commences le projet dans ton coin, tu vas te baser sur ton seul point de vue, qui ne sera pas forcément le meilleur du point de vue de l'entreprise. Imagine qu'en le présentant, on te dise :
* "c'est cool, mais en fait ce qu'il nous faudrait vraiment, c'est {truc auquel tu n'as pas pensé et qui remet en cause la conception}"
* "l'idée est bonne, mais on peut pas l'utiliser en l'état parce {contrainte technique, trop complexe pour les utilisateurs visés, ...}"
* "pour que ça nous soit utile, il faut que ça supporte au moins {un ou deux ordres de grandeur au-dessus de ce que tu avais prévu}"
Seras-tu prêt à jeter à la poubelle du boulot que tu as fait ?

- le "je vous fais cadeau de tel projet" risque de se muer rapidement en "je dois maintenir et faire évoluer ce machin ad vitam eternam, dans des directions qui ne sont pas celles que j'avais choisies, sans bonus de salaire et en plus de mon boulot habituel".

- quid de la propriété intellectuelle ? Cas typique : tu développes en pensant releaser certains trucs en open-source, mais plus tard ta boîte te dit "pas d'accord, on considère que tout le projet nous appartient et qu'il est confidentiel, donc tu n'as le droit de rien diffuser à l'extérieur.". Y'a aussi le cas inverse où tu réutilises du code perso que tu avais déjà fait : comment prouves-tu que ce bout de code n'a pas été développé dans le cadre de ton travail, et donc qu'il t'appartient ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

16

Les heures de release sur un repo public ? On a une pointeuse au taf ^^

Sinon, le problème est que je suis actuellement le seul capable de dev au taf (mon collègue, avec ses rudiments de ladder et jamais aucun programme à son actif, ne rentre pas dans la balance). Je vois mal qui pourrait me dire "les choix techniques sont mauvais".
Ceci dit, il pourrait bien y avoir une raison x y ou z qui remette mon boulot en cause, oui. Je pense que ça ferait mal.

M'enfin, c'est bien connu que je suis un pro du code jetable, non ? cheeky

17

Folco (./33470) :
Je vois mal qui pourrait me dire "les choix techniques sont mauvais".
Folco (./33470) :
je suis actuellement le seul capable de dev au taf
C'est un détail, ça embarrassed

18

Folco (./33470) :
Les heures de release sur un repo public ? On a une pointeuse au taf ^^
Malheureusement, ça n'est pas aussi simple. Il ne suffit pas que tu travailles sur ton temps libre pour que le code t'appartienne. Il faut aussi que tu n'utilises aucune information que la boîte t'as révélée et qu'elle considère comme confidentielle.
C'est moins facile que ça n'en a l'air, parce qu'une boîte peut considérer comme confidentiel quelque chose que tu jugerais à priori anecdotique (par paranoïa, ou parce que ça peut être exploité d'une façon que tu n'imagines pas).
Et c'est encore moins facile à prouver, en particulier quand ton projet perso touche directement aux mêmes sujets que ceux sur lesquels tu travailles au boulot, et qu'il n'y a personne d'autre dans la boîte pour dire "non c'est bon, y'a rien de compromettant là-dedans".

Folco (./33470) :
Sinon, le problème est que je suis actuellement le seul capable de dev au taf (mon collègue, avec ses rudiments de ladder et jamais aucun programme à son actif, ne rentre pas dans la balance). Je vois mal qui pourrait me dire "les choix techniques sont mauvais".
- même si tu contrôles ton code de A à Z, il peut s'exécuter sur une machine que tu ne contrôles pas, dans un environnement que tu ne contrôles pas non plus. Si vous avez un responsable info, il peut t'imposer des contraintes pour des raisons de sécurité ou de fiabilité (pas le droit d'utiliser tel composant logiciel, de mettre en réseau telle machine avec telle machine, de déployer une nouvelle version sans autorisation préalable...). Autre exemple : tu prévois que tous les matos à contrôler utiliseront le standard X, mais manque de pot, l'entreprise envisage justement d'acquérir un nouvel appareil top niveau qui ne supporte que le standard Y.

- même si personne ne te le dis, si tu as prévu un modèle "carré" et qu'on te dit qu'en pratique il y aura plein d'exceptions, ou qu'il faudra gérer 1000 ou 10 000 machins alors que t'en avais prévu 10 (avec un algo en O(n²)), tu vas te rendre compte tout seul que les choix techniques n'étaient pas forcément bons tongue

Folco (./33470) :
Ceci dit, il pourrait bien y avoir une raison x y ou z qui remette mon boulot en cause, oui. Je pense que ça ferait mal.
Raison pour laquelle tu devrais discuter de ton projet avec tes supérieurs et collègues dès le début smile

Folco (./33470) :
M'enfin, c'est bien connu que je suis un pro du code jetable, non ? cheeky
Certes grin
Mais ça fait jamais plaisir de jeter quelque chose sur lequel on a travaillé.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

19

FUNCTION_BLOCK 
PUBLIC 
BLF_MoteurAvecVariateur 
   EXTENDS BLF_Actionneur 
   IMPLEMENTS adapterVitesse

20

Pen^2 -> yep. J'utilise le "wizard", et j'ai pas formaté. Effectivement, ce que tu proposes est bien mieux. smile

21

(et voilà, maintenant Pen² va pouvoir réclamer sa part de domination du monde !)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

22

Bah, ça lui vaudra une visite gratuite de l'usine, tout simplement cheeky

23

#bananayel# (c'est un peu à ça que ressemblent mes codes C++, c'est curieux mais il faut bien trouver quelque chose quand il y a 42 qualifiers qui se suivent, puis plus de 9000 paramètres à templates, etc grin)

(comme ça j'en profiterai pour leur présenter mon fork #modui#)

24

grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

25

(ce que je ne comprends pas c'est comment une fonction peut hériter d'une autre et implémenter encore autre chose ? (function_block ?))

PS : à la rigueur en C++ le seul truc que je laisserai en tête de ligne c'est BLF_MoteurAvecVariateur, c'est le seul truc réellement intéressant 90% du temps.

26

Pen^2 :
Le "bloc fonctionnel", c'est une espèce de truc hideux :
-des variables d'entrée
- des variables de sortie
- des variables d'entrée-sortie
- des variables locales
- pas de méthodes/fonctions

Pour interagir avec le bloc, on appelle l'instance comme s'il s'agissait d'une fonction : MonBlocFonctionnel.
En fonction des arguments qu'on passe à l'appel (des variables d'entrée qu'on choisit d'adresser) , le bloc doit se démerder pour réagir correctement.
Je vous raconte pas le truc à designer, à maintenir. Au moindre changement interne, c'est susceptible de péter de partout, pour peu qu'une nouvelle forme d'appel corresponde par malchance à une déjà existante.

Donc dans la nouvelle version, ils ont ajouté du concept objet par-dessus cette merde immonde.
Ils ont ajouté les méthodes (public/protected/private, classique), signées. Elles ne sont pas surchargeables, mais elles assurent au moins "un fichier source par méthode", et non plus un gros blob pour les gouverner toutes.

Le "extends", c'est de la dérivation classique. Il n'y a pas de dérivation multiple.
Le "implements", c'est pour dire que ça implémente une interface signée, ça permet de faire du polymorphisme.
C'est d'ailleurs assez rigolo, parce qu'en plus de faire du polymorphisme grâce une origine commune de dérivation, on peut en faire par simple implémentation commune d'une même interface.
C'est très léger, parce qu'une interface est ici standalone, déclarée comme une simple fonction, sans implémentation. Une simple signature en somme. En C++, il faudrait un objet déclarant une méthode virtuelle pure.

27

OK merci happy

(oué le extends/implements c'est exactement comme en java apparemment ^^)

28

Tiens, pas mal. Faut avouer qu'il faut bien quelque chose pour compenser l'absence de dérivation multiple.
Mais je trouve pas mal le choix qui est fait ici, c'est très léger, et je trouve que ça aide à garder un design propre.

29

À vrai dire l’héritage multiple est considéré comme mauvais par beaucoup, et le c++ est un des rares langage objet à le proposer. (Qui veux d’un objet qui hérite d’un chat et d’une horloge hein?!)

Interface/protocole (et autres nom ésotériques) permet de dire que ta classe va avoir telle ou telle set de méthodes mais ce n’est pas de l’héritage parce que tu n’herite pas de membre de classe, et pour certain langages, certaines parties de l’interface peuvent être complètement optionnelles.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

30

cross > Concernant le java il ne s'agit pas exactement de compenser, mais de proposer une vision plus propre que l'héritage multiple.
C'est peut-être une habitude biaisée, mais l'héritage multiple ne me manque pas du tout, et d'ailleurs même l'héritage tout court ne me sert pas tant que ça.
Je pense que ça arrange surtout les gens qui font de l'abus d'héritage juste pour factoriser le code.

Godzil (./33487) :
(Qui veux d’un objet qui hérite d’un chat et d’une horloge hein?!)
trilove