Dies ist eine Frage, die möglicherweise keine einzige richtige Antwort haben, wie ich weiß, Codierungsstile sind sehr unterschiedlich, vor allem zwischen verschiedenen Sprachen, zB camel case Funktionsnamen in Javascript vs Pascal Gehäuse-Methoden in C#. Das kann ich durchaus akzeptieren.Typoskript Stil Anleitung für Schnittstellen
Vielleicht bin ich über das Sorgen machen, aber ich fange gerade an, in Typoskript zu schauen, wirklich wie die Blicke davon und plane, es zusammen mit Angular2 zu verwenden, und will einen guten Styleguide etablieren.
Was ich wirklich nicht bekomme, ist Punkt 2 here, nicht ich Präfix für Schnittstellen zu verwenden. Bis dahin dachte ich, das wäre fast universell. Ich habe eine Klasse Auto, also einen natürlichen Namen, wenn die Schnittstelle nur ein I davor ist ... ICar. Sobald Sie das I-Präfix sehen, wissen Sie, dass Sie eine Schnittstelle haben.
Ich möchte jede vorgeschlagene Praxis folgen, aber diese ich weiß wirklich nicht, warum zu gehen.
Weiß keiner warum, was ich für eine fast universelle Konvention hielt, wird hier entmutigt? Ich weiß, dass du die Konventionen verwenden kannst, die du magst, und fragst dich, ob es einen Grund dafür gibt, dass diese allgemeine Konvention nicht in Typoskript verwendet wird.
Vielen Dank im Voraus für Meinungen/Infos!
Danke für das Feedback. Das Argument "FancyCar implementiert Auto" usw. funktioniert, wenn Sie die Schnittstellen aus polymorphen Gründen verwenden, jedoch häufig, z. sagen ein Angular Service, wird es ein Beispiel, z.B. 'FileSystemService',' UserService', und wir können sie alle für eine Schnittstelle implementieren, so dass wir immer die Schnittstelle und nicht die konkrete Klasse in die Dienstverbraucher einspeisen. Dies ermöglicht dann ein einfaches Mocking von Klassen auf die Schnittstelle usw. Dies würde bedeuten, dass Sie an einen alternativen Namen für die Schnittstelle jedes Dienstes denken müssen, anstatt an ein einfaches Präfix (z.B. "IFileSystemService", "IUserService"). – peterc
Nochmals vielen Dank für Ihre Kommentare. Ich nehme an, wir könnten Suffixe anstelle von Präfixen verwenden, aber bis zum Schluss ist es nicht dasselbe?Ich nehme an, wir würden auch 'FileSystemServiceInterface' verwenden. Ich habe schon einige Tutorials mit dem "Ich" in Interfaces gesehen (von hoch angesehenen Autoritäten in dem js Wort), deshalb dachte ich zuerst, dass es ähnlichen Konventionen folgen würde wie Iclass basierte Sprachen wie C# (wo es alles benutzt) die Zeit), und warum überrascht, als ich später den Stilführer sah, und dass es diese eine Konvention so spezifisch anvisierte. Alles zum Nachdenken. – peterc
Ich denke, die Absicht ist, wie in meinem vorherigen Kommentar erwähnt, kein Präfix oder Suffix auf der ** -Schnittstelle ** zu verwenden, da dies normalerweise in der gesamten Anwendung verwendet wird, während der 'UserServiceImpl' wahrscheinlich nur verwendet wird zum Beispiel in einer Fabrik, die eine konkrete Instanz zurückgibt (wenn nicht eine Fabrik, dann wahrscheinlich immer noch nur an sehr wenigen Stellen in Ihrer Anwendung, verglichen mit der Anzahl der Vorkommen der Schnittstelle). –