Laden...

Wunsch für eine neue Forums-Ecke "Heulen & Zähneknirschen"...

Erstellt von CarstenP vor 19 Jahren Letzter Beitrag vor 19 Jahren 14.248 Views
C
CarstenP Themenstarter:in
65 Beiträge seit 2004
vor 19 Jahren
Wunsch für eine neue Forums-Ecke "Heulen & Zähneknirschen"...

... oder so ähnlich.

Ein Forum, in dem man sich über typische Programmier(er)fehler austauschen kann. Ich finde solche Beiträge, die in vielen Programmier-Foren immer wieder mal irgendwo auftauchen, sehr lehrreich. Man könnte es auch à la MS "Patterns & Practises" nennen und ähnlich wie in den FAQ, aber eben spezifischer, vom Fehler zur Lösung arbeiten. Dabei solls nicht so sehr um ganz spezielle Dinge gehen ("Wie zeige ich meine MySQL-Tabelle in einem DataGrid an?"), sondern eher in der Art "Wie entwerfe ich grundsätzlich eine Multi-User-Datenbank-Anwendung, und worauf muss ich achten?"

Interessant sind dann zwar auch Tutorials (aber die gibts ja teilweise schon zuhauf), aber vor allem Erfahrungsberichte der Sorte "Ich habe es erst so und so gemacht, aber das war totaler Mist, weil: 1., 2., 3.". Wer dann vor einer solchen Aufgabe steht und sich vielleicht ähnliche Gedanken macht, wie der Autor zu Beginn, und somit in dieselben Probleme rennen würde, kriegt dann kein "mach es mal so, Kleiner!" um die Ohren, sondern eine Erklärung und einen "Denk-Weg", den er entlang gehen kann, um an Ende (hoffentlich) so schlau zu sein wie der Autor, ohne dessen Fehler selbst machen zu müssen.

In so einer Forums-Ecke könnte man außerdem ein bisschen über Entwurfsmuster (Singleton? static? oder doch eine normale Instanz?) und Vorgehensweisen (Top-down? Bottom-up? Kraut-und-Rüben?) philosophieren. Ich persönlich mag solchen Austausch jedenfalls, weil es gegen Betriebsblindheit hilft ("ich hab das gestern so gemacht, also mach ichs heute auch wieder und morgen erneut, bis mir einer erklärt, warum meine Idee dämlich ist!").

Für n00bs hätte diese zweite Abteilung vielleicht eher Unterhaltungs- als praktischen Nährwert, aber auf jeden Fall dürfte es den einen oder anderen aufmerksamen und geneigten Leser dazu animieren, sich damit auseinander zu setzen, dass es eben doch einen grundlegenden Unterschied zwischen Code-Hacken und Software-Entwicklung gibt 😉

/// <summary>
/// Signatur
/// </summary>

1.373 Beiträge seit 2004
vor 19 Jahren

Quasi eine Postmortem-Ecke. Sehr gute Idee. Und dann bitte nicht nur zum Thema Programmierung, sondern auch zu anderen Themen der Softwareentwicklung, z.B. zu Softwareentwicklungsprozessen und -paradigmen, Requirementfindung, Projektmanagement, usw.

Es wird eh (zu)viel übers Coden geredet in Foren!

MfG VizOne

N
4.644 Beiträge seit 2004
vor 19 Jahren

Ich finde die Idee auch sehr gut. 👍

Vorallem Themen wie OOA, OOD, OOP, N-Tier Anwendungen, ... werden eigentlich immer ziemlich rar irgendwo behandelt.

V
842 Beiträge seit 2003
vor 19 Jahren

Hi!

Original von CarstenP
dass es eben doch einen grundlegenden Unterschied zwischen Code-Hacken und Software-Entwicklung gibt 😉

War das eine Anspielung auf mich und darauf wie mein entwickelter Code aussieht? 😉

Also ich kann mich dem nur anschließen. Besonders interessant finde ich immer wieder so etwas wie "Ich habe dies falsch gemacht und so kann man es umgehen" besonders wenn andere vielleicht selbiges Problem hatten und es anders gelöst haben, so das man also Erfahrung austauschen kann.
Da ich noch zur Schule gehe und die Lösungswege bei vielen doch stark auseinander gehen kommt es eher selten vor das man sich über Fehler und Lösungen austauschen kann und somit oft auf einer Lösung beharrt und man nicht immer abschätzen kann ob das die optimale Lösung oder manchmal wirklich nur eine Brücke ist.

Also ich kann nur für ein solches Forum stimmen und hoffe das auch alexander so sieht!

Code-Hacker

C
CarstenP Themenstarter:in
65 Beiträge seit 2004
vor 19 Jahren

Original von Code-Hacker
War das eine Anspielung auf mich und darauf wie mein entwickelter Code aussieht? 😉

*schmunzel* Nee, war keine Anspielung auf irgendwen hier, und Hacking gehört zum Programmieren sowieso dazu. Man kann nämlich bei allzu viel Dogmatismus auch mit Kanonen auf Spatzen schießen 😉

Aber ich finde es schön, dass meine Anregung so viel Anklang findet. Ich verfeinere meine Idee mal ein wenig:

Forum-Name: Software-Entwicklung allgemein
Unter-Foren:
1. Software-Projekt-Planung und -Management
Was gehört in ein Pflichtenheft? Wie definiert man Milestones? Wie verwaltet man ein Mehr-Personen-Projekt? Wie hält man Termine ein? Wie erklärt man den GAU seinem Chef und seinen Kunden? Wie hält man sich die Vertriebsfritzen vom Leib?

2. Vom Fehler zur Lösung
Erfahrungsberichte aus der Praxis zu typischen Problemstellungen; welche Ansätze sich als problematisch erwiesen haben und warum -- und bewährte Alternativen.

3. Patterns & Practises
Erprobte Ansätze zum Entwurf und zur Entwicklung von Software, zur Lösung typischer Aufgaben und zum Umschiffen alltäglicher Klippen.

4. Philosophisches
Static? Singleton? Instanz? Erfahrungsaustausch und Diskussion über Software-Entwicklungs-Strategien.

2 und 3 überlappen sich natürlich. Meine persönliche Idealvorstellung wäre, wenn Leute, die Lust drauf haben, erstmal in (2) einen kurzen, knappen Erfahrungsbericht schreiben und erzählen würden, was sich so alles als problematisch bis total besch...eiden erwiesen hat, und dann in (3) eine gute, erprobte Lösung vorstellen.

/// <summary>
/// Signatur
/// </summary>

M
456 Beiträge seit 2004
vor 19 Jahren

Ich finde die Idee auch gut. Die meisten Programmier-Foren sind ja leider recht eindimensional.
Wenn man auch noch allgemeinere Dinge zur professionelleren Softwareentwicklung mit reinpackt würde, wär das das ziemlich gut.
Vor allem für die Erfahrungsberichte und Patterns wäre doch so was wie ein myC# Wiki net schlecht.

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

C
CarstenP Themenstarter:in
65 Beiträge seit 2004
vor 19 Jahren

Ja, gerade zur Projekt-Planung und zum -Management fallen mir spontan viele Themen ein... Zum Beispiel:

"Wir sind eine kleine Software-Firma, unsere Programmierer sitzen aber verteilt zwischen Buxtehude und Ibiza, wie synchronisieren wir unsere Sourcen und beliefern unsere Kunden mit einem vernünftigen, einheitlichen Stand?"

"Unser Key-Account hat eine neue Software angefordert. Wie können wir einen Prototypen vorführen, den wir nach der Präsentation nicht komplett in die Tonne treten müssen? Wie finden wir also einen goldenen Mittelweg zwischen 'rapid prototyping' und 'reusability'?"

"Wo liegt das sinnvolle Mittelmaß zwischen 'Schnell reingehackt' und 'literarischem Programmieren'? Wie schreibt man also selbst-dokumentierenden Code, ohne 2/3 der Zeit mit Dokumentation zu vergeuden? Zeit ist Geld..."

"Wie sorgt man dafür, dass die neue Kollegin sich an die bisher von mir im Schweiß meines Angesichts durchgesetzten Coding-Standards hält? Wie definiert man für sich Schwellenwerte, hinter denen neue Ideen zum Redesign des eigenen Codes führen sollten?"

usw...

/// <summary>
/// Signatur
/// </summary>

2.217 Beiträge seit 2003
vor 19 Jahren

Hallo,

finde die Idee grundsätzlich nicht schlecht.
Das wird intern bei uns diskutiert werden.

Viele Grüße
Alexander

C
CarstenP Themenstarter:in
65 Beiträge seit 2004
vor 19 Jahren

Original von alexander
Hallo,

finde die Idee grundsätzlich nicht schlecht.
Das wird intern bei uns diskutiert werden.

Hui, klasse! Was kann ich mehr erwarten! 🙂

/// <summary>
/// Signatur
/// </summary>

333 Beiträge seit 2004
vor 19 Jahren

Jups, super Idee!

([bb]|[^b]{2})

X
2.051 Beiträge seit 2004
vor 19 Jahren

Ja die idee ist nicht schlecht, aber ich würde mit vielen unterforen nicht übertreiben.

M
456 Beiträge seit 2004
vor 19 Jahren

Auch wenn ich mich jetzt unbeliebt mache 😉

Da ja immer wieder über neue Forenecken diskutiert wird, möchte ich noch einen Vorschlag für eine Forenkategorie machen:

Was halted ihr von einem Unterforum das sich mit den Internas von .Net und C# beschäftigt:
Also Fragen zum CLI, CLR, CTS, GAC, den Metadaten, Portierbarkeit, wie funktioniert Garbage Collection, Security, Signierung und vor allem MSIL ( was für Opcodes gibt es, was machen sie, usw ...)

Also keine Dinge wie: "Ich möchte das und das programmieren, wie mach ich das?", sondern mehr: Was macht das .Net System eigendlich wenn es meinen Code ausführt und wie greift das alles ineinander.

Also quasi ein "Inside .Net" für teschnisch Interessierte 8)

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

C
CarstenP Themenstarter:in
65 Beiträge seit 2004
vor 19 Jahren

Hm, da findest Du sicher viele interessierte Leser, aber gibt's hier auch kompetente Autoren zu dem Thema? Ich will niemandem auf die Füße treten, aber zu diesen Themen wirklich präzise Aussagen findet man ja nichtmal in der MSDN...

/// <summary>
/// Signatur
/// </summary>

333 Beiträge seit 2004
vor 19 Jahren

Sehe ich genauso wie Carsten. Wenn man näheres Wissen möchte sollte man die entsprechenden Quellen konsultieren und nicht die Forums-User 🙂 Den Bereich MSIL fänd ich allerdings ganz interessant. Hatte vor kurzem etwas gefunden, wo man net drumrumkam etwas direkt in IL zu codieren. Aber auch so wärs sicherlich ganz spannend auch wenn wohl die Beteiligung mehr oder weniger gen 0 gehen würde 😉

([bb]|[^b]{2})

X
2.051 Beiträge seit 2004
vor 19 Jahren

Original von NoOneKnows
Hatte vor kurzem etwas gefunden, wo man net drumrumkam etwas direkt in IL zu codieren.

das würde mich auch interessieren. hast du noch quellen?

333 Beiträge seit 2004
vor 19 Jahren

Original von Xqgene
das würde mich auch interessieren. hast du noch quellen?

Hatte es vor kurzem auch hier im Forum gepostet. Geht um den Aufruf einer nicht verwalteten Funktion per Funktionspointer:

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=ueqNoUdtCHA.2540%40TK2MSFTNGP10

Aber glaub man kann es noch anders lösen...

([bb]|[^b]{2})

C
980 Beiträge seit 2003
vor 19 Jahren

Original von CarstenP
Hm, da findest Du sicher viele interessierte Leser, aber gibt's hier auch kompetente Autoren zu dem Thema? Ich will niemandem auf die Füße treten, aber zu diesen Themen wirklich präzise Aussagen findet man ja nichtmal in der MSDN...

Informativer als die MSDN ist häufig das Framework selber ... ansonsten gibt es bei interessanten Themen hier wohl genügend, die auch mal andere Quellen (wie Gunnerson, Anderson, Abrams, ...) ins Spiel bringen können 😉

M
456 Beiträge seit 2004
vor 19 Jahren

Ich hatte auch schon mal ne frage zu Funktionspointern hier gestellt und wie man sie von c# aufrufen kann. Das geht aber leider nur von MSIL aus. Danke ebenfalls noch mal für den Link NoOneKnows.
Zu erwähnen wäre vielleicht noch das der calli Befehl nicht auf dem Compact Framework läuft und Leute die auf Linux arbeiten cdecl als Aufrufkonvention verwenden sollten und nicht stdcall.

MSIL ist sicher interessant, da man einige Dinge nur von hier aus machen kann (Funktionspointer).

Vielleicht will ja jemand mal einen MSIL Compiler für eine Programmiersprache schreiben. Ein SharpProlog, SharpHaskel oder ähnliches fehlt ja noch 8)
Im SDK is ja glaube ich sogar ein CommonLisp Compiler drin ( mit Quellcode ) der MSIL erzeugt.

Es gibt aber leider recht wenige gute Tutorials zu IL.
Hier aber ein bissl Stoff den ich noch so gefunden hab:

http://www.codeproject.com/dotnet/#MSIL
http://www.codeguru.com/Csharp/.NET/net_general/il/article.php/c4635/
http://csharpcomputing.com/Tutorials/Lesson2.htm

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

C
CarstenP Themenstarter:in
65 Beiträge seit 2004
vor 19 Jahren

*spam* Mei, Kinder, Unsereins schlägt sich noch damit herum, wie er nützliche Controls bauen kann, und Ihr schwadroniert im Geiste schon wieder von Assembler... 😉

/// <summary>
/// Signatur
/// </summary>

333 Beiträge seit 2004
vor 19 Jahren

Naja, Assembler ist nicht gleich Assembler. MSIL ist eben objektorintiertert und auch von der Handhabung tausendfach einfacher ist als die richtigen Machinencode-Assembler. Da machts eben wieder Spaß, ein bissel rum zu assemblen 😉
Aber die Möglichkeit damit selbst einen .NET-Compiler entwickeln zu können is schon genial...

([bb]|[^b]{2})

C
CarstenP Themenstarter:in
65 Beiträge seit 2004
vor 19 Jahren

Assembler...
<world.persons.durchgeknallt.Scooter>Ihr seid ja alle wahnsinnig!</world.persons.durchgeknallt.Scooter>

Das kann nur daran liegen, dass Ihr nie die Gelegenheit hattet, nen selbstgebauten (d.h. einen auf einer mit Fädeldraht verdrahteten Platine sitzenden) und maßlos übertakteten Zilog-Z80C-19"-Einschub-Computer per "c't"-EPROM-Brenner binär zu programmieren 😁 Mei, das Ding hatte am Ende irre 6 MHz und 128 KByte RAM und konnte unter CP/M Pascal-Programme übersetzen! Gute, alte Zeiten... g

/// <summary>
/// Signatur
/// </summary>

V
842 Beiträge seit 2003
vor 19 Jahren

Hi!

Original von NoOneKnows
Naja, Assembler ist nicht gleich Assembler. MSIL ist eben objektorintiertert und auch von der Handhabung tausendfach einfacher ist als die richtigen Machinencode-Assembler.

Auch in Assembler kann man OO-Programmierung und alles was dazu gehört (Polymorphie, Vererbung...) anwenden. Also das ist sicher kein Vorteil von MSIL. Wobei ich das natürlich auch für Krank halte. Ich bin schon froh, wenn meine Assemblerfunktionen funktionieren.

Code-Hacker

C
980 Beiträge seit 2003
vor 19 Jahren

Original von CarstenP
Gute, alte Zeiten... g

alt zeiten? das bild unten (anhang) stammt aus letztem semester ... (ok, geht da um probability gates, aber auch ums designen eigener datapaths und einfacher cpus bis auf cmos level (bei bedarf auch VLSI level) kommt man bei uns auch heute nicht drum herum 😉 )

333 Beiträge seit 2004
vor 19 Jahren

Original von Code-Hacker
Auch in Assembler kann man OO-Programmierung und alles was dazu gehört (Polymorphie, Vererbung...) anwenden. Also das ist sicher kein Vorteil von MSIL. Wobei ich das natürlich auch für Krank halte. Ich bin schon froh, wenn meine Assemblerfunktionen funktionieren.

Klar, lässt sich auch mit herkömlichen Assemblern OO programmieren. Aber MSIL mit solchen zu vergleichen, ist wie C# mit einfachen C zu vergleichen. In C# wie auch is MSIL gibts bereits Klassen und Möglichkeiten Instanzen davon zu erstellen, in C bzw. Assembler ist man davon weit entfernt. Man hat also mit MSIL einen richtigen OO-Assembler und nicht einen Assembler bei dem man sich die Finger wund schreibt. Entwickelt man gar einen Compiler, dann hat man viel mehr Mühe den OO-Code in Machinencode-Asm-Befehle umzusetzen, usw...

([bb]|[^b]{2})

M
456 Beiträge seit 2004
vor 19 Jahren

Da schreibt man mal was zu MSIL und schon geht die Diskussion los 😉
NoOneKnows hat recht. MSIL hat sicherlich nichts mit einem normalem Assembler zu tun. Er ist ja wie schon gesagt objektorientiert und auf nem recht hohem abstraktionslevel im gegensatz zu einem normalem Maschienen Code wie x86-Assembler. Jeder der das schon mal gemacht hat weiß das genau 😉

MSIL bietet viele interessante Möglichkeiten.
Auch einen Compiler zu schreiben ist mit MSIL sicher nur halb so schwer (selbst das ist eigentlich noch übertrieben) wie mit einem "normalem" Assembler, da man vom .Net Framework kräftig unterstützt wird (System.Reflection.Emit - Die SDK Beispiele dort zeigen das auch gut). Die Codeerzeugung geht da fast automatisch 😉 Außerdem ist IL Stack basierend und man muss sich nicht mit lästiger Registerverwaltung rumärgern.

IL ist sicherlich kein Spielzeug für "Fetischisten" die an die guten alten Zeiten denken 😉 Dafür ist IL schon fast zu komfortabel. Man kann halt ne menge Dinge machen die mit "normalem" C# unmöglich sind. Automatische generierung von Assemblies zur Laufzeit, selbst geschriebene Skriptsprachen für Programme, polymorpher Code, und und ....

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

V
842 Beiträge seit 2003
vor 19 Jahren

Hi!

Ja, nur es hörte sich fast so an als sei das mit ASM unmöglich. Wobei ich der Sache mit dem Komfort schon zustimme.

Code-Hacker

333 Beiträge seit 2004
vor 19 Jahren

Hab gestern mal just4fun einen Brainf*ck-Compiler mit C# geschrieben. Den MSIL-Code hab ich dann, nachdem ich erst ein MSIL-Tutorial durchgeackert hab 🙂, über den ILGenerator erzeugt. Es ist eben wirklich ein Kinderspiel mit MSIL umzugehen. Man ist weit von der Komplexität eines Machinencode-Assemblers entfernt.

Ja, nur es hörte sich fast so an als sei das mit ASM unmöglich.

Das meinte ich natürlich nich 🙂

([bb]|[^b]{2})

C
CarstenP Themenstarter:in
65 Beiträge seit 2004
vor 19 Jahren

Original von NoOneKnows
Brainf*ck-Compiler

gibts schon ne syntax-spec für "brainf*ck"? 😁

/// <summary>
/// Signatur
/// </summary>

333 Beiträge seit 2004
vor 19 Jahren

Original von CarstenP
gibts schon ne syntax-spec für "brainf*ck"? 😄

Sowas brauchs eigentlich nicht. Die paar Befehle kann man sich auch so gut merken 🙂 Aber hier nochmal die 8 magischen Operatoren mit denen man jeden möglichen Algorithmus programmieren kann:

> 	Increment the pointer.
< 	Decrement the pointer.
+ 	Increment the byte at the pointer.
- 	Decrement the byte at the pointer.
. 	Output the byte at the pointer.
, 	Input a byte and store it in the byte at the pointer.
[ 	Jump forward past the matching ] if the byte at the pointer is zero.
] 	Jump backward to the matching [ unless the byte at the pointer is zero.

Und so sieht dann eine Hello World-Variante aus:

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-]
<.>+++++++++++[<+++++>-]<.>++++++++[<+++>-]<.+++.------.--------.[-]>++++++++[
<++++>-]<+.[-]++++++++++.

Ist eben ne esoterische Sprache 😉

([bb]|[^b]{2})

N
4.644 Beiträge seit 2004
vor 19 Jahren