Frage

Mein Projekt ist die Umsetzung langsam Java-Annotationen. Die Hälfte des Entwicklers - ich eingeschlossen - feststellen, dass mit Anmerkungen etwas komplexer zu tun scheint unsere allgemeine Wartungslast hinzuzufügen. Die andere Hälfte des Teams denkt, dass sie die Biene Knie sind.

Was ist Ihre praktischen Erfahrungen mit Teams von Entwicklern in der Lage, kommentierte Code zu pflegen?

War es hilfreich?

Lösung

Ich fühle es in zwei Verwendungen von Annotationen bricht - Anmerkungen eine ‚Beschreibung‘ zu schaffen, eine Klasse vs. Anmerkungen eine ‚Abhängigkeit‘ von der Klasse zur Verfügung zu stellen.

Ich bin fein mit einer ‚Beschreibung‘ Verwendung von Annotationen auf der Klasse - das ist etwas, das von der Klasse gehört, und die Annotation hilft eine Kurzversion davon zu machen - JPA Anmerkungen fallen unter diesem.

Allerdings kann ich nicht wirklich wie die ‚Abhängigkeit‘ Anmerkungen - wenn Sie die Abhängigkeit direkt auf der Klasse setzen sind - auch wenn es zur Laufzeit aus einer Anmerkung bestimmt ist und nicht bei der Kompilierung in der Klasse - ist nicht dass Dependency Injection zu brechen? (Vielleicht im Geist und nicht in der Regel ...)

Es kann persönliche Präferenz, aber ich wie die eine große XML-Datei, die alle die Abhängigkeitsinformationen meiner Bewerbung enthält - ich dies als ‚Anwendungskonfiguration‘ sehen und nicht als ‚Klassen-Konfiguration‘. Ich würde eher durch die einen Suchort bekannt als in der App durch alle Klassen zu suchen.

Andere Tipps

Meine persönliche Erfahrung ist, dass im Durchschnitt, mit Anmerkungen zu tun für die meisten Entwickler viel einfacher ist als mit dem Standard-Java-XML-Konfiguration der Hölle zu tun. Für Dinge wie JPA und Spring Prüfung sind sie absolute Lebensretter.

Die gute Sache über Annotationen ist, dass sie Konfiguration auf Ihren Klassen selbsterklärend zu machen. Statt nun durch eine große XML-Datei zu suchen, die zu versuchen, herauszufinden, wie ein Rahmen Ihrer Klasse verwendet, Ihre Klasse sagt.

In der Regel das Problem mit Änderungen wie dieser ist, dass Gewöhnung sie einfach Zeit in Anspruch nimmt. Die meisten Menschen, darunter Entwickler, wieder ändern. Ich erinnere mich, als ich anfing, mit Frühling zu arbeiten. Für die ersten paar Wochen fragte ich mich, warum jemand mit den Kopfschmerzen, die mit ihrem verbundenen setzen würde. Dann ein paar Wochen später, fragte ich mich, wie ich jemals ohne sie gelebt hatte.

ich absolut Liebe Anmerkungen. Ich benutze sie von Hibernate / JPA, Seam, JAXB .... alles, was ich kann. IMO es gibt nichts Schlimmeres als nur eine XML-Datei öffnen zu müssen, um herauszufinden, wie eine Klasse behandelt wird.

In meinen Augen Anmerkungen erlauben eine Klasse für sich zu sprechen. Auch Anmerkungen sind (hoffentlich) ein Teil Ihrer IDEs Inhalt unterstützen, während bei XML-Konfigurations sind Sie in der Regel auf eigene Faust.

Allerdings kann es kommen, wie die XML-Konfigurationen und Anmerkungen werden von einer bestimmten Bibliothek tatsächlich verwenden (wie die meisten bieten beide), und welche Art von Anmerkung verwendet wird. Ich kann das Anmerkung vorstellen, dass etwas definieren, die Build-spezifisch ist (z. B. Datei / URL-Pfade) kann tatsächlich einfacher als XML-Konfigurations sein.

Es hängt stark von IDE-Unterstützung. Ich glaube, dass Anmerkungen synchron mit dem Code über Kontrollen in der IDE gehalten werden sollten, sondern dass die Unterstützung für diese ist etwas fehlt.

z. die ältere Version von IDEA würde warnen, wenn Sie eine Funktion ohne @Override overrode, würde aber den @Override Tag nicht entfernen, wenn Sie die Methode Signatur (oder die übergeordnete Klasse Unterschrift, was das betrifft) geändert und brachen die Beziehung.

Ohne Unterstützung, die ich ihnen eine umständliche Art und Weise finden Metadaten Code hinzuzufügen.

das Gefühl, ich persönlich, dass die der spezifische Anwendungsfall die Sie erwähnten (automatisch generieren Web-Formulare) ist ein großer Anwendungsfall für Anmerkungen. jede Art von „Rahmen“ Szenario, in dem Sie Code vereinfachten schreiben können und lassen Sie den Rahmen, um die schweren tun (oft repetitiven) auf ein paar Vorschläge basierend Heben (aka Anmerkungen) ist, glaube ich, der ideale Anwendungsfall für Anmerkungen.

ich bin neugierig, warum Sie nicht wie Anmerkungen in dieser Situation, und was Sie als der „Wartungsaufwand“ sein? (Und ich versuche nicht, um Ihre Position zu beleidigen, es ist einfach zu verstehen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top