Comment rendre Classic ASP intéressant si vous êtes coincé avec lui? [fermé]

14

J'avais l'habitude de travailler dans une très petite entreprise d'impartition (4 programmeurs et le patron), puis quand le stress et les longs changements fréquents ont rendu la situation insupportable, j'ai changé pour un travail mieux rémunéré avec un horaire plus détendu qui me permet un peu plus temps libre.

Le problème, cependant, est que pour la plupart, tout est codé en ASP classique qui s'interface avec un système de mise en file d'attente C ++ sur mesure qui stocke tout dans les systèmes AS400. Mon patron était l'un des développeurs qui a fait les premiers efforts dans ce sens et, naturellement, n'approuvera jamais le passage à d'autres langues / technologies malgré la difficulté croissante que représente le développement des besoins commerciaux d'aujourd'hui avec les outils d'hier.

Je suis à peu près coincé dans le codage avec Classic ASP dans un avenir prévisible, et j'ai du mal à trouver des moyens de le rendre au moins intéressant, car j'avais l'habitude de travailler avec .NET et Java auparavant, et je sens que je vais à l'envers ... Un conseil?

Saul Delgado
la source
13
... en faire un jeu à boire? Cela fonctionne pour de nombreux mauvais films et émissions de télévision ...
FrustratedWithFormsDesigner
4
Je pense qu'il serait mort d'un empoisonnement à l'alcool dans peu de temps ...
Wayne Molina
4
Une autre idée: partagez vos découvertes sur TheDailWTF.com pour que les autres puissent offrir leur sympathie.
FrustratedWithFormsDesigner
2
Je remets en question la prémisse ... très peu de gens qui pensent qu'ils sont "coincés dans un avenir prévisible" le sont vraiment. Sauf s'il s'agit d'un travail en prison, il existe un moyen de sortir si vous faites l'effort de le trouver. Si vous pensez toujours que vous êtes "coincé", imaginez ceci ... l'entreprise fermera ses portes demain. Seriez-vous toujours «coincé»? Sinon, pourquoi êtes-vous "coincé" maintenant?
JoelFan
1
"tout est codé en ASP classique qui s'interface avec un système de mise en file d'attente C ++ sur mesure qui stocke tout dans les systèmes AS400." Je vais faire des cauchemars à ce sujet.
Tjaart

Réponses:

27

Comme d'autres l'ont souligné, vous devriez probablement essayer de changer d'avis de votre patron ou trouver un emploi où vous n'avez pas à supporter une mentalité aussi rétrograde.

Cependant , en attendant, vous pourriez rendre votre travail un peu plus intéressant en essayant de déplacer toutes les fonctionnalités que vous pouvez côté client et en utilisant des appels asynchrones pour déclencher des choses sur le serveur. Considérez cela comme un frontal HTML / JavaScript avec des Webservices (implémentés en ASP classique) à l'arrière. Développer une API RESTful pourrait être un défi intéressant, il existe des outils tels que les analyseurs JSON pour Classic ASP pour déplacer les données d'avant en arrière de manière plus standard et les modèles côté client vous permettraient de formater les données que vous obtenez de vos services Web pour une présentation plus agréable. LinkedIn a fait quelque chose de similaire pour unifier les différentes technologies back-end.

Une fois que vous disposez d'une API RESTful, vous pouvez essayer d'écrire certains services Web gérés pour émuler les fonctionnalités des éléments ASP classiques existants.

R0MANARMY
la source
4
+1 Excellente réponse! Rendez l'ASP classique plus moderne! Vous pourriez finir par faire quelque chose de TRÈS unique et intelligent et vous apprendrez beaucoup. Je trouve que je ne m'ennuie jamais quand j'apprends.
maple_shaft
@maple_shaft: Trick s'éloigne de l'apprentissage assez longtemps pour faire quelque chose d'utile =).
R0MANARMY
Oui, c'est exactement le genre de réponse que je cherchais. Quelque chose à faire en attendant. De plus, pour les autres gars suggérant de chercher un autre emploi, je sais que finalement je trouverai un autre emploi qui convient à mes intérêts, et ce ne sera pas un choix difficile quand il s'agit de frapper à ma porte.
Saul Delgado
11

Avant de commencer, je n'aborderai pas la question de savoir si votre patron a raison d'insister sur l'ASP classique. Vous ne nous avez pas donné suffisamment d'informations. Si vous avez un très grand corps de code existant dans Classic ASP qui est assez bon à 95%, et que vous effectuez de petites tâches de maintenance, alors c'est probablement une bonne idée de s'en tenir à Classic ASP ... le coût de tout porter sur un la nouvelle langue est peut-être trop élevée. Cependant, si votre patron lance de nouveaux projets dans Classic ASP, eh bien, il n'y a aucune excuse pour cela. Et il y a toute une gamme au milieu. Je n'ai donc pas assez d'informations pour peser là-dessus et je ne vais pas m'embêter.

Mais je veux répondre à votre question précise ... comment rendre le codage intéressant .

Est intéressantune bonne chose en codage? Rappelez-vous la malédiction chinoise, "Pouvez-vous vivre à une époque intéressante?" Eh bien, ce n'est probablement pas chinois ... mais le fait est que je me demande si toutes les formes de programmation devraient être intéressantes. Parfois, vous voulez simplement que ce soit facile et direct. Les plus gros problèmes de code que j'ai jamais dû nettoyer ont été causés par des développeurs qui sont fatigués de la manière simple et simple de faire quelque chose et qui ont besoin de trouver une fonctionnalité de langage intelligente que personne n'a jamais entendu, juste pour garder leur propre esprit stimulé. Je me souviens avoir trouvé 20 lignes de code C ++ dont je n'arrivais pas à déchiffrer le but. Il s'avère que cela a été une sorte d'astuce subtile par un développeur pour s'assurer que certaines variables ont été initialisées à 1 si vous avez oublié de les initialiser. C'était ridicule et c'était intéressant. Mais ça a gâché tout le monde »

Il y a beaucoup de vertu à écrire la plupart de votre code quotidien dans un langage "ennuyeux". Cela signifie que vous pouvez utiliser votre cerveau pour réfléchir au domaine d'application au lieu d'essayer de comprendre pourquoi la dernière fonctionnalité linguistique que vous venez de créer ne fonctionne pas comme vous vous y attendiez. Vous pouvez généralement travailler beaucoup plus rapidement si vous comprenez parfaitement votre langue et ses bibliothèques. Et cela signifie que vous pouvez utiliser vos cycles cérébraux pour quelque chose comme penser à rendre votre application plus intéressante, plus utile, plus rentable ou plus utilisable.

Pour garder votre esprit vif, utilisez votre temps libre pour apprendre de nouvelles langues intéressantes. Travaillez sur des projets open source ou travaillez sur vos propres projets.

Rappelez-vous, je ne défends pas l'utilisation de Classic ASP, et je ne dis pas que c'est une bonne idée de l'utiliser parce que c'est "ennuyeux". Si vous pensez que c'est une vertu d'utiliser un environnement de développement "intéressant", plus de pouvoir pour vous ... mais vous vous concentrez sur la mauvaise chose. Un bon sculpteur ne veut pas d'un ciseau intéressant ... qui gênerait la fabrication de belles statues. Un bon peintre ne recherche pas de pinceaux "intéressants". Ils pourraient s'amuser avec des outils intéressants, mais ils feront de leur mieux avec les outils les plus ennuyeux possibles - les outils si ennuyeux qu'ils disparaissent et laissent l'artiste travailler sur l'art.

Joel Spolsky
la source
3
Je crois que la question ne visait pas spécifiquement les caractéristiques intéressantes d'une langue donnée, mais plutôt dans le sens de ce que je peux faire pour avoir hâte de venir travailler tous les jours? Dans ce contexte, votre point sur le recul du codage et la question de savoir comment rendre cette application plus intéressante, plus utile, plus rentable ou plus utilisable? est sur place. Ce n'est pas tellement un artiste qui utilise un pinceau intéressant pour peindre mais plutôt de trouver des sujets intéressants à peindre.
R0MANARMY
Vous avez dit "plus intéressant, plus utile, plus rentable ou plus utilisable". Je me demande combien de personnes employées comme programmeurs peuvent travailler sur ces aspects du logiciel? Je pense que ce n'est que si vous êtes propriétaire de tout ou partie du projet, ou si vous travaillez dans une start-up que vous pouvez les aborder. D'après mon expérience, dans la plupart des environnements, ces décisions sont laissées à d'autres, principalement la direction ou les PM.
aceinthehole
7

Vous avez l'impression de reculer parce que vous l'êtes . Il n'y a pas d'autre conseil que de trouver une entreprise qui n'est pas coincée dans les âges sombres. Il n'y a absolument aucune raison de s'en tenir à l'ASP classique de nos jours; en fait, je dirai carrément que choisir de rester avec Classic ASP va vous blesser à l'avenir car A) Vos compétences .NET et Java vont s'atrophier et B) Pour un futur employeur potentiel, vous travaillez sur Classic ASP, une technologie qui est obsolète depuis plus de 10 ans et, même alors, c'était comme s'arracher des dents; en d'autres termes, vous n'avez aucune expérience pertinente. Vous avez mal choisi, semble-t-il.

Vous ne pouvez pas faire grand chose avec Classic ASP, et c'est très douloureux.

Wayne Molina
la source
4
Le PO indique que c'est ce qu'il est coincé à faire au moins dans un avenir prévisible, donc suggérer qu'il quitte ne sert à rien. Souligner toutes les façons dont vous sentez que sa situation est terrible est encore moins utile. Il y a 10 ans, 2001 serait environ un an avant la sortie de .Net Framework 1.0, donc l'asp classique n'était guère obsolète.
Gratzy
2
@Gratzky non, mais c'était quand même une horrible technologie. Bien inférieur aux deux principales alternatives: PHP et JSP
Sean Patrick Floyd
6

Apprenez une langue moderne de votre choix et utilisez-la pour créer un outil qui génère vos pages et classes ASP pour vous, par exemple par rétro-ingénierie à partir d'une base de données cible. Cela le rendra sûrement intéressant.

Marcelo
la source
Le T4 me vient à l'esprit, mais je suppose que n'importe quel moteur de template ferait l'affaire.
R0MANARMY
1
J'ai fait quelque chose comme ça. J'ai utilisé Ruby pour générer des procédures stockées et des classes d'accès aux données basées sur les définitions de table de base de données.
Larry Coleman
@Larry Coleman: Vous voulez dire quelque chose dans le sens des migrations
R0MANARMY
@ R0MANARMY: Oui, mais Rails n'était pas là à l'époque.
Larry Coleman
5

Pourquoi seriez-vous jamais coincé avec une ancienne technologie? Les entreprises migrent constamment des technologies. L'astuce consiste à dresser une liste des raisons pour lesquelles le passage à une nouvelle technologie est bénéfique pour l'entreprise - tant du point de vue technique que commercial. Plus souvent qu'autrement, le coût initial de la migration des piles technologiques dépasse de loin les coûts de développement futurs.

Même si, pour une raison obscure, il n'était pas viable de changer de pile technologique, vous pouvez toujours utiliser les outils et technologies actuels pour rendre votre vie en utilisant les anciennes technologies plus supportable.

Si votre patron est l'un des premiers développeurs du projet et refuse de changer de technologie uniquement en raison du fait qu'il est votre patron et qu'il sait mieux que vous, alors je chercherais probablement un nouvel emploi - vous ne voulez pas être coincé dans un environnement où votre leadership est à courte vue. Je ne dis pas qu'il sera facile de le convaincre car je suis sûr qu'ils ont des années de travail investies dans leur bébé et admettre que le changement est nécessaire est un coup dur pour l'ego ancien. Vous devez vous assurer que vous avez clairement , concis et mesurables raisons pour lesquelles une migration est nécessaire, où il serait à peu près mettre votre patron dans une situation où non migrer serait clairement une mauvaise décision.

Bonne chance.

Demian Brecht
la source
Je sais, il n'y a aucune raison de s'en tenir à l'ancienne technologie, même le cadre personnalisé que nous utilisons ici est difficile à utiliser et n'offre même pas la moitié des avantages de tout cadre de programmation commerciale. Je me souviens avoir entendu quelque part ici que le fait qu'il ait été fabriqué en interne ajoute une couche d'obscurité qui peut être considérée comme une mesure de sécurité, mais pour être honnête, je n'achète pas cela.
Saul Delgado
2
@ reno812, la sécurité par l'obscurité n'est PAS du tout une sécurité. C'est comme si la porte arrière de votre maison était grande ouverte et disait que votre maison était sécurisée parce que cette porte ne faisait pas face à la rue.
maple_shaft
Je sais que ce n'est pas le cas, juste pour vous donner une idée de la mentalité ici.
Saul Delgado
3

Je travaille aussi avec Classic ASP au travail, et j'ai réussi (dans une certaine mesure) à le rendre intéressant. Voici les étapes:

  • L'ASP classique peut être codé en VBScript ou JScript (Javascript), sans aucune modification de l'architecture. Passez à Javascript.
  • Accédez à différentes bibliothèques: json2.js, trait de soulignement, moustache ... Vous pouvez consulter les bibliothèques Node.JS ou les bibliothèques côté client, avec diverses modifications.
  • Créez un framework MVC ou téléchargez-en un. Vous pouvez gérer les modèles et les vues en chargeant un fichier à partir du serveur et en lisant son contenu, et en utilisant l'une des nombreuses bibliothèques de modèles JS disponibles. Pour le contrôleur, vous pouvez utiliser des variables dans la requête pour rediriger les demandes de la même manière que vous utiliseriez l'URL habituellement (moins propre mais cela fonctionne).
  • Vous pouvez également créer une API REST (simplifiée)!
  • Créez un ORM (si vous avez accès à la base de données) ou téléchargez-en un. Vous pouvez même créer du LINQ-to-SQL en fonction du trait de soulignement.
  • Travaillez sur vos points de vue. Utilisez des bibliothèques JS avancées comme Angular ou Backbone. Swtich de CSS à LESS, Stylus ou SASS.
  • Créez des classes de code proxy à laid. Ce sont des classes faites dans le seul but d'interfacer avec l'ancien code laid afin que vous n'ayez pas à le toucher.
DistantEcho
la source
2

Vous pouvez créer vos propres classes et rationaliser autant de processus que possible. Voici un site avec quelques exemples: http://www.u229.no/stuff/

Vous pouvez même commercialiser vos classes à d'autres qui utilisent encore ASP classique. Comme Demian l'a dit, il existe de nombreuses entreprises avec des technologies plus anciennes ... tout le monde ne saute pas dans les nouvelles choses.

Michael Riley - AKA Gunny
la source
La dernière fois que j'ai dû travailler sur un asp classique, il y a longtemps, une des bonnes surprises était que VBScript avait commencé à supporter les classes.
Gratzy
1

Tout d'abord, si ce n'est pas le coût de la mise à jour de votre technologie, mais le fait que le PDG est si petit qu'il refuse de mettre à niveau Tech en se fondant sur l'idée qu'il connaît le mieux et qu'il aime l'asp classique, j'aurais de sérieux doutes sérieux sur la santé à long terme de l'entreprise et avec la pourriture des compétences de faire un asp classique, plus vous attendez, plus il sera difficile d'obtenir un autre emploi.

Cela dit, commencez à tout migrer pour utiliser "option stricte", ce qui pourrait rendre la maintenance de votre base de code moins pénible

Bob le concierge
la source
1

Étant donné que les données sont déjà sur AS400 / IBMi, vous savez que vous pouvez exécuter des interfaces Java, PHP, MySQL et d'autres choses sur ce système d'exploitation? Je suppose que c'est un gars de 400, pas un gars ASP. Essayez d'embrasser cela, j'aimerais avoir l'opportunité de développer un écosystème 400 comme ça.

Jé Queue
la source
0

Toutes les réponses ici sont vraiment très bonnes. Je voulais juste suggérer une autre alternative.

Commencez à déplacer les problèmes d'infrastructure (base de données, système de fichiers, code COM, etc.) dans des fichiers séparés. Par exemple, vous pourriez avoir une procédure qui retourne un jeu d'enregistrements sous forme de tableau (je l'ai fait il y a 8 ans mais pas d'échantillon de code - désolé).

Essayez d'éradiquer le "code" apparaissant dans votre code HTML en le déplaçant vers le haut de la page ou même dans une classe commune / utilitaire. Il est même possible d'avoir les fonctions d'en-tête / nav / pied de page dans une seule page asp avec des pages de contenu qui contiennent relativement peu de code (avec une poignée de références à des variables et autres).

Avec votre contenu, votre présentation / formatage, votre logique métier et vos problèmes d'infrastructure tous séparés, vous êtes maintenant en mesure de passer à ASP.NET MVC une fois que vous aurez surmonté la courbe d'apprentissage avec cette technologie. Cela ne sera pas aussi simple que de basculer un commutateur, mais cela ressemblera beaucoup à toute personne qui a travaillé avec votre solution ASP classique modulaire (ce qui signifie que votre patron pourrait l'aimer).

Mayo
la source
-1

Comment rendre Classic ASP intéressant si vous êtes coincé avec lui?

Tout d'abord, soyez fier de votre travail (même s'il s'agit d'un ASP classique). Raison: Une page ASP classique mal développée (ou corrigée) sera un albatros encore plus GRAND autour de votre cou. Votre patron s'attendra naturellement à ce que vous corrigiez tous les bugs qui surviennent, et il se sentira dégueu. Chargez juste de la bonne musique, mettez vos écouteurs et montez et sortez aussi vite que possible (en supposant qu'il y ait en fait de la lumière au bout du tunnel et que vous allez bientôt travailler sur quelque chose plus intéressant).

Deuxièmement, dans la mesure de vos capacités, faites de votre mieux pour que les pages soient belles et agréables. Travaillez votre magie avec CSS. Utilisez Bootstrap si vous le pouvez. Et utilisez AJAX et d'autres techniques pour réduire les temps de chargement et les rafraîchissements en plein écran.

Troisièmement, faites de votre mieux pour utiliser jQuery, jQuery UI et d'autres bibliothèques côté client pour rendre les pages rapides et fluides. Parfois, vous pouvez éliminer des pages ASP entières avec des modaux, des assistants ou même des SPA ! Cela réduira à la fois la quantité d'ASP classique que vous devrez écrire et rendra le travail beaucoup plus intéressant.

Jim G.
la source