No soy desarrollador. Solo tengo conocimientos básicos de codificación. Puedo leer código simple.
Recientemente creé un complemento, basándome principalmente en Gemini gratuito. El 95% del código fue generado por IA.
Aunque el complemento definitivamente funciona, y la interfaz y la experiencia de administración son bastante buenas, tengo preocupaciones legítimas sobre la limpieza del código. A pesar de mis esfuerzos de prompting[1] (y de alimentar manualmente a la IA con extractos de código oficial), estoy seguro de que el código no aprovecha bien el entorno de Discourse. Helpers, componentes, clases, y demás. Por eso ocasionalmente lo alimenté con fragmentos de código oficial.
Escuché que hoy en día muchos desarrolladores usan IA en su flujo de trabajo. Tengo curiosidad sobre qué tan mejor sería el código de un complemento de Discourse generado por IA si la IA fuera consciente del ecosistema de Discourse.
Me aconsejaron probar Claude, y más específicamente, el modelo Opus. También me dijeron que consume muchos tokens y, por lo tanto, es caro.
No tengo ambiciones reales con respecto a mis proyectos. Es solo un pasatiempo. Tengo curiosidad sobre cómo se vería un complemento que imagino en el mundo real, y las IA son bastante buenas para esto.
¿Has intentado usar IA al desarrollar complementos o componentes? ¿Probaste Claude Opus integrado en tu IDE? ¿Qué tan útil fue?
¿Hace un uso adecuado de la base de código para generar código nuevo?
¿Qué tan caro es? ¿Por qué plan optaste?
escribir “esfuerzos de prompting” me hace sentir incómodamente avergonzado ↩︎
He descubierto que es significativamente mejor trabajar con IA en Discourse si tiene ejemplos para trabajar, y Claude Code es específicamente bueno en esto (el CLI de Google Gemini también lo es).
Para un aficionado, el plan de $20/mes probablemente podría llevarte bastante lejos… no es muy difícil alcanzar los límites diarios, pero en ese momento puedes esperar a que se reinicie el límite o comprar algunos créditos.
Creo que me equivoqué con el precio. Los planes free/pro/max son para usar Gemini a través de su interfaz web (https://claude.com/pricing). El precio de la API se basa en tokens (https://claude.com/pricing#api); no hay suscripciones mensuales para usar su API, ¿verdad?
Si se usa IA en, digamos, VSCode, necesita usar su API.
edición: bueno, leeré algunos tutoriales antes de escribir la próxima vez
Esta semana pasada dediqué algo de tiempo a intentar escribir un plugin de Discourse usando ask.discourse. Me sorprendió la facilidad con la que pude describir la función del plugin que quería crear y me arrojó muchos consejos y fragmentos de código, algunos de los cuales realmente funcionaron.
Soy un programador aficionado. Junto a mi instancia de Discourse, ejecuto otro servidor con una base de datos MySQL, un backend PHP y un frontend Jquery/Javascript, pero no soy un programador profesional. La mayor parte del tiempo al desarrollar ese sitio, simplemente le doy a la vieja y confiable Google lo que quiero y me arroja (supongo que Gemini) muestras de código. La mayoría funcionan directamente y soy lo suficientemente bueno en Javascript para darme cuenta si no lo hacen.
He usado muchos lenguajes de programación a lo largo de los años y en años pasados pasé horas leyendo, buscando y experimentando para descubrir cosas que ahora le doy a Google y termino en minutos lo que antes me tomaba horas o días.
Me asombró lo bien que funcionó ask.discourse y finalmente logré que un plugin funcionara y hiciera aproximadamente lo que quería. Con algo de estilo (css) podría/puede convertirse en un plugin utilizable. Me intriga la posibilidad de que un servicio asistido por IA pueda optimizar la creación de código.
Escribí un complemento para mi página de Discourse con Antigravity que muestra las series de anime más populares. También creé una lista de seguimiento. A veces falla y tienes que hacer muchas correcciones, pero estoy razonablemente satisfecho.
Sería interesante describir qué se debe configurar, o qué se le debe decir a Claude al crear un plugin o componente de tema para Discourse (a partir del esqueleto).
¿Qué instrucciones se deben escribir en CLAUDE.md para maximizar su eficiencia?
¿Se deben priorizar ciertos directorios de Discourse cuando la IA busca información en la base de código (pienso en controllers, models, serializers, services…)?
¿Cómo hacer que sea consciente de la jerarquía de archivos estándar, la nomenclatura y las convenciones?
NUNCA almacenes los resultados de find(): provoca referencias a elementos obsoletos después de nuevos renderizados
SIEMPRE aplica linting a cualquier cambio que realices
¿Las IA entienden el énfasis en mayúsculas sostenidas? ¿Actuaría de manera diferente si estuviera escrito como “Never” y “Always” en su lugar?
¿Cosas como “architect mode” u otras indicaciones de “xxx mode” se están convirtiendo en estándares flexibles en el desarrollo de IA? ¿Tienen algún efecto real en el comportamiento del modelo? ¿Son puras convenciones?
No escribas pruebas obvias
Puedo ver lo que es una prueba obvia, pero ¿las IA entienden lo que es una prueba obvia (o cualquier cosa obvia)?
Jugueteé durante un par de días con Claude en VSCode. Es bastante impresionante ver todo funcionando por sí solo. Leyendo, creando, modificando archivos, ejecutando comandos bash, etc…
Sobre el trabajo de Claude en la creación de plugins, esto es lo que observé:
Al iterar sobre las mismas partes del código y resolver problemas, tiende a usar nombres de variables excesivamente específicos. Por ejemplo, nombraría una variable original_url en lugar de una url muy fina y simple, como si quisiera señalar los cambios que se han realizado, cuando no es necesario.
Las iteraciones a menudo conducen a código complicado y, a veces, a consultas innecesariamente complejas. Pedirle a la IA que revise y señale partes del código que se pueden refactorizar de vez en cuando resulta útil para esto
Cuando se le pide que encuentre soluciones para un problema dado, me han complacido las respuestas.
Las sugerencias parecen precisas. Cuando propone varias opciones, puede sopesar con precisión los pros y los contras de cada una.
En SCSS, (raramente) usa colores codificados donde no se recomienda, en lugar de usar las variables de color de Discourse.
Después de realizar varias tareas, me gusta pedirle a la IA que revise el código y vea si algunas partes se pueden optimizar sin afectar la mantenibilidad. No he tenido muchos problemas con los resultados. A veces, modifica demasiado y rompe el código.
Ocasionalmente, parece crear condiciones innecesarias por el bien de la seguridad y la robustez, pero para situaciones de las que no estoy seguro de que existan en condiciones reales.
Por ejemplo, en mi plugin relacionado con la búsqueda, comprobaría si una publicación tiene temas asociados. Pero las publicaciones sin un tema no deberían existir en Discourse, creo. Si tienes una, significa que algo salió muy mal en tu instancia en algún momento, ¿verdad? No me pareció que tuviera sentido hacer esta comprobación en mi plugin.
Parece bueno para estructurar pruebas!
Así que, buena experiencia hasta ahora, incluso sin usar una configuración avanzada de IA.
Gasté mi cuota semanal en cuatro días, lo cual es genial porque me obliga a tomarme una pausa de tres días
Curioso por ver cómo cambiará cuando se añadan las habilidades de Discourse.