Amoureux du COBOL... vous allez être comblés !

Les bouquins, les scans, les pdf ou les liens qui vont bien... ici c'est la bibliothèque.

Modérateurs : Papy.G, fneck, Carl

Répondre
cquest
Messages : 31
Enregistré le : 31 janv. 2018 16:30

Amoureux du COBOL... vous allez être comblés !

Message par cquest » 09 avr. 2018 17:13

Pôle Emploi a ouvert le code source du calcul de certaines aides... un mix JAVA + COBOL ;)

https://www.data.gouv.fr/fr/datasets/ca ... mploi-are/

Avatar du membre
Mokona
Messages : 278
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: Amoureux du COBOL... vous allez être comblés !

Message par Mokona » 09 avr. 2018 19:48

Le bonheur.

cquest
Messages : 31
Enregistré le : 31 janv. 2018 16:30

Re: Amoureux du COBOL... vous allez être comblés !

Message par cquest » 09 avr. 2018 20:19

Dans la partie en COBOL, on trouve des références à l'IBM-370, machine sortie en 1974.

Ça c'est du "legacy" !

Avatar du membre
Carl
Modérateur
Messages : 9984
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Amoureux du COBOL... vous allez être comblés !

Message par Carl » 09 avr. 2018 20:33

:)
370.jpg
370.jpg (255.6 Kio) Vu 300 fois

Avatar du membre
Mokona
Messages : 278
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: Amoureux du COBOL... vous allez être comblés !

Message par Mokona » 09 avr. 2018 20:46

Je ne trouve que des fichiers en Java dans les deux archives... Même du grep sur DIVISION IDENTIFICATION ENVIRONMENT et autre ne me sort rien...

Où est la partie COBOL ?

jimpqfly
Messages : 145
Enregistré le : 03 mars 2018 17:56
Localisation : Région Parisienne

Re: Amoureux du COBOL... vous allez être comblés !

Message par jimpqfly » 09 avr. 2018 23:45

Dans le second fichier zippé de 300ko, tu trouves 2 fichiers .TXT (DFMN3P.TXT et DFMNNP.TXT)
C'est ça.
Franchement c'est super léger, l'écrasante majorité est en Java (le code est bien obscur d'ailleurs, peu de commentaires, y'a des baffes qui se perdent...).

Image

Avatar du membre
Mokona
Messages : 278
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: Amoureux du COBOL... vous allez être comblés !

Message par Mokona » 10 avr. 2018 10:17

Ah oui, vu, merci.

Ça manque de commentaires, certes, après, ils publient les sources mais il y a peut-être toute une documentation annexe qui n'est pas publiée (je passe sur cette pratique...)

Ce qui m'épate surtout, c'est le nombre de "valeurs magiques".

Code : Tout sélectionner

return (periode.getNature() == 46) || (periode.getNature() == 47) || (periode.getNature() == 45) || (periode.getNature() == 48) || (periode.getNature() == 44);

Code : Tout sélectionner

    ArrayList<Integer> listeNaturePeriodesSuspensives = new ArrayList();
    listeNaturePeriodesSuspensives.add(Integer.valueOf(55));
    listeNaturePeriodesSuspensives.add(Integer.valueOf(11));
    listeNaturePeriodesSuspensives.add(Integer.valueOf(56));
    listeNaturePeriodesSuspensives.add(Integer.valueOf(57));
    listeNaturePeriodesSuspensives.add(Integer.valueOf(58));
    listeNaturePeriodesSuspensives.add(Integer.valueOf(59));
Ce qui m'épate aussi, c'est qu'en regardant tout ce système, la complexité de l'administration se montre dans toute sa splendeur.

__sam__
Messages : 3946
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Amoureux du COBOL... vous allez être comblés !

Message par __sam__ » 10 avr. 2018 10:28

Punaise c'est ca leur code java ? Je ne sais pas quel stagiaire ou quelle SSII a écrit ca mais ce n'est pas du très beau code. Le truc avec les ou (||) serait plus efficace avec un switch:

Code : Tout sélectionner

	switch(periode.getNature()) {
		case magic1:
		case magic2:
		...
		case magicN:
			return true;
		default:
			return false;
	}
ou plus lisible avec les API des collections:

Code : Tout sélectionner

	return Arrays.asList(magic1,magic2,...,magicN).contains(periode.getNature());
Plus loin le valueOf() est inutile. Java fait le boxing/unboxing tout seul. Et aussi la variable locale listeNaturePeriodesSuspensives devrait être typée suivant le type le plus général (List ou Collection pour le cas présent). et là encore tout peut être écrit efficacement en une ligne:

Code : Tout sélectionner

	List<Integer> listeNaturePeriodesSuspensives  = Arrays.asList(11,55,56,57,58,59);
Après on s'étonne qu'il faut des grosses machines pour faire tourner tout ca. Java n'est pas le problème, la qualité du code oui en revanche.
Samuel.
Amiga 500+GVP530(MMU/FPU) (hs), A1200(030@50mhz/fpu/64mb/cf 8go), R-Pi, TO9, TO8D, TO8.
New Teo 1.8.4 8)

jimpqfly
Messages : 145
Enregistré le : 03 mars 2018 17:56
Localisation : Région Parisienne

Re: Amoureux du COBOL... vous allez être comblés !

Message par jimpqfly » 10 avr. 2018 11:38

Mouais attention, ils ont peut-être utilisé des outils pour convertir les sources d'un langage à un autre automatiquement...

hlide
Messages : 340
Enregistré le : 29 nov. 2017 10:23

Re: Amoureux du COBOL... vous allez être comblés !

Message par hlide » 11 avr. 2018 11:07

Non, __sam__, il y avait encore plus simple :

Code : Tout sélectionner

return (periode.getNature() == 46) || (periode.getNature() == 47) || (periode.getNature() == 45) || (periode.getNature() == 48) || (periode.getNature() == 44);
qui peut se réécrire si tu veux faire dans la performance :

Code : Tout sélectionner

int nature = periode.getNature(); return (nature >= 44) && (nature <= 48);
Et encore, en C++, ça peut se faire en une seule comparaison parce que Java ne connait pas les nombres non signés :

Code : Tout sélectionner

return unsigned(periode.getNature() - 44u) <= (48u - 44u);
La lisibilité aurait été meilleure si les valeurs été nommées.

__sam__
Messages : 3946
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Amoureux du COBOL... vous allez être comblés !

Message par __sam__ » 11 avr. 2018 12:21

oui j'avais pas vu que la séquence de natures était "sans trous" (hasard?). Avec les extensions gcc on peut aussi à ce moment là faire un case avec "..." que je trouve sympathique.

Code : Tout sélectionner

	switch(bidule.getNature()) {
		case 44...48: return true;
		default: return false;
	}
M'enfin bon après si le but est de pisser du code, je comprends que le stagiaire ne se soit pas cassé la tête (les valeurs dans le || apparaissant désordonnées semblent indiquer que ca a du évoluer en plusieurs étapes).
Samuel.
Amiga 500+GVP530(MMU/FPU) (hs), A1200(030@50mhz/fpu/64mb/cf 8go), R-Pi, TO9, TO8D, TO8.
New Teo 1.8.4 8)

cquest
Messages : 31
Enregistré le : 31 janv. 2018 16:30

Re: Amoureux du COBOL... vous allez être comblés !

Message par cquest » 11 avr. 2018 12:51

Oups, ce sont les amoureux du java qui se sont réveillés ;)

Répondre