FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Allgemeines

smells like refactoring

smells like refactoring 2007-03-04 15:55
Anonymer User
Ich glaube, ich habe gestern die längste Codezeile meines Lebens geschrieben:
public Card leadSuit(Gamestate gamestate) { return hand.playCard(gamestate == Gamestate.FIRST_TRICK ? Deck.TWO_OF_CLUBS : intelligence.pickLead(gamestate == Gamestate.NO_HEARTS && hand.hasCardsBeside(Suit.HEARTS) ? new Hand(hand, Suit.HEARTS) : hand)); } [img]http://fb18.triphoenix.de/gfx/28.gif[/img]

Was ist Eure grausamste Codezeile?

Re: smells like refactoring 2007-03-04 15:57
Fred
Moment, die hier ist ja noch besser:
public Card followSuit(Suit suit, Trick currentTrick, Gamestate gamestate) { return hand.playCard(hand.hasCardsOf(suit) ? intelligence.pickFollow(new Hand(suit, hand), currentTrick) : intelligence.pickDiscard(gamestate == Gamestate.FIRST_TRICK && hand.hasCardsBesidePointCards() ? hand.withoutPointCards() : hand, currentTrick)); }
[img]http://fb18.triphoenix.de/gfx/7.gif[/img]

Re: smells like refactoring 2007-03-04 16:01
Da:Sourcerer
Na, Fred? Hast du einen Essay mit dem Title "Refactoring Considered Evil" gefunden?

Re: smells like refactoring 2007-03-04 16:04
Da:Sourcerer
Ach ja. Smarty/PHP/HTML gemischt:

<font size="2"><a href="index.php?view=memberlist&order=name&sortorder={if $smarty.request.order eq 'name'}{math equation="(int)(x == 0)" x=$smarty.request.sortorder}{else}{$smarty.request.sortorder|default:"0"}{/if}{if $smarty.request.query != ''}&query={$smarty.request.query|escape:"url"}{/if}">Benutzername{if $smarty.request.order eq 'name'}&nbsp;{if $smarty.request.sortorder}&#x25B2;{else}&#x25BC;{/if}{/if}</a></font>

Re: smells like refactoring 2007-03-04 16:05
Fred
Ich mag nunmal keine Singletons! [img]http://fb18.triphoenix.de/gfx/20.gif[/img][img]http://fb18.triphoenix.de/gfx/20.gif[/img][img]http://fb18.triphoenix.de/gfx/20.gif[/img]

Re: smells like refactoring 2007-03-04 16:08
Da:Sourcerer
Aber Factories gehen schon, oder?

Re: smells like refactoring 2007-03-04 16:13
Fred
Oh ja, Factory-Methoden und Factories sind toll! In meinem zweiten Posting benutze ich sogar eine. Na, wer findet sie?

Re: smells like refactoring 2007-03-04 16:47
Da:Sourcerer
Schuss ins Blaue: hand.withoutPointCards()?

Re: smells like refactoring 2007-03-04 17:01
Fred
Gut geraten!

RE: smells like refactoring 2008-03-19 20:12
Fred
Ich habe gerade die kompakteste Zeile Code meines Lebens geschrieben:
public static int median(int x, int y, int z) {     return x < y ? y < z ? y : x < z ? z : x : y < z ? x < z ? x : z : y; }

RE: smells like refactoring 2008-03-19 22:58
Hannes
fred! defensives klammern! [24]

RE: smells like refactoring 2008-03-19 23:17
UncleOwen
Das würd in dem Fall auch nicht mehr helfen…

RE: smells like refactoring 2008-03-19 23:20
Tweety
Die Frage ist doch, ob Fred noch zu helfen ist … nach intensiver Betrachtung des Codes scheint mir, dass er dringend noch mal SE1 und SE2 besuchen sollte ;-)

RE: smells like refactoring 2008-03-19 23:23
Fred
Ich bete jeden Abend die 14 verschiedenen Operatorpräzedenzen runter. Defensives Klammern brauch ich nicht [25]

Die 6 Testfälle (alle Permutationen von 1, 2 und 3) liefern den korrekten Median. Das reicht doch [23]

Hm, die ganzen Leerzeichen braucht ja eigentlich auch niemand:
public static int median(int x, int y, int z) { return x<y?y<z?y:x<z?z:x:y<z?x<z?x:z:y; }
nach intensiver Betrachtung des Codes scheint mir, dass er dringend noch mal SE1 und SE2 besuchen sollte ;-)
Moment, wenn ich an SE1 teilnehme… wer macht dann das Tutorium? [7]

RE: smells like refactoring 2008-03-19 23:37
Tweety
Ich hoffe, dass du an der Übung und am Tutorium teilnimmst … sonst seh ich nicht, dass dir noch zu helfen wäre ;-)

RE: smells like refactoring 2008-03-20 08:14
UncleOwen
Hm, die ganzen Leerzeichen braucht ja eigentlich auch niemand:
Ich seh noch 2 überflüssige Leerzeichen und 3 Zeilenumbrüche.