Neues Projekt, wie geht ihr vor?


EuroCent

Erfahrenes Mitglied
#1
Hallo zusammen,

aktuell kommt immer mal bei mir die Frage auf, wie Ich ein Projekt umsetze.
Ich persönlich brauche immer eine Visuelle Darstellung damit Ich weiß wo und wie Ich anfange.

Mir teilte man aber auch immer mal mit, von Hinten nach vorn zu arbeiten...
Sprich ich baue vorweg Funktionen und dann das Template?!

Aber wenn Ich selbst noch keinen direkten Schimmer habe, woher weiß vorher, welche Funktionen ich brauche?

Wie gesagt Ich persönlich kann ohne eine Vorstellung nicht in blaue los Programmieren :/

Wie geht Ihr in solchen Sachen vor?
 

Zvoni

Erfahrenes Mitglied
#2
Wenn das Programm eine GUI hat, entwerfe ich immer die GUI zuerst, und zwar komplett (Control-Names, Gruppierungen usw.) und lass die GUI im ersten Versuch einfach laufen, um zu prüfen, ob z.B. Option-Buttons korrekt gruppiert sind etc..
Als nächsten Schritt mache ich meistens die Plausi-Checks für Eingabe-Controls
(Beispiel: Wenn es ein Login gibt, wo der User Name und Passwort eingeben soll, macht es mMn keinen Sinn, eine Schaltfläche enabled anzubieten, wenn nur der Name drinsteht. Ich zwinge den User, in erforderlichen Feldern Einträge zu machen, bevor ich ihm eine Schaltfläche anbiete, auf welche er klicken kann).
Ist die GUI fertig, geht es an die BL (Business-Logic).
Da folge ich generell dem eigentlichen Ablaufprozess.
Beispiel:
Ein User muss sich einloggen. (Plausichecks für die Felder schon erledigt).
Nächster Schritt: Validierung der eingegebenen Daten (Ist UserName/PW gültig ja/nein. Falls Ja, weiter, falls nein Rückmeldung, wobei ich hier immer zuerst die negative-Ergebnisse abarbeite. Ist das fertig, gehts an den nächsten Schritt).
Auf diese Weise bleibe ich im Workflow des Prozesses, welcher durch das Programm abgebildet werden soll.
 

EuroCent

Erfahrenes Mitglied
#3
Bei uns muss er sich nicht einloggen :D
Aber geprüft werden muss es dennoch :)
Da er durch SSO des PC und seiner Windows Kennung automatisch erkennt wird :)

Welches Programm zur GUI verwendest du denn? :)

Ich nutze NetBeans, Notepad++ da wird es etwas schwierig mit der Visuellen GUI :)

Ein anderes Programm lässt unser Unternehmen aktuell nicht zu :/

Deine Logik wäre dann fast die der meinen. :)
 

Zvoni

Erfahrenes Mitglied
#4
Kommt drauf an. Bei der Arbeit so ziemlich 99% VBA/Excel (ist halt so bei uns :sneaky:)
Ansonsten kleinere Sachen in Freepascal/Lazarus.
Und das mit dem Login war ja nur ein Beispiel.

Ich hatte erst letzte Woche eine Anforderung für einen Excel-Report. Genau wie oben beschrieben, bin ich im übertragenen Sinne drangegangen:
1) Wie soll der fertige Bericht aussehen (also welche Spalten, Farben, Formatierungen etc. --> User Interface)? --> Im Prinzip ein Dummy-Ergebnis erstellt
2) Wo kommen die Daten her? --> Datenbank
3) Aufbereitung der Daten (=Business Logic) inkl. Übertragung der Daten in das Ergebnis

Als der Chef zu mir ein "gut gemacht" sagte, habe ich ihm die SQL-Abfrage ausgedruckt in Word bei Schriftgrösse 12 in die Hand gedrückt. Er hat mich nur angeschaut und gefragt: "Und was soll ich jetzt mit diesen 6 1/2 Seiten Kauderwelsch machen?"
Die letzte Zählung ergab insgesamt 11 Tabellen-Aliase mit den entsprechenden Joins (LEFT/INNER JOIN) mit jeweiligen Group By's, Row_number over Partition und haste nicht gesehen. Allein für die SQL-Abfrage sass ich ca. 3-4 Tage dran, aber die Vorgehensweise war im Prinzip diesselbe: Ich fing mit der Spalte am weitesten links an, und hab mich dann vorwärts gehangelt.
 

Yaslaw

n/a
Moderator
#6
Ich beginne meistens anders rum. Aber ich hbae meistens auch keine klaren vorgaben was GUI usw angeht.

- Was soll der Kern können
- Zusammensuchen der Komponenten die ich brauche
- Aufbau des Kerns und testen (also den Motor beim Auto)
- Dann die Steuerung und das GUI.

Es kommt halt drauf an. Ist es ein hochkomplexes GUI, aber fast keine Logik im Kern, dann mit dem GUI beginnen.
Ist das GUI nur Beigemüse und es ist wichtig, was der Kern macht, dann mit dem Kern beginnen.
 

EuroCent

Erfahrenes Mitglied
#7
Ah... okay :)
Ich bekomme meistens Aufgaben/Anforderungen wo grob beschrieben ist was gewünscht wird.

Darauf baue Ich einen Entwurf, ist der Entwurf durch und akzeptiert, dann gehe Ich ins Eingemachte und fange dann an, mir die Funktionen zu notieren und zu Programmieren... :)
 

Technipion

Erfahrenes Mitglied
#8
Wenn ich ehrlich bin hängt mein Vorgehen entscheidend von der zu entwickelnden Software-Komponente ab. Ist ja eigentlich logisch. Will man eine Navigationssoftware für Embedded Systems schreiben muss man komplett anders vorgehen als bei der Entwicklung eines Webforms.
Und selbst dann bleibt da auch immer noch ein bisschen der persönliche Geschmack. Manche bauen halt lieber erst GUI dann Kern. Andere bauen erst einen Kern (womöglich sogar als komplett unabhängiges Kommandozeilenwerkzeug) und bauen später eine GUI drumherum.

Vielleicht kannst du ja noch ein bisschen genauer beschreiben was du tun willst EuroCent? Natürlich ohne zu viel zu verraten ;)

Gruß Technipion
 

EuroCent

Erfahrenes Mitglied
#10
Vielleicht kannst du ja noch ein bisschen genauer beschreiben was du tun willst EuroCent? Natürlich ohne zu viel zu verraten ;)
Mein Vorhaben ist, dass Ich Anforderungen bekomme, in dem nur grob geschildert wird, was ein Tool "Vergleichstool von Anbieter als Beispiel" machen soll.

Beispielsweise: Möchte der Anforderer dass mit dem Tool ein Auswahl von Speed, Anbieter etc möglich ist, zusätzlich muss die Möglichkeit geben Dynamisch die Daten zu ändern.
Also mit DB Anbindung.

Mein Problem welches Ich immer habe ist, dass Ich es als Visuelle Darstellung benötige damit Ich weiß wie Ich an die Sache ran gehen muss.

Habe Ich eine Darstellung mit fiktiven Daten etc... präsentiere Ich dass dann dem Anforderer.
Ist er Zufrieden dann Fang Ich an und Konstruiere die Funktionen etc...

Ein Kollege meinte da zu Mir, dass Ich von hinterher anfangen müsse, also erst Funktionen und dann das Gerüst darum... was für Mich aber eher schwierig ist, da Ich ja gar nicht weiß was Ich vorweg alles brauche :D
 

Zvoni

Erfahrenes Mitglied
#11
Korrekt.
Hab die gleiche Erfahrung mit dem „von hinten anfangen“ gemacht, weil du de facto raten musst, was als Ergebnis gewünscht sein könnte.
Gib mir von vorn herein, was du haben willst, und ich schaue, was ich dir liefern kann
 

Technipion

Erfahrenes Mitglied
#12
Ich glaube, EC will nur ein wenig philosophieren und die Pro's und Con's diskuttieren :unsure::alien::p:cool:
Achso alles klar :cool:

Ja also dazu kann ich eigentlich nur sagen, dass ich bei meinem Projekten schon alle möglichen Vorgehen hatte. Es hängt wirklich massiv davon ab, in welchem Umfeld man was für eine Software basteln möchte, und ob auch ggf. schon vorhandene Software genutzt werden soll. Ist ja beinahe wie die Frage: Ich möchte ein Buch schreiben, wie fange ich an? Dazu kann man eigentlich nur sagen: Hängt ganz von der Art des Buches ab.

Aber wenn EuroCent möglichst zeitnah den Kunden durch eine Vorschau des Endergebnisses überzeugen muss, macht es natürlich Sinn die GUI vorzuziehen. Selbst eine halbfertige GUI beeindruckt i.d.R. mehr als ein vollentwickeltes Terminalprogramm :LOL:

Gruß Technipion
 

EuroCent

Erfahrenes Mitglied
#14
???
Was ist denn an der Kommandozeile
Code:
grep "sex" emailkontovomchef
so "unbeeindruckend"????
Hier komm Ich gar nicht mehr mit :D

@Technipion
Genau beim Buch fängt man ja auch nicht von hinten her an, außer es ist ein Manga :D

@all
Aber um beim Thema zu bleiben: Ist da die Logik "hinten nach vorn" gegen über "vorn nach hinten" essentiell besser?!

Also wenn ein Kunde ankommt und sagt er möchte eine Webseite mit News, Imprint und Contact dann weiß Ich hieraus was Ich brauche, da Ich sowas Standard mache.

Wenn aber ein Kunde kommt und er ein "Postleitzahlen-Tool" wünscht und er mir sagt dass es aber Dynamisch gestaltet werden kann/muss, dann muss Ich ja mit der GUI anfangen und zu wissen, ob Ich in die Richtige Richtung gehe. So zu mindestens gehe Ich da so vor.
Erst dann wenn der Kunde sagt dass das genau seiner Idee entspricht, kann Ich mich dann ran setzen und es OOP umsetzen.

Ich tue mich ehrlich gesagt sehr schwer, erst mit den Funktionen anzufangen ohne eine Visuelle Darstellung zu haben :/

Da Ich nicht weiß was Ich für Funktionen etc... vorweg benötige.
Wenn Ich beispielsweise erst hinten die Funktionen mache und dann erst das Gerüst dadrum herum, kann es ja passieren dass man es komplett neu machen muss, weil es nicht dem entspricht wie es der Kunde haben will. Zu mindestens meiner Erfahrungen nach :)

Bei manchen/vielen wird es sicherlich nicht so sein, weil Sie deutlich mehr Erfahrungen haben, was die Anforderungen angeht und da ist es für die auch deutlich leichter. :)
 

Neue Beiträge