+ Antworten
Ergebnis 1 bis 9 von 9

Thema: Formattierung bei Annotation an Parametern

  1. #1
    User Kilobyte Themenstarter
    Avatar von Greta
    Registriert seit
    15.08.2013
    Ort
    im Büro
    Fachbeiträge
    176
    Genannt
    32 Post(s)
    Hallo zusammen,

    bin gerade beim Refactoring ung achte dabei auch gleich auf die Lesbarkeit vom Code. Nun haben ich einen SOAP-Service vor mir, deren Parameter ja mindestens eine @WebParam-Annotation benötigen.

    Wie schreibt man das jetzt aber lesbar hin?

    Beispiele:
    Java Code:
    1. @WebMethod(operationName = "methodA")
    2. public MyResultType methodA(
    3.         @XmlElement(required = true) @WebParam(name = "session") final String sessionID,
    4.         @XmlElement(required = true) @WebParam(name = "mode") final String mode) {
    5.            
    6.     // do something
    7. }
    8.  
    9. @WebMethod(operationName = "methodB")
    10. public MyResultType methodB(
    11.         @XmlElement(required = true)
    12.         @WebParam(name = "session") final String sessionID,
    13.         @XmlElement(required = true)
    14.         @WebParam(name = "mode") final String mode) {
    15.            
    16.     // do something
    17. }
    18.  
    19. @WebMethod(operationName = "methodC")
    20. public MyResultType methodC(
    21.         @XmlElement(required = true)
    22.         @WebParam(name = "session")
    23.         final String sessionID,
    24.         @XmlElement(required = true)
    25.         @WebParam(name = "mode")
    26.         final String mode) {
    27.            
    28.     // do something
    29. }
    30.  
    31. @WebMethod(operationName = "methodD")
    32. public MyResultType methodD(@XmlElement(required = true) @WebParam(name = "session") final String sessionID, @XmlElement(required = true) @WebParam(name = "mode") final String mode) {
    33.            
    34.     // do something
    35. }


    Aktuell nutze ich Variante B, das scheint mir bei vielen Parametern noch mit am übersichtlichsten zu sein.

    Die letzte Variante sollte eigentlich nicht zur Diskussion stehen, aber der Vollständigkeit wegen mit aufgeführt.
    Ich bin so klug, K L U K!!!

  2. #2
    User Halbes Megabyte Avatar von Crian
    Registriert seit
    02.08.2013
    Fachbeiträge
    543
    Genannt
    31 Post(s)
    Puh das sieht ja alles wurschtelig aus... aber ich schwanke da auch zwischen A und B. A fällt imho raus, wenn es zu viele Annotationen werden oder die Variablennamen zu lang sind, so dass es zu breit wird.

  3. #3
    Global Moderator Viertel Gigabyte
    Registriert seit
    05.08.2008
    Fachbeiträge
    4.905
    Genannt
    309 Post(s)
    Manche Leute würden sagen: Alles markieren, Strg+F drücken, und akzeptieren, was die in den Formatter gegossenen Coding Conventions eben draus machen.

    Aber das mag ich auch nicht.

    Ich finde ja, dass so etwas "ausgerichtetes" wie
    Java Code:
    1.  
    2. @WebMethod(operationName = "methodA")
    3. public MyResultType methodA(
    4.         @XmlElement(required = false) @WebParam(name = "session") final String sessionID,
    5.         @XmlElement(required = true ) @WebParam(name = "mode"   ) final String mode) {
    6.            
    7.     // do something
    8. }
    (ja, mit den Leerzeichen!!!11einself) eine gewisse Ästhetik hat. Aber gleichzeitig bin ich ja auch ein "nicht mehr als 80 Zeichen pro Zeile"-Nazi.

    Eine weitere Option wäre ja
    Java Code:
    1.  
    2. @WebMethod(operationName = "methodC")
    3. public MyResultType methodC(
    4.         @XmlElement(required = true) @WebParam(name = "session")
    5.         final String sessionID,
    6.         @XmlElement(required = true) @WebParam(name = "mode")
    7.         final String mode) {
    8.            
    9.     // do something
    10. }
    und IMHO nicht die schlechteste. Irgendwo zwischen dieser, B und C würde ich mich vermutlich einpendeln...

  4. #4
    User Kilobyte Themenstarter
    Avatar von Greta
    Registriert seit
    15.08.2013
    Ort
    im Büro
    Fachbeiträge
    176
    Genannt
    32 Post(s)
    Also dem Netbeans-Formatierer ist das egal, wie ich das da stehen habe. Der interessiert sich scheinbar nur für Leerzeichen und Zeilenlänge.

    Wenn man sich an den Annotations bei bei Feldern orientiert, müsste man Variante C nutzen. Ich befürchte nur, dass dann die Parameterliste wesentlich mehr Zeilen beansprucht als die eigentliche Methoden-Implementierung.


    Aber ein gutes hat es, wenn man beim Refactoring Zeit hat, sich über so etwas gedanken zumachen. Heißt nämlich, dass es sonst keine großen Probleme gibt
    Ich bin so klug, K L U K!!!

  5. #5
    Frequent User Halbes Megabyte Avatar von mogel
    Registriert seit
    01.08.2013
    Ort
    Geheimversteck
    Fachbeiträge
    654
    Genannt
    93 Post(s)
    Methode B aber noch etwas formatiert - es ist alles leichter zu erkennen und jeder Parameter steht mit seinen zusätzlichen Infos auf einer Zeile

    Code:
    @WebMethod(operationName = "methodB")
    public MyResultType methodB(
            @XmlElement (required = true)
            @WebParam   (name = "session") final String sessionID,
            @XmlElement (required = true)
            @WebParam   (name = "mode")    final String mode) {
               
        // do something
    }
    Internal Development and Investment Optimization Trainer
    Formattierung bei Annotation an Parametern

    TreeDo - die clevere ToDo-Liste - 2:0

  6. #6
    User Kilobyte
    Registriert seit
    13.10.2015
    Fachbeiträge
    166
    Genannt
    19 Post(s)
    Off topic:
    Ich finde ja diese Variante am schönsten.

    Java Code:
    1. @WebMethod(operationName = "methodD")
    2. public MyResultType methodA(Optional<String> session, String mode) {
    3.     // do something
    4. }

    Gut, ich kenne noch die Zeiten in denen man XML zur Konfiguration verwendet hat. War lästig, da haben sie gesagt nehmt Annotationen, ist viel besser und übersichtlicher.

    Über Optional kann man streiten, es gut oder schlecht finden, aber um damit zwischen required = true|false zu unterscheiden ist mir das lieber, als eine Annotation. Per Konvention würde das Framework, davon ausgehen, dass ein Optional für required = false steht und ansonsten true anzunehmen ist. Die resultierende Behandlung von Optional ist ansonsten eh vorzunehmen.

    Anstelle von name kann man wiederum auch die Konvention nehmen, dass name und Variablenbezeichner identisch sein müssen. Schon fällt eine weitere Annotation weg.

  7. #7
    Global Moderator Floppy Disc Avatar von Tomate_Salat
    Registriert seit
    30.07.2013
    Ort
    Durlach
    Fachbeiträge
    783
    Genannt
    151 Post(s)
    Blog-Einträge
    4
    Hab noch nie wirklich mit SOAP gearbeitet. Aber: würde es klappen wenn man gegen ein Interface programmiert und dorthin die Annotation auslagert? Dann würde ichs nämlich mit einem extra Interface machen und (weil ichs am besten zu lesen finde) Variante A. Die implementierende Klasse enthält dann keine der Annotationen mehr und bleibt dadurch übersichtlicher.
    byte-welt.net - das Forum von Programmierern für Programmierer

    Naming Conventions
    Formattierung bei Annotation an Parametern

    JMapper | Instant Note (App)

  8. #8
    User Viertel Megabyte Avatar von inv_zim
    Registriert seit
    31.07.2013
    Ort
    Rhein-Main Gebiet
    Fachbeiträge
    361
    Genannt
    31 Post(s)
    Zitat Zitat von Tomate_Salat Beitrag anzeigen
    Hab noch nie wirklich mit SOAP gearbeitet. Aber: würde es klappen wenn man gegen ein Interface programmiert und dorthin die Annotation auslagert? Dann würde ichs nämlich mit einem extra Interface machen und (weil ichs am besten zu lesen finde) Variante A. Die implementierende Klasse enthält dann keine der Annotationen mehr und bleibt dadurch übersichtlicher.
    Auf solche Ideen kam ich auch mal, da ernüchtert aber die Inheritance bei Java ziemlich schnell :/

    inheritance - Why java classes do not inherit annotations from implemented interfaces? - Stack Overflow
    I am obsessed with the ancient science of "puzzle-ometry". I have discovered that within puzzles lies the secret of human intelligence, that which separates us from the common beast.

  9. #9
    Global Moderator Floppy Disc Avatar von Tomate_Salat
    Registriert seit
    30.07.2013
    Ort
    Durlach
    Fachbeiträge
    783
    Genannt
    151 Post(s)
    Blog-Einträge
    4
    Naja, in so einem Fall brauchste halt ne Guideline - wie du mit Annotationen umzugehen hast. Wir im Betrieb bauen halt gerade unsere REST-Services so, dass Interfaces Annotiert werden und die implementierende Klasse frei davon bleibt (vor allem weil man wohl gefahr läuft, dass sonst die vererbten Annotationen komplett ignoriert werden können).
    byte-welt.net - das Forum von Programmierern für Programmierer

    Naming Conventions
    Formattierung bei Annotation an Parametern

    JMapper | Instant Note (App)

+ Antworten Thema als "gelöst" markieren

Direkt antworten Direkt antworten

Nenne ein bekanntes Betriebssystem!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Rechnungen mit mehreren Parametern unmöglich?
    Von skonline90 im Forum Java-Grundlagen
    Antworten: 4
    Letzter Beitrag: 27.11.2014, 23:03
  2. (Android) Http-Post mit Parametern... wie?
    Von Natac im Forum Android
    Antworten: 3
    Letzter Beitrag: 21.11.2013, 15:59
  3. Zugriff auf Annotation
    Von freezly im Forum Java Enterprise Edition (Java EE)
    Antworten: 10
    Letzter Beitrag: 26.09.2013, 08:34
  4. Hibernate: Annotation Reference
    Von L-ectron-X im Forum Byte-Welt Fundgrube
    Antworten: 0
    Letzter Beitrag: 30.12.2008, 09:34
  5. Java-Blog-Buch - "06.04 Annotation"
    Von RSS Reader im Forum Java-Blog-Buch
    Antworten: 0
    Letzter Beitrag: 04.12.2008, 09:12

Stichworte

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •