| |
Welche Programmiertechnik? |
|
 |
 |
 |
| |
Hallo
Ich bin auf der Suche nach der "Besten" Programmiertechnik bzw. Vorgehensweisen.
Wie "macht" Ihr es ? - modular - alles in einem - erst funzen, dann auslagern - gleich module schaffen dann zusammensetzen - usw
Schreibt mal Eure Erfahrungen, Anfänge, Strukturen, Anregungen bei komplexen Produkten und auch einfachen Sachen, nennt Vorteile aber auch Nachteile! Das interessiert mich echt mal sehr.
Danke
IBO |
|
|
 |
 |
 |
| |
Antworten |
|
| |
1. Du hast was wichtiges vergessen
- ich schau das es läuft, der Rest ist mir egal

2. OK
Hab das Bitte vergessen, oder was meinst Du?
IBO
3. Prgrammieren ist ne art kunst! jeder hat sein eigenen style und hällt den für den besten und geilsten! Also ich nehme mir immer vor alles total dynamisch zu programmierne. Möglichst einfach erweiterbar. Mit templates und und mit Modulen. Aber am ende läufts nur bei mir auf localhost und sonst nirgendwo *g*
4. Ahso
Dacht ich mir fast. Ich dachte schon ich bin zu blöd. Also bei mir läufts meistens auch da, wo es laufen soll.
Hab auch schon verschiedene Styles durch... am Anfang hatte ich noch für alles ne eigene Datei... eine schreiben.php eine lesen.php eine mod.php und so weiter
Dann habe ich mit verschiedenen Modis gearbeitet, nach denen ein paar weniger Dateien die entsprechenden Funktionen durchgeführt haben...
Ich denke mal, daß Ihr auch nicht jedesmal alles NEU programmiert, sondern alte Funktionsweisen von älteren Scripten übernehmt und eventuell verbessert... hab ich recht?
Ich muß Euch sagen, hier (wo ich wohne) gibt es weiter keinen Programmierer, den ich das mal fragen kann, daher seid Ihr mein Anlaufpunkt.
Dieses Forum hat mir auch schon sehr viel geholfen, und ich denke mal, daß meine Antworten, die ich geben konnte zu dem ein oder anderen Thema, auch wieder anderen geholfen haben.
An die Webmaster Das email-Kästchen könnte übrigens immer "an" sein.
IBO
5. hi ibo!
ich habe eine ganze weile mit include-dateien gearbeitet. genauso wie du, eine speichern.php, eine aendern.php, eine liste.php usw. das dumme war nur, dass mit der zeit immer mehr dinge hinzukamen. dann gab es nämlich eine liste_links.php, eine liste_klein.php und noch viel mehr anderen quatsch. das ding drohte mir immer um die ohren zu fliegen, weil alle variablen in demselben namensraum definiert sind. wenn in zwei includes also meinetwegen eine variable $user_info zweimal auftaucht, wird diese einfach überschrieben. und dann wundert man sich, warum das ganze ding auf einmal nicht mehr funktioniert. man kann ja auch nicht jede dämlichen variablennamen im kopf behalten.
bei meinem zweiten projekt habe ich dann so ziemlich alles in funktionen gepackt. damit war auch erstmal der namensbereiche behoben. denselben effekt hat man auch beim objektorientierten programmieren. der zusätzliche vorteil dabei ist die grössere übersichtlichkeit. parameter (eigenschaften) lassen für jedes objekt einzeln ändern, funktionen müsste man dagegen mit vielen argumenten füttern, um dieselbe flexibilität zu erhalten. ein weiterer vorteil bei objektorientierter programmierung ist, dass jede funktion (methode) meist aus nur 3-15 zeilen besteht, was die zahl der fehler und bugs bei der entwicklung drastisch reduziert.
6. Wenn abzusehen ist, dass das Projekt größer wird (also mehr als 2 Seiten ) macht es auf jeden Fall Sinn, sich erstmal auf Papier aufzumalen, was wann wie passieren muss. Dann kommt man um eine modulare Programmierung schon fast nicht mehr herum. Erst alles zu schreiben um es dann in Module auszulagern ist doch nur unnötiger Mehraufwand?
7. Hmmm
Ist bestimmt nur ne Verständnisfrage, die mir bis jetzt einfach keiner erklärt hat, aber:
Was genau ist Objektorientiertes Programmieren ?
Vielleicht hab ich es auch schon getan und wusste es nur nicht. Kannst Du es an einem Beispiel erklären oder überhaupt?
IBO
8. urgs, kauf dir ein Buch über irgendeine OO-Programmiersprache und du wirst stundenlange vorträge über OO-Programmierung lesen dürfen. Und das in jedem be***** Buch, geht mir persönlich recht gegen den Strich, da kauft amn sich ein schönes Buch um Java zu lernen, was passiert die ersten 100Seiten kann man getrost in die Tonne knicken weil es alles immer wieder der serlber Kram ist (und kaum eins der Bücher erklärt witziger Weise Polymorphie ^^).
Also mMn ist das Thema OO mehr als nur erschlagen mit Material aus dem Inet und gedruckten Papier.
Nur damit man mich nicht falsch versteht, ich bin ein riesen OO-Fan und programmiere seit Jahren so (wenn auch nicht immer sauber aber an gewissen Stellen könnts doch einfach mal übersprungen werden ^^
9. @galeon: du hast recht. um das thema wird immer sehr viel wirbel gemacht, obwohl alles nur halb so wild ist.
@ibo: objektorientiert heisst meiner laienhaften meinung nach nichts weiter, als dass du bei deiner programmierung zu einem grossen teil auf klassen und objekte setzt. klassen bestehen aus eigenschaften (klasseneigene variablen) und methoden (klasseneigene funktionen). objekte werden aus den von dir definierten klassen erzeugt und haben eben diese eigenschaften und methoden. am besten erklärt sich das wohl mit ein paar beispielen:
http://manuals.phpforum.de/php/language.oop.php
10. Moin..
hm, als noch relativer Anfänger hab ich selbst noch Probleme, mir einen Stil anzueignen, den man auch als Stil erkennen kann. Derzeit habe ich halt noch geringe Grundideen, wie zB in Sachen Variablen. Bei meinem aktuellen Projekt hab ich zB zwei Typen, einen globalen, der umfasst ca. 10-11 Variablen, die auf jeder Unterseite nutzbar (und unveränderbar) sind, und dann sozusagen Modulvariablen. Also jede Neuigkeit an der Seite, bzw neue Unterseite, bildet ein eigenständiges Ding. ZB das Forum, könnte ich mit wenig Änderungen als Standalone auslagern, genauso die Galerie, genauso die Umfragenseite. Als Schnittstellen (wenn man das so nennen kann?) dienen mir eben die "globalen Variablen".
Es ist so einfach sehr simpel, neue Sachen hinzuzufügen, ohne in bereits bestehenden Bereichen etwas ändern zu müssen. Die einzelnen Bereiche selbst sind so gehalten, dass eigentlich nur php Code zu finden ist, mit möglichst wenig html Code. Und wenn, dann sind html Codes versammelt an einer Stelle zu finden, aber nur selten html gemixt mit php. Ich könnte die html Sachen zB auch auslagern und includieren, sehe aber zur Zeit wenig Sinn darin. Evtl später vielleicht, und dann alle "templates" in einem eigenen Ordner unterbringen. Aber halt zB erst dann, wenn ich aufwendig mit Grafiken, Tabellen oder CSS gestalten würde.
OO trau ich mir einfach noch nicht zu, auch wenn ich mir sicher bin, locker ein drittel oder mehr an realem Code zu sparen, da manches einfach nur oft wiederholt wird (das ist doch der Sinn dahinter, oder?). Aberich merke bereits, wie ich mich entwickle. Nehme ich das erste script, und das neueste, sind tatsächlich grundlegende Unterschiede zu finden. Was beim ersten ein grosses Durcheinander ist, ist beim neuen klar strukturiert, auch und vor allem in Bezug auf die Ausgabe in html. Habe ich am Anfang zB für jeden Sch*** einen eigenen Seitenzahlabschnitt gehabt, nutze ich heute einfach ein script, was ich in einer Funktion ausgelagert hab. Es stimmt zwar, dass man für grosse Flexibilität auch eine Menge Variablen dafür bereithalten muss. Aber was nicht gebraucht wird, kann ja einfach ausgeklammert werden.
Mein erster Schritt vor gut einem Jahr war dazu übrigens BBCode, ich war es leid, ihn überall hinzukopieren, und habe ihn in ein eigenes Dokument gepackt und includiere ihn da, wo er gebraucht wird. Auch einzelne Sachen darin habe ich inzwischen optimiert. Statt jeden Ersetzer einzeln zu definieren, habe ich am Anfang ein Array, was dann mit einer Zeile Code durchlaufen werden kann. Also alles, was mehrfach gebraucht wird, und im Prinzip ohne Veränderung genutzt werden kann, ist nur einmal vorhanden.
Ich bin mir sicher, man könnte noch jede Menge optimieren, aber das kommt mit der Zeit, unter anderem lerne ich viel beim mitlesen hier im Forum. Anfangs habe ich auch viel bei fertigen scripten in Archiven abgeguckt, heute versuche ich ohne auszukommen. Aber von einem "echten Profi" bin ich wohl noch weit entfernt, aber was nicht ist, kann ja noch werden.
LG,Flo
11. Nochmal zu meinem Lieblingsthema OO: ^^
OO spart nicht unbedingt Code sondern kann in vielen Fällen sogar eher dazu führen das es mehr wird und in eigentlich allen Fällen wird das debugging für dritte schwieriger (PHP bietet da eine gewisse ausnahme da man hier nicht so auf die Suche nach Objekten gehen muss wie in anderen Sprachen (ja die muss man teilweise wirklich suchen ^^)).
Vorteile liegen einfach in den Möglichkeiten die sich dadruch erschließen das nicht mehr alles an einem Band durchläuft wie bei der Prozedualen programmierung. Alleine die Möglichkeit das mehrer Events gleichzeitig stattfinden können lassen einen schon viel machen. Man kann sich da besonders bei Spielen einen Eindruck verschaffen was Spiele vor und nach der OO konnten (den Leistungsansteig lassen wir mal ausser acht).
OO macht aber auch nicht alles Chaotisch, so bietet sie z.B. die möglichkeit Schnittstellen als Objekte klar zu definieren und anderne zur Verfügung zu stellen. (klar geht auch prozedural aber dazu gleich). Besonderen Vorteile bietet da bei der Programmierung die Vererbung und das Kapseln von Daten.
Man kann es im Endeffekt so und so sehen, OO ist nicht wirklich schwierig, die schwierigkeit besteht höchstens dadrin die Objekte sauber zu schreiben, aber das macht wohl so gut wie keiner, die meisten werden wohl eher nach dem KISS-Prinzip arbeiten ^^.
zum eigentlich Thema noch was *g*:
Bei kleinen Projekten wirds meistens quick and dirty oder auch try and error-Prinzip ^^.
Bei großen muss aber schon erstmal eine Planung auf dem Papier und eine absrapche der SChnittstellen mit evtl. anderen Mitarbeitern. Und danach gehts natürlich dran das möglichst modular und auf Templates aufgesetzt zu erarbeiten (bei PHP), nicht zu vergessen DOKU (mir persönlich sehr wichtig).
PS: Großer Text == viele Fehler == wer sie findet darf sie behalten ^^
12. Danke erstmal für die vielen Antworten...
so wie ich das verstanden habe, programmierte ich bis jetzt nicht objektorientiert, da kaum die Notwendigkeit bestand.
Is ja auch so. Bei einem Gästebuch oder einem Terminkalender o.ä. benötigt man so etwas kaum.
So richtig kapiere ich das auch noch nicht, mit der Vererbung und dem Kram, der bestimmt nicht unwichtig ist und teilweise sicher praktisch sein kann.
Vielleicht hat ja mal einer ein ganz kleines, einfaches Beispiel für mich... ...vielleicht so, als ob man einer Hausfrau die Defragmentierung erklärt 
IBO
13. Galeon: Du verwehcselst da einiges. OO hat erstmal nichts mit Multithreading oder -tasking zu tun. Es gibt OO ohne letzteres oder umgekehrt.
|
|
|