Laden...

Coding Styles Horror

Erstellt von Khalid vor 15 Jahren Letzter Beitrag vor 3 Jahren 364.674 Views
72 Beiträge seit 2008
vor 14 Jahren

Ok, sorry. War nur nach der Woche ein wenig angepisst da ich 4 Apps von 3 verschiedenen Entwicklern fixen musste und froh gewesen wäre, wenn die "Fehler" nur in solchen try..catch Blöcken oder endlos verschachtelten if Abfragen zu finden gewesen wären ... da verstehe ich ja wenigstens was der Entwickler wollte.

Also, ich wollte niemanden zu nahe treten.

Aber ein "Schmuckstück" dieser Woche wollte ich dann doch noch teilen:


bool parseData(SerialPort port)
{
port.DiscardInBuffer();

try
{
if(port.ReadLine().Contains("* blablabla1 *)) parseData(port);
else if(port.ReadLine().Contains("* blablabla2 *)) parseData(port);
else if(port.ReadLine().Contains("* blablabla3 *)) parseData(port);
else if(port.ReadLine().Contains("* blablabla4 *)) parseData(port);
else if(port.ReadLine().Contains("* blablabla5 *)) parseData(port);
else if(port.ReadLine().Contains("* blablabla6 *)) return true;
}
catch(TimeOutException) { return false; }
}

Und der Entwickler fragt mich noch warum das so nicht funktioniert ....

795 Beiträge seit 2006
vor 14 Jahren

Hi @ All!

Musste grade mal lachen 😄.
Habe Folgendes grade in den DotNetNuke-Sources gefunden (gekürzt, DNN ist in VB geschrieben) 🤔:

Try
    If Not something.TryGetValue(...) Then
        Throw New System.Exception
    End If
Catch ex As Exception
    Throw New System.Exception
End Try

Äquivalent in C#:

try
{
    if (something.TryGetValue(...))
        throw new Exception();
}
catch (Exception ex)
{
    throw new Exception();
}

Man beachte das TryGetValue und das unnötige doppelte throw...

Gruß, Christian.

`There are 10 types of people in the world: Those, who think they understand the binary system Those who don't even have heard about it And those who understand "Every base is base 10"`
2.891 Beiträge seit 2004
vor 14 Jahren

Äquivalent in C#

Du hast das "Not" in if (something.TryGetValue(...)) vergessen.
So ist es aber noch interessanter - dann kommt man nur da durch, wenn der Wert OHNE Fehler NICHT konvertiert werden konnte 😁

Gruß,
dN!3L

K
133 Beiträge seit 2009
vor 14 Jahren

Was kennt ihr denn alles für Leute das ihr an solch exotischen Code kommt? Einige von den Urhebern sollten doch besser Baumwollpflücker werden xDD

Das einzige was ich nicht verstehe ist was an ++i schlimm seien soll? solange das wärend einer operation benuzt wird is doch alle okay?

2.891 Beiträge seit 2004
vor 14 Jahren

Ich hätte hier auch noch eine(!) schöne Zeile Code:

newApp.Description += "   ["+tempArt+"] "+ ((myProperties.BeschriftungAE==FormEinstellungen.BeschriftungenAE.Langtext) ? "\r\n" : "") + ((AEPos.ID_Beleg!="" && AEPos.ID_Beleg!=null) ? ("("+AEPos.ID_Beleg+") ") : ((AEPos.ID_Rechnung!="" && AEPos.ID_Rechnung!=null) ? ("("+ AEPos.ID_Rechnung+") ") : "")) + ((AEPos.AEPosDL.Text!="" && (tempArt=="IN" || myProperties.BeschriftungAE==FormEinstellungen.BeschriftungenAE.Langtext)) ? ((myProperties.BeschriftungAE!=FormEinstellungen.BeschriftungenAE.Langtext && AEPos.AEPosDL.Text.Length>60) ? (AEPos.AEPosDL.Text.Substring(0,60).Replace("\r\n",", ").Replace("- ","")+"...") : AEPos.AEPosDL.Text) : AEPos.KurzBeschr) +"\r\n";

Gruß,
dN!3L

R
234 Beiträge seit 2007
vor 14 Jahren

Das einzige was ich nicht verstehe ist was an ++i schlimm seien soll? solange das wärend einer operation benuzt wird is doch alle okay?

An ++i ist erstmal gar nichts schlimm. Allerdings ist die Kombination i = ++i ziemlich überflüssig, da man statt dessen auch einfach i++ schreiben kann.

K
133 Beiträge seit 2009
vor 14 Jahren

Das einzige was ich nicht verstehe ist was an ++i schlimm seien soll? solange das wärend einer operation benuzt wird is doch alle okay?

An ++i ist erstmal gar nichts schlimm. Allerdings ist die Kombination i = ++i ziemlich überflüssig, da man statt dessen auch einfach i++ schreiben kann.

achso xD na dann habi nix gesagt.. oh man

11 Beiträge seit 2009
vor 14 Jahren

Java Code:


//....Code.....
String lvBeispiel = lvEinInteger.toString();
//...Code...... (mit lvBeispiel wurde nichts gemacht)
Integer lvEinInt = Integer.parseInt(lvBeispiel);
//weiterer Code

😁 😁 😁

3.003 Beiträge seit 2006
vor 14 Jahren
  
//....Code.....  
String lvBeispiel = lvEinInteger.toString();  
//...Code...... (mit lvBeispiel wurde nichts gemacht)  
Integer lvEinInt = Integer.parseInt(lvBeispiel);  
//weiterer Code  
  

Ha, das mach ich immer, wenn meinem kleinen Neffen die morgendliche Milch zu heiss ist: umkippen von einer Tasse in die andere, immer hin und her (kühlt so ganz fix auf trinkbare Temperatur ab). Du siehst, das macht totaaaaal viel Sinn 😉.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

T
574 Beiträge seit 2008
vor 14 Jahren

Hier mal wieder was für die Rubrik: "Warum einfach, wenns auch kompliziert geht":

public bool CheckSozialversicherungsnummer(DateTime? birthDate, string svnPrefix)
{
    if (birthDate.HasValue)
    {
        StringBuilder sb = new StringBuilder(svnPrefix);
        if (birthDate.Value.Day < 10)
        {
            sb.Append("0");
        }
        sb.Append(birthDate.Value.Day);
        if (birthDate.Value.Month < 10)
        {
            sb.Append("0");
        }
        sb.Append(birthDate.Value.Month);
        sb.Append(birthDate.Value.Year % 100);

        return ValidateSozialversicherungsnummer(sb.ToString());
    }
    else
    {
        return false;
    }
}

Hab das jetzt umgebaut (und richtiggestellt):

public bool CheckSozialversicherungsnummer(DateTime? birthDate, string svnPrefix)
{
    if (birthDate.HasValue)
    {
        return ValidateSozialversicherungsnummer(svnPrefix + birthDate.Value.ToString("ddMMyy"));
    }
    else
    {
        return false;
    }
}
T
574 Beiträge seit 2008
vor 14 Jahren

und in der Validierungs-Funktion dann noch diese total unnötigen sachen:


            // Check if the checksum equals the fourth digit
            if (checksum != digits[3])
            {
                // No - this is NOT a valid SVN
                return false;
            }

            // All tests passed
            return true;
        }
2.891 Beiträge seit 2004
vor 14 Jahren

Hallo tkrasinger,

geht auch kürzer 😉

public bool CheckSozialversicherungsnummer(DateTime? birthDate, string svnPrefix)
{
    return (birthDate.HasValue && ValidateSozialversicherungsnummer(svnPrefix + birthDate.Value.ToString("ddMMyy")));
}

Und noch weiter OT: Methoden, die Wahrheitswerte zurückgeben, sollten mit "is", "has" o.Ä. anfangen...

Gruß,
dN!3L

T
574 Beiträge seit 2008
vor 14 Jahren

is klar, war nur ein zusammengekürztes Beispiel fürs Posten, die Methoden heißen im wirklichen Code anders und tun auch noch etwas mehr ...

3.003 Beiträge seit 2006
vor 14 Jahren

Code von meinem direkten Vorgesetzten:


while(cfgObj != null)
{
	//code
	if(bedingung1) break;
		
	//mehr Code
	if(bedingung2) break;

	//noch mehr Code
	if(bedingung3) break;

	return ergebnis;
}

ergebnis.DoSomethingElse();
return ergebnis;

Gesamtlänge des Codeblocks: 472 Zeilen.

Die Reaktion auf meinen zarten Hinweis, dass das nur eine vornehme Art und Weise ist, "goto" zu schreiben, führten zu einer Reaktion, die mich ernsthaft überlegen lässt, mir heut abend mal meine Bewerbungsunterlagen zusammenzusuchen...

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo LaTino

Ohje. Und verständlich, wenn ich ehrlich bin.
Falls du die Firma verlässt, vergiss nicht ein DCD (Drecks Code Developer) T-Shirt dazulassen für deinen Cheffe 😉

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

1.346 Beiträge seit 2008
vor 14 Jahren

DCC (Drecks Code Developer)

Das heißt dann doch DCD

Gruß pdelvo

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo pdelvo

Hab ich doch geschrieben? 😉

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

1.346 Beiträge seit 2008
vor 14 Jahren

Hä???

Entweder ich sollte mal zum augenartzt gehen, oder jemand hat an meinem Beitrag rumgefuscht 🤔

Edit: Okay. Du hast an meinem Beitrag rumgefuscht. Ich hatte das Antwortfenster noch in der Browserhistorie. 😜

Gruß pdelvo

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo pdelvo

edit:
Ich wollte dich nur auf den Arm nehmen.
Tut mir leid, das kommt nicht mehr vor.

Wie schon gesagt, danke für deinen Hinweis.
Ich habe mein Posting korrigiert.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

183 Beiträge seit 2006
vor 14 Jahren

Ich bin seit 01.07. in einer neuen Firma. Der Vorgänger war schon ein ganzes Stück älter und genau so sieht sein Code auch aus und noch viel schlimmer ... Nicht das er alle Klassen mit einem vorangestelltem T benannte (TMainFrm, ...), nein er produzierte teilweise Code wo einem echt schlecht werden kann:


Application.DoEvents();
processes = Process.GetProcessesByName("EinTollerProzess");
foreach (Process process in processes)
{
  process.Kill();
  Application.DoEvents();
  for (int i = 0; i < 20; i++)
  {
    Thread.Sleep(5);
    Application.DoEvents();
    if (process.HasExited)
      break;
  }
}

Man sollte vielleicht dazu sagen das derjenige zuvor jahrelang mit C++ und Borland gearbeitet hat was dann sicher einiges erklärt jedoch einfach am Thema vorbei geht.

Naja, ich konnte gleich am ersten Tag meinen AG davon überzeugen das man einen solchen Code einfach nicht weiter pflegen DARF. Erschwerend kommt hinzu das er Sachen wie Sourcecodeverwaltung und sowas strikt abgelehnt hat (ja, d.h. für mich jedesmal wenn ein neuer Kunde beliefert werden soll kopiere (!!!) ich eine ähnliche Version und passe diese an ... X( da fang ich echt jedesmal heimlich das weinen an ...) ... Naja bis ich die Anwendung komplett neuschreiben kann muss ich noch die alte Version weiterhin benutzen um neue Kunden zu beliefern. Aber sobald alles geregelt ist lege ich mit der Planung los, und dann mit allem was in die moderne Softwareentwicklung gehört und vorallem wie man es "richtig" in C# und .NET macht 🙂

Gut Schuß
VuuRWerK 😉

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo zusammen,

habe das hier gerade in einem alten PHP-Script von mir gefunden:

// Quick and dirty, ich weiß. Trotzdem.

Ich lasse das mal unkommentiert 😄 ...

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo zusammen

Irgendwo oben im Code:


ListItem myListItem = ....

Und weiter unten aber in gleichen Scope (Darum wohl der Name):


ListItem myBrandNewListItem = ...

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

M
334 Beiträge seit 2007
vor 14 Jahren

ARGH

Hab gerade folgendes in einem älteren Projekt gefunden. Es handelt sich um die Implementierung einer Archivfunktion.


...
int year = .... // DB-Abfrage
if (year < 2005) 
{
   // Meldung dass die Datensätze archiviert sind
} 
else
{
  // Datensätze darstellen
}

1.346 Beiträge seit 2008
vor 14 Jahren

Ich poste mal was von mir selber. Ist garnicht lange her. Ich habe telefoniert und mich dabei erwischt, als ich sowas geschrieben habe:

return foo ? true : false;

Hätte mich dafür schlagen können^^

Gruß pdelvo

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo pdelvo,

okay, das ist natürlich bitter für jemanden, der wahrscheinlich schon mehrfach auf [Tipp] Anfängerfehler == true / == false verlinkt hat 😄 ...

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

1.346 Beiträge seit 2008
vor 14 Jahren

Ohja. Ich war am quatschen, dann passiert sowas. Habe ich sofort wegoptimiert^^

Also. Kein Telefon vor dem Visual Studio.(Und kein Skype)

Gruß pdelvo

C
252 Beiträge seit 2007
vor 14 Jahren

Grad in nem anderen Forum entdeckt:


private void NewFile()
{
    if (Directory.Exists(@"C:\Windows\_NOTIZEN_\"))
    {
        
    }
    else
    {
    // Specify a "currently active folder"
    string activeDir = @"C:\Windows\";

    //Create a new subfolder under the current active folder
    string newPath = System.IO.Path.Combine(activeDir, "_NOTIZEN_");

    // Create the subfolder
    System.IO.Directory.CreateDirectory(newPath);        
    }
    
    if (File.Exists(@"C:\Windows\_NOTIZEN_\Notizen.txt"))
    {
        
    }
    else
    {
        if (File.Exists(@"C:\Windows\_NOTIZEN_\"))
        {
            StreamWriter sw1 = new StreamWriter(@"C:\Windows\_NOTIZEN_\");
            StreamWriter sw = new StreamWriter(@"C:\Windows\_NOTIZEN_\Notizen.txt");
            sw.Close();			
        }       
    }        
}

F
240 Beiträge seit 2006
vor 14 Jahren

Da kennt wohl wer den Negierungsoperator nicht.

U
208 Beiträge seit 2008
vor 14 Jahren

Vorhin im PHP-Code von 'nem Freund gefunden. Variablen sollten echt keinen Alkohol trinken dürfen, am Ende verdoppeln sich noch die Werte. 😄

if($link_url == "") // Wenn $link_url voll ist, ist es ein Link auf eine externe Seite
{
    // Datenbank-Insert
}
else
{
    // anderer Datenbank-Insert
}
2.760 Beiträge seit 2006
vor 14 Jahren

Schade ich muss es wohl derweil ausgebaut haben aber ich habe mit einem Docking-Framework mal was schönes verbrochen (war zwar auch eher aus Gaudi aber funktionierte tatsächlich):


while (toolbox.MdiParent == null)
{
   toolbox.MdiParent = this;
}

Hintergrund war der das man aufgrund eines Bugs eine Methode nutzen sollte um den Parent zu setzen (die intern zum Glück nicht das selbe gemacht hat) da es ansonsten erst beim zweiten setzen funktionierte 😉

R
234 Beiträge seit 2007
vor 14 Jahren

Habe gerade beim durchstöbern der Path-Klasse in der FCL entdeckt, dass im Konstruktor zwei inhaltlich identische Arrays erzeugt werden: InvalidPathChars und RealInvalidPathChars. Ersteres sollte ja bekannt sein, da es public ist, letzteres wird allerdings nur von GetInvalidPathChars() verwendet. 😁

D
67 Beiträge seit 2009
vor 14 Jahren

Bei uns hab ich gerade folgendes gefunden

if (queryElement.PartOfList)
{
     if (((ListMember)queryElement).Parent.RemoveElement((ListMember)queryElement)) { }
}
309 Beiträge seit 2008
vor 14 Jahren

Folgende interessante Methode einen String zusammen zubauen ist mir (sinngemäß) gerade untergekommen:

8o


string stringArray = new string[15];

stringArray[0] = "Bla";
stringArray[1] = "blubb";
// usw, usw...

int count = 0;
string returnString;
do
{
     returnString = returnString + stringArray[count];
     count++;
}
while (count <= 14);

return returnString;

Wo ist meine Sauerstoffmaske? 😁

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo,

zwar kein Horror, aber sehr witzig 😃 ...
s. http://blog.opennetcf.com/ncowburn/PermaLink.aspx?guid=257b7f5c-e5ae-4038-9e84-b8457055d7b5 ...

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

6.911 Beiträge seit 2009
vor 14 Jahren

Hallo,

interessante Methode jemanden besseren Stil anzulernen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

1.564 Beiträge seit 2007
vor 14 Jahren

Gerade mal aus der Business-Library unseres Lagacy Sytems kopiert (ist C++)

// !!!!!!!!! BEGIN OF HACK !!!!!!!!!!!!
// 2004-08-11
//
// If shipper == the "XYZ", export to customer "ABC"
// note : this is no real solution, in future we have to change 
//        the 1:1 relation shipper to customer to a 1:n relation

if( pShipper->GetId() == 101 )
   pStatus->ExportToCustomer( 916 );

// !!!!!!!!!  END OF HACK  !!!!!!!!!!!!

Man beachte den Zeitstempel...

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo gfoidl,

allerdings 😃.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

3.430 Beiträge seit 2007
vor 14 Jahren

Hallo Flo,

Man beachte den Zeitstempel...

Hehe, da ging wohl ein Hack vergessen.
Das passiert aber immer wieder, denn wenn es funktioniert dann scheren sich die meisten einen Dreck wie schlimm der Code aussieht.

Gruss
Michael

1.985 Beiträge seit 2004
vor 14 Jahren

Hallo michlG,

Hehe, da ging wohl ein Hack vergessen.
Das passiert aber immer wieder, denn wenn es funktioniert dann scheren sich die meisten einen Dreck wie schlimm der Code aussieht.

ich glaube nicht, dass er vergessen wurde 😃. Wie heißt es doch so schön: Provisorien halten immer am längsten. Ich kenne das von meinem Arbeitgeber nur zu gut 😃.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

1.564 Beiträge seit 2007
vor 14 Jahren

Hi Michael

Hehe, da ging wohl ein Hack vergessen.
Das passiert aber immer wieder, denn wenn es funktioniert dann scheren sich die meisten einen Dreck wie schlimm der Code aussieht.

Hacks passieren, ich habe diesen Hack aber ca. 5-mal angemahnt X(. Naja, seit einem Jahr ist's auch schon egal, das System ist legacy und ich bin derzeit am kompletten Redesign. 😉

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

Khalid Themenstarter:in
3.511 Beiträge seit 2005
vor 14 Jahren

Hauptsache es kommt keiner und sagt "Ach, den Codeteil kann man ja per Copy & Paste übernehmen" und schon ist der Mist wieder drin 😄

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

2.760 Beiträge seit 2006
vor 14 Jahren

Ach, den Codeteil kann man ja per Copy & Paste übernehmen" und schon ist der Mist wieder drin

Igitt! Das wäre ja eine Form den Code wieder zu benutzen und wiederverwendbarer Code wird kategorisch abgelehnt 😉
Ich würde dazu tendieren das ganze ein bisschen anders forumliert und mit mindestens 70 Zeilen Code neu zu realisieren 8)

E
200 Beiträge seit 2006
vor 14 Jahren

70 Zeilen? pfff, Minimalist. Unter 1500 Zeilen Code ist eine Funktion ja noch nicht mal erwachsen! 8o Programmierer such und schlagen will

T
574 Beiträge seit 2008
vor 14 Jahren

Hab ich in einem (noch) produktiven Access Programm eines Kunden gefunden:
Die letzte Zeile ist das berühmte Tüpfelchen auf dem i.


If Len(strIn) = 1 Then strOut = "0000000000" & Left(strIn, Len(strIn))
If Len(strIn) = 2 Then strOut = "000000000" & Left(strIn, Len(strIn))
If Len(strIn) = 3 Then strOut = "00000000" & Left(strIn, Len(strIn))
If Len(strIn) = 4 Then strOut = "0000000" & Left(strIn, Len(strIn))
If Len(strIn) = 5 Then strOut = "000000" & Left(strIn, Len(strIn))
If Len(strIn) = 6 Then strOut = "00000" & Left(strIn, Len(strIn))
If Len(strIn) = 7 Then strOut = "0000" & Left(strIn, Len(strIn))
If Len(strIn) = 8 Then strOut = "000" & Left(strIn, Len(strIn))
If Len(strIn) = 9 Then strOut = "00" & Left(strIn, Len(strIn))
If Len(strIn) = 10 Then strOut = "0" & Left(strIn, Len(strIn))
If Len(strIn) = 11 Then strOut = Left(strIn, Len(strIn))

4.506 Beiträge seit 2004
vor 14 Jahren

Left(strIn, Len(strIn))

LOL, das nenn ich wenigstens konsequent "weitergedacht" grins.

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

T
574 Beiträge seit 2008
vor 14 Jahren

Das waren vielleicht ein paar Helden:

If Nz(rs!strCodeBundesland, "") = "" Then
   strOut = strOut & "" & strEnde
End If
If Len(rs!strCodeBundesland) = 1 Then
   strOut = strOut & rs!strCodeBundesland & "  " & strEnde
End If
If Len(rs!strCodeBundesland) = 2 Then
   strOut = strOut & rs!strCodeBundesland & " " & strEnde
End If
If Len(rs!strCodeBundesland) = 3 Then
   strOut = strOut & rs!strCodeBundesland & strEnde
End If
1.564 Beiträge seit 2007
vor 14 Jahren

Hätte das Beste hier beinahe vergessen. Die halten hier nämlich nicht viel von Standard Basis-Klassen:
public class CXObject
public class CXStream : CXObject
public class CXString : CXStream
public class CXTime : CXObject
public class CXFile : CXStream

Die Klassennamen sind leider nicht verwirrend sondern ernst gemeint... 🙁

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

F
240 Beiträge seit 2006
vor 14 Jahren

Ich hoffe, dass ich sowas niemals erleben muss, ich könnte mir durchaus vorstellen, dass man mit jeder Codezeile, die man von sowas liest, ne Minute Lebenszeit extra verliert.

1.564 Beiträge seit 2007
vor 14 Jahren

Deine Vermutung trifft - leider - voll zu. Ich könnte die Liste unendlich weiterführen (CXSortedList, CXList, ...) oder für Web-Applikationen CXWhiteFrame (= "<div>") 8o

Simples Remoting wurde letztens über Win-Socket erfunden.

Die Firma hier kann eigentlich als Synonym für das Not Invented Here durchgehen.

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

699 Beiträge seit 2007
vor 14 Jahren

Die Klassennamen sind leider nicht verwirrend sondern ernst gemeint

Es gibt da auch ein sehr gutes Beispiel in einem OpenSource Shop System, wo konsequenterweise jede Methode / Klasse mit dem Präfix verpackt wird, auch wenn es noch so sinnlos ist, da darin nur die eigentliche Methode aufgerufen wird 😉

Grüße Stephan

PS: Man kann alles ein bisschen übertreiben 😉