He asumido una tarea bastante desafiante. Se trata de tomar un código C# empresarial feo y traducirlo a Python. Antes de profundizar, siento que necesito dar algunas explicaciones.
Este proyecto de C# sirve como capa de conexión de datos para algunos modelos de aprendizaje automático. Al ver que escuchas datos, lo primero que debería venir a tu mente es Python. Lamentablemente este no fue el caso, y para mejorarlo se está utilizando la extensión .NET para Apache Spark. Migrarlo a Python tiene sentido, ya que utiliza tecnología bastante no estándar para el problema, lo que dificulta bastante la contratación de futuros talentos. Y hay otros problemas obvios, comunes también en otros lenguajes de programación orientada a objetos empresariales, como múltiples niveles de abstracción, herencia en todas partes, inversión de control, y nuevamente, cosas que no se hacen en la distribución de datos. Y para alimentar aún más al diablo, el equipo original de contratistas/consultores (porque quién más usaría C# que algún consultor empresarial) se irá el próximo mes.
Por cierto, uso Neovim y he estado usando Github Copilot durante casi dos años, también Copilot Chat (técnicamente ChatGPT) desde que tuve en mis manos la versión preliminar, así que de ninguna manera soy un novato total, cuando Se trata de LLM y código.
¿Qué se siente al codificar con Claude 3.5? Bueno, hay algunas partes buenas, malas y feas. Pero, en general, no tienes idea de lo que está sucediendo, incluso si puedes escribir la misma funcionalidad desde cero.
Claude 3.5 tiende a producir resultados sorprendentemente correctos; sin embargo, a veces intenta ser inteligente y falla, pero puedes guiarlo para solucionar los problemas. En general, es un buen compañero para hacer preguntas y, para mí, como tenía un flujo de trabajo estricto y me esforcé mucho en crear un mensaje sofisticado con muchos ejemplos y casos extremos, quedé más que satisfecho. Podría tomar una clase de C# y traducir las partes importantes a Python que requerían muy pocas instrucciones adicionales.
Normalmente puedo escribir código durante 12 horas, con pausas ocasionales para ir al baño y para rellenar mi cantimplora. Y sí, no siento hambre cuando realmente me meto en ello. Con Claude entré en la corriente, pero después de unas 3 horas me sentí muerto. Durante estas 3 horas produje mucho código y me sentí productivo, pero fue como hacer revisiones de código sin parar, solicitar cambios y, la mayoría de las veces, o no, buscar la documentación si lo que se generó es válido.
Si eres programador, probablemente estés familiarizado hasta cierto punto con el código que escribiste. Esta familiaridad tiende a desvanecerse con el tiempo, pero si trabajas el tiempo suficiente con un código base, sabrás cómo hacerlo. Con el código generado por LLM esto simplemente no sucede. Entendía muy poco lo que estaba pasando. Durante días produje una gran cantidad de código, revisé cada línea, de vez en cuando solicitaba algún cambio, pero al final tenía poca o ninguna idea de lo que realmente estaba pasando. Al final, el código base me pareció un extraño, algo que no escribí. Y para empeorar las cosas, el estilo del código real era inconsistente, además se podía saber qué archivos se escribieron el mismo día. Parecía que diferentes personas lo escribieron.
Pasé mucho tiempo revisando, reformulando y modificando este enfoque completo de codificación LLM, sin embargo, el resultado la mayor parte del tiempo es solo código, que de alguna manera funciona, pero no tienes idea de por qué ni cómo. La gran pregunta es:
¿Vale la pena terminar con una base de código a la que tienes poco apego, que inmediatamente se siente como si lo hubieras escrito hace un año con colegas imaginarios?
Solo para resumir, sentí que produje más código, sin embargo, la calidad fue inferior a la habitual. En algunos casos, esta menor calidad es justificable, especialmente si no te importa. Pero lo que me temo es que está llegando el momento en que cada código base se convertirá en "heredado" en un tiempo récord.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3