java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Sonstiges > Softwareentwicklung

Softwareentwicklung Allgemeine Softwareentwicklung - Andere Programmiersprachen, Regex, OOP, Design Patterns

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 19.02.2012, 08:16   #1 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 24.05.2010
Fachbeiträge: 4
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Entwicklungsvorgaben

Hallo Forum,
inspiriert durch den "schockierenden" Eintrag über den VB Entwickler in der Plauderecke habe ich mir einige Gedanken über meinen eigenen Programmierstil gemacht. Insbesondere gibt es bei uns zwei "feindliche Guppen" Entwickler was einige Stille bzw. Vorgehensweisen angeht.

Wie macht Ihr das bzw. was findet ihr sauberer?

Methode früh raus oder if else bis zum Ende?
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
public boolean berechneStatus(Objekt basis,Objekt erweiterung){
  if (basis== null||erweiterung == null){
    return false;
  }
  if(basis.getWert()== null){
     throw new Exception("msg");
  }
  //hier findet die lange Berechnung statt
  return true;
}
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
public boolean berechneStatus(Objekt basis,Objekt erweiterung){
  if (basis!= null&&erweiterung != null){
    //viele viele Zeilen 
   if(basis.getWert==null){
     throw new Exception("msg");
   }
 }else{
  return false;
 }
return true;
}


Wird klar was ich versuche auszudrücken?

Entweder möglichst schnell raus aus der Methode und so eine oder sogar mehrere If Ebenen zu sparen oder ist der Weg übersichtlicher eine IF Else und dann nach teilweise 40 Zeilen ein [JAVA] }else{ return false; }. Ist es nicht schöner einfach prüfen und raus? Aber wenn irgendwann im else Zweig doch noch Berechnungen hinzugefügt werden wird es schnell unübersichtlich.Aber auch hier versuche ich so schnell wie es geht wieder aus der Methode rauszukommen.

Habt Ihr noch solche "Streitpunkte" oder was sind eure kuriosesten Vorgaben/Eigenheiten bei der Entwicklung?

Schönen Sonntag!

cousa
cousa ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 10:05   #2 (permalink)
Neuer Benutzer
short
 
Registriert seit: 31.05.2011
Fachbeiträge: 19
Abgegebene Danke: 6
Erhielt 0 Danke für 0 Beiträge
Ich würde in dem Fall das return nach oben setzen, da es meiner Meinung nach übersichtlicher ist.

Irgendwie kommt es mir komisch vor so wenig zu posten, aber ich habe dem nichts mehr hinzuzufügen...
Xandaros ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 10:44   #3 (permalink)
Stammbenutzer
Halbes Gigabyte
 
Registriert seit: 02.09.2009
Fachbeiträge: 6.073
Abgegebene Danke: 24
Erhielt 1.224 Danke für 1.208 Beiträge
Ich finde beide Varianten nicht unbedingt schön. Soll der boolean angeben ob die Berechnung möglich war oder nicht? Dann lieber ne Exception werfen für den Fall dass die Parameter nicht korrekt übergeben wurden.
Generell halte ich es auch für ok die Methode am Anfang oder mitten drin mit nem return zu verlassen, da Methoden eh kurz und übersichtlich sein sollten. Ob das für deine 40-50 Zeilen lange Methode auch gilt kann man schlecht sagen ohne die mal zu sehen, aber die kann man vermutlich auch noch in kleinere Methoden aufteilen, gerade wenn du größere if-else blöcke hast.
__________________
jCSV - Simple CSV library for Java - http://code.google.com/p/jcsv/
Asteroid Impact - Echtzeit-Strategie-Browsergame
EikeB ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 11:34   #4 (permalink)
Stammbenutzer
CD-R 80
 
Benutzerbild von bygones
 
Registriert seit: 07.10.2003
Fachbeiträge: 9.037
Blog-Einträge: 7
Abgegebene Danke: 92
Erhielt 379 Danke für 294 Beiträge
wie schon gesagt wurde, da Methoden so kurz wie moeglich bzw noetig gehalten werden sollen, ist es eher egal, da man die Methode so und so mit einem Blick ueberschauen kann.
Dein 2. Code ist aber so und so komisch. Wenn die Bedingung nicht true ist, geht er in den else zweig und returned false, danach kommt noch ein return true ?! Wann soll das eintreten?
__________________
When I was young, I invented an invisible friend called Mr Ravioli. My psychiatrist says I don't need him anymore, so he just sits in the corner and reads
bygones ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 11:35   #5 (permalink)
Stammbenutzer
Halbes Gigabyte
 
Registriert seit: 02.09.2009
Fachbeiträge: 6.073
Abgegebene Danke: 24
Erhielt 1.224 Danke für 1.208 Beiträge
Das tritt ein wenn die if Bedingung zutrifft
__________________
jCSV - Simple CSV library for Java - http://code.google.com/p/jcsv/
Asteroid Impact - Echtzeit-Strategie-Browsergame
EikeB ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 11:57   #6 (permalink)
Projektleiter Plugin-System
Team Plugin-System
 
Benutzerbild von Tomate_Salat
 
Registriert seit: 29.01.2009
Fachbeiträge: 3.377
Blog-Einträge: 9
Abgegebene Danke: 127
Erhielt 458 Danke für 419 Beiträge
Variante 1. Ich finde zu viele verschachtelungen unschön und es ist imho einfacher zu lesen. Varianate 1 scheint sogar (eine stille) konvention bei uns im Betrieb zu sein.
__________________
It is more than a Signature:
!!! Naming Conventions !!!
Schilder-Duke

JMapper jetzt auf Google Code
Instant Note meine erste Android App
Tomate_Salat ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 12:01   #7 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 13.09.2007
Fachbeiträge: 12.751
Abgegebene Danke: 211
Erhielt 810 Danke für 721 Beiträge
Zitat:
Entweder möglichst schnell raus aus der Methode und so eine oder sogar mehrere If Ebenen zu sparen oder ist der Weg übersichtlicher eine IF Else und dann nach teilweise 40 Zeilen ein [JAVA] }else{ return false; }.
Keine der Varianten ist "sauber" wenn die Methode 40 Zeilen hat...

Wie schon gesagt wurde, halte die Methoden kurz, sehr kurz.
maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 12:59   #8 (permalink)
Neuer Benutzer
Bit
Themenstarter
 
Registriert seit: 24.05.2010
Fachbeiträge: 4
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Zitat: maki
Beitrag anzeigen
Keine der Varianten ist "sauber" wenn die Methode 40 Zeilen hat...

Wie schon gesagt wurde, halte die Methoden kurz, sehr kurz.
Das ist bei meinem code auch Standard. Ist leider ein "Alt System" das nicht sehr robust entwickelt worden ist.

cu cousa
cousa ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 13:18   #9 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 13.09.2007
Fachbeiträge: 12.751
Abgegebene Danke: 211
Erhielt 810 Danke für 721 Beiträge
Zitat: cousa
Beitrag anzeigen
Das ist bei meinem code auch Standard. Ist leider ein "Alt System" das nicht sehr robust entwickelt worden ist.
Dann verstehe ich die Frage nicht...
maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 19.02.2012, 15:03   #10 (permalink)
Benutzer
short
 
Registriert seit: 13.01.2010
Fachbeiträge: 25
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Variante 1. Natürlich sollte eine methode immer so kurz sein, dass sich die frage gar nicht stellt, aber das ist in der realität nunmal nicht immer sinnvoll machbar. Manchmal ist eine methode eben 80 zeilen lang, und es macht nicht immer sinn diese dann künstlich aufzusplitten. Und in dem fall ist es schön, wenn man sozusagen "vorbedinungen" gleich zu beginn der methode sieht und nicht irgendwo mittendrin aus der methode gesprungen oder abgebrochen wird.

Dennoch ist variante 2 auch objektiv gesehen nicht "falsch" und ich würde solchen code problemlos akzeptieren.

Übel wirds erst, wenn spezies kommen die sowas hinrotzen:
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public boolean machwas(){
 
  boolean ret = true;
  do {
    //...
    if (...) {
      ret = false;
      break;
    }
    //... mehr logik
    if (...) break;
 
    //usw, am besten über 500 zeilen
 
  } while(false);
  // blabla
  return ret;
}
Sowas habe ich das erste mal bei einem bei mir auf arbeit gesehen (der wirklich nur so programmiert mit hunderte zeilen langen methoden), aber danach auch mal hier im forum. Wer sowas schreibt, gehört geschlagen, pausenlos.
MasterK ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 21.02.2012, 09:45   #11 (permalink)
Stammbenutzer
Kilobyte
 
Registriert seit: 22.10.2007
Fachbeiträge: 247
Abgegebene Danke: 5
Erhielt 14 Danke für 14 Beiträge
Die schnelle Fehlerbehebung muss doch das Ziel sein! Also können wir die Frage nur anhand des Stacktraces lösen.
Ich zum Beispiel nehme gerne NPE in kauf, so kann man am schnellsten ableiten wo der Fehler liegt.
nocturne ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de