Qu'est-ce que la conversion a échoué / réécriture de logiciels avez-vous fait?
-
09-09-2019 - |
Question
Qu'est-ce que la conversion / repassez vous avez été impliqué avec cela a échoué? Que où les langues et le cadre impliqués dans le processus? Quelle était le logiciel en question? Enfin ce qui est en haut une ou deux choses que vous avez appris d'être impliqué dans le processus.
Ceci est lié à cette question .
La solution
L'un de mes favoris était un projet à prix fixe le développement d'une application de serveur sur Sun OS 3 qui a finalement été nécessaire pour faire fonctionner sur une ancienne machine générale des données en cours d'exécution certains (à l'époque) version d'Unix.
Maintenant, nous savions à l'avance que ce serait pénible portage du code C aux données générales, car il avait 9 octets / 36 mots de bit bits, mais ne savais pas comment ... manque ... la mise en œuvre Unix serait .
Il était environ 5 heures après le début de la tâche de portage lorsque la décision sage exécutif a été fait pour acheter simplement le client une nouvelle boîte Sun brillant.
Autres conseils
J'ai eu un récemment en grande partie échoué en raison de mon incapacité à bien convaincre la direction que la réécriture de l'application serait moins cher à long terme que de continuer à le maintenir tel qu'il était. Si j'avais lu sur la dette technique plus tôt, il peut avoir été un succès. dernier article sur le sujet de Jeff était environ 8 mois trop tard pour moi!
Tout a dit l'application était d'environ 75K lignes de code C #, mais il a été un cauchemar de maintenance (en interne application). Une poignée de classes de Dieu et les autres étaient ce que j'appelle les classes de marionnettes (des classes par nom seulement, les classes de dieu « tirait les ficelles » pour tout ce qu'ils ont fait). Presque rien était configurable par l'utilisateur afin que les développeurs étaient responsables de tout.
Avec le recul, le plus grand obstacle au succès était l'application elle-même. Le garder en cours d'exécution est un emploi à temps plein pour trois d'entre nous. Je pense que la meilleure chose que nous aurions pu faire était de continuer à refactoring. L'application « version 2 » avait quelques bons concepts réels et nous aurions dû continué à essayer de les intégrer au lieu de recommencer ... Si on avait fait cela, nous aurions pu construire les grands composants après la stabilisation de l'application d'origine.
Une fois, je tentais au port d'un jeu je l'ai écrit dans DarkBasic à C.
Le problème que je suis tombé sur était que DarkBasic était une langue limitée (par exemple, aucun argument en passant par référence) quand je l'ai porté, je tenté de faire un port droit ... IE, j'ai essayé de ne pas refactoriser appropriée pour la langue que j'utilisais ...
Le résultat a été un gros gâchis ...
Je pourrais probablement avoir obtenu ce travail, mais je me suis arrêté au bout de 2 jours parce que je l'ai réalisé plus nécessaire que la simple traduction de passer à C ...
J'avais écrit un retour dans la journée clone de Pacman en C et Allegro et j'ai essayé de le réécrire pour fonctionner sur la Dreamcast.
C'était un code horrible. Je ne pouvais pas sauver vraiment beaucoup de la base de code et mis au rebut l'idée.
J'ai appris que peu importe ce que je pensais à l'époque, j'étais un programmeur vraiment horrible à l'époque et je l'avais appris beaucoup dans les années qui passent. Il a également fait me rendre compte que dans quelques années, je devrais apprendre assez pour regarder en arrière sur le code que j'écrivais aujourd'hui et penser la même chose. Au fond, je toujours chercher à mieux.
On m'a demandé de convertir un programme qui a conduit une photo typsetter sur un DEC-System10 à IBM 4381. En regardant le code, j'ai découvert que le développeur d'origine avait, sans raison évidente, écrit divers bits du programme les suivantes langues:
- Fortran de DEC
- Algol 68
- BCPL
- MACRO-10
Ce fut un grand témoignage de soutien DEC pour la programmation en plusieurs langues, mais ce fut la seule fois que je devais aller à un utilisateur et dire « ne peut le faire ».