Un espacio de nombres claramente definido. Como C es mi lenguaje principal, también quiero que las macros coincidan con esto. Resolver conflictos en esa área apesta.
Si asigna algo, deme una pista obvia de que tiene que ser liberado. Esto va al siguiente punto, que es la documentación.
Documentar la biblioteca. Herramientas como Doxygen son simples y portátiles, no hay excusa para no darme algo que pueda generar y navegar.
Documentar tipos opacos en encabezados públicos. Voy a encontrarlos de todos modos, dime por qué no quieres que me meta con ellos y qué podría pasar si lo hago. Si realmente quieres parches, necesito saber lo que estabas pensando.
No te caigas y corras. Realmente aprecio comentarios como "Por favor, no me contacten sobre esto. No tengo intención de mantenerlo. Esto resolvió mi problema inmediato, tal vez resolverá su problema. No me importa, no voy a actualizar esto y puedes sentirte libre de bifurcarlo ". No puedo decirte cuánto tiempo me ahorra.
No debe agregar pérdidas de memoria o errores al código existente. Si no realiza la prueba antes de insertar cosas en su propio código, ¿por qué me tienta a llevarlo al mío?
Si de hecho es una biblioteca, use una licencia permisiva y sea consistente. No decida dentro de tres meses que debería ganar más dinero con él. Eso es más que molesto la noche antes de enviar algo y darse cuenta de que tiene que volver a escribir un montón de código de biblioteca porque la licencia cambió. Ese es exactamente el tipo de cosas que me irritan lo suficiente como para volver a implementar sus cosas bajo la licencia MIT.
Sea coherente en el estilo de codificación, otras personas tienen que leer su código para descubrir qué está haciendo realmente cuando las cosas no funcionan como se esperaba.
No use más de 110 columnas, es posible que su código deba editarse en su lugar, y es posible que solo tenga una pantalla de 80x25. Si confía en las pestañas para que las cosas se vean más 'elegantes', tiene otros problemas que resolver.
Intente al menos considerar los puertos, si no se trata de un lenguaje interpretado. Incluso entonces, intenta al menos considerar los puertos.
Dame pruebas. Espero que los tenga, podría sugerirles lo contrario y podría ayudarlo a escribirlos en base a un gráfico de llamadas. Si voy a través de todos esos problemas, por favor, los utilizan . De lo contrario, obtienes parches que "funcionan para mí !!!" :)
No rompas la API, punto. Sé que puedes darte cuenta de que lo has hecho todo mal, pero asegúrate de que las cosas que te enlazan no se rompan en una simple actualización. Eso puede significar algunos rudos y descuidos, bienvenidos al mundo de las bibliotecas.
Dame una hoja de ruta para que no duplique tu trabajo o el trabajo de otros.
Es probable que edite esta publicación para agregar más.