Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs 2009/Vortrag07: Unterschied zwischen den Versionen

(Ein paar Genanken: Gedanken erweitert)
K (verschob „Ckurs2009/Vortrag07“ nach „C-Kurs 2009/Vortrag07“)
 
(15 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:
 
* Guter Code
 
* Guter Code
  
==== Ein paar Genanken ====
+
==== Links ====
  
Guter Code? Was ist gut?
+
Hier sind einige weiterführende Links zum Vortag.
Die frage ob etwas gut oder schlecht ist, definiert sich über das Ziel, dass man hat.
 
  
Erst wenn man sich darüber im klaren ist, was man für ein Ziel hat kann man sich die Frage stellen ob etwas gut ist. z.B.: was für ein Auto ist gut? Ein Bus, ein Lastwagen, ein Rennwagen? Es kommt ganz darauf an ob man viele Leute mitnehmen will, viel Krams mitnehmen will oder einfach schnell sein will.
+
Coding Standards:
  
Was will man üblicher weise erreichen wenn man Programmiert.
+
* [http://www.jetcafe.org/jim/c-style.html ANSI]
Zunächst einmal will man der Maschine sagen was sie tun soll. Aber ist das alles?
+
* [http://www.gnu.org/prep/standards/ GNU]
 +
* [http://lxr.linux.no/#linux+v2.6.31/Documentation/CodingStyle Linux]
  
Meistens will man den Code selber später nochmal lesen und verstehen. Also schreibt man ihn auch für sich.
+
Namenskonvention:
  
Sehr oft schreibt man den Code mit anderen zusammen oder als Teil eines Projektes mit Anderen. Also schreibt man ihn auch für andere.
+
* [http://de.wikipedia.org/wiki/Ungarische_Notation Ungarische]
  
Warum ist guter Code, gutes Layout wichtig?
+
Automatische Generation der dokumentation aus Kommentaren:
  
Ihr schreibt den Programmcode nicht für den Computer sondern für euch und andere Menschen. Sonst könntet ihr das ganze gleich in Assembler rein hacken und es dann vergessen.
+
* [http://www.stack.nl/~dimitri/doxygen/ Doxygen]
  
Programmieren uns Softwareengineering ist bis auf wenige ausnahmen ein sehr kommunikativer und zwischenmenschlicher Prozess. Deswegen haben Informatiker auch eine so hohe Sozialkompetenz (Kein Scherz)
+
Refactoring und Testen:
  
Ihr schreibt den Code, damit ihn andere Leute oder ihr selber später mal lesen könnt. Programmieren ist eine besondere Art der Kommunikation. Genau wie die Menschliche Sprache ein Medium für Informationen, Gedanken und Konzepten ist, wird die Programmiersprache genau dazu benutzt mit der Besonderheit dass sie sogar ein Computer verstehen kann, aber das ist eigentlich nebensächlich ;-).
+
* [http://de.wikipedia.org/wiki/Refactoring Refactoring]
 +
* [http://de.wikipedia.org/wiki/Unit-Test Testing]
  
Guter Code ist sehr hilfreich beim Auffinden von Fehlern.
+
Tipps:
  
Ihr seht also es ist wichtig sich beim Schreiben von Code an bestimmte Regeln zu halten. Ein Programm zu schreiben was nur der Compiler versteht uns sonst niemand anders ist keine Kunst und obendrein nutzlos.
+
* [http://www.joelonsoftware.com/articles/fog0000000043.html Der Joel Test] ([http://local.joelonsoftware.com/wiki/2000-Aug-09_Der_Joel-Test deutsch])
  
Die frage ob ein Code gut ist oder nicht, kann man nicht so leicht beantworten, da es kein Maß gibt, und keine Methode um dies zu ermitteln.
+
=== Folien ===
 +
* [http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorlesungen/07-guter-code/c-kurs-guter-code-sturm.pdf c-kurs-guter-code-sturm.pdf]
 +
 
 +
=== Aufgaben ===
  
Für guten Code braucht man ein Gutes design. Guter Code fängt beim design der Funktionen, Prozeduren, Modulen, Strukturen und dessen Zusammenspiel an.
+
Passend zu dieser Vorlesung sind die folgenden Übungsaufgaben:
  
Woran erkennt man guten Code?
 
  
* Guter Code ist leicht verständlich, auch wenn man die Sprache nicht kennt.
+
[[Ckurs2009/Code Layout | Code Layout]]
* Guter Code ist kurz.
 
* Bei gutem Code muss man nicht lange darüber um ihn zu verstehen.
 
* Guter Code ist in sich geschlossen.
 
  
=== Folien ===
+
[[Ckurs2009/Refactoring | Refactoring]]
<!-- * [url name] -->
 
  
=== Aufgaben ===
+
=== Mitschnitt ===
  
==== Ein paar Gedanken ====
+
* Audio: http://podcasts.freitagsrunde.org/C-Kurs-2009/ckurs_vl07.mp3
Die aufgaben sollten im Team gelöst werden, bzw als interaktion zwischen mehreren Teilnehmern. Kommunikation sollte irgendwie eine rolle spielen.
+
* Video zum [http://media.freitagsrunde.org/ckurs/2009/LE07.mp4 runterladen] (304MB <i>x264</i>) | md5: f1e6a6691d3f1830400d42929674be0b
  
=== Mitschnitt ===
+
<dhflashplayer>filepath=http://media.freitagsrunde.org/ckurs/2009/LE07.flv|width=720|height=576</dhflashplayer>
  
 
[[Kategorie:CKurs]]
 
[[Kategorie:CKurs]]

Aktuelle Version vom 5. März 2013, 17:36 Uhr

Guter Code

Vortragende: Daniel S. <dstulle gmx.de>

Themen

  • Guter Code

Links

Hier sind einige weiterführende Links zum Vortag.

Coding Standards:

Namenskonvention:

Automatische Generation der dokumentation aus Kommentaren:

Refactoring und Testen:

Tipps:

Folien

Aufgaben

Passend zu dieser Vorlesung sind die folgenden Übungsaufgaben:


Code Layout

Refactoring

Mitschnitt

<dhflashplayer>filepath=http://media.freitagsrunde.org/ckurs/2009/LE07.flv%7Cwidth=720%7Cheight=576</dhflashplayer>