¿Cómo hacer que Classic ASP sea interesante si estás atrapado con él? [cerrado]

14

Solía ​​trabajar en una empresa de outsourcing realmente pequeña (4 programadores y el jefe), luego, cuando el estrés y los frecuentes turnos largos hicieron la situación insoportable, cambié a un trabajo mejor remunerado con un horario más relajado que me permite un poco más tiempo libre.

Sin embargo, el problema es que, en su mayor parte, todo está codificado en ASP clásico que interactúa con un sistema de colas C ++ personalizado que almacena todo en sistemas AS400. Mi jefe solía ser uno de los desarrolladores que hicieron los esfuerzos iniciales para lograr esto, y naturalmente nunca aprobará un cambio a otros idiomas / tecnologías a pesar de la creciente dificultad que representa el desarrollo de las necesidades comerciales actuales con las herramientas de ayer.

Estoy bastante atascado en la codificación con ASP clásico en el futuro previsible, y estoy luchando por encontrar formas de hacerlo al menos interesante, ya que solía trabajar con .NET y Java anteriormente, y siento que voy al revés ... ¿Algún consejo?

Saul Delgado
fuente
13
... convertirlo en un juego de beber? Funciona para muchas películas malas y programas de televisión ...
FrustratedWithFormsDesigner
44
Creo que estaría muerto por intoxicación por alcohol en poco tiempo ...
Wayne Molina
44
Otra idea: comparta sus hallazgos en TheDailWTF.com para que otros puedan ofrecer sus condolencias.
FrustratedWithFormsDesigner
2
Cuestiono la premisa ... muy pocas personas que piensan que están "atrapadas en el futuro previsible" realmente lo están. A menos que se trate de un trabajo en una prisión, hay una salida si se esfuerza por encontrarlo. Si todavía crees que estás "atascado", imagina esto ... la empresa cerrará mañana. ¿Seguirías "atrapado"? Si no, entonces ¿por qué estás "atrapado" ahora?
JoelFan
1
"todo está codificado en ASP clásico que interactúa con un sistema de colas C ++ personalizado que almacena todo en sistemas AS400". Voy a tener pesadillas sobre esto.
Tjaart el

Respuestas:

27

Como otros han señalado, probablemente deberías tratar de cambiar la opinión de tu jefe o encontrar un empleo en el que no tengas que soportar una mentalidad tan atrasada.

Sin embargo , mientras tanto, puede hacer que su trabajo sea un poco más interesante al tratar de mover cualquier funcionalidad que pueda del lado del cliente y usar llamadas asíncronas para activar las cosas que suceden en el servidor. Piense en esto como un front-end HTML / JavaScript con Webservices (implementado en ASP clásico) en el back-end. El desarrollo de una API RESTful podría ser un desafío interesante, hay algunas herramientas como los analizadores JSON para Classic ASP para mover los datos de una manera más estándar y la plantilla del lado del cliente le permitiría formatear los datos que obtiene de sus servicios web para una mejor presentación. LinkedIn hizo algo similar para unificar diferentes tecnologías de back-end.

Una vez que tenga una API RESTful, puede intentar escribir algunos servicios web administrados para emular la funcionalidad de las cosas ASP clásicas existentes.

R0MANARMY
fuente
44
+1 Gran respuesta! ¡Haga que ASP clásico sea más moderno! Puede terminar haciendo algo MUY único e inteligente y aprenderá mucho. Descubro que nunca me aburro cuando estoy aprendiendo.
maple_shaft
@maple_shaft: el truco consiste en alejarse del aprendizaje el tiempo suficiente para hacer algo útil =).
R0MANARMY
Sí, ese es exactamente el tipo de respuesta que estaba buscando. Algo que hacer mientras tanto. Además, para los otros tipos que sugieren buscar otro trabajo, sé que eventualmente encontraré otro trabajo que se adapte a mis intereses, y no será una elección difícil cuando llamen a mi puerta.
Saul Delgado
11

Antes de comenzar, no abordaré la cuestión de si su jefe tiene razón al insistir en ASP clásico. No nos has dado suficiente información. Si tiene una gran cantidad de código existente en Classic ASP que es 95% suficiente y está realizando pequeñas tareas de mantenimiento, entonces probablemente sea una buena idea quedarse con Classic ASP ... el costo de portar todo a un nuevo lenguaje puede ser demasiado alto. Sin embargo, si su jefe está lanzando nuevos proyectos en ASP clásico, bueno, no hay excusa para eso. Y hay toda una gama en el medio. Así que no tengo suficiente información para opinar sobre eso, y no me molestaré.

Pero quiero abordar su pregunta precisa ... cómo hacer que la codificación sea interesante .

Es interesantealgo bueno en la codificación? Recuerda la maldición china: "¿Puedes vivir en tiempos interesantes?" Bueno, probablemente no sea chino ... pero la cuestión es que me pregunto si todas las formas de programación deberían ser interesantes. A veces solo quieres que sea fácil y directo. Los mayores problemas de código que he tenido que limpiar han sido causados ​​por desarrolladores que están cansados ​​de la forma simple y directa de hacer algo y necesitan encontrar una función de lenguaje inteligente que nadie haya escuchado, solo para mantener su propia mente estimulada. Recuerdo haber encontrado 20 líneas de código C ++ cuyo propósito simplemente no pude descifrar. Resultó haber sido una especie de truco sutil por parte de un desarrollador para asegurarse de que ciertas variables se inicializaron a 1 si olvidaba inicializarlas. Era ridículo, y vaya que era interesante. Pero desperdició a todos '

Hay mucha virtud en escribir la mayor parte de su código diario en un lenguaje "aburrido". Significa que puede usar su cerebro para pensar sobre el dominio de la aplicación en lugar de tratar de averiguar por qué la última función de lenguaje que acaba de crear no funciona de la manera que esperaba. Por lo general, puede trabajar mucho más rápido si comprende completamente su idioma y sus bibliotecas. Y eso significa que puede usar sus ciclos cerebrales para algo como pensar en hacer que su aplicación sea más interesante, más útil, más rentable o más utilizable.

Para mantener la mente aguda, use su tiempo libre para aprender nuevos idiomas interesantes. Trabaja en proyectos de código abierto o trabaja en tus propios proyectos.

Recuerde, no estoy defendiendo el uso de ASP clásico, y no digo que sea una buena idea usarlo porque es "aburrido". Si crees que es una virtud utilizar un entorno de desarrollo "interesante", más poder para ti ... pero te estás centrando en lo incorrecto. Un buen escultor no quiere un cincel interesante ... que se interponga en el camino de hacer buenas estatuas. Un buen pintor no busca pinceles "interesantes". Pueden perder el tiempo con herramientas interesantes, pero van a hacer su mejor trabajo con las herramientas más aburridas posibles: las herramientas que son tan aburridas que desaparecen y dejan que el artista trabaje en el arte.

Joel Spolsky
fuente
3
Creo que la pregunta no se dirigió específicamente a las características interesantes de un idioma determinado, sino más bien en la línea de ¿Qué puedo hacer para esperar venir a trabajar todos los días? En ese contexto, su punto es dar un paso atrás de la codificación y preguntar ¿Cómo puedo hacer que esta aplicación sea más interesante, más útil, más rentable o más utilizable? es perfecto. No es tanto un artista que usa un pincel interesante para pintar sino más bien encontrar temas interesantes para pintar.
R0MANARMY
Dijiste "más interesante, más útil, más rentable o más utilizable". Me pregunto cuántas personas empleadas como programadores pueden trabajar en esos aspectos del software. Pensaría que solo si usted fuera el propietario de todo o parte del proyecto, o si trabajó desde el principio, podría mencionarlos. Mi experiencia ha sido en la mayoría de los entornos, esas decisiones se dejan a otros, principalmente a la gerencia o a los PM.
aceinthehole
7

Sientes que vas hacia atrás porque lo estás haciendo . No hay otro consejo que no sea encontrar una empresa que no esté atrapada en la Edad Media. No hay absolutamente ninguna razón para seguir con ASP clásico hoy en día; de hecho, diré que elegir seguir con Classic ASP te va a lastimar en el futuro ya que A) Tus habilidades con .NET y Java se atrofiarán y B) Para un futuro empleador futuro estás trabajando en Classic ASP, una tecnología eso ha estado obsoleto por más de 10 años e incluso entonces fue como tirar de los dientes; en otras palabras, no tienes ninguna experiencia relevante. Elegiste mal, parece.

Solo puede hacer mucho con ASP clásico, y todo es muy doloroso.

Wayne Molina
fuente
44
El OP indica que esto es lo que está atrapado haciendo al menos en el futuro previsible, por lo que sugerir que se vaya no es útil. Señalar todas las formas en que siente que su situación es horrible es aún menos útil. Hace 10 años sería 2001 aproximadamente un año antes de que se lanzara .Net framework 1.0, por lo que el asp clásico apenas era obsoleto.
Gratzy
2
@Gratzky no, pero fue una tecnología horrible incluso entonces. Muy inferior a las dos alternativas principales: PHP y JSP
Sean Patrick Floyd
6

Aprenda un lenguaje moderno de su elección y úselo para crear una herramienta que genere sus páginas y clases ASP para usted, por ejemplo, mediante ingeniería inversa desde una base de datos de destino. Eso seguramente lo hará interesante.

Marcelo
fuente
T4 viene a mi mente, pero supongo que cualquier motor de plantillas funcionaría.
R0MANARMY
1
He hecho algo como esto. Usé Ruby para generar procedimientos almacenados y clases de acceso a datos basados ​​en definiciones de tablas de bases de datos.
Larry Coleman
@Larry Coleman: Te refieres a algo parecido a Migraciones
R0MANARMY
@ R0MANARMY: Sí, pero Rails no estaba en ese entonces.
Larry Coleman
5

¿Por qué estarías atrapado con una tecnología antigua? Las empresas migran tecnologías todo el tiempo. El truco consiste en poner una lista de razones por las cuales un cambio a una tecnología más nueva es beneficioso para la empresa, tanto desde el punto de vista técnico como comercial. Más de las veces, el costo inicial de migrar las pilas de tecnología supera con creces los costos de desarrollo futuros.

Incluso si, por alguna oscura razón, se descubriera que no es viable cambiar las pilas de tecnología, siempre puede usar las herramientas y tecnologías actuales para hacer que su vida con las viejas tecnologías sea más llevadera.

Si su jefe es uno de los desarrolladores iniciales del proyecto y se niega a cambiar de tecnología únicamente por el hecho de que él es su jefe y sabe mejor que usted, entonces lo más probable es que busque un nuevo trabajo: no querrá estar atrapado en un entorno donde su liderazgo es miope. No estoy diciendo que convencerlo sea fácil, ya que estoy seguro de que tienen años de trabajo invertidos en su bebé y admitir que se requiere un cambio es un gran golpe para el viejo ego. Debe asegurarse de que Usted tiene razones claras , concisas y medibles de por qué se requiere una migración, donde podría poner a su jefe en una situación en la que no migrar claramente sería una mala decisión.

Buena suerte.

Demian Brecht
fuente
Lo sé, no hay razón para quedarse con la tecnología antigua, incluso el marco personalizado que usamos aquí es difícil de usar, y no ofrece ni la mitad de los beneficios de cualquier marco de programación comercial. Recuerdo haber escuchado en algún lugar por aquí que el hecho de que se hizo internamente agrega una capa de oscuridad que puede verse como una medida de seguridad, pero para ser honesto, no estoy comprando eso.
Saul Delgado
2
@ reno812, la seguridad a través de la oscuridad NO es seguridad en absoluto. Es como si la puerta trasera de tu casa estuviera completamente abierta y dijera que tu casa es segura porque esa puerta no da a la calle.
maple_shaft
Sé que no lo es, solo para darte una idea de la mentalidad por aquí.
Saul Delgado
3

También trabajo con ASP clásico en el trabajo, y he logrado (hasta cierto punto) hacerlo interesante. Aquí están los pasos:

  • ASP clásico se puede codificar en VBScript o JScript (Javascript), sin modificaciones en la arquitectura. Cambia a Javascript.
  • Obtenga acceso a varias bibliotecas: json2.js, subrayado, bigote ... Puede mirar las bibliotecas Node.JS o las bibliotecas del lado del cliente, con varias modificaciones.
  • Cree un marco MVC o descargue uno. Puede administrar plantillas y vistas cargando un archivo desde el servidor y leyendo su contenido, y use una de las numerosas bibliotecas de plantillas JS que existen. Para el controlador, puede usar variables en la consulta para redirigir las solicitudes de la forma en que usaría la URL normalmente (menos limpia pero funciona).
  • ¡También puede crear una API REST (simplificada)!
  • Cree un ORM (si tiene acceso a la base de datos) o descargue uno. Incluso puede hacer algunos LINQ-to-SQL basados ​​en guiones bajos.
  • Trabaja en tus puntos de vista. Utilice bibliotecas JS avanzadas como Angular o Backbone. Cambie de CSS a MENOS, Stylus o SASS.
  • Haga clases de proxy a código feo. Esas son clases hechas con el único propósito de interactuar con el viejo código feo para que no tenga que tocarlo.
Eco distante
fuente
2

Puede crear sus propias clases y optimizar la mayor cantidad de procesos posible. Aquí hay un sitio con algunos ejemplos: http://www.u229.no/stuff/

Incluso podría comercializar sus clases a otras personas que todavía usan ASP clásico. Como dijo Demian, hay muchas compañías con tecnologías más antiguas ... no todos saltan a las cosas nuevas.

Michael Riley - también conocido como Gunny
fuente
La última vez que tuve que trabajar en asp clásico, que fue hace bastante tiempo, una de las sorpresas agradables fue que VBScript había comenzado a apoyar las clases.
Gratzy
1

En primer lugar, si no es el costo de actualizar su tecnología, sino el hecho de que el CEO es tan breve que se niega a actualizar Tech en función de la idea que conoce mejor y le gusta el asp clásico, tendría algunas dudas serias sobre La salud a largo plazo de la empresa y con la destreza de hacer asp clásico, cuanto más espere, más difícil será conseguir otro trabajo.

Dicho esto, comience a migrar todo para usar la "opción estricta", esto podría hacer que el mantenimiento de su base de código sea menos doloroso

Bob el conserje
fuente
1

Dado que los datos ya están en AS400 / IBMi, ¿sabe que puede ejecutar interfaces Java, PHP, MySQL y otras cosas en ese sistema operativo? Supongo que es un tipo 400, no un tipo ASP. Intente aceptar esto, me encantaría tener la oportunidad de desarrollar un ecosistema de 400 como ese.

Jé Queue
fuente
0

Todas las respuestas aquí son realmente muy buenas. Solo quería sugerir otra alternativa.

Comience a mover los problemas de infraestructura (base de datos, sistema de archivos, código COM, etc.) en archivos separados. Por ejemplo, podría tener un procedimiento que devuelva un conjunto de registros como una matriz (lo hice hace 8 años pero no hay muestra de código, lo siento).

Intente erradicar el "código" que aparece en su HTML moviéndolo a la parte superior de la página o incluso en una clase común / de utilidad. Incluso es posible tener las funciones de encabezado / navegación / pie de página en una sola página asp con páginas de contenido que tienen relativamente poco código (con un puñado de referencias a variables y demás).

Con su contenido, presentación / formato, lógica de negocios e inquietudes de infraestructura separadas, ahora puede cambiar a ASP.NET MVC una vez que supere la curva de aprendizaje con esa tecnología. No será tan fácil como presionar un interruptor, pero se sentirá muy similar a cualquiera que haya estado trabajando con su solución modular ASP clásica (lo que significa que a su jefe realmente le podría gustar).

Mayonesa
fuente
-1

¿Cómo hacer que Classic ASP sea interesante si estás atrapado con él?

Primero, enorgullécete de tu trabajo (aunque sea ASP clásico). Motivo: Una página ASP clásica poco desarrollada (o parcheada) será un albatros aún MÁS GRANDE alrededor del cuello. Su jefe naturalmente esperará que corrija los errores que surjan, y se sentirá asqueroso. Solo carga buena música, ponte los auriculares y entra y sal tan rápido como puedas (suponiendo que, de hecho, haya luz al final del túnel, y que pronto estarás trabajando en algo más interesante).

En segundo lugar, en la medida de lo posible, haga lo posible para que las páginas se vean y se sientan bien. Trabaja tu magia con CSS. Usa Bootstrap si puedes. Y use AJAX y otras técnicas para reducir los tiempos de carga y las actualizaciones de pantalla completa.

Tercero, intente utilizar jQuery, jQuery UI y otras bibliotecas del lado del cliente para que las páginas sean rápidas y fluidas. ¡A veces, puede eliminar páginas ASP completas con modales, asistentes o incluso SPA ! Esto reducirá la cantidad de ASP clásico que tendrá que escribir y hará que el trabajo sea mucho más interesante.

Jim G.
fuente