Ein klar definierter Namensraum. Da C meine Hauptsprache ist, möchte ich auch, dass Makros dazu passen. Das Lösen von Konflikten in diesem Bereich ist zum Kotzen.
Wenn Sie etwas zuweisen, geben Sie mir einen offensichtlichen Hinweis darauf, dass es befreit werden muss. Dies geht zu meinem nächsten Punkt, der Dokumentation.
Dokumentieren Sie die Bibliothek. Tools wie Doxygen sind einfach und portabel. Es gibt keine Entschuldigung dafür, mir nichts zu geben, was ich generieren und durchsuchen kann.
Dokumentieren Sie undurchsichtige Typen in öffentlichen Headern. Ich werde sie trotzdem finden, sag mir, warum du nicht willst, dass ich mich mit ihnen anlege und was passieren könnte, wenn ich es tue. Wenn Sie tatsächlich Patches möchten, muss ich wissen, was Sie gedacht haben.
Lass dich nicht fallen und renne. Ich freue mich sehr über Kommentare wie "Bitte, kontaktieren Sie mich nicht. Ich habe nicht die Absicht, es beizubehalten. Dies hat mein unmittelbares Problem gelöst, vielleicht wird es Ihr Problem lösen. Es ist mir egal, ich werde nicht aktualisieren." dies und Sie können sich frei fühlen, es zu gabeln. " Ich kann dir nicht sagen, wie viel Zeit mir das spart.
Es sollte dem vorhandenen Code keine Speicherlecks oder Fehler hinzufügen. Wenn Sie nicht testen, bevor Sie Inhalte in Ihren eigenen Code übertragen, warum versuchen Sie mich dann, sie in meinen Code zu übertragen?
Wenn es sich tatsächlich um eine Bibliothek handelt, verwenden Sie eine zulässige Lizenz und seien Sie konsistent. Entscheide dich in drei Monaten nicht, dass du mehr Geld damit verdienen sollst. Das ist mehr als ärgerlich in der Nacht, bevor Sie etwas versenden und feststellen, dass Sie eine Reihe von Bibliothekscodes neu schreiben müssen, weil sich die Lizenz geändert hat. Genau das macht mich so irritiert, dass ich Ihre Inhalte unter der MIT-Lizenz erneut implementieren kann.
Seien Sie im Codierungsstil konsistent, andere Leute müssen Ihren Code lesen, um herauszufinden, was er tatsächlich tut, wenn die Dinge nicht wie erwartet funktionieren.
Verwenden Sie nicht mehr als 110 Spalten, Ihr Code muss möglicherweise an Ort und Stelle bearbeitet werden, und ich habe möglicherweise nur eine 80x25-Anzeige. Wenn Sie sich auf Registerkarten verlassen, um die Dinge „eleganter“ aussehen zu lassen, müssen Sie andere Probleme lösen.
Versuchen Sie, zumindest Ports zu berücksichtigen, wenn Sie sich nicht mit einer interpretierten Sprache befassen. Versuchen Sie auch dann, zumindest die Ports zu berücksichtigen.
Gib mir Tests. Ich hoffe, Sie haben sie, ich könnte sie anders vorschlagen und ich kann tatsächlich helfen, sie basierend auf einem Anrufdiagramm zu schreiben. Wenn ich all diese Schwierigkeiten habe, benutze sie bitte . Ansonsten bekommst du Patches, die "für mich funktionieren !!!" :) :)
Brechen Sie die API nicht, Punkt. Ich weiß, dass Sie vielleicht feststellen, dass Sie alles falsch gemacht haben, aber stellen Sie sicher, dass Dinge, die auf Sie verweisen, bei einem einfachen Update nicht kaputt gehen. Das kann einige Cruft und Kludges bedeuten, willkommen in der Welt der Bibliotheken.
Geben Sie mir eine Roadmap, damit ich Ihre Arbeit oder die Arbeit anderer nicht dupliziere.
Ich werde diesen Beitrag wahrscheinlich bearbeiten, um weitere hinzuzufügen.