Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Microsoft et Java

295 réponses
Avatar
Wykaaa
Microsoft semble reconnaître que Java permet de développer plus
rapidement que C# et qu'il y a moins de failles de sécurité dans Java
que dans .net :
http://dsi.silicon.fr/nouveautes/microsoft-java-forever%E2%80%A6-1366

10 réponses

Avatar
Aéris
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le 18/06/2011 21:28, Nicolas George a écrit :
Montre-nous tout le code nécessaire, en particulier celui où on définit les
objets et celui où on les instancie, sans compilation conditionnelle.



class AVOutputStream {
File logfile;
int sws_flags;

void doTruc() {
doWhatYouWithoutFilter();
}
}

class AVOutputStreamWithFilter extends AVOutputStream {
AVFilterContext outputVideoFilter;
AVFilterContext inputVideoFilter;
AVFilterBufferRef picRef;
String avfilter;
AVFilterGraph graph;

void doTruc() {
doWhatYouWithFilter();
super.doTruc();
doWhatYouWithTooFilter();
}
}

List<AVOutputStream> list = new LinkedList<>();
list.add(new AVOutputStream(lesArgsQuiVontBien));
list.add(new AVOutputStreamWithFilter(lesArgsQuiVontAussiBien));

for ( AVOutputStream os : list )
os.doTruc();


- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN/P6lAAoJEK8zQvxDY4P9zqQH/RvIwy+IOaPDZ7lDTuyDMpxy
J4ww9oSQ6OlLmhshaZ7kJX5M0tdiqvpYNdwkru2Q0w2K0VIJ+N3+/fGgnhK/oeyJ
2IoBbTVoKNY/bDEqylRNzyHYYGgfKzzjahgbFgFLQ9fmrWC3cejKt3GZtHeAWknr
2WfmpvK9g2TIkMXMjejXT/4tC8HAFyW8cw+sfKlrsrdBYImY5W0zeXCeL5tc6Ign
ctjOtvF48zHZUb3B9X4A723QN3j1BPCEtTIp3vK+QEXBUIoOchLUFo/ql0GcClCb
2/ZPo9RuuGQox4RLRB9ujKUjJIAqqwTq0Z6RXHlt3pfv6dKzgHANA5OykHQRTio =4VMI
-----END PGP SIGNATURE-----
Avatar
Aéris
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le 18/06/2011 21:24, Nicolas George a écrit :
Tu ne connais pas la situation, mais tu as déjà une certitude sur la
réponse...



Je connais très bien la situation : y'a un bloated dans le code.

À la limite si le dev a réellement besoin de ce morceau de code, il
aurait du mettre les tags de signalement pour Findbug/Checkstyle, le
commentaire qui va bien dans le code ou me le signalera à la demande de
correction (en me demandant une dérogation).

Dans tous les cas une action corrective est à entreprendre.

- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN/P93AAoJEK8zQvxDY4P915EH/jX47Er5c++RM/wrfeOFKef0
Yo8zDCOkpI/XKIPZwXt1jiGpMJtagbVi02TcADfda5MpP78AOYLPSnOxfYy0yeFt
d1YartPxzCqO4osuqRayfGQ+medGxSifExkpx6edJAa/EYOO0OA/ZigcPWD5s7yP
4Gog3Xh9catr8bFxcgqW1QQL2neXUULW4DhntoGhMP09M+PGBgsCRzeo+tTdyZ8W
ZBElthO3ga1si6zmbHE4fp4wJMC4AEIygxfwQEjUUV2eccSsX1ME/5yCckdbqiBi
AQyF9ia4R0BGNv18s0409teUFvCh/rnNEYKB2yDzHpKyligzIB0NT2Q6Gz9BF84 =OqZl
-----END PGP SIGNATURE-----
Avatar
Aéris
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le 18/06/2011 21:38, Aéris a écrit :
Le 18/06/2011 21:28, Nicolas George a écrit :
Montre-nous tout le code nécessaire, en particulier celui où on définit les
objets et celui où on les instancie, sans compilation conditionnelle.



class AVOutputStream {
}

class AVOutputStreamWithFilter extends AVOutputStream {
}



L'avantage de ce code est aussi que du coup dans mon code, j'ai accès
aux 2 : avec *et* sans les filtres.

Alors que toi tu n'as accès qu'à un seul : avec *ou* sans les filtres.

- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN/P/kAAoJEK8zQvxDY4P97zMIAL7ABSFZXZ8dnTEee0con62d
c+TRWF8geNEnFdz7fB+lSZQ+arCqZrM8G0Htn2Qnt1vxWHOjjJvUQcnNprFhtcUK
WZjTR+I5pgXPgdk6scwZqx49DcO53+hrnkaaTnKzbiflZtf0nrvTZqhat9G4Rc9R
prMIbgLcPjSEqL6dSEeVSI9tSw/u10BCU2ZV+nuouBb/RoRos2GgmnLnSDLAVEXz
4I2WIC0xe+omOvXD14aG83V/YQuHqDyUIfVnPVjQdEUo+fRAib5lqsSRlbZrEVte
sHzFh9h/u7x+abVx5tirbZWdq4JilqgyPn3E9a+ezfHY/b/icOA1Gg48P1hqHGk úTC
-----END PGP SIGNATURE-----
Avatar
Nicolas George
Aéris , dans le message <4dfcfeab$0$20709$, a
écrit :
class AVOutputStreamWithFilter extends AVOutputStream {
AVFilterContext outputVideoFilter;



Cette ligne ne compile pas si la bibliothèque optionnelle n'est pas
disponible. Essaie encore.
Avatar
Nicolas George
Aéris , dans le message <4dfcff77$0$20709$, a
écrit :
À la limite si le dev a réellement besoin de ce morceau de code, il
aurait du mettre les tags de signalement pour Findbug/Checkstyle, le
commentaire qui va bien dans le code ou me le signalera à la demande de
correction (en me demandant une dérogation).



Une fausse bonne idée (la déclaration des exceptions) -> des conséquences
néfastes (un catch-all) -> des outils pour détecter ces problèmes de style
-> des faux positifs -> du code supplémentaire pour masquer ces faux
positifs.

Génial.
Avatar
Aéris
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le 18/06/2011 21:51, Nicolas George a écrit :
Cette ligne ne compile pas si la bibliothèque optionnelle n'est pas
disponible. Essaie encore.



Hu ?
La bibliothèque est optionnelle à l'exécution, non à la compilation.

Maven gère parfaitement ce cas.
Ta dépendance est obligatoire à la compilation, mais tu n'en as pas
besoin à l'exécution tant que tu n'appelles pas une classe qui en a besoin.

Et même si on veut simuler le bordel des ifdef, tu peux toujours mettre
tes sources avec filter dans un sous-répertoire et déclarer un profil
Maven qui incluera ce répertoire et la dépendance qui va bien uniquement
si tu lui précises le profil sur sa ligne de commande (« mvn install
- -Pfilter »)
Mais ceci est à mon avis totalement inutile.

D'autant plus que comme je te l'ai dis, la dépendance n'est nécessaire
qu'à l'exécution et je n'ai nullement besoin de recompiler ma librairie
ou activer ou désactiver les filtres.
À la limite un flag dans la conf, une option au lancement ou une
détection au runtime de la présence ou non de la librairie (très
facilement faisable en Java !)
Mais les 2 versions sont accessibles simultanément.

- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN/QP8AAoJEK8zQvxDY4P9VkAH/0ydprh4UHZ2aDcSzjq2fqpg
LHioeJoqYPdOO2f5Lc/luBXOn2Y264dJZfNjTief5ADZO94Kf6PNambu+Bc4QnWb
2sYhJaOs+q6uCfGhH12RUsSe863buHOlNG8UHZKaPPi0sCrkKH5trk3rw8qt2pzw
ETs0igJ9CBPUT995WZs/7G/z+qzjrN/lM20wUnL93AyOyMVbTKVOSh7lCscZPYkg
zpgNZyyQao0BMKk469SmEn0FGMi8WTBw7xnOBWAdlSsBcqOWIxyK8kaQ35OSh1ih
Uc2v9BdbhsLHc/h2WsB/ryEmLQDx5Zq+nUmJo0gy3YUDSiXVBFILuTzMinmmFgc =Ts5a
-----END PGP SIGNATURE-----
Avatar
Aéris
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le 18/06/2011 21:52, Nicolas George a écrit :
Une fausse bonne idée (la déclaration des exceptions)



Une idée qui parfois te complique la tache mais qui beaucoup plus
souvent te la simplifie à l'extrème

Ce n'est pas parce que la voiture tue 3.000 personnes par an que tu
t'interdis d'en avoir une, non ?

des conséquences néfastes (un catch-all)



C'est surtout une histoire de mauvais développeur, pas de mauvais langage

des outils pour détecter ces problèmes de style



En quoi est-ce mauvais d'automatiser la détection de la déviance d'un code ?
Même les meilleurs sont faillibles.

des faux positifs



Toute notion de code propre met obligatoirement en jeu des faux positifs?

du code supplémentaire pour masquer ces faux
positifs.



Pas forcément du code supplémentaire.
Le warning peut se désactiver directement dans l'interface de Sonar ou
de Jenkins.
Et des commentaires sur les parties un peu tordues de l'application
n'ont jamais fait de mal à personne !

- --
Aeris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN/QUlAAoJEK8zQvxDY4P9bIgH/iZPb+wxU2aNrp9xJ/qqYUMp
b/znD/OQxCRJDlQvDTuwlsTteE3LgdPXVyCOuLII2eRZLxmpZ/DELPCTdfI1vVzh
wV3bFVk2gmha3gGpJvSgbesFpzqFrDB8kRYh7qm4229mc6D9vfMnN3LMFN2mmCA0
UFyOFwpeDM+KLY8zK7qgfInpnYGDyFAqg1zE1tMU/n+elA8tLT8RAWtOwlMhoT6s
aZCGnxai0LWNc7y6Ht6bUwoW7r2aFTtvuuv4tgU3nE0MklVaGbSwyKXduCOj3zcX
2ni4EL1aw38Baa6vGFc0ckOy8rtu70Y1VWJikZc3cSej4Z52PP6FrgUXmbuKra0 =zTZ9
-----END PGP SIGNATURE-----
Avatar
Nicolas George
Aéris , dans le message <4dfd0526$0$20808$, a
écrit :
Une idée qui parfois te complique la tache mais qui beaucoup plus
souvent te la simplifie à l'extrème



Pétition de principe.

Ce n'est pas parce que la voiture tue 3.000 personnes par an que tu
t'interdis d'en avoir une, non ?



Point Jacky.

C'est surtout une histoire de mauvais développeur, pas de mauvais langage



Non, c'est vraiment un problème de langage : la déclaration des exceptions
de java oblige à ajouter du code à des endroits où ce n'est pas nécessaire,
par exemple parce qu'on sait a priori que cette exception ne peut pas se
produire.

En quoi est-ce mauvais d'automatiser la détection de la déviance d'un code ?



Ce mauvais code n'aurait pas de raison d'être en premier lieu sans le défaut
que je dénonce.

Toute notion de code propre met obligatoirement en jeu des faux positifs?



Je ne comprends pas ce que tu veux dire.

Le warning peut se désactiver directement dans l'interface de Sonar ou
de Jenkins.



Encore pire, un IDE.
Avatar
Nicolas George
Aéris , dans le message <4dfd0402$0$20808$, a
écrit :
La bibliothèque est optionnelle à l'exécution, non à la compilation.



Non, elle est conditionnelle à la compilation également, comme ce doit être
évident à la lecture pour quiconque connaît le C assez pour participer à la
discussion.

Donc : essaie encore.
Avatar
Tonton Th
On 06/17/2011 10:56 PM, Aéris wrote:

100 lignes de codes et je suis connecté à une base de données avec tout
mon schéma de données et mes requêtes opérationnels et plus qu'à remplir
les trous côté 3-tiers et MVC, le tout totalement modulable et évolutif
sans aucun tricks de code à la con.



C'est pas un peu lourdingue pour piloter 4 flux MIDI et
deux entrées joystick ?

--
Je cherche un nouveau travail...
http://tboudet.free.fr/cv-thierry-boudet.pdf
http://sigfood.dinorama.fr/