Bonjour,
J'écris un article (hum hum) sur les façons parfois horribles que nous programmons nos bébêtes.
Avez-vous des idées ?
Pas votre code bien sûr, qui est parfait, hein, celui des autres ces "noobs" comme disent les djeunz !
Attention on ne parle pas de bugs, mais par exemple d'un même calcul qu'on refait à chaque fois dans une boucle, etc...
Allez racontez !
G.E.
Mauvaise programmation
Modérateur : Politburo
-
- Fonctionne à 1200 bauds
- Messages : 949
- Enregistré le : 22 sept. 2010 13:48
- Localisation : France PdD
Re: Mauvaise programmation
sur oric a mes debuts j utilisait l instruction "pop" reservee aux programmes mal fagotes. En Basic ca consistait a sortir sauvagement d une sous-routine appelee par un GOSUB ....sans RETURN.
- Hobiecat
- Fonctionne à 9600 bauds
- Messages : 3644
- Enregistré le : 06 sept. 2011 14:57
- Localisation : Normandie
Re: Mauvaise programmation
Ayant programmé à une époque où l'octet était rare, il me semble que la programmation était relativement optimisée.
Cependant j'avoue sur de la programmation sur la HP-41CV où la place était un peu plus disponible avoir fait de la programmation à la volée (c'est-à-dire sans support papier ), avec recours à des facilités, comme par exemple se limiter aux tests "x=0?" sans se soucier du nombre d'octets, pour ne pas se compliquer la vie ! Bien sûr, refaire le même calcul plusieurs fois parce qu'on a la flemme de chercher quel registre contient le bon résultat est aussi de la partie !
En même temps, quand je vois le Giga-octets qu'installent les systêmes comme windows, je me dis que le code doit être infesté de ces programmations un peu bâclées...
Cependant j'avoue sur de la programmation sur la HP-41CV où la place était un peu plus disponible avoir fait de la programmation à la volée (c'est-à-dire sans support papier ), avec recours à des facilités, comme par exemple se limiter aux tests "x=0?" sans se soucier du nombre d'octets, pour ne pas se compliquer la vie ! Bien sûr, refaire le même calcul plusieurs fois parce qu'on a la flemme de chercher quel registre contient le bon résultat est aussi de la partie !
En même temps, quand je vois le Giga-octets qu'installent les systêmes comme windows, je me dis que le code doit être infesté de ces programmations un peu bâclées...
- pir2
- Fonctionne à 9600 bauds
- Messages : 4647
- Enregistré le : 31 oct. 2006 15:08
- Localisation : 67310 Westhoffen
- Contact :
Re: Mauvaise programmation
Dans mon monde de l'EAI, j'ai implémenté un framework qui trappe automatiquement toutes les erreurs, du coup, les codeurs qui l'utilisent ne se posent plus de questions et ne font plus de tests d'exceptions, ce sera capturé en production et géré par les équipes de supports
Idem pour les opérations faites dans les boucles, ce qui marche bien en tests unitaires avec des listes de moins de 10 éléments, sur un seul test, devient catastrophique en production, avec des milliers de messages contenant des listes de centaines d'objets ... (j'ai aussi fait ces choses moi-même, mais vite réagi aux premiers symptômes, çà ne s'est pas vu )
Autre anecdote dans le genre, mais rapporté par un collègue. Dans un programme d'édition en COBOL (donc fin des 80's), juste avant une mise en production, quelqu'un avait remplacé par inadvertance un AFTER LINE par un AFTER PAGE. Le site d'impression étant distant de quelques kilomètres, c'est un camion qui avait ramené les listings ...
J'ai fait ça plus tard moi-même en imprimant avec le mauvais code sur la mauvaise imprimante (postscript), l'imprimante étant à l'époque à côté de mon bureau, je n'avais gâché qu'une rame de papier A4, j'ai eu des brouillons pour plusieurs années
Idem pour les opérations faites dans les boucles, ce qui marche bien en tests unitaires avec des listes de moins de 10 éléments, sur un seul test, devient catastrophique en production, avec des milliers de messages contenant des listes de centaines d'objets ... (j'ai aussi fait ces choses moi-même, mais vite réagi aux premiers symptômes, çà ne s'est pas vu )
Autre anecdote dans le genre, mais rapporté par un collègue. Dans un programme d'édition en COBOL (donc fin des 80's), juste avant une mise en production, quelqu'un avait remplacé par inadvertance un AFTER LINE par un AFTER PAGE. Le site d'impression étant distant de quelques kilomètres, c'est un camion qui avait ramené les listings ...
J'ai fait ça plus tard moi-même en imprimant avec le mauvais code sur la mauvaise imprimante (postscript), l'imprimante étant à l'époque à côté de mon bureau, je n'avais gâché qu'une rame de papier A4, j'ai eu des brouillons pour plusieurs années
- zpalm
- Fonctionne à 9600 bauds
- Messages : 2934
- Enregistré le : 03 mai 2008 15:33
- Localisation : Grenoble
Re: Mauvaise programmation
Une anecdote sur les effets de bord d'un changement mineur effectué au dernier moment sans vérification suffisante :
En 2011 intel a du rappeller des millions de PCs à cause d'un problème sur les ports SATA.
En 2011 intel a du rappeller des millions de PCs à cause d'un problème sur les ports SATA.
La raison ? Un changement effectué juste avant la mise en production sur un seul transistor sur les millions que compte un circuit intégré !!! Petite cause, grands effets.c|net:
How issue was discovered: Last week customers started telling Intel that there was an issue. As Intel stressed the part, Intel's labs started seeing a failure to access ports 2 through 5. The Intel stress test simulated time passing and it showed that over time this issue could come up.
How many Sandy Bridge chipsets shipped to date: 8 million. But Intel claims relatively few are in customers' hands. Most of those are in the sales channel and will be pulled out of the channel. Intel is supporting PC makers in this effort.
Anandtech:
I just got off the phone with Intel’s Steve Smith (VP and Director of Intel Client PC Operations and Enabling) and got some more detail on this morning’s 6-series chipset/SATA bug.
[…]
The problem in the chipset was traced back to a transistor in the 3Gbps PLL clocking tree. The aforementioned transistor has a very thin gate oxide, which allows you to turn it on with a very low voltage. Unfortunately in this case Intel biased the transistor with too high of a voltage, resulting in higher than expected leakage current.
[...]
To make matters worse, the problem was inserted at the B-stepping of the 6-series chipsets. Earlier steppings (such as what we previewed last summer) didn’t have the problem. Unfortunately for Intel, only B-stepping chipsets shipped to customers.
[…]
While Steve wouldn’t go into greater detail he kept mentioning that this bug was completely an oversight. It sounds to me like an engineer did something without thinking and this was the result.
-
- Fonctionne à 1200 bauds
- Messages : 383
- Enregistré le : 09 avr. 2005 17:48
- Localisation : Brest
- Contact :
Re: Mauvaise programmation
Holala...
Sur ma TI-83, dans ma folle jeunesse, je mettais du GOTO dans tous les sens, même pour sortir des boucles. En fait je crois me rappeler que faire ça pourrissait la pile et que donc il fallait malgré tout exécuter un END après être sorti comme un sauvage. Bref mes boucles se terminaient donc par fatras infâme de GOTO, END et LBL.
Sur ma TI-83, dans ma folle jeunesse, je mettais du GOTO dans tous les sens, même pour sortir des boucles. En fait je crois me rappeler que faire ça pourrissait la pile et que donc il fallait malgré tout exécuter un END après être sorti comme un sauvage. Bref mes boucles se terminaient donc par fatras infâme de GOTO, END et LBL.
Quand Chuck Norris joue à Nintendogs, il a automatiquement armes et munitions infinies.
Chuck Norris peut revenir en arrière dans Super Mario Land.
Chuck Norris utilise exclusiment des calculatrices Texas Instruments.
Chuck Norris peut revenir en arrière dans Super Mario Land.
Chuck Norris utilise exclusiment des calculatrices Texas Instruments.
- gege
- Fonctionne à 14400 bauds
- Messages : 7148
- Enregistré le : 31 janv. 2008 14:24
- Localisation : Banlieue Paârisienne
- Contact :
Re: Mauvaise programmation
Il y a un article là-dessus dans la Gazette n°7.
G.E.
G.E.