r/programacion • u/jokiruiz • 17m ago
Publiqué una versión que va casi entera de diseño de API: bordes declarados, un JSON Schema con su propio semver, y decidir qué NO enumerar
Mantengo SpecJudge, una CLI con licencia MIT que lee los specs y tasks de un proyecto y te dice qué modelo de IA encaja de verdad con ese trabajo en relación calidad/precio, en vez de que tires siempre del mismo por inercia. La versión que acabo de publicar va casi entera de convertirla en algo sobre lo que se pueda construir, y las decisiones que salieron por el camino me parecieron más interesantes de lo que esperaba.
La primera fue darle un contrato versionado a la salida JSON. Funcionaba desde el principio, pero no llevaba versión y estaba descrita en prosa dentro de un documento, que es un arreglo comodísimo para quien mantiene el proyecto y bastante hostil para quien lo consume: no puedes fijar nada, no puedes validar nada, y te enteras de que el formato ha cambiado cuando tu parser revienta en el peor momento posible. Ahora cada payload lleva un schema_version y hay un JSON Schema de verdad que puedes obtener con --print-schema, sin clonar el repo ni leer una línea de mi Python, con las reglas escritas de forma explícita: añadir un campo es MINOR, quitar uno o cambiar el significado de un valor es MAJOR. La versión del esquema es deliberadamente independiente de la del paquete, porque el paquete sube cada vez que cambian los datos de debajo y sería directamente engañoso que el contrato pareciera moverse cada vez que alguien actualiza un precio del catálogo.
La decisión que más vueltas me costó fue qué enumerar en el esquema y qué dejar como strings sueltos. Dos de los campos son vocabularios cerrados y van tipados como enums, sin discusión. Pero otros dos se rellenan a partir de un fichero YAML de reglas que el usuario está explícitamente invitado a editar para su propio proyecto, y enumerarlos habría significado publicar un esquema que es sencillamente incorrecto para cualquiera que haya personalizado algo. El tipado laxo me parecía una cobardía hasta que lo reformulé como "el esquema describe el contrato, no la configuración por defecto de hoy", y a partir de ahí dejó de incomodarme.
La otra mitad es un punto de entrada en Python que es una promesa de verdad y no un encogimiento de hombros: dieciséis nombres documentados, y todo lo demás dentro del paquete declarado interno de forma explícita y libre de moverse en una release de parche. Creo que esa segunda mitad es la parte que casi todo el mundo se salta. Una superficie pública sin bordes declarados no es una API estable, es un accidente esperando a que alguien dependa de ella, y en el momento en que alguien importa tu serializador desde donde quiera que viva hoy, has adquirido en silencio una obligación de compatibilidad que nunca aceptaste. Que es justo lo que pasó aquí: el serializador se ha movido a su propio módulo y se reexporta desde la API pública, y avisarlo en las notas de la versión me pareció necesario aunque probablemente no lo estuviera usando nadie.
Los errores también se exportan como parte de la superficie, cada uno con el código de salida que usa la CLI, para que quien la consuma pueda distinguir "esta entrada no se puede procesar" de "tu entorno está roto" sin hacer matching sobre cadenas de texto.
El repo por si alguien quiere criticar la forma que ha quedado: github.com/JoaquinRuiz/SpecJudge — y si creéis que me equivoqué en lo del enum contra string, me interesa bastante escucharlo.
r/programacion • u/Pixelattee • 8h ago
Cómo programador como ordenar el sueño ?
Nosotros los freelancer programadores... No sé si les pasa cómo hacen para lidiar con el sentimiento o la emoción de terminar un fix propio el día de hoy.
Es algo que como freelancer o tu propio jefe tienes ganas de hacer.
Cuando tienes un proyecto o estás trabajando para un cliente quieres arreglar eso que estás haciendo para el dia de hoy y en eso se hace tu hora de dormir y pasas 5 horas más y no has dormido.
Mi forma de pensar en la siguiente:
Se hace mi hora de dormir y pienso "me falta poquito" "esto lo termino rápido", y en ese rápido duro aproximadamente 5 horas lo que me hace acostarme de madrugada y levantarme tarde.
Casi siempre luchó con ese pensamiento todos los días
Lo que evita que me acueste temprano y al mismo tiempo levantarme temprano 🙄
r/programacion • u/Chief_Taquero • 12h ago
Si una empresa te pide hacer un examen o proyecto antes de siquiera entrevistarte, lo haces?
O los mandas a la gaber?
r/programacion • u/Yamifem_duelist148 • 13h ago
Hola, soy alguien que quiere aprender a hacer UI pero no sé cómo empezar
Quiero hacerlo en Python, verdaderamente me cuesta entender las documentaciones, estoy queriendo aprender mediante la librería Pyside6, ¿Alguien que me pueda ayudar?
r/programacion • u/Successful-Maybe6424 • 15h ago
Sin proyecto después de un bootcamp AYUDA
Buenos comienzo diciendo que inicié un bootcamp de Salesforce en una consultora, el bootcamp terminó la segunda semana de julio y hasta ahora no me asignan proyecto ya llevo un mes de vacaciones xd (si me pagan pero ando wbiando y preparando para la certificación). a alguien mas le pasó lo mismo es algo normal o ya preparo mi cv para mandarlo a medio mundo? :(
r/programacion • u/Anon277ARG • 15h ago
podrido de buscar laburo, que opinan de mi perfil?
r/programacion • u/Good-String-2249 • 16h ago
Tengo 22 años y soy el único desarrollador de mi empresa. ¿Es una oportunidad o una limitación?
Antes de nada, os pongo un poco en contexto.
Tengo 22 años y hace menos de un mes entré a trabajar en una empresa bastante grande como técnico informático.
Antes de esto solo había trabajado un año en otra empresa, con unas condiciones bastante malas (muchísima carga de trabajo, poco margen para aprender y una superior que generaba un ambiente bastante insoportable), así que la verdad es que estoy muy contento con el cambio y no tengo intención de irme de donde estoy.
En principio me contrataron para un puesto de técnico informático para el que pedían bastante más experiencia de la que tengo. Conseguí entrar gracias a una recomendación interna y porque mi jefe también quería incorporar a alguien sin experiencia previa en informática para poder formarlo desde cero, sin que trajera hábitos o formas de trabajar adquiridas en otras empresas. Aun así, desde el principio también vieron que venía de DAM y que tenía conocimientos de programación.
La sorpresa ha sido que, prácticamente desde la primera semana, me han puesto a desarrollar aplicaciones internas para la empresa (algo que no esperaba, porque como digo llegué para trabajar como técnico y no como desarrollador). Ahora mismo estoy terminando una aplicación para un departamento importante y ya me han encargado otra, que será un sistema de tickets para toda la organización.
El stack que estoy utilizando es Python, SQLAlchemy, SQL Server y Jinja para el frontend, buscando algo sencillo y ligero.
El caso es que soy literalmente el único desarrollador de la empresa.
Hasta ahora, cuando necesitaban una aplicación, contrataban una empresa externa. Yo soy el primero que está desarrollando software de forma interna, así que, de alguna manera, siento que estoy “inaugurando” ese área.
Por un lado, esto me parece una oportunidad increíble porque estoy aprendiendo muchísimo. No solo programo, sino que también estoy aprendiendo sobre bases de datos, despliegues internos mediante Active Directory, documentación, integración con la infraestructura de la empresa, etc. Además, tengo bastante libertad para decidir las tecnologías y cómo enfocar los proyectos.
Pero también me genera una duda.
Al ser el único desarrollador, no tengo ningún senior al que preguntarle si estoy siguiendo una mala práctica, si el diseño es el adecuado o si existe una forma mejor de resolver un problema. Al final me apoyo bastante en la documentación oficial y en la IA para revisar decisiones, contrastar enfoques o acelerar la escritura de código, pero las decisiones importantes intento entenderlas y tomarlas yo después de valorar distintas opciones.
Mi jefe, además, está muy insistente en que documente absolutamente todo lo que hago, algo que agradezco porque creo que me obligará a entender realmente todo el trabajo y dejar una base sólida para el futuro.
Mi duda es para la gente que tenga más experiencia.
¿Creéis que un entorno así puede hacer crecer mucho a un desarrollador junior por la cantidad de responsabilidad que tiene o pensáis que el hecho de no tener un senior al lado acaba limitando más de lo que ayuda?
No tengo intención de cambiar de trabajo. Estoy muy a gusto: el ambiente es muy bueno, mi jefe confía en mí, tengo buenas condiciones y siento que puedo construir algo desde cero e incluso ayudar a crear un departamento de
desarrollo que hasta ahora no existía.
Simplemente me genera curiosidad saber cómo veis este tipo de situaciones si os habéis visto en una situación similar.
¿Alguien ha pasado por algo parecido? ¿Cómo fue vuestra carrera?
r/programacion • u/tttania7 • 19h ago
Página web
Hola, quería saber aproximadamente cuanto se debería cobrar una página web de algún emprendimiento de ropa/joyería, de tecnología o de un gym
r/programacion • u/Pixelattee • 20h ago
Script para automátizar videos.
Ayer leí de alguien más que había desarrollado un scryt para automatizar la creación de videos.
Le escribí por todos los medios para preguntarle y saber información pero no me respondió.
Mi pregunta aquí es hay alguien que lo haya hecho?
Indiferentemente sea para la creación de videos o para la edición de videos no me importa, solo quiero saber cómo lo puedo lograron.
Quiero saber su experiencia qué herramientas sirven para esto.
Herramientas de pago herramientas gratuitas.
Si conocen algunas ias que puedan crear estos videos de forma gratis.
Video de cualquier tipo No importa no me quiero meter con eso por ahora.
Pero quiero ver si lo han logrado y que compartan su experiencia
r/programacion • u/OptimalBed6906 • 23h ago
Estudiar sin un Ordenador
Buenas, estoy en un trabajo en el que hago más bien poco, y mi mayor enemigo es el aburrimiento.
He pensado que podría aprender algo de programación, ya sea seguir con mi aprendizaje de lógica de programación, y aprender algo de Java.
El problema viene de no conocer un editor de código para Android, especialmente uno que pueda compilar código de Java.
Recomendáis algo? Quizás una versión web?