Pregunta

Yo trabajo para una empresa que es compatible con varios idiomas:. COBOL, VB6, C # y Java
Yo uso las lenguas de mi trabajo principal, pero a menudo me encuentro a la codificación de algunos programas menores (por ejemplo scripts) en Python porque me pareció que era la mejor herramienta para ese tipo de tarea.

Por ejemplo:. Un analista me da un archivo CSV compleja para poblar algunas tablas de base de datos, por lo que me gustaría utilizar Python para analizar y crear un guión DB

¿Cuál es el problema?
El principal problema que veo es que algunas partes de estas secuencias de comandos rápidos y sucios están ganando importancia y lentamente:

  1. Mi empresa no soporta Python
  2. No están controlados versión (que de nuevo para que de otra forma)
  3. Mis compañeros de trabajo no saben Python

Los analistas han comenzado incluso referencia a ellos en el correo electrónico ( "lanzar el script que las exportaciones ..."), por lo que se necesitan con más frecuencia de lo que inicialmente se pensó.

Debería añadir que estos scripts son sólo utilidades que no forman parte del proyecto principal; que simplemente ayudan a conseguir tareas triviales cosas en menos tiempo. Por mis propias tareas pequeñas que ayudan mucho.

En resumen, si yo fuera un ganador de la lotería estar en un accidente , mis compañeros de trabajo necesitarían para mantener el proyecto vivo sin esos guiones; iban a pasar más tiempo en la corrección de errores CSV con la mano, por ejemplo.

¿Es esta una situación común? ¿Estoy haciendo algo mal? ¿Qué tengo que hacer?

¿Fue útil?

Solución

que necesita para obtener la situación formalizado ya que en realidad no debería haber llegado a este punto. Sin embargo, estas cosas suceden por lo que necesita para explicar a su jefe que creó estos scripts para uso personal, pero han "escapado" en circulación más amplia. Admita (si es necesario) que usted tuvo la culpa por no llevar esto a su atención antes.

Por lo menos las secuencias de comandos debe ser puesto bajo control de origen "por si acaso" -. A continuación, al menos si no está disponible (por cualquier razón) sus compañeros de trabajo tendrán acceso a los guiones

A continuación, ya sea necesidad de convencer a su jefe de que Python es el camino a seguir para estos o aceptar que va a tener que volver a escribir en un lenguaje soportado. Si el costo de la documentación de los scripts y educar a sus compañeros de trabajo en Python es más bajo que el de la re-escritura que incluso podría ganar la discusión.

Otros consejos

No puedo darle una respuesta completa en cuanto a lo que debe do. Sólo puedo dar una única sugerencia que puede utilizar para iniciar con:

Comprobar las secuencias de comandos en un repositorio que todos (obligatorio) los desarrolladores pueden acceder. Pero debemos estar muy seguros de tomar nota del hecho de que usted ha escrito primero estos scripts para su propia propósito, es decir, para realizar una tarea que le habían dado. A continuación, añadir que sólo se está comprobando en estos scripts para permitir que otros la ventaja de usarlos.

Después de que usted sólo tiene que ver cómo otras personas responden a eso.

Me han topado con problemas similares en los que trabajo. He oído "¿Qué es PHP?" muchos años atrás. Ellos no entienden o no les importa nada a aprender fuera de la pila de MS. Si pitón es la herramienta adecuada para el trabajo que acababa de decir a mis supervisores de ello y estar listo para un montón de comparación y explicación de por qué pitón fue la elección correcta. Será frustrante, pero creo que la mayoría estaría de acuerdo en Python es una buena opción para la manipulación de texto.

La primera cosa que hay que hacer es hablar con el equipo y su jefe. En este momento, usted tiene un enorme factor de camión (si fue atropellado por un camión, nadie más podría fácilmente ser capaz de mantener sus scripts). Parece que tienen secuencias de comandos para hacer estas tareas son importantes, pero también es importante que cualquier persona que lo necesite puede editar y mantener estos scripts. Es necesario explicar cómo el uso de Python agrega valor - cómo se ahorra tiempo, esfuerzo, recursos, dinero, etc.

.

En segundo lugar, conseguir que en el control de versiones del proyecto. Ahora. Nada de lo que usted produce para un proyecto debe estar fuera del control de versiones de ese proyecto, nunca.

Esté preparado para la reacción - la gente por lo general no les gusta el cambio. Corriendo por su cuenta, utilizando sin apoyo y desconocido (al equipo / organización) tecnologías fue una mala idea, sin consultar al menos los otros desarrolladores y determinar la mejor (para el proyecto, no sólo a ti) forma de automatizar estas tareas para todo el mundo para su uso.

Creo que esto es probablemente un caso de buena

Es más fácil pedir perdón que es para obtener el permiso.

Parece que hizo el trabajo, pero va a tener que lidiar con las repercusiones ahora.

Mi regla del pulgar es:

Todo lo que potencialmente afecta el trabajo de los demás debe ser discutido con sus pares y superiores lo antes posible.

Pero, si es para usted y sólo usted, con tal de que no hace ningún daño a la infraestructura o la seguridad de su empresa , usted es libre de hacer lo que desea hacer el trabajo .

Existen dos opciones:

  1. Que sea un estándar
  2. Se traducen en una herramienta estándar

En función de la organización # 1 podría ser un reto (después de todo, la limitación de la lista de tecnologías estándar evita una explosión combinatoria de entrenamiento y habilidad apoyo requisitos).

La segunda opción sería ayudar a su conjunto de habilidades, y usted podría ser capaz de encontrar un tercero (y probable fuente abierta con licencias comercialmente amigables) para hacer algo del trabajo duro. P.ej. una búsqueda de "LINQ a CSV" debe recibir algunos golpes útiles.

Por cierto, las herramientas de desarrollo de Visual Basic 6 (IDE, compilador) no es compatible (ni siquiera los parches de seguridad) por lo que es probable las necesidades de actualización estándar de todos modos. (Tiempo de ejecución de VB6 se admite como parte de y se incluye en la instalación de las versiones actuales de Windows). Esto tal vez podría ser utilizado como un ayudante para acercarse # 1:. Las necesidades conjunto de herramientas estándar para un objetivo en movimiento debido a las dependencias de proveedores

Si se le da una tarea, y eithe la única manera que se puede lograr a tiempo, usted realmente no tiene una opción. Yo creo que es prudente dejar que los responsables saben lo que está haciendo. Usted no debe salir fuera del control de la fuente requerida (a menos que no hace absolutamente trabajo en absoluto?) Pruebas y documentación.

A veces una empresa puede tener que dejar que un único promotor empezar a buscar en una nueva área de desarrollo. Por desgracia, el código puede hacer su camino en la producción más rápido que nadie puede ponerse al día.

Well, I got to admit that working with 20 different languages stinks, A LOT.

You have a Bash script that calls Python script that calls Perl script that calls Java binary that calls C dll...

Then something hits the fan in the whole pipeline, and you go through - WTH IS DAT KODEZ? Especially in Perl... And debugging simple, say, encoding problem, turns into a nightmarish mess. You can't debug 5 out of 7 languages effectively, and it turns into a real pain.

Or you have to add a simple change, but you create 10 errors because Perl has gotchas, Java has gotchas, etc.

And that 7+ language chain starts one step at a time.

Tread carefully, here be dragons...

If those are tools you use for yourself, you are free to do anything that makes you more productive.

Actually, you should be encouraged to make and use such tools, which will ultimately became an extension of your arms.

Eventually, they will recognize the importance of having such tools, no matter what language they are written in, and will start to implement in their working environment.

When you are told to write code doing sth., the language is usually specified or implied (the rule in corporations).

But when you have to do some one-shot task, such as import data into DB, you are free to choose the tool that in your opinion fits the best, because you have to do something correct and fast, and the result is important, not the tools.

So, I would use that rule:

1) If you are told to do some task, such as data import, I would use the tools/language/etc. that would be the most convenient for me and would be the fastest for the task.

2) If you are told to write tool doing some task, such as import some data, I would discuss what language/tool to use with the manager (with exception when I use language that is implied standard, for example when company uses [almost] only Java).

3) If the task seemed to be one-shot, but it became repeatable, you should talk with the manager to change it from 1) to 2) and re-write from your preferred to company-supported language.

I suppose that you're not in a position to decide (or else you would not ask the question). What does your boss think about this issue? You should talk to him and try to convince him that Python is the way to go...

Of course, the issue is about what will happen when you leave. Not being able to maintain the code is probably a reason that's good enough to stop using Python. Or you can start educating your colleagues to this language...

Licenciado bajo: CC-BY-SA con atribución
scroll top