Laden...

Art of Programming

Erstellt von DerHulk vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.967 Views
DerHulk Themenstarter:in
270 Beiträge seit 2005
vor 16 Jahren
Art of Programming

Hallo Forum,

wollte mal wissen wie Ihr vorgeht wenn es was zu proggen gibt (Projekt etc.)

Sprich:

  • legt ihr sofort los und schreibt Code ?
  • Malt Ihr UML,PAP oder was Eigenes ?
  • Diskutiert das in eurem Projektteam (wenn vorhanden) ?
  • Evtl. nur den Klassendesigner von VS ?
  • Plant Ihr Unittest und Pattern direkt ein ?
    -...

Ich persönlich male mir erstmal einen sehr sehr groben PAP/ UMl- Plan
(manchmal auch ein Hybrid aus beiden 😉 ). Dann schau ich wie man das ganze in ein Sinnvolles ganze bringen könnte das den OO Grundsätzen entspricht (Wiederverwendbarkeit etc.)
Evtl. schreib ich die Überlegungen die ich zu einem Projekt habe auch in eine Dok.- Datei um später nachschlagen zu können.
Allgemein benutze ich viel Papier wenn ich Entwickle, was jedoch meist immer nur Schmierblätter sind (also nicht wirklich gut strukturiert).

Würde mich mal interessieren wie Ihr das so mach.

mfg Hulk

2.187 Beiträge seit 2005
vor 16 Jahren

Hi,

Wenn bei uns ein neues Projekt ansteht, legt die Aquisition erst mal das Analysedokument vor (meistens ziemlich unbrauchbar 🙁 ).

Ein oder zwei Tage später folgt die erste Besprechung, mit der gesamten Abteilung und der Aquisition. Dabei werden die Anforderungen aufgelistet und die Architektur des Gesamtsystems grob festgelegt (Server, Rechner, Datenbanken, Applikationen, ...).

Nach der ersten Besprechung entwirft das Designteam (Meistens mein Kollege und ich) das gesamte System. Dazu nehmen wir UML, wobei wir die Diagramme immer nur dann Zeichnen, wenn die anforderungen "zu" komplex sind. Dabei hohlen wir aber auch immer die Meinung der jeweiligen "Fach"-Entwikler ein (d.h. für Datenbanken, UIs, Web-UIs, usw.).

Wenn das Design (ein detailiertes Klassendiagramm und eine textuelle Beschreibung) von allen Beteiligten verstanden und als "OK" Bewertet wurde, wird mit der Implementation angefangen (Anlegen von Repositorys, *.sln, *.proj, ...). Aufgabenverteilung erfolgt durch den Projektleiter und nur Grob, falls es zu Änderungen kommt. Wir streben sowieso an, dass jeder Entwickler mit dem gesamten Code zurecht kommen.

Gruß
Juy Juka

409 Beiträge seit 2006
vor 16 Jahren

Also ich entwickle ja bis jetzt nur Privat. Von daher lege ich nicht ganz so viel Wert auf die Planung. Manchmal sprudelt's mir eben aussem Kopf und ich fang eben gleich an zu programmieren. In der Regel plane ich jedoch schon ungefähr die GUI und das Klassendesign, weil es sonst am Ende nur ein rumgewurschtel ist.

Gruß

630 Beiträge seit 2007
vor 16 Jahren

Hallo,

bei umfangreicheren Projekten zerlege ich das zu lösende Problem in Teilprobleme welche ich in natürlicher Sprache nummeriert aufschreibe. Bei grösseren Projekten kommt dann noch eine "Architekturskizze" hinzu, welche aber nur im entferntesten an UML erinnert.

Alles enthält sehr viel natürliche Sprache und Pseudocode. Konkrete Signaturen für Methoden,Interfaces und Eigenschaften überlege ich mir beim programmieren. Anders ist es natürlich wenn ich im Team arbeite, da sind die Schnittstellen ja vorgegeben oder werden in der Gruppe erarbeitet. Dann wird meistens ein UML-Diagramm im Visual-Studio Klassendesigner oder in Visio erstellt, welches dann widerrum Stubs generiert die nur noch mit Code befüllt werden müssen.

In Fällen in denen es darum geht aus einer Datenbank Business-Klassen zu implementieren oder Abstraktionsschichten zu schreiben habe ich mir jedoch angewöhnt UML-Diagramme zu erstellen, weil Fehler in dieser Phase erst spät auffallen. Das habe ich aus einem früheren Projekt gelernt in dem ein Designfehler in einer Abstraktionsklasse erst aufgefallen ist als ein Kollege gemerkt hat das er an bestimmte Daten entweder garnicht oder nur durch eine Verletzung der Objektorientierung rankommt. Daraufhin musste das gesamte Interface nochmal überarbeitet werden und sehr viel Anwendungscode der darauf aufbaute neu geschrieben werden.

Gruss
tscherno

To understand recursion you must first understand recursion

http://www.ilja-neumann.com
C# Gruppe bei last.fm

C
489 Beiträge seit 2007
vor 16 Jahren

Hallo

Leider fange ich oft ohne Planung an und das endet mit schrecklichem Code. Das ist mit c# aber noch besser als mit c++ und mfc. Man sollte sich wirklich vorher einen Plan machen.

chrische

E
395 Beiträge seit 2007
vor 16 Jahren

bei mir kommt es erlich gesagt drauf an ob

  • privat
  • auf arbeit
    (- schule: mitlerweile nicht mehr)

in der schule ging es so: aufgabe -> schreiben und nach 50% der zeitvorgabe alles fertig
oo nur wen es gefordert war^^

private kommt es wiederrum auf die sprache an

  • c#
  • php
  • php mit mysql (php alleine ist ja selten der fall)

bei c# mach ich meistens drauf los. überlege mir zwar vorher ein grobe klassenstrucktur und erweitere die nur wen es während der programierarbeit merke das etwas fehlt

pei php einfach drauf los

bei php mit mysql überleg ich mir vorher zumindest eine genaua datenbanklstrucktur (hab da heime nen nettes freewartool für privatentwikler. sehr nett erstelt auch gleich eine sql.install datei)

und auf arbeit wird alles vorher durchgesprochen detailiertes klassendiagram (fehlt trozdem immer mal etwas)
unittest's und teilweise auch PAP mit eingeschlossen

demzufolge würde ich sagen es kommt sowohl auf das projekt als auch auf den umfang drauf an wie ich es machen

MfG Paul

3.971 Beiträge seit 2006
vor 16 Jahren

Bei uns ist es in etwa so, das fasst jeder sein eigenes größeres/großes Projekt hat. Ich für meinen Teil, mache mir höchstens selbst ein paar Bleistiftnotizen der Rest findet alles im Kopf statt.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

149 Beiträge seit 2007
vor 16 Jahren

Hallo,
da ich mehr oder weniger immer noch in der Lernphase bin, ist es bei mir ja eigentlich nur privater Natur... aber hab mir natürlich auch schon Gedanken gemacht.

Klar hab ich auch das mit den Lasten - und Pflichtenheft gelernt... und ich schätze mal in einem Job der bezahlt wird ist das auch ein Muss... sonst ist man selbst der Dumme am Ende.

Aber wenn ich das mal aussen vorlasse... das macht dann eine andere Abteilung 😉... geh ich sowas folgendermassen an:

  1. Prüfe ich was will der Anwender machen ?
  2. Wie kann ich ihm das am besten darbieten ?
  3. Entwerfen einer GUI, die so abgestimmt ist, das der Anwender damit klar kommt und es ihm gefällt
  4. Den Code schreiben, damit das passiert, was die GUI verspricht.

Ich mach das so, weil das Wichtigste an einem Anwenderprogramm ist, wie der Name schon sagt der Anwender und dem muss es gefallen... und es ist unsere leidliche Aufgabe das zu erreichen, deswegen fange ich auch mit der GUI an und sehe zu wie ich den Rest dazu bekomme.

Gruß

HD

Man lernt auch im Alter nie aus

Mit 37 Fachinformatiker
Mit 38 (im August) Programmierer

C
489 Beiträge seit 2007
vor 16 Jahren

Hallo

Planst du die GUI vorher am Papier? Ich ahbe nämlich oft die EeFahrung gemacht, dass einem dabei immer noch viel einfällt.

chrische

E
395 Beiträge seit 2007
vor 16 Jahren

ich finde es manchmal ehr sinvoller erst ein program auf consolenbasis zu schreiben und dan die klassen einfach in ein windowsanwendung zu übernehmen und die onlicks sollen dan die klassen füttern

versteh ihr was ich meine? je beser das auf anhieb klapt umso beser deine klassen^^

MfG Paul

W
32 Beiträge seit 2007
vor 16 Jahren

nichts geht über prototyping,
arbeite ja so gesehen schon ne ganze weile an dem projekt, dass mich auch wahrscheinlich noch einige jahre quälen wird.

eine solide dynamische grundstruktur, dann kannste immer weiter entwickeln.

wenns mal zu komplizierten schritten kommt, muss meine schreibunterlage hinhalten.
doku erfolgt auf notizblöcken, die dann irgendwann mal nachgetippt werden.

"Arbeit ist die altmodische Form der Vermögensbildung in Arbeitnehmerhand."

Wolfram Weidner (*1925), dt. Journalist

183 Beiträge seit 2006
vor 16 Jahren

Also bei mir ist es privat und beruflich eher unterschiedlich.

Man sollte annehmen das es im Betrieb eher geordneter mit Klassendiagrammen etc zugehen sollte, dem ist aber nicht so, leider 😠 Wir haben zwar Projektleiter die aber vom Programmieren überhaupt keine Ahnung haben, so bekommen wir eine Liste mit den Funktionalitäten und den Daten die im späteren System behandelt werden soll. So hab ich mir recht schnell angewöhnt mir mein klassendiagramm im kopf zusammenzubauen um so eine Struktur zu haben was ich alles zu tun habe, dann lege ich erstmal die leeren Klassen an, mit den erforderlichen Methoden und Attributen und in jeden methodenrumpf kommt ein Comment mit // TODO: ... Wenn das steht gehts eigentlich schon ans implementieren, doch trotz meinem Hang zum perfektionierten OO-Design kommt es immerwieder vor das ich so ziemlich am Ende des Projektes merke wo noch was fehlt, da hätte ien vorher richtiges Klassendiagramm und vllt auch ein Sequenzdiagramm das verhindern können, naja Zeit ist Geld im heutigen Geschäftsleben 🙁

Privat läuft es dann schon geordneter zu. Da ich des öfteren Projekte habe die auch eine lange Benutzung mit sich ziehen gehört es einfach dazu. So ist es das ich zuerst ein ERD(bei Verwendung von Datenbanken oder XML) erstelle um alle Abhängigkeiten und m:m Beziehungen in die richtigen Tabellen zu zuordnen. Dann setze ich mich mit dem Auftraggeber zusammen und bespreche das, erkläre ihm grob wie das ERD zu verstehen ist und ob die Beziehungen untereinander auch so stimmen. Wenn das stimmt mache ich ein Klassendiagramm und lege das Projekt an, für eventuelle spätere Pflegbarkeit trenne ich GUI von der Logik und der Datenschicht, richtig wer aufgepasst hat erkennt das MVC-Prinzip 🙂 Joa und dann wird implementiert. Ich muss sagen das ich damit immer recht gut verfahre und es mich bisher vor größeren Problemen verschont hat.

GUI Designs entwerfe ich ebenfalls mit einem Toll was funktioniert wie ein GUI-Builder aber mitdem kann mann nur die Gui zusammenklicken und mehr nicht, aber so kann man eine GUI entwerfen welche auch am späteren Endprodukt fast 1:1 angelehnt ist, natürlich bekommt vor der Implementierung der Kunde diesen Entwurf zu Gesicht. Auch das erspart ein nachträgliches ändern der GUI ungemein, nichts ist schlimmer als am Ende des Projektes vom kunden gesagt bekommen das der Umgang mit der GUI nicht schön ist und man die komplette GUI neumachen muss, das wird ein gewurstel ^^

Ich weiß das klingt alles nach Streber und einem Buch der Softwareentwicklung aber es ist wirklich so, ich bin sonst kein peniepler Mensch aber nichts geht über ordentlich pflegbaren Code 🙂

Gut Schuß
VuuRWerK 😉

Edit: Weil ich es gerade lese, natürlich ist Prototyping eine sehr effektive Methode funktionalitäten zu testen. Das mach ich gern bei Algorithmen die ich bisher noch nicht entwickelt habe oder welche die recht kompliziert sind. Die speicher ich dann in einem Extra Projekt und kann so später immer wieder darauf zugreifen wenn ich diesen oder ähnlichen Algo brauch.

T
108 Beiträge seit 2005
vor 16 Jahren

Original von VuuRWerK
GUI Designs entwerfe ich ebenfalls mit einem Toll was funktioniert wie ein GUI-Builder aber mitdem kann mann nur die Gui zusammenklicken und mehr nicht, aber so kann man eine GUI entwerfen welche auch am späteren Endprodukt fast 1:1 angelehnt ist,

Welches Tool verwendust Du hierfür??

Wir nutzen derzeit Visio, aber ne (bessere) Alternative wäre klasse...

Was einmal war, wird nie wieder sein...

O
778 Beiträge seit 2007
vor 16 Jahren

Ich denk mir Klassendesign und Lösungen zu Architekturfragen beim Fahrradfahren aus und setze sie dann später um 🙂, entwickle momentan noch ausreichend wenig, dass das ausreicht...

183 Beiträge seit 2006
vor 16 Jahren

Hallo Tokka,

das Tool ist ein Eclipse PlugIn und nennt sich "Visual Paradigm" Link zu Screenshots Je höher die Edition um so teurer, aber ich finde es lohnt sich echt, hab bisher auch nur Visio gekannt aber nachdem ich das mal als Werkstudent in meinem Praktikumsbetrieb hab testen können war ich begeistert.

Gut Schuß
VuuRWerK 😉

871 Beiträge seit 2005
vor 16 Jahren

Hallo,

Visual Paradigm kann ich nur empfehlen - gibts eine Community Edition davon die für die private Benutzung frei ist (hat halt nicht den kompletten Umfang der "großen" Versionen).

Kann auch Standalone betrieben werden (ohne IDE Integration)

Grüsse,
Egon

Link

S
151 Beiträge seit 2007
vor 16 Jahren

Also bei mir läufts meistens so ab:

->Besprechung, was soll gemacht werden
->Überlegungen, Heftchen schreiben, UMLs malen, auf Papier schmieren
->Nach den Überlegungen "Was brauch ich und wie" anfangen
->Meistens ändert sich dann noch einiges beim Entwickeln und man muss halt anpassen

(sei es weil die eigene Planung nicht stimmt oder das Projekt geändert wird, bei mir meistens ersteres 😜 )

U
239 Beiträge seit 2006
vor 16 Jahren

Da ich zur Zeit nur privat programmiere, kann ich mir das aussuchen was für mich am besten passt.

  • eine Art Brainstorming für eine Person 😁
  • Anwendungsfalldiagramme
  • Klassendiagramme
  • und gerade wenn es um Delegates und Events geht, benutze ich ein von mir selbst entwickeltes Symboldiagramm, was die Beziehungen und Interaktionen der einzelnen Objekte sehr anschaulich widergibt. Alles was in Puncto OOP-Visualisierung bislang so Standard ist, schmeckt mir nicht besonders.

Nach der Planungsphase brösel ich das Projekt evtl. erst einmal in kleinere Recherche-Projekte auf, wenn ich mit bestimmten Technologien noch nicht so vertraut bin.