-
Gesamte Inhalte
42 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von pintman
-
-
Hallo zusammen!
Manic Digger ist ein in C# programmierter Minecraft-Klon, der sich sehr leicht um Mods erweitern lässt. Daher bietet sich das Projekt für jeden an, der einen Blick in die 3D-Programmierung werfen möchte.
Ich habe für den leichten Einstieg eine Reihe von Einführungsvideos erstellt, die ich euch an dieser Stelle empfehlen möchte.
Über eine Rückmeldung würde ich mich freuen.
Ich wünsche euch weiterhin frohe Ostern.
-
Meinen Chef interessiert nur, dass ich zu spät zur Arbeit erscheine; Cause:
Verkehrsstau, Cause:
Unfall, Cause:
Schlechte Sicht, Cause:
Nebel, Cause:
Wetteranomalie, Cause:
Klimaerwärmung, Cause:
CO2-Emissionen, Cause:
Verbrennungsmotoren, ...
Wenn ich meinem Chef jetzt mit "Klimaerwärmung" als Grund für meine Verspätung komme wird der mich zurecht für bekloppt halten.
Danke für das schöne Beispiel.
-
Ich würde logging nicht als Behandlung einer Exception interpretieren. So etwas kann man auch als Aspekt in den Code einweben. Wenn eine Exception bei der Eingabe von Daten durch einen Nutzer auftritt, kann der Nutzer durch eine Korrektur der Eingabe, den Fehler beheben. Wenn in einem Cluster ein Node ausfällt, kann durch einen anderen Node ein Engpass vermieden werden. In den meisten Fällen kann ich jedoch nichts machen, außer die Exception zu loggen. Das ist interessant für den Programmierer, weil es meist auf einen Bug hindeutet. So etwas würde ich auf der obersten Ebene loggen - oder noch besser: als Apsket einweben -, um der Businesslogik nicht vorzugaukeln, dass tatsächlich etwas behandelt würde.
-
Ich würde Pixie zustimmen und noch ergänzen: Exceptions sollten da gefangen werden, wo sie auch tatsächlich behandelt werden können.
Natürlich hängt es auch immer von der Sprache und dem Szenario ab: wenn ich selbst der einzige Anwender bin und jederzeit in kritische Aktionen eingreifen möchte, würde ich gar nicht werfen, sondern direkt einen Debugger öffnen, um das Problem zu lösen - besonders bei Smalltalk und Lisp-Systemen geht das ganz gut. Java und C# sind mit Quelltextersetzungen zur Laufzeit nicht so gut aufgestellt, so dass man dort häufiger neu deployen muss, wenn Fehler auftreten.
-
Noch eine Anmerkung.
Nein, der Compiler kann einen Algoritmus nicht optimieren, der Compiler kann nur den Code optimieren z.B. kann der Compiler Nebenläufigkeiten nicht automatisch erzeugen. Optimierung muss in erster Linie auf der obersten Algorithmusebene statt finden, der Compiler optimiert nur auf Maschinenebene.
Compiler können mit Hilfe von Datenflussanalyse ineffizienten Code entfernen oder vermeiden. Häufig passiert das auch schon in der IDE durch Markierungen von z.B. nicht genutzten Variablen. Tail-Recursion wird z.B. in Schleifen aufgelöst, um den Stack zu entlasten etc.
-
Ich kann dir in vielen Punkten zustimmen lilith2k3. Denkt nicht an Optimierung, wenn es noch nichts zu optimieren gibt. Sorgt für gut lesbaren, wartbaren und erweiterbaren Code. Dann kann man sich später an die Flaschenhälse machen. Viele Optimierungen werden auch schon automatisch vom Compiler erledigt. So findet man häufig Flaschenhälse an Stellen, wo man niemals mit gerechnet hätte: z.B. Stringkonkatenation in Java.
Vermutlich bringt ein anderer Algorithmus und eine andere Datenstruktur meist mehr Speicher- und Zeitgewinn als Zeigerarithmetik. Hier dreht man meist im Promillebereich an der Statistik.
-
Ihr schmeißt hier sehr unterschiedlichen Sprachtypen zusammen. Da würde ich schon stärker differenzieren. Z.B. in reine OO-Sprachen wie Smalltalk und gemischte Sprachen wie C#, Java und C++.
Gleichzeitig sollte man noch unterscheiden, ob die Typen explizit angegeben werden müssen, wie in Java und C# oder aber, ob es eine losere Typisierung wie in Python gibt.
Diese Unterscheide wirken sich meiner Erfahrung nach stark auf den Programmierstil und vor allem die Agilität und das Tooling einer Sprache aus.
-
Weitaus komplexer als eine Sprache zu erlernen, sind sicher das Tooling und die Frameworks um die Sprache herum. Das macht man mal nicht so eben.
-
Vielleicht könnte man die Anfänger mit Pair-Programming in die IDE, das Framework und auch die Style-Guides einführen.
-
Ein sehr schöne und ausführliche Darstellung für Smalltalk findet sich in dem mittlerweile freien Buch "Smalltalk With Style".
http://stephane.ducasse.free.fr/FreeBooks/WithStyle/SmalltalkWithStyle.pdf
Viele der dort vorgestellten Konzepte sind in späteren OO-Sprachen eingeflossen und lassen sich leicht auf diese übertragen.
-
In einem Thread über die wirtschaftliche Relevanz von Programmiersprachen darf der TIOBE Index natürlich nicht fehlen. Daher reiche ich ihn der Vollständigkeit halber noch nach.
-
Wie sieht dein bisheriger Ansatz aus, shjw1023?
-
Sollten wir das Ergebnis hier nicht posten?
-
Glückwunsch!
-
Danke für den Tipp itazubi.
Ich benutze mal Firefox, mal Chrome, mal IE. Was eben gerade zur Hand ist. Es geht mir nicht darum, das bestehende Icon zu ersetzen, weil es mir nicht gefällt: Es ist ja gar keins vorhanden.
-
Wenn die Seite ein schönes Favicon hätte, würde ich es bei meinen Bookmarks viel schneller finden.
-
Oh ja, stimmt. Da hatte ich den result-Parameter mit dem Rückgabewert verwechselt.
-
Sehe ich das richtig, dass TryParse im Falle eines Fehlers eine 0 liefert? Wie kann ich dann eine geparste 0 von einem Fehler unterscheiden?
Manic Digger Tutorial
in .NET
Geschrieben
Im 8. Teil der Serie zeige ich euch in einem kurzen Video, wir ihr mit nur einem Mausklick gleichzeitig den Server und den Client starten könnt. Damit wird die Entwicklungszeit deutlich verkürzt.
MD08 | Server und Client gleichzeitig starten von Marco Bakera - YouTube